我正在尝试在一个组中存储一些有关机器人对话的数据(即,该机器人管理一种基于文本的聊天室,我想保存该组是哪个“世界”和“舞台”)当时),所以我想知道您是否可以在聊天本身中存储少量数据(而不是将其保存在bot服务器端*,对于quite a lot of work来说似乎应该如此)简单)。
因此,按照这种python zen的哲学,我试图找到一种KISS方式来存储这对值,也许在电报聊天本身中,这样我就不需要在服务器端管理任何重要的数据库了。以便对聊天消息来自哪里进行分类。
*我在Flask Web应用程序中使用带有Webhook的Telepot。
答案 0 :(得分:0)
所以...我只是想分享一下,我发现了一种非常荒谬但非常有效的方法(只要您不需要在其中存储私有数据,并且前提是只有bot-而不是玩家-可能会破坏聊天的描述。
机器人可以通过命令bot.getChat("@group_id")
和.setChatDescription("@group_id","New desc")
检查并更改聊天的描述,因此您实际上可以在其中保存包含所需所有值的字符串,并在以后检索它们。
在公开的情况下,我可以将当前游戏级别保存在描述中,例如"Level: 4"
,并随时通过以下方式检索它:
desc = bot.getChat("@my_game_chat")["description"]
level = desc[7:]
在这种情况下,它也可以为玩家提供线索。
使用类似的方法,您可以同时在其中保存不同的内容,甚至可能只是将其作为一串没有标签"01-21-5493"
的数字而使它模糊不清
desc = bot.getChat("@my_game_chat")["description"]
world, stage, score = desc.split('-')
如果您使用固定宽度的数字,甚至可以在不相关的地方扔一些随机数,以免混淆任何可能的八卦。
PS:bot.getChat()
返回这样的结构(这就是为什么我们需要["description"]
):
{
'id': -2424242424242,
'title': 'Channel Name',
'username': 'channelusername',
'type': 'channel',
'description': 'Pernils i tal'
}