Telegram-Roboter, der Ihnen bei der Überprüfung Ihrer Express-Lieferung hilft und automatisch den aktuellen Status Ihrer Express-Lieferung verfolgt! Das fertige Produkt kann gestempelt werden:
@bennyblog_bot( Dieser Roboter wird seit langem von mir gewartet )
Dieser Roboter kann nicht nur chatten und Expresslieferungen prüfen! Ob Sie es glauben oder nicht, Sie können ihm auch eine Sprachnachricht senden! Sie können auch nach amerikanischen und japanischen Dramen suchen! Detaillierte Informationen finden Sie unter Funktionen und TODO
Aufgrund des plötzlichen Anstiegs der Roboternutzung in letzter Zeit kann die Verwendung des Abfragemodus leicht dazu führen, dass die kostenlose API von Express 100 mehr als 2.000 Mal pro Tag genutzt wird, was dazu führt, dass die IP blockiert wird. Daher planen wir derzeit eine Änderung der API. Im Moment habe ich nur diese eine bessere Option gefunden:
Jeder, der dazu in der Lage ist, kann gerne PR- oder andere Express-API-Vorschläge einreichen! Vielen Dank. Es gibt immer noch ein Problem mit der Abfrage von SF Express. Ich weiß nicht, welche API verwendet werden kann.
Start – Geben Sie die abzufragende Kuriernummer ein
Hilfe - Hilfe
list – Meinen Abfrageverlauf anzeigen
delete – Löschen Sie einen bestimmten Nummernabfragedatensatz
Quickdel – Antworten Sie auf eine Abfragenachricht, um den Abfragedatensatz für die Tracking-Nummer schnell zu löschen
query – Amerikanische Fernsehserien und Filme abfragen
yyets – Download-Link abfragen
Wetter – Fragen Sie die aktuelle Wettervorhersage für eine bestimmte Stadt ab
Fügen Sie einen Roboter hinzu und senden Sie die Frachtbriefnummer direkt zur Abfrage (und fügen Sie sie zur Sendungsverfolgung hinzu). Wenn Ihre Bestellnummer Buchstaben enthält, verwenden Sie bitte /start danhao123
. Wenn Sie mehrere Bestellnummern gleichzeitig verfolgen müssen, verwenden Sie bitte /start 123,123
Englisch durch Komma halber Breite getrennt (natürlich wird es miserabel, wenn es aktualisiert wird)
Senden Sie einfach eine Nachricht direkt oder senden Sie eine Stimme (Chinesisch Mandarin)
/query 蝙蝠侠
/yyets 神盾局
und klicken Sie dann zum Ausführen auf die SchaltflächeEs muss auf einem Server bereitgestellt werden, der auf die Telegram-API zugreifen kann (oder einen Proxy einrichten kann). Python 3 wird empfohlen und wurde auf den folgenden Plattformen getestet:
Windows 10: Python 2.7.13 32bit Python 3.6.3 32bit
Ubuntu 16.04/14.04, CentOS 7, Debian 9: Python 2.7
Das One-Click-Skript läuft besser unter systemd. Das One-Click-Skript wurde nur unter Ubuntu 16.04 getestet: Wechseln Sie zunächst zum Root-Benutzer:
wget -N --no-check-certificate https://raw.githubusercontent.com/BennyThink/ExpressBot/master/install.sh && bash install.sh
Folgen Sie dann den Anweisungen. Systeme, die systemd unterstützen, werden gleichzeitig als systemd-Dienste installiert. Andere Systeme können die entsprechende Init-Operation manuell konfigurieren oder supervisor
Verknüpfungsvorgang verwenden.
# 启动服务
bash install.sh start
# 停止服务
bash install.sh stop
Hinweis: Wenn Sie die Meldung wget: command not found
unter CentOS“ erhalten, installieren Sie bitte yum install wget
Wenn das Ein-Klick-Skript fehlschlägt, können Sie die manuelle Konfiguration versuchen
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 verwenden Sie bitte pip3
anstelle von pip
pip install setuptools
pip install -r requirements.txt
Laden Sie Python von der offiziellen Python-Website herunter und installieren Sie es. Wechseln Sie in das Projektverzeichnis, wenn es sich um Python 2 handelt:
pip install -r requirements.txt
Wenn es sich um Python 3 handelt, führen Sie den folgenden Befehl aus:
pip3 install -r requirements.txt
ffmpeg soll die Audioerkennung unterstützen (mit ffmpe zur Transkodierung von Audiodateien).
Wenn Sie Windows verwenden, laden Sie die binäre EXE-Datei von ffmpeg hier herunter (alle drei sind erforderlich) und legen Sie sie in PATH ab. Wenn Sie eine Linux-Distribution verwenden, können Sie sie direkt mit dem Paketmanager installieren (Sie können sie auch kompilieren oder herunterladen). Das Debian-System kann sudo apt install ffmpeg
verwenden, RHEL kann yum install ffmpeg
verwenden
Ändern Sie config.py
für die Konfiguration TOKEN. Wenn TURING_KEY nicht konfiguriert ist, wird die Roboterfunktion nicht aktiviert.
TOKEN = 'Your TOKEN'
TURING_KEY = 'Your Key'
Erstellen Sie eine Unit-Datei: vim /lib/systemd/system/expressbot.service
Ersetzen Sie sich selbst und geben Sie die folgenden Informationen ein
[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
Daemon neu laden, selbst starten, starten
systemctl daemon-reload
systemctl enable expressbot.service
systemctl start expressbot.service
Ich habe restart=on-failure
verwendet und es wird nach dem Beenden bei einem Fehler neu gestartet. Wenn der Wert auf always
eingestellt ist, bedeutet dies, dass systemd uns unabhängig vom Grund dabei hilft, den Prozess sofort neu zu starten, solange der Prozess nicht mehr vorhanden ist. Weitere Informationen finden Sie im systemd.service
Handbuch.
Führen Sie zu Testzwecken main.py
mit nohub oder screen aus. Für Python 3 ersetzen Sie bitte python3
durch python
cd /home/ExpressBot/expressbot
nohup python main.py
# 或者
cd /ExpressBot/expressbot
screen -S tgbot
python main.py
Wenn Sie Updates verfolgen und pushen müssen, müssen wir regelmäßig Umfragen durchführen.
Der derzeit verwendete Timer ist apscheduler, und INTERVAL
in config.py
kann zum Festlegen des Intervalls verwendet werden.
# 查看运行状态
sudo systemctl status expressbot.service
# 启动
sudo systemctl start expressbot.service
# 停止
sudo systemctl stop expressbot.service
# 重启
sudo systemctl restart expressbot.service
supervisor
verwenden Docker wird derzeit unterstützt, wurde jedoch nicht im Detail getestet.
docker pull bennythink/expressbot:latest
docker run -d --restart=always -e TOKEN= " TOKEN " -e TURING= " KEY " expressbot:v1
Wenn Sie es selbst erstellen möchten, laden Sie die Docker-Datei erneut herunter
docker build -t expressbot:v1 .
Bitte gestatten Sie mir zunächst, Sie ausdrücklich zu warnen, dass alle an diesen Bot gesendeten Nachrichten möglicherweise protokolliert werden. Tatsächlich ist dieser Roboter jedoch sehr gewissenhaft und zeichnet die folgenden Informationen nur dann in der Datenbank auf, wenn die Abfrage erfolgreich ist. Sie können sie mit dem Befehl /list
anzeigen.
Wenn Sie eine Stimme senden, wird die Sprachdatei im Verzeichnis /tmp
abgelegt Ich garantiere nicht, dass ich die moralische Integrität habe, die Datenbank nicht zu überprüfen, aber ich garantiere, dass ich die Datenbank ordnungsgemäß schütze und verhindere, dass sie durchsickert.
Wenn Sie es also nicht verwenden möchten, verwenden Sie es nicht. Alternativ können Sie es nach der Überprüfung löschen.
Es gibt eine Datei namens msg.py
Zum Debuggen und für andere Zwecke können Sie LOGGER
in config.py
Natürlich können Sie die Turing-API nicht in der Gruppe festlegen (sogar die Funktion zum Abfragen der Expresszustellung sollte abgeschafft werden). verhindern, dass der Roboter Unsinn redet). Darüber hinaus muss der Datenschutzmodus des Roboters in der Gruppe aktiviert sein.
Hmm, vielleicht ist die Schnittstelle von Express 100 kaputt; versuchen Sie es später noch einmal.
Es kann sein, dass die Bestellnummer gerade erst generiert wurde und für Express 100 noch keine Daten vorhanden sind.
Derzeit wurde keine zuverlässige REST-API für die SF Express-Abfrageschnittstelle gefunden.
Derzeit planen wir, die Express-API zu ändern. Es scheint, dass Express Bird die bessere Wahl ist (unterstützt Push), aber es erfordert eine Authentifizierung mit echtem Namen ...
yyets
wird verwendet, um den richtigen Download-Link durch Klicken auf den InlineKeyboardButton zu erhalten. Voraussetzung ist jedoch, dass es nur ein Suchergebnis geben kann (bei mehreren Abfragen wird nur das erste zurückgegeben, um alle Informationen query
). Wenn ich beispielsweise Nolans The Dark Knight Rises herunterladen möchte, kann ich den eindeutigen Namen über query
finden und dann /yyets 《蝙蝠侠:黑暗骑士崛起》(The Dark Knight Rises)
verwenden, um das eindeutige Ergebnis zu erhalten.
Sortieren Sie nach Abschlussstatus und Priorität
/start 123,123
Englisches Komma halber Breite InsecureRequestWarning
ist derzeit deaktiviert GPL v2