电话广播v2.0。电报机器人中传奇的复兴

图片


这是即将发布的系列文章中的第一篇,该系列文章介绍了如何恢复曾经一去不返的代码历史。在本文中,我将以居住身份描述注册的实现。



背景



我第一次读小说中有关列宁格勒电话的报道。然后,我开始在网上寻找有关此信息。该错误如何导致了如此独特的社会技术现象,令我感到惊讶和鼓舞。实际上,这是第一个公共聊天室,一个社交网络,随便叫什么,但请想象一下苏联的情况!在那个时代和社会制度下,这是不可想象的。



这是什么?如果可能,更简单



网上有很多关于此主题的文章,,但我将尝试简单地解释一下。当时的



PBX有一个错误-呼叫某些不存在的号码时,人们最终陷入了群组对话,这也称为音频会议或“电话广播”。那个时候,这个话题真是太酷了,很不寻常。Etherians人们开始互相认识,认识,交谈,甚至开始建立关系,成为“ Ether”中的家庭。这是浪漫!



怎么结束的



当然,有人试图控制它,但是这些现象在整个联盟中都出现了,这是有问题的。但是,自动电话交换的时间和现代化使得“电话以太”的历史悠久。



我想复兴一些想法



因为 我也很浪漫,可以使用PBX,VoIP和python编程-我决定在代码中重振这个想法。



我工作的结果是``电话以太'',VoIP PBX星号和电报的思想的共生。

如果您有兴趣了解其工作原理,请使用链接



注册实施。城市基地



有可能甚至有必要用用户在注册期间输入的最少数据量来实现这种机器人。例如,在我的漫游器中,大约20%的用户未完成注册过程。我要求所有这些数据用于将来

会有更多用户使用的功能,例如



  • 按城市,国家/地区,主题播放(为此,在注册时,要求用户指出其居住地)
  • 通过过滤器进行约会(为此,在注册时,要求用户指出性别,年龄)


通过设置菜单可以随时更改bot中的这些数据,而无需指定任何值。我故意没有通过“发送地理位置”按钮来实现居住地的确定,以免使用户尴尬并保持匿名。



在本文中,我决定分享实施注册过程中最困难的时刻-选择居住地。



理想情况下,要通过指示居住地的方式进行注册,您需要拥有全球所有城市的数据库,这意味着存在一些问题:



  1. 找到这样的基础或自己创建。



    免费找到这样的数据库并不容易,创建起来更加困难。
  2. . .
  3. . .
  4. . 1,5 — 2 GB. , vps, ..


通常,如果您的内容是针对独联体国家的,为什么还要存储津巴布韦的城市呢?

我没有公开的所有数据库都不满足任何列出的要点。



所以我骑着自行车,沿着混合动力路线行驶。



我决定自己创建基地。同样,建立一种机制,以进一步用数据库中没有的数据填充自动模式。



我阅读了几篇有关电报受众的文章,并决定以半手动模式为俄罗斯,乌克兰,白俄罗斯,乌兹别克斯坦和美国的国家/地区建立一个实际的数据库。



我是怎么做到的?



对于指定的国家/地区,我从Wikipedia上获取了关于大城市的数据,将其保存到csv文件中,并将每个值都通过了奇妙的geopy库传递...结果保存在SQLite数据库中。

与社区共享基础。我希望它可以节省一些时间。



由于我使用了geopy库,用户有机会输入错误的居住地或使用住区的旧​​名称。我通过geopy传递用户输入的数据,然后检查数据库中是否存在相应记录。如果数据库中存在记录,则为用户分配解决方案的标识符,如果不存在,则将新的解决方案写入数据库,然后再次将其标识符分配给用户。



因此,我不会在数据库中存储大量不必要的结算。



以简化形式,用于在注册过程中由客户选择居住地的算法如下:







这就是我的混合电路的结果。



同时,在主机上,数据库仅占用512 KB,并且由用户自己动态填充。



All Articles