【问题标题】:discord.py save variable settings changes of serverdiscord.py 保存服务器的变量设置更改
【发布时间】:2021-05-30 04:40:04
【问题描述】:

当有人将值更改为 heroku postgres 时,我如何保存每个服务器的 self.stn_hoist 值?

@commands.command()
@commands.has_permissions(administrator=True)
async def hoist(self, ctx, value):
    embed=discord.Embed(color=0x850000)
    embed.add_field(name="hoist", value=f'has been set to `{value}`.', inline=False)
      
    if value.lower() == 'yes':
        self.stn_hoist = True
        await ctx.send(embed=embed)
    elif value.lower() == 'no':
        self.stn_hoist = False
        await ctx.send(embed=embed)
    else:
        await ctx.send(embed=discord.Embed(color=0x850000).add_field(name="hoist", value=f'can not be set to `{value}`'))

【问题讨论】:

  • 我将 heroku postgres 添加到 heroku 应用程序并将其连接到 bot.py 但我不知道如何创建数据库并保存变量更改
  • 是否要将stn_hoist 保存为变量?
  • @Ceres 我想知道如何将每个服务器的设置(如stn_hoist)保存在数据库中以及如何加载on_ready()

标签: python heroku discord discord.py


【解决方案1】:

我不建议对单个变量使用数据库。您可以为此使用 json 文件,但 heroku 有一个ephemeral file system,这意味着每当您的应用程序重新启动时都会重写 json 文件。你可以使用 heroku 的配置变量来存储这个变量。

import os
import requests
#getting the variable
hoist = os.environ['hoist']
# OR
request = requests.get('https://api.heroku.com/apps/YOUR-APP-NAME/config-vars', headers={'Accept': 'application/vnd.heroku+json; version=3', "Authorization": "Bearer YOUR-AUTH-TOKEN"})
if request.status_code == 200:
   hoist = request.json()['hoist']
else:
   print('something went wrong')

#updating the config variable

request = requests.patch('https://api.heroku.com/apps/YOUR-APP-NAME/config-vars', json.dumps({"hoist": "1"}), headers={"Content-Type": "application/json", 'Accept': 'application/vnd.heroku+json; version=3', "Authorization": "Bearer YOUR-AUTH-TOKEN"})
if request.status_code == 200:
   hoist = request.json()['hoist']
else:
   print('something went wrong')

您必须将YOUR-APP-NAME 替换为您的应用名称或ID,并将YOUR-AUTH-TOKEN 替换为您的身份验证令牌。

您必须在 heroku 仪表板或 CLI 中设置 config variable hoist

您可以获得API令牌here

参考资料:

延伸阅读:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-08-24
    • 2020-12-24
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 2014-01-24
    • 2021-01-26
    • 1970-01-01
    相关资源
    最近更新 更多