택배 확인을 도와주고, 택배 최신 현황을 자동으로 추적해주는 텔레그램 로봇! 완제품에는 스탬프를 찍을 수 있습니다.
@bennyblog_bot( 이 로봇은 내가 오랫동안 관리하고 있다 )
이 로봇은 채팅과 택배 확인만 할 수 있는 것이 아닙니다! 믿거나 말거나 음성 메시지를 보낼 수도 있습니다! 미국, 일본 드라마도 검색 가능해요! 자세한 내용은 함수 및 TODO를 참조하세요.
최근 로봇 사용량이 급증함에 따라 폴링 모드를 사용하면 Express 100의 무료 API 사용 횟수가 하루 2,000회를 초과하기 쉬우며, 이로 인해 IP가 차단될 수 있어 현재 API 변경을 계획하고 있습니다. 당분간 나는 다음과 같은 더 나은 옵션을 찾았습니다.
능력이 있는 사람이라면 누구나 PR이나 기타 Express API 제안을 제출할 수 있습니다! 정말 감사합니다. SF Express의 쿼리에 어떤 API를 사용할 수 있는지 모르겠습니다.
시작 - 쿼리할 택배 번호를 입력하세요.
도움 - 도움
목록 - 내 쿼리 기록 보기
삭제 - 특정 번호의 쿼리 기록을 삭제합니다.
Quickdel - 조회 메시지에 회신하여 추적 번호 조회 기록을 빠르게 삭제합니다.
쿼리 - 미국 TV 시리즈 및 영화 쿼리
yyets - 쿼리 다운로드 링크
날씨 - 특정 도시의 최근 일기 예보를 쿼리합니다.
로봇을 추가하고 운송장 번호를 직접 보내 조회하십시오(그리고 추적에 추가하십시오). 주문 번호에 문자가 포함되어 있으면 /start danhao123
사용하십시오. 한 번에 여러 주문 번호를 추적하려면 /start 123,123
사용하십시오. 영문 반각 쉼표로 구분 (물론 업데이트하면 비참해지겠죠)
직접 메시지를 보내거나 음성(중국어 북경어)을 보내세요.
/query 蝙蝠侠
/yyets 神盾局
그런 다음 버튼을 클릭하여 작동하십시오.Telegram API에 액세스하거나 프록시를 설정할 수 있는 서버에 배포해야 합니다. Python 2와 Python 3을 모두 지원합니다. Python 3이 권장되며 다음 플랫폼에서 테스트되었습니다.
윈도우 10: 파이썬 2.7.13 32비트 파이썬 3.6.3 32비트
우분투 16.04/14.04, CentOS 7, 데비안 9: Python 2.7
원클릭 스크립트는 systemd에서 더 잘 실행됩니다. 원클릭 스크립트는 Ubuntu 16.04에서만 테스트되었습니다. 먼저 루트 사용자로 전환합니다.
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
참고: CentOS에서 wget: command not found
메시지가 표시되면 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 공식 웹사이트에서 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
수정하세요. TOKEN은 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을 클릭하여 올바른 다운로드 링크를 얻는 데 사용되지만 전제 조건은 검색 결과가 하나만 있어야 한다는 것입니다(여러 결과의 경우 첫 번째 결과만 반환됨). 모든 정보를 검색하려면 query
사용됩니다. 예를 들어 Nolan의 The Dark Knight Rises를 다운로드하려면 query
통해 고유한 이름을 찾은 다음 /yyets 《蝙蝠侠:黑暗骑士崛起》(The Dark Knight Rises)
사용하여 고유한 결과를 얻을 수 있습니다.
완료 상태 및 우선 순위별로 정렬
/start 123,123
영문 반각 쉼표 InsecureRequestWarning
이 현재 비활성화되어 있습니다. GPL v2