土豆不好吃

让Telegram支持中文搜索!

文章目录[显示]
这篇文章在 2022年06月11日21:15:22 更新了哦~

众所周知,Telegram是一款非常优秀的即时通信工具,可比那个不知名的绿色图标的软件好多了。Telegram不仅使用更安全,应用程序也很小,还支持多客户端登录,消息跨平台无限制同步。

尽管Telegram这么棒,但是对于中国用户来说,最致命的一个缺点就是搜索。这一点对不是用分词的CJK用户来说也是一样的。想要搜索点什么东西,那简直就是要了命了,必须要输入整个句子。

有啥办法可以解决这个问题吗?

一个最常见的方法是,使用Telegram Desktop,注意是Telegram Desktop,用C++写的那个,导出聊天记录为json,然后搜索。

可这样也太繁琐了吧!有没有什么更好的方案呢……

一个方法是魔改Telegram的客户端,反正也是开源的,能搜本地数据库就搜本地的吧,至于需要请求服务器搜索的,那大概率是没救了。可惜我既不会swift也不会c++,更何况我估计以我的小脑瓜我也看不懂他们的代码……

另一个方法就是自己保存一份!还记得Telegram支持多客户端登录吗,那我们如果拿来一个client用来把文字消息保存到数据库中,后续再从数据库中查询,那不就有了嘛!

嗯,这么做像极了某绿色软件:「看了会被开除,我们不保存聊天记录」

说干就干!

技术选型

需要用MTProto协议,那么最好就是用纯Python实现的pyrogram了,用TDLib什么的太麻烦了。

数据库就用ElasticSearch吧,全文检索更方便。  算了算了,ES惹不起,用MongoDB吧

一个client,登录账号,把收和发的消息保存到数据库中。

一个bot,用于从数据库中检索数据。

加上一些身份验证之类的。

使用截图

详细功能说明可以移步GitHub

从此以后CJK再无烦恼😂

总计代码也就400多行!

由于这种操作涉及到个人聊天记录,是非常敏感且重要的信息,因此不提供任何公开bot,需要自己部署一份。

看这ES跑得多欢快,就像脱缰的野马一样,配合上kibana这个劝退的工具简直天生一对😠

开源地址

https://github.com/tgbot-collection/SearchGram

放到了这里,😂还打算做 chat history import的功能,就是今天太累了……蹲一个PR吧。

具体部署方法在那边也有,写的应该比较详细了。这里就不复述了。

能用就行,从此再也不怕搜不到聊天记录了.jpg


文章版权归原作者所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/telegram-cjk-search.html
退出移动版