【问题标题】:Channel edit topic in a loop, strange acting频道循环编辑话题,奇怪的演技
【发布时间】:2020-12-03 17:31:44
【问题描述】:

今天我正在努力循环编辑一个不和谐的频道主题。我的意思是它有时有效,有时无效,而且它变得非常奇怪。代码:


@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$

不和谐话题:

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 请求限制的问题,我在谷歌上搜索并没有发现任何有趣的东西所以我不知道。

欢迎您的帮助,感谢您阅读我。

我只是说我 3 个月前开始编程,并没有真正学习用 python 编码,我只是在寻找我需要什么来实现我的想法,然后做我需要做的事情,在我的大学里,我们学习了 C。我是法国人。

【问题讨论】:

    标签: python-requests discord.py binance


    【解决方案1】:

    编辑频道的速率限制是每 10 分钟 2 个请求,如果您每 5 秒编辑一次频道,您基本上会达到这些要求。

    【讨论】:

    • 哦哇,这个限制真的很低,谢谢你的回答
    • 另外,不要使用requests 它会阻塞你的整个代码,请改用aiohttp,文档here
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多