GithubHelp home page GithubHelp logo

telegram-search's Introduction

Telegram Search Bot

Bot:@awesomeopensource_search_bot

这里是为 @awesomeopensource 打造的搜索 Bot,直接发送你要搜索的内容即可。搜索支持 Lucene 语法。

同时可以为群组、频道、个人提供聊天记录搜索服务。

特性

  • 中文分词引擎
  • 可按日期搜索
  • Telegram Bot 前端
  • 可拓展的定制化搜索引擎

原理

使用 Telegram Client Api 获取频道内所有信息,并持续监听新信息。

将所有信息归档进 Elasticsearch 搜索引擎,用户可以在 Bot 前端执行搜索。

如何搭建

  1. 前提条件

    申请 Telegram MTProto API ID: https://my.telegram.org/app

    申请 Telegram Bot ID:@BotFather

    准备一个 Telegram 账号

    安装 Python3:https://www.python.org/downloads/

  2. 登陆

    clone 下这个项目

    安装依赖: pip install -r requirements.txt

    修改 main.py 中的配置或使用环境变量

    • API_ID:Telegram MTProto API ID
    • API_HASH:Telegram MTProto API ID
    • BOT_TOKEN:从 BotFather 获取的 bot token
    • CHAT_ID:你要搜索的 chat 的 ID,可以使用 @getidsbot 获取。
    • ADMIN_ID:管理员的 ID,可以使用 @getidsbot 获取。

    先创建一个 session 文件夹(mkdir session),运行 python main.py 提示输入手机号和验证码即可,session 文件夹里面会生成几个数据库文件。

  3. 部署

    把 session 文件夹和源码部署到服务器。

    修改 docker-compose.yml 中的环境变量

    使用 docker-compose 部署:docker-compose up -d

    启动完成后用管理员的账号(之前配置的 ADMIN_ID)向 Bot 发送命令 /download_history 下载历史记录。

继续开发

项目的初衷是为 @awesomeopensource 提供搜索服务,目前 Bot 的功能已经足够。 但是如果你有其他功能的需求,比如 按用户搜索、Inline query 等需求,请在 issues 中告诉我。

telegram-search's People

Contributors

eyhn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

telegram-search's Issues

无法下载历史记录?

/download_history 之后,提示开始下载历史记录,然后就卡住没反应了,看了一下后端,telegram-search_elasticsearch_1这个container会不断自动重启。
想问问是什么原因呢?

無法正常使用

我的目標是在一個不公開的群組裡面添加bot,用來搜尋群組裡面的訊息
Bot是在群組裡面,並且只有群組內的人可以查詢對話紀錄(透過在逡組內輸入/search [Keyword])

我依照Readme裡面的步驟,但還是不法順利架設
因為我無需Client,所以我把這段刪除了

我有以下疑惑:

  • 如果沒有手動建立session資料夾,則會出現錯誤 (sqlite3.OperationalError: unable to open database file)
  • 架設步驟漏掉了REDIS、elasticsearch,這邊應該依照預設值安裝就好了吧
  • 如果Bot也在群組內,則這段應該改 event.chat_idevent.from_id
  • /download_history後,TG會回應"開始下載歷史記錄",但就沒有後續動作了
  • 可以搜尋私訊紀錄嗎?

无法启动

2021-04-15T14:44:35.189617933Z     from .client import Elasticsearch
2021-04-15T14:44:35.189621733Z   File "/usr/local/lib/python3.9/site-packages/elasticsearch/client/__init__.py", line 4, in <module>
2021-04-15T14:44:35.189740314Z     from ..transport import Transport
2021-04-15T14:44:35.189750983Z   File "/usr/local/lib/python3.9/site-packages/elasticsearch/transport.py", line 5, in <module>
2021-04-15T14:44:35.189798703Z     from .connection import Urllib3HttpConnection
2021-04-15T14:44:35.189805923Z   File "/usr/local/lib/python3.9/site-packages/elasticsearch/connection/__init__.py", line 2, in <module>
2021-04-15T14:44:35.189923563Z     from .http_requests import RequestsHttpConnection
2021-04-15T14:44:35.189934563Z   File "/usr/local/lib/python3.9/site-packages/elasticsearch/connection/http_requests.py", line 3, in <module>
2021-04-15T14:44:35.190033783Z     from base64 import decodestring
2021-04-15T14:44:35.190044343Z ImportError: cannot import name 'decodestring' from 'base64' (/usr/local/lib/python3.9/base64.py)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.