速達便の確認に役立ち、速達便の最新ステータスを自動的に追跡する電報ロボット!完成品にはスタンプを押すことができます。
@bennyblog_bot(このロボットは私が長い間メンテナンスしています)
このロボットはチャットしたり、速達を確認したりできるだけではありません。信じられないかもしれませんが、音声メッセージを送信することもできます。アメリカや日本のドラマも探せます!詳細については、関数と TODO を参照してください。
最近ロボットの利用が急増しているため、ポーリングモードを使用するとExpress 100の無料APIの利用が1日あたり2,000回を超えやすくなり、IPがブロックされてしまう可能性があるため、現在APIの変更を計画中です。 現時点では、これより良いオプションが 1 つだけ見つかりました。
能力のある方は、PR やその他の明示的な API 提案を送信してください。 SF Express のクエリにはまだ問題があり、どの API を使用できるかわかりません。
開始 - クエリする宅配便番号を入力します
助けて - 助けて
list - クエリ履歴を表示する
delete - 特定の数のクエリレコードを削除します
Quickdel - クエリ メッセージに返信して、追跡番号クエリ レコードをすばやく削除します
query - アメリカのテレビシリーズと映画をクエリします
yyets - クエリのダウンロード リンク
Weather - 指定した都市の最近の天気予報をクエリします。
ロボットを追加し、送り状番号をクエリに直接送信します (追跡番号に文字を追加します)。複数の追跡番号を一度に追跡する必要がある場合は、 /start danhao123
/start 123,123
を使用してください。半角カンマ区切り(もちろん更新すると悲惨になります)
メッセージを直接送信するか、音声を送信するだけです (中国語)
/query 蝙蝠侠
/yyets 神盾局
ボタンをクリックして操作します。Telegram API にアクセスできる (またはプロキシを設定できる) サーバーにデプロイする必要があります。Python 2 と Python 3 の両方をサポートしています。Python 3 が推奨されており、次のプラットフォームでテストされています。
Windows 10: Python 2.7.13 32 ビット Python 3.6.3 32 ビット
Ubuntu 16.04/14.04、CentOS 7、Debian 9: Python 2.7
ワンクリック スクリプトは systemd でより適切に実行されます。ワンクリック スクリプトは Ubuntu 16.04 でのみテストされています。まず root ユーザーに切り替えます。
wget -N --no-check-certificate https://raw.githubusercontent.com/BennyThink/ExpressBot/master/install.sh && bash install.sh
その後、プロンプトに従ってください。 systemd をサポートするシステムは、systemd サービスとして同時にインストールされ、対応する init を使用してsupervisor
ショートカット操作を手動で設定または使用できます。
# 启动服务
bash install.sh start
# 停止服务
bash install.sh stop
注: wget: command not found
under CentOS」というメッセージが表示された場合は、 yum install wget
ワンクリック スクリプトが失敗した場合は、手動構成を試すことができます
git clone https://github.com/BennyThink/ExpressBot
cd ExpressBot
pacman -S python python-pip python-certifi python-chardet python-future python-idna python-requests python-six python-urllib3
然后从 AUR 安装 python-pytelegrambotapi .
sudo apt install python3 python3-pip git
sudo pip3 install -r requirements.txt
Python3 ではpip
の代わりにpip3
使用してください
pip install setuptools
pip install -r requirements.txt
Python 公式 Web サイトから Python をダウンロードしてインストールし、Python 2 の場合はプロジェクト ディレクトリに切り替えます。
pip install -r requirements.txt
Python 3 の場合は、次のコマンドを実行します。
pip3 install -r requirements.txt
ffmpeg は、音声認識をサポートします (音声ファイルのトランスコーディングに ffmpe を使用します)。
Windows を使用している場合は、ここから ffmpeg のバイナリ exe ファイルをダウンロードし (3 つすべてが必要です)、PATH に配置します。Linux ディストリビューションを使用している場合は、パッケージ マネージャーを使用して直接インストールできます (コンパイルまたはダウンロードすることもできます)。 Debian システムではsudo apt install ffmpeg
を使用でき、RHEL ではyum install ffmpeg
を使用できます。
config.py
変更して Bot の API を設定します。TURING_KEY が設定されていない場合、ロボット機能は有効になりません。
TOKEN = 'Your TOKEN'
TURING_KEY = 'Your Key'
ユニットファイルを作成します: vim /lib/systemd/system/expressbot.service
自分自身を置き換えて、次の情報を入力します。
[Unit]
Description=A Telegram Bot for querying expresses
After=network.target network-online.target nss-lookup.target
[Service]
Restart=on-failure
Type=simple
ExecStart=/usr/bin/python /home/ExpressBot/expressbot/main.py
[Install]
WantedBy=multi-user.target
デーモンのリロード、セルフスタート、開始
systemctl daemon-reload
systemctl enable expressbot.service
systemctl start expressbot.service
restart=on-failure
パラメータを使用しました。失敗時に終了した後に再起動します。 always
に設定すると、理由が何であれ、プロセスが停止している限り、systemd がすぐに再起動できるようにすることを意味します。詳細については、 systemd.service
マニュアルを参照してください。
テスト目的の場合は、nohub または screen を使用してmain.py
実行します。Python 3 の場合は、 python3
python
cd /home/ExpressBot/expressbot
nohup python main.py
# 或者
cd /ExpressBot/expressbot
screen -S tgbot
python main.py
更新を追跡してプッシュする必要がある場合は、定期的にポーリングする必要があります。
現在使用されているタイマーは apscheduler で、 config.py
のINTERVAL
使用して間隔を設定できます。
# 查看运行状态
sudo systemctl status expressbot.service
# 启动
sudo systemctl start expressbot.service
# 停止
sudo systemctl stop expressbot.service
# 重启
sudo systemctl restart expressbot.service
supervisor
の使用を検討できます。 Docker は現在サポートされていますが、詳細にはテストされていません。
docker pull bennythink/expressbot:latest
docker run -d --restart=always -e TOKEN= " TOKEN " -e TURING= " KEY " expressbot:v1
自分でビルドする場合は、Dockerfile を再度ダウンロードしてから、
docker build -t expressbot:v1 .
まず最初に、きつく言っておきますが、このボットに送信されたすべてのメッセージは記録される可能性があります。 しかし実際には、このロボットは非常に良心的で、デフォルトでは、クエリが成功した後にのみ次の情報をデータベースに記録します。これは、 /list
コマンドを使用することで確認できます。
音声を送信すると、音声ファイルは/tmp
ディレクトリに配置されます。データベースをチェックしない道徳的誠実さを私が持っているとは保証しませんが、データベースを適切に保護し、漏洩を防ぐことは保証します。
したがって、使用したくない場合は使用しないでください。チェックした後に削除することもできます。
msg.py
というファイルがあるので、 config.py
でLOGGER
Trueに設定すると、グループ内にTuring APIを設定することはできません(速達を問い合わせる機能すら廃止すべきです)。ロボットがナンセンスなことを話さないようにします)。 また、グループ内ではロボットのプライバシーモードをオンにする必要があります。
うーん、Express 100 のインターフェイスが壊れている可能性があります。後でもう一度試してください。
注文番号が生成されたばかりで、Express 100 のデータがまだない可能性があります。
現在、SF Express クエリ インターフェイス用の信頼できる REST API は見つかりません。
現在、Express API を変更する予定です (プッシュをサポートする) Express Bird の方が良いようですが、実名認証が必要です。
yyets
InlineKeyboardButton をクリックして正しいダウンロード リンクを取得するために使用されますが、前提条件として、検索結果は 1 つだけです (複数の結果の場合は最初の結果のみが返されます)。すべての情報を取得するためにquery
が使用されます。 たとえば、ノーラン監督の『ダークナイト ライジング』をダウンロードしたい場合、 query
を通じて一意の名前を見つけ、 /yyets 《蝙蝠侠:黑暗骑士崛起》(The Dark Knight Rises)
を使用して一意の結果を取得します。
完了ステータスと優先度で並べ替える
/start 123,123
英語半角カンマInsecureRequestWarning
は現在無効になっていますGPL v2