flask - 我可以将机器人状态数据存储在所涉及的电报聊天本身吗?
问题描述
我正在尝试在组内存储有关机器人对话的一些数据(即,机器人管理一种基于文本的聊天室,我想保存该组所在的“世界”和“阶段”时间),所以我想知道您是否可以将少量数据存储在聊天本身中(而不是将其保存在机器人服务器端*,对于应该如此简单的事情来说,这似乎需要做很多工作)。
所以遵循这个python zen哲学,我试图找到一种KISS方式来存储这两个值,可能在电报聊天本身中,这样我就不需要在服务器端管理任何严肃的数据库来分类聊天的东西是从哪来的。
*我在 Flask 网络应用程序中使用带有 webhook 的 Telepot。
解决方案
所以......我只是想分享一下,我发现了一种非常荒谬但非常有效的方法(只要您不需要在其中存储私人数据,并且条件是只有机器人 - 而不是玩家——可能会混淆聊天的描述)。
机器人可以通过命令检查和更改聊天的描述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'
}
推荐阅读
- php - Laravel 广播事件的构造函数调用的类型再次提示模型关系
- c# - 如何在 C# 中正确打印列表的内容
- windows - 将变量传递给 PowerShell
- angular - Angular 7 组件。404 - 找不到文件或目录
- android - 在 Android Studio 中显示来自 Python 脚本的图表/图形
- python - 如何在 Swift 中实现这个 Python 代码?
- r - 在 R 中为 MS SQL server 2016 安装 dplyr 包
- python - 将数据帧的部分字段转换为小写 [Pandas]
- android - Android 将 LiveData<> 分配给 ListView
- openam - 如何限制 .well-known/openid-configuration url