循环编辑频道话题,奇怪的表演
Channel edit topic in a loop, strange acting
今天我正在努力循环编辑不和谐频道主题。我的意思是它有时有效有时无效,而且它变得非常奇怪。代码:
@tasks.loop(seconds=5)
async def prixcrypto():
channel = client.get_channel(776053500059975690)
databtc = requests.get('https://api.binance.com/api/v1/ticker/24hr?symbol=BTCUSDT') #Get bitcoin/usdt actual price and information over a 24h period
jdata = databtc.json()
datavet = requests.get('https://api.binance.com/api/v1/ticker/24hr?symbol=VETUSDT').json() #same for vet/usdt
#Here I print the data I want (symbol of crypto, price, priceChangePercent(24h,%), priceChange(24h,$)
print(f'{datavet["symbol"]} : {format(float(datavet["bidPrice"]),".6f")} / 24H : {datavet["priceChangePercent"]}% / 24H : {format(float(datavet["priceChange"]), ".2f")}$')
print(f'{jdata["symbol"]} : {format(float(jdata["bidPrice"]),".2f")} / 24H : {jdata["priceChangePercent"]}% / 24H : {format(float(jdata["priceChange"]), ".2f")}$')
#Here I send to the channel the string with values
phrase = (f'{jdata["symbol"]} : {format(float(jdata["bidPrice"]),".2f")} / 24H : {jdata["priceChangePercent"]}% / 24H : {format(float(jdata["priceChange"]), ".2f")}$ || {datavet["symbol"]} : {format(float(datavet["bidPrice"]),".6f")} / 24H : {datavet["priceChangePercent"]}% / 24H : {format(float(datavet["priceChange"]), ".6f")}$')
await channel.edit(topic=phrase)
@prixcrypto.before_loop #Initiate the loop when client is ready
async def before_prixcrypto():
await client.wait_until_ready()
prixcrypto.start()
结果是这样的:
命令:
VETUSDT:0.017466/24H:8.205%/24H:0.00$
BTCUSDT : 19360.00 / 24H : 2.869% / 24H : 540.00$
Discord 主题:
BTCUSDT : 19360.00 / 24H : 2.869% / 24H : 540.00$ || VETUSDT : 0.017466 / 24H : 8.205% / 24H : 0.00$
我想要发生的事情:我启动程序,然后打印结果,然后它应该改变主题并且每 5 秒循环一次。
它的作用:我启动程序,它在 cmd 上打印结果,然后它不改变主题,稍后它会回到函数中,打印结果,改变主题,开始5 秒后再次打印结果,并且不会改变主题,稍后它会再次这样做。所以真的很奇怪。
这很奇怪,从我“发现”的内容来看,因为我不确定,它在“await channel.edit()”行出现错误。
我试图改变循环时间,但它似乎没有改变任何东西,我证实这不是 binance API 请求限制的问题,我搜索了 google 并没有发现任何有趣的东西所以我不知道.
欢迎您的帮助,感谢您阅读我。
只是说我 3 个月前开始编程,并没有真正在 python 中学习编码,我只是找到我需要的东西来实现我的想法,然后做我需要的,在我的大学我们学C。我是法国人。
编辑频道的速率限制是每 10 分钟 2 个请求,如果您每 5 秒编辑一个频道,您基本上就达到了要求。
今天我正在努力循环编辑不和谐频道主题。我的意思是它有时有效有时无效,而且它变得非常奇怪。代码:
@tasks.loop(seconds=5)
async def prixcrypto():
channel = client.get_channel(776053500059975690)
databtc = requests.get('https://api.binance.com/api/v1/ticker/24hr?symbol=BTCUSDT') #Get bitcoin/usdt actual price and information over a 24h period
jdata = databtc.json()
datavet = requests.get('https://api.binance.com/api/v1/ticker/24hr?symbol=VETUSDT').json() #same for vet/usdt
#Here I print the data I want (symbol of crypto, price, priceChangePercent(24h,%), priceChange(24h,$)
print(f'{datavet["symbol"]} : {format(float(datavet["bidPrice"]),".6f")} / 24H : {datavet["priceChangePercent"]}% / 24H : {format(float(datavet["priceChange"]), ".2f")}$')
print(f'{jdata["symbol"]} : {format(float(jdata["bidPrice"]),".2f")} / 24H : {jdata["priceChangePercent"]}% / 24H : {format(float(jdata["priceChange"]), ".2f")}$')
#Here I send to the channel the string with values
phrase = (f'{jdata["symbol"]} : {format(float(jdata["bidPrice"]),".2f")} / 24H : {jdata["priceChangePercent"]}% / 24H : {format(float(jdata["priceChange"]), ".2f")}$ || {datavet["symbol"]} : {format(float(datavet["bidPrice"]),".6f")} / 24H : {datavet["priceChangePercent"]}% / 24H : {format(float(datavet["priceChange"]), ".6f")}$')
await channel.edit(topic=phrase)
@prixcrypto.before_loop #Initiate the loop when client is ready
async def before_prixcrypto():
await client.wait_until_ready()
prixcrypto.start()
结果是这样的:
命令:
VETUSDT:0.017466/24H:8.205%/24H:0.00$
BTCUSDT : 19360.00 / 24H : 2.869% / 24H : 540.00$
Discord 主题:
BTCUSDT : 19360.00 / 24H : 2.869% / 24H : 540.00$ || VETUSDT : 0.017466 / 24H : 8.205% / 24H : 0.00$
我想要发生的事情:我启动程序,然后打印结果,然后它应该改变主题并且每 5 秒循环一次。
它的作用:我启动程序,它在 cmd 上打印结果,然后它不改变主题,稍后它会回到函数中,打印结果,改变主题,开始5 秒后再次打印结果,并且不会改变主题,稍后它会再次这样做。所以真的很奇怪。
这很奇怪,从我“发现”的内容来看,因为我不确定,它在“await channel.edit()”行出现错误。 我试图改变循环时间,但它似乎没有改变任何东西,我证实这不是 binance API 请求限制的问题,我搜索了 google 并没有发现任何有趣的东西所以我不知道.
欢迎您的帮助,感谢您阅读我。
只是说我 3 个月前开始编程,并没有真正在 python 中学习编码,我只是找到我需要的东西来实现我的想法,然后做我需要的,在我的大学我们学C。我是法国人。
编辑频道的速率限制是每 10 分钟 2 个请求,如果您每 5 秒编辑一个频道,您基本上就达到了要求。