Discord bot from video.

Hello,
I have been making a discord bot by a video called:
“Code a Discord Bot with Python - Host for Free in the Cloud”.

Here is the problematic code:

await message.channel.send(encouragements)

Instead of sending a message which is the list of the encouraging text, this is what I get in discord:

ObservedList(value=[]).

Please tell me what I should change so that my message will be a list text.

Here is my whole code for better understanding:

import discord
import os
import requests
import json
import random
from replit import db


client = discord.Client()

sad_words = ["sad","depressed","unhappy","miserable",]

starter_encouragements = ["Cheer up!", "Hang in there","Everything will be fine"]

def get_quote():
  response = requests.get("https://zenquotes.io/api/random")
  json_data = json.loads(response.text)
  quote = json_data[0]['q'] +  " -"+json_data[0]['a']
  return (quote)

def update_encouragements(encouraging_message):
  if "encouragements" in db.keys():
    encouragements = db["encouragements"]
    encouragements.append(encouraging_message)
    db["encouragements"] = encouragements
  else:
    db["encouragements"] = [encouraging_message]

def delete_encouragements(index):
  encouragements = db["encouragements"]
  if len(encouragements) > index:
    del encouragements[index]
    db["encouragements"] = encouragements

@client.event
async def on_ready():
  print("We have logged in as {0.user}".format(client))

@client.event
async def on_message(message):

  if (message.author == client.user):
    return

  msg = message.content

  if msg.startswith("$hello"):
    await message.channel.send("Hello!")

  if msg.startswith("$inspire"):
    quote = get_quote()
    await message.channel.send(quote)

  options = starter_encouragements
  if "encouragements" in db.keys():
    options.extend(db["encouragements"])


  if any(word in msg for word in sad_words):
    await message.channel.send(random.choice(options))

  if msg.startswith("$new"):
    encouraging_message = msg.split("$new ",1)[1]
    update_encouragements(encouraging_message)
    await message.channel.send("New encouraging 
    message added.")
   
  if msg.startswith("$del"):
    encouragements = []
    if "encouragements" in db.keys():
      index = int(msg.split("$del",1)[1])
      delete_encouragements(index)
      encouragements = db["encouragements"]
      #Problematic code
      await message.channel.send(encouragements)
  


client.run(os.environ['TOKEN'])

I’ve edited your post for readability. When you enter a code block into a forum post, please precede it with a separate line of three backticks and follow it with a separate line of three backticks to make it easier to read.

You can also use the “preformatted text” tool in the editor (</>) to add backticks around text.

See this post to find the backtick on your keyboard.
Note: Backticks (`) are not single quotes (’).

This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.