Discord Bot Course Code Help

For some reason now my code won’t run. Here is the code:

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


client = discord.Client()

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

starter_encouragements = [
  "Cheer Up!",
  "Hang in there",
  "You are a great person!"
]

if "responding" not in db.keys():
  db["responding"] = True

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_encouragement(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('$inspire'):
        quote = get_quote()
        await message.channel.send(quote)
    
    if db["responding"]:
        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("$add"):
          encouraging_message = msg.split("$add ",1)[1]
          update_encouragements(encouraging_message)
          await message.channel.send("New encouraging message added! :white_check_mark:")

        if msg.startswith("$del"):
          encouragements = []
          if "encouragements" in db.keys():
            index = int(msg.split("$del",1)[1])
            delete_encouragement(index)
            encouragements = db["encouragements"]
          await message.channel.send(encouragements)

        if msg.startswith("$list"):
          encouragements = []
          if "encouragements" in db.keys():
            encouragements = db["encouragements"]
          await message.channel.send(encouragements)

        if msg.startswith("$responding"):
          value = msg.split("$responding ",1)[1]

        if value.lower == "true":
          db["responding"] = True
          await message.channel.send("Responding is on.")

        else:
          db["responding"] = False
          await message.channel.send("Responding is off")


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

Can you post the screenshot of the error when you try to run it?

There is no error it’s just blank nothing comes up and the bot also doesn’t get online

You need to double check and make sure that these two lines aren’t nested in the if statement.

Your code won’t run if that is the case.

2 Likes

Oh yea, that was the problem. Now it’s fixed. Thank You!

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