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'])