电报API守护程序-粘合顺序消息


在一条消息中写下想法


我是用一句话用即时通讯员写思想的人之一。 阅读此思路时,这会带来一些不便,因为连续的消息会迅速垂直占用自由空间。 这在群聊中尤其明显-通知被关闭,并且如果有人以这种方式写信,则您必须滚动聊天以查看讨论。

别说了


我不会重新训练自己-我认为这对于写这篇文章的人来说不是问题,对他来说是如此方便-对数百万人进行再培训比教一个程序更困难。 消息必须由客户端自己粘合在一起,以便至少每个人都可以方便地为每个人使用 。 我从没想到Telegram团队会这样做-因此我在一个小型客户端-Python守护程序的帮助下解决了这个问题,并决定与社区共享源代码。
详细信息,来源和说明均已删减。

如何运作


Telegram的主要优点之一是其在不同客户端之间的真正快速同步 。 开放的API允许您创建自己的客户端,并且已经编写了许多其他客户端。 我认为编写完整的客户端没有任何意义-同步允许您创建小型服务,以一次扩展所有平台上所有客户端的功能。 之前,我谈到了如何将Bot 的文件上传限制从50MB增加到1.5GB ,创建通道以及Bot API无法使用的其他功能。

授权的守护程序在24/7服务器上运行,该服务器与其他客户端同步-它接收我从其他客户端发送的传入和传出消息。 如果两个连续传出消息之间的间隔少于30 s-通过API编辑第一条消息-将第二条消息的文本添加到其中,然后删除第二条消息。 由于快速同步,这几乎立即发生。

工作中的简短视频




如果聊天消息中的同一人之间的时间间隔很小并且尚未读取消息,则最好从聊天中的同一个人断开通知,但这不能通过API进行-因此,我们将等待Telegram开发人员的注意。
想到了UPD,并意识到有可能-如果有人发来的消息流使聊天静音一会儿,但是收件人应该已经使用它来使用此守护程序

内联翻译器


同时,内置翻译器-我还认为这应该在客户端本身中。 由于许多原因,使用内联漫游器很不方便,但主要的原因是: 我想在输入行中接收翻译后的文本,而不希望将其发送到聊天中而不进行编辑。
通常,您需要记住某种单词/短语,而不是整个句子(通常翻译得很歪)。

在客户端之间同步输入文本而不发送消息的唯一方法是通过草稿。 不幸的是,当从聊天切换到聊天列表时会创建草稿,但与使用google译者应用程序复制插入内容相比,这样的拐杖仍然更方便,更快捷。

在该行的末尾,添加语言代码



向右轻扫以进入聊天列表



我们返回-我们收到翻译后的行



要翻译的字符串的语言是自动确定的; google用于翻译。

支持的语言
supported_langs = {'Afrikaans': 'af', 'Irish': 'ga', 'Albanian': 'sq', 'Italian': 'it', 'Arabic': 'ar', 'Japanese': 'ja', 'Azerbaijani': 'az', 'Kannada': 'kn', 'Basque': 'eu', 'Korean': 'ko', 'Bengali': 'bn', 'Latin': 'la', 'Belarusian': 'be', 'Latvian': 'lv', 'Bulgarian': 'bg', 'Lithuanian': 'lt', 'Catalan': 'ca', 'Macedonian': 'mk', 'Chinese Simplified': 'zh-CN', 'Malay': 'ms', 'Chinese Traditional': 'zh-TW', 'Maltese': 'mt', 'Croatian': 'hr', 'Norwegian': 'no', 'Czech': 'cs', 'Persian': 'fa', 'Danish': 'da', 'Polish': 'pl', 'Dutch': 'nl', 'Portuguese': 'pt', 'English': 'en', 'Romanian': 'ro', 'Esperanto': 'eo', 'Russian': 'ru', 'Estonian': 'et', 'Serbian': 'sr', 'Filipino': 'tl', 'Slovak': 'sk', 'Finnish': 'fi', 'Slovenian': 'sl', 'French': 'fr', 'Spanish': 'es', 'Galician': 'gl', 'Swahili': 'sw', 'Georgian': 'ka', 'Swedish': 'sv', 'German': 'de', 'Tamil': 'ta', 'Greek': 'el', 'Telugu': 'te', 'Gujarati': 'gu', 'Thai': 'th', 'Haitian Creole': 'ht', 'Turkish': 'tr', 'Hebrew': 'iw', 'Ukrainian': 'uk', 'Hindi': 'hi', 'Urdu': 'ur', 'Hungarian': 'hu', 'Vietnamese': 'vi', 'Icelandic': 'is', 'Welsh': 'cy', 'Indonesian': 'id', 'Yiddish': 'yi'} 


Python AsyncIO来源


Github
还为存储库添加了针对Linux和Windows的编译后的可执行文件-您可以在家用PC上运行它,但是对于24/7的工作,最好使用VDS。

Telethon库的最新版本用于访问API。

如果有人希望改善项目-惠康。

您可以在信息资料中的评论或电报中提出想法,讨论并提出问题。

Source: https://habr.com/ru/post/zh-CN419249/


All Articles