前言
最近有夥伴私信問我有沒有可以自動回復、提醒的微信聊天機器人,去年在 Github 上正好看到過 EverydayWechat ——一款基於 Python3 與 Itchat 的微信小工具。我試過確實挺簡單的,小白用戶也可快速上手,大家可以在閒置的VPS上操作。
程序說明
創作人:sfyc23
作者主頁:https://github.com/sfyc23
項目地址:https://github.com/sfyc23/EverydayWechat
功能介紹:
注意:
並不是你的每一個女朋友都能接受,你用機器人給他回復『暖心話』,安慰她。人工智慧也有可能是一個智障機器人。想想如果機器人回復給你女朋友:『我們分手吧』。可能你們真的就分手了。雖然我會在心裡默默的點個讚(單身狗的自白)
https://github.com/sfyc23/EverydayWechat/blob/master/README.md具體實現
演示VPS信息
CPU model : Intel Core Processor (Broadwell, no TSX, IBRS)
Number of cores : 1
CPU frequency : 2399.996 MHz
Total size of Disk : 9.9 GB (1.5 GB Used)
Total amount of Mem : 486 MB (93 MB Used)
OS : CentOS 7.7.1908
Arch : x86_64 (64 Bit)
Kernel : 5.6.3-1.el7.elrepo.x86_64
安裝Python3
EverydayWechat 是基於 Python3 實現,而 CentOS7中自帶 Python2 且很多系統命令如 yum 都要用到,所以先安裝 Python3
[root@guest ~]# python -V #輸入python -V命令Python 2.7.5 #查看可以得知是 Python2.7.5 版本輸入 python -V 命令得知是 Python2.7.5 版本
[root@guest ~]# which python/usr/bin/python輸入 which python 命令
得知安裝位置,在 /usr/bin/python 目錄下
安裝依賴包
yum -y groupinstall "Development tools"yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel新建目錄並進入
mkdir /usr/local/python3 cd /usr/local/python3下載 Python3
當然你可在https://www.python.org/ftp/python/ 找到你需求的版本
wget https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tar.xz如果速度不理想,可以用 WinSCP 等軟體或者寶塔面板傳到伺服器指定目錄,或用以下備用地址下載安裝
wget http://xz.357global.com/app/Python-3.8.2.tar.xz編譯安裝
tar -xvJf Python-3.8.2.tar.xzcd Python-3.8.2./configure --prefix=/usr/local/python3#--prefix為指定安裝的路徑#If you want a release build with all stable optimizations active (PGO, etc), please run ./configure --enable-optimizations#--enable-optimizations 是優化選項(LTO,PGO 等)加上這個 flag 編譯後,性能有 10% 左右的優化 ./configure --enable-optimizations --prefix=/usr/local/python3make && make install創建軟連結
ln -s /usr/local/python3/bin/python3 /usr/bin/python3ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3這時 Python3 就安裝好了
[root@vultr Python-3.8.2]# python3Python 3.8.2 (default, Apr 11 2020, 14:00:15) [GCC 4.8.5 20150623 (Red Hat 4.8.5-39)] on linuxType "help", "copyright", "credits" or "license" for more information.>>> quit() # quit()退出python交互界面輸入 python3 測試, quit() 命令退出python交互界面
項目安裝
直接下載此項目或 clone 項目到本地
git clone https://github.com/sfyc23/EverydayWechat.gitcd EverydayWechat使用 pip 安裝依賴:
pip3 install -r requirements.txt # 或者是使用 pip# pip install -r requirements.txt運行&登陸
[root@vultr EverydayWechat]# python3 run.pyEverydayWechat 程序版本號:0.3.27當前時間:2020-04-11 15:02:10資料庫未開啟或啟動失敗!但資料庫功能不會影響項目正常運行,主要用於群助手查詢數據緩存。所有環境配置 OK ..開始登錄...Getting uuid of QR code.Downloading QR code.#然後微信掃碼登錄第一次運行會跳出二維碼,掃碼登錄。如輸出日誌中列印成:『登錄成功』,則表示運行成功。
登錄成功後一段時間內再運行,微信會保持登錄狀態,不需要再掃碼。docker 下運行
項目配置
目前項目所有的配置都是在 _config.yaml 文件中。
[root@vultr EverydayWechat]# tree├── Dockerfile├── everyday_wechat│ ├── _config.yaml#用tree命令可以看到config.yaml在everyday_wechat下配置文件請嚴格遵循 yaml 語法格式!yaml 學習地址:
https://ansible-tran.readthedocs.io/en/latest/docs/YAMLSyntax.html
http://einverne.github.io/post/2015/08/yaml.html1.開啟自動回復
2.選擇渠道
機器人渠道(1: 圖靈機器人,2: 一個AI ,3 : 青雲客,4 騰訊智能閒聊,5:天行機器人,6:海知智能,7:思知機器人)
bot_channel: 7默認為思知機器人,可不申請 key 的情況下,最智能的了。。
3. 指定自動回復的好友名單
有兩種模式
(1) 不使用自動回復所有好友的情況下,即:is_auto_reply_all:False 時。
這時設置可回復的白名單成員,如下:is_auto_reply_all:False
# 指定自動回復的好友名單。
auto_reply_white_list:
- '好友1'
- '好友2'(2) 開啟自動回復所有好友的情況下,即:is_auto_reply_all:True 時。
選擇不自動回復黑名單成員:如下is_auto_reply_all:True
4. 配置相關器人
auto_reply_black_list:
- '好友1'
- '好友2'除了青雲客之外,其他的機器人都需要去對應的官網,註冊並獲取相應的 key。需要哪個就配置哪個。
比如配置「一個AI」在官網http://www.yige.ai 進行註冊;
創建應用,得到「API密鑰」中的 「客戶端訪問令牌」
將填入到 _config.yaml 文件中的:yigeai_conf:
client_token: '客戶訪問令牌'其他具體配置請參考 _config.yaml 文件或項目 README.md 文件
定時提醒
1.開啟並設置提醒時間
alarm_info:
is_alarm: True2.好友信息設置
舉例:
alarm_timed:
- "06:00"
- "12:30"
- "22:00"
wechat_name:
- '文件傳輸助手'
- '藍天白雲'
group_name:- '青年後備軍羊毛二群'
- '青年後備軍'
is_tomorrow: False
city_name: '北京'
dictum_channel : 3
start_date: '2020-01-01'
start_date_msg: '2020年的第{}天'
calendar: True
horescope: "雙魚座"sweet_words: '青年後備軍小助手'
#注意:wechat_name,group_name 至少要有一個。
其他具體配置請參考 _config.yaml 文件或項目 README.md 文件
提醒示例:
明日北京天氣
2020-04-12 星期日
【明日天氣】晴
【明日氣溫】低溫 7℃ 高溫 23℃
【明日風速】北風3-4級
【出行提醒】願你擁有比陽光明媚的心情
北京 PM2.5:68 良
我和天地萬物便通通奔向你
這是2020年的第102天
群助手功能名稱示例必填說明is_openTrue必填是否開啟群助手功能is_allTrue必填是否對所有群開啟。當開啟時,只有黑名單的名單才不受影響(慎重開啟!)group_name_white_list「群名」選填白名單用戶。當 is_all:Fase。只處理這個群裡的消息group_name_black_list「群名」選填黑名單用戶。當 is_all :True 。這個群裡的用戶不受影響。is_atTrue必填艾特標記。只有當別人艾特自己時,才會處理消息(慎重關閉!)。is_auto_replyTrue必填# 開啟群自動回復(慎重開啟!)is_weatherTrue必填是否開啟天氣查詢。is_calendarTrue必填是否開啟萬曆年查詢is_rubbishTrue必填是否開啟垃圾查詢is_movieboxTrue必填是否開啟電腦票房查詢is_expressTrue必填是否開啟快遞信息查詢is_air_qualityTrue必填是否開啟空氣品質查詢
演示
後臺運行
按住ctrl+A+D切出終端,輸入命令
可看到程序在後臺運行
[root@vultr ~]# screen -lsThere is a screen on: 27447.pts-0.vultr (Detached)1 Socket in /var/run/screen/S-root.如需結束任務則運行以下命令
screen -S 27447 -X quit
教程結束。
請不要將本工具用於商業用途,使用本工具請遵守法律法規!
請不要將本工具用於商業用途,使用本工具請遵守法律法規!
請不要將本工具用於商業用途,使用本工具請遵守法律法規!
如果感興趣,你也可以親手操作一下。有問題可以在原項目 issues 提問或者加群交流。
還沒進群的夥伴速度加群
長按二維碼,發送青年後備軍加機器人好友
通過好友後發送加群或進群
覺得好看,請點這裡↓↓↓