微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Discord bot 未登录 (discord.py python)

如何解决Discord bot 未登录 (discord.py python)

所以机器人在启动时不会以用户身份登录,我使用的是 repl.it python 并引用了 https://www.freecodecamp.org/news/create-a-discord-bot-with-python/

这是我正在使用的代码,请告诉我如何解决问题 另外,如果可以的话,你能告诉我如何缩短大块的“stock0007 = changeStockPrice(stock0007)”?

中文的问题吗?

from keep_alive import keep_alive
import discord
import os
import requests
import json
import time
import random
import logging

client = discord.Client()

print("I am working")

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

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)

stockA = 0.2
stockB = 1.5
stockC = 19.8
stockD = 0.3
stockE = 3.5

stock0007 = 7.8
stock0013 = 1.9
stock0014 = 4.7
stock0024 = 6.1
stock0130 = 5.0
stock0414 = 1.3
stock0999 = 2.6
stock1234 = 4.8
stock1254 = 9.2
stock1314 = 9.6
stock1324 = 6.7
stock2256 = 9.8
stock3434 = 7.2
stock3444 = 11.9
stock4444 = 9.1
stock5454 = 2.2
stock6464 = 3.9
stock6572 = 2.8
stock8787 = 0.2
stock9373 = 8.0
stock9501 = 7.3

stockHAIYAA = 5.6
stockUYB = 1.4
stockRYAN = 9.0
stockMSG = 7.8
stockFATMUEL = 4.5

def get_stocklist():
  response = f"""藍籌股:
1E discord 股(A) {stockA}
Ms Yeung Happy Maths(B) {stockB}
Ms Yeung Ryan Inc.(C) {stockC}
Mr Lam Homework Inc.(D) {stockD}
Ms Wong puppy Fun Club(E) {stockE}

紅籌股:
四硬電器(0007) {stock0007}
二壞車行(0013) {stock0013}
友從生果(0014) {stock0014}
染疫醫療(0024) {stock0024}
跳掣燈飾(0130) {stock0130}
漏霉戲爐具(0414) {stock0414}
呃錢集運(0999) {stock0999}
傷蔘中藥(1234) {stock1234}
失菱巴士(1254) {stock1254}
實川口罩(1314) {stock1314}
劫機航空(1324) {stock1324}
室頭石化(2256) {stock2256}
買定人壽(3434) {stock3434}
實輸電競(3444) {stock3444}
博執公司(4444) {stock4444}
死梗移民(5454) {stock5454}
九吾搭八教育(6464) {stock6464}
楚晒補習社(6572) {stock6572}
動森大頭菜(8787) {stock8787}
界堵玻璃(9373) {stock9373}
戴上綠光 (9501)  {stock9501}

外國股:
HAIYAA index {stockHAIYAA}
UYB index {stockUYB}
RYAN index {stockRYAN}
MSG index {stockMSG}
FATMUEL index {stockFATMUEL}
  """
  return(response)

def changeStockPrice(stock):
  stock = stock + random.randint(-10,10)/10
  return(stock)


#while True:
#  
#  time.sleep(86400)

while True:
  time.sleep(300)
  stockA = changeStockPrice(stockA)
  stockB = changeStockPrice(stockB)
  stockC = changeStockPrice(stockC)
  stockD = changeStockPrice(stockD)
  stockE = changeStockPrice(stockE)
  stock0007 = changeStockPrice(stock0007)
  stock0013 = changeStockPrice(stock0013)
  stock0014 = changeStockPrice(stock0014)
  stock0024 = changeStockPrice(stock0024)
  stock0130 = changeStockPrice(stock0130)
  stock0414 = changeStockPrice(stock0414)
  stock0999 = changeStockPrice(stock0999)
  stock1234 = changeStockPrice(stock1234)
  stock1254 = changeStockPrice(stock1254)
  stock1314 = changeStockPrice(stock1314)
  stock1324 = changeStockPrice(stock1324)
  stock2256 = changeStockPrice(stock2256)
  stock3434 = changeStockPrice(stock3434)
  stock3444 = changeStockPrice(stock3444)
  stock4444 = changeStockPrice(stock4444)
  stock5454 = changeStockPrice(stock5454)
  stock6464 = changeStockPrice(stock6464)
  stock6572 = changeStockPrice(stock6572)
  stock8787 = changeStockPrice(stock8787)
  stock9373 = changeStockPrice(stock9373)
  stock9501 = changeStockPrice(stock9501)

async def on_message(message):
  if message.author == client.user:
    return

  if message.content.startswith('$stocks'):
    stocklist = get_stocklist()
    await message.channel.send(stocklist)

keep_alive()
client.run(os.getenv('TOKEN'))

解决方法

你有一个无限的 while 循环,所以 client.run() 永远不会到达,所以你的机器人永远不会启动。

while True:
    time.sleep(300)
    stock...

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。