Termux安裝HoshinoBot

初始化Termux
1. 設(shè)置Termux鏡像源
termux-change-repo????????# 選擇Tsinghua
2. 獲取存儲權(quán)限
termux-setup-storage
3. 更新軟件
pkg update -y && pkg upgrade -y????# 如果有需要輸入的地方就輸入y
4.?安裝必要軟件
pkg in wget proot vim git p7zip python -y

安裝HoshinoBot
1.?下載HoshinoBot
cd
git clone https://github.com/Ice-Cirno/HoshinoBot.git
2.?將`HoshinoBot/hoshino/config_example`文件夾改為`HoshinoBot/hoshino/config`
mv HoshinoBot/hoshino/config_example/ HoshinoBot/hoshino/config/
3.?修改`requirements.txt`
cd HoshinoBot
vim requirements.txt
具體內(nèi)容如下(修改matplotlib、numpy、peony-twitter)
Quart==0.14.1
MarkupSafe~=1.0
Jinja2~=2.11.2
werkzeug~=1.0.1
wsproto~=0.15.0
nonebot[scheduler]==1.8.0
aiocqhttp~=1.4.0
aiohttp~=3.8.1
lxml>=4.9.1
pytz>=2019.3
requests>=2.23.0
sogou_tr_free~=0.0.8
zhconv~=1.4.1
Pillow~=9.1.0
matplotlib~=3.7.0
numpy~=1.24.2
beautifulsoup4~=4.9.0
pygtrie~=2.3.3
tinydb~=4.1.1
peony-twitter~=2.1.2
cloudscraper~=1.2.60
4.?下載資源文件??https://wwpt.lanzoul.com/ikru70p0ilch
5. 解壓文件
7z x res.7z
6.?將文件移動到`HoshinoBot/hoshino`目錄下
mv res ~/HoshinoBot/hoshino/
7.?修改配置文件`HoshionoBot/hoshino/config/__bot__.py`,標*需要手動更改
"""這是一份實例配置文件
將其修改為你需要的配置,并將文件夾config_example重命名為config
"""
# hoshino監(jiān)聽的端口與ip
PORT = 8080
HOST = '127.0.0.1'? ? ? ? ? # 本地部署使用此條配置(QQ客戶端和bot端運行在同一臺計算機)
# HOST = '0.0.0.0'? ? ? ? ? # 開放公網(wǎng)訪問使用此條配置(不安全)
DEBUG = False? ? ? ? ? ? ? ?# 調(diào)試模式
BLACK_LIST = []? ? ? ? ? ? ?# 黑名單,權(quán)限為 BLACK = -999
WHITE_LIST = []? ? ? ? ? ? ?# 白名單,權(quán)限為 WHITE = 51
SUPERUSERS = [*]? ? # 填寫超級用戶的QQ號,可填多個用半角逗號","隔開,權(quán)限為 SUPERUSER = 999
NICKNAME = '*'? ? ? ? ? ? # 機器人的昵稱。呼叫昵稱等同于@bot,可用元組配置多個昵稱
COMMAND_START = {''}? ? ? ? # 命令前綴(空字符串匹配任何消息)
COMMAND_SEP = set()? ? ? ? ?# 命令分隔符(hoshino不需要該特性,保持為set()即可)
# 發(fā)送圖片的協(xié)議
# 可選 http, file, base64
# 當(dāng)QQ客戶端與bot端不在同一臺計算機時,可用http協(xié)議
RES_PROTOCOL = 'file'
# 資源庫文件夾,需可讀可寫,windows下注意反斜杠轉(zhuǎn)義
RES_DIR = '~/HoshinoBot/hoshino/res'
# 使用http協(xié)議時需填寫,原則上該url應(yīng)指向RES_DIR目錄
RES_URL = 'http://127.0.0.1:5000/static/'
# 啟用的模塊
# 初次嘗試部署時請先保持默認
# 如欲啟用新模塊,請認真閱讀部署說明,逐個啟用逐個配置
# 切忌一次性開啟多個
MODULES_ON = {
? ? 'botmanage',
? ? 'dice',
? ? 'groupmaster',
? ? # 'hourcall',
? ? # 'kancolle',
? ? # 'mikan',
? ? 'pcrclanbattle',
? ? 'priconne',
? ? # 'setu',
? ? # 'translate',
? ? # 'twitter',
}
8. 安裝依賴
cd?
cd HoshinoBot
pip install -r requirements.txt
可能出現(xiàn)的問題
lxml安裝失敗
pkg in libxml2 libxslt -y
matplotlib安裝失敗
pkg in matplotlib -y
9. 啟動HoshinoBot
python run.py

安裝yobot
1.?下載yobot或yobot_remix
cd
git clone https://github.com/yuudi/yobot.git
# 或者,教程中安裝的是yobot_remix
git clone https://github.com/eggggi/yobot_remix.git
2.?修改`requirements.txt`(刪除OpenCC有關(guān)依賴)
3.?手動下載OpenCC相關(guān)依賴
pip install opencc-python-reimplemented
4.?下載依賴
cd yobot_remix/src/client/
pip install -r requirements.txt
5.?啟動yobot
python main.py
# 報錯 請通過"sh yobotg.sh"啟動
sh yobotg.sh

cd
wget https://github.com/Mrs4s/go-cqhttp/releases/download/v1.0.0-rc4/go-cqhttp_linux_arm64.tar.gz
mkdir go-cqhttp && tar -zxvf go-cqhttp_linux_arm64.tar.gz -C go-cqhttp
cd go-cqhttp
./go-cqhttp
# 選擇3反向ws,可以輸入33配置兩個反向ws
2.?編輯go-cqhttp的配置文件`config.yml`,其中XXX標注的位置需要手動更改
# go-cqhttp 默認配置文件
account: # 賬號相關(guān)
? uin: XXX # QQ賬號
? password: '' # 密碼為空時使用掃碼登錄
? encrypt: false? # 是否開啟密碼加密
? status: 0? ? ? # 在線狀態(tài) 請參考 https://docs.go-cqhttp.org/guide/config.html#在線狀態(tài)
? relogin: # 重連設(shè)置
? ? delay: 3? ?# 首次重連延遲, 單位秒
? ? interval: 3? ?# 重連間隔
? ? max-times: 0? # 最大重連次數(shù), 0為無限制
? # 是否使用服務(wù)器下發(fā)的新地址進行重連
? # 注意, 此設(shè)置可能導(dǎo)致在海外服務(wù)器上連接情況更差
? use-sso-address: true
? # 是否允許發(fā)送臨時會話消息
? allow-temp-session: false
heartbeat:
? # 心跳頻率, 單位秒
? # -1 為關(guān)閉心跳
? interval: 5
message:
? # 上報數(shù)據(jù)類型
? # 可選: string,array
? post-format: array
? # 是否忽略無效的CQ碼, 如果為假將原樣發(fā)送
? ignore-invalid-cqcode: false
? # 是否強制分片發(fā)送消息
? # 分片發(fā)送將會帶來更快的速度
? # 但是兼容性會有些問題
? force-fragment: false
? # 是否將url分片發(fā)送
? fix-url: false
? # 下載圖片等請求網(wǎng)絡(luò)代理
? proxy-rewrite: ''
? # 是否上報自身消息
? report-self-message: false
? # 移除服務(wù)端的Reply附帶的At
? remove-reply-at: false
? # 為Reply附加更多信息
? extra-reply-data: false
? # 跳過 Mime 掃描, 忽略錯誤數(shù)據(jù)
? skip-mime-scan: false
output:
? # 日志等級 trace,debug,info,warn,error
? log-level: warn
? # 日志時效 單位天. 超過這個時間之前的日志將會被自動刪除. 設(shè)置為 0 表示永久保留.
? log-aging: 15
? # 是否在每次啟動時強制創(chuàng)建全新的文件儲存日志. 為 false 的情況下將會在上次啟動時創(chuàng)建的日志文件續(xù)寫
? log-force-new: true
? # 是否啟用日志顏色
? log-colorful: true
? # 是否啟用 DEBUG
? debug: false # 開啟調(diào)試模式
# 默認中間件錨點
default-middlewares: &default
? # 訪問密鑰, 強烈推薦在公網(wǎng)的服務(wù)器設(shè)置
? access-token: ''
? # 事件過濾器文件目錄
? filter: ''
? # API限速設(shè)置
? # 該設(shè)置為全局生效
? # 原 cqhttp 雖然啟用了 rate_limit 后綴, 但是基本沒插件適配
? # 目前該限速設(shè)置為令牌桶算法, 請參考:
? # https://baike.baidu.com/item/%E4%BB%A4%E7%89%8C%E6%A1%B6%E7%AE%97%E6%B3%95/6597000?fr=aladdin
? rate-limit:
? ? enabled: false # 是否啟用限速
? ? frequency: 1? # 令牌回復(fù)頻率, 單位秒
? ? bucket: 1? ? ?# 令牌桶大小
database: # 數(shù)據(jù)庫相關(guān)設(shè)置
? leveldb:
? ? # 是否啟用內(nèi)置leveldb數(shù)據(jù)庫
? ? # 啟用將會增加10-20MB的內(nèi)存占用和一定的磁盤空間
? ? # 關(guān)閉將無法使用 撤回 回復(fù) get_msg 等上下文相關(guān)功能
? ? enable: true
? # 媒體文件緩存, 刪除此項則使用緩存文件(舊版行為)
? cache:
? ? image: data/image.db
? ? video: data/video.db
# 連接服務(wù)列表
servers:
? # 反向WS設(shè)置
? # HoshinoBot
? - ws-reverse:
? ? ? # 反向WS Universal 地址 ws://addr:post
? ? ? universal: ws://127.0.0.1:8080/ws
? ? ? # 重連間隔 單位毫秒
? ? ? reconnect-interval: 3000
? ? ? middlewares:
? ? ? ? <<: *default # 引用默認中間件? # 反向WS設(shè)置
? # Yobot
? - ws-reverse:
? ? ? # 反向WS Universal 地址 ws://addr:post
? ? ? universal: ws://127.0.0.1:9222/ws
? ? ? # 重連間隔 單位毫秒
? ? ? reconnect-interval: 3000
? ? ? middlewares:
? ? ? ? <<: *default # 引用默認中間件
3.?[bug] go-cqhttp,修改`devide.json`
vim devide.json
/protocol [ENTER] # 搜索protocol
a # 進入編輯模式
# 將protocol的值改為2
# 重新啟動
./go-cqhttp

1.?注冊ngrok賬號并登錄(https://ngrok.com/)
2. 安裝ngrok
# 查看手機內(nèi)核
uname -m
# 下載ngrok
wget https://bin.equinox.io/c/bNyj1mQVY4c/ngrok-v3-stable-linux-arm64.tgz
# 解壓
tar -zxvf ngrok-v3-stable-linux-arm64.tgz
chmod +x ngrok
mv ngrok $PREFIX/bin/
3.?創(chuàng)建ssh密鑰
ssh-keygen -t rsa -b 2048 -f ~/.ssh/id_rsa
4.?查看公鑰
cat $HOME/.ssh/id_rsa.pub
5. 添加公鑰


6. 認證Token

7. 啟動
# 9222為yobot端口
ngrok http 9222

8.?將紅框中的地址填入yobot配置文件`yobot_remix/src/client/yobot_data/yobot_config.json`,修改public_address的值為紅框中的鏈接