QQ群:323731210
TG交流群https://t.me/muzikeji
均可在线体验傻妞
此教程已不再适用,请点击蓝色字体参考:傻妞机器人新版安装教程新版教程
自用笔记分享,看了不懂的去看别人的吧,别说教程这了那了,求你看了还是你花钱订阅了?
本文由以下部分组成
- 基础环境构建。
- 傻妞机器人安装(只对接QQ)
- 傻妞常规设置
- 傻妞对接微信/公众号/TG机器人
- 傻妞重启以及更换机器人QQ
- 傻妞青龙扩展使用。
- 其他
一、基础环境构建go和git安装
go安装
(之前安装过的就不用再装了)
1.下载go安装包 ,这里我们安装到usr/local目录
cd /usr/local && wget https://golang.google.cn/dl/go1.16.7.linux-amd64.tar.gz -O go1.16.7.linux-amd64.tar.gz
2.解压安装包
tar -xvzf go1.16.7.linux-amd64.tar.gz
3.设置环境变量
vi /etc/profile
最后新起一行填写下面代码。
export GO111MODULE=on
export GOPROXY=https://goproxy.cn
export GOROOT=/usr/local/go
export GOPATH=/usr/local/go/path
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
(1)编辑完后按 ESC键,按ESC只是让你退出编辑模式
(2)要想在退出编辑模式后使用保存退出命令,需要先使用按shift+:进入命令输入模式,然后输入 wq! 命令保存退出用命令修改
不会用命令的,用SFTP(不知道SFTP是什么的自行百度,还不知道的劝你别弄了打钱我给你弄吧) 连接服务器找到根目录/etc/profile文件打开,把上面代码复制粘贴到最后一行,保存效果一样的。
修改文件完成后执行
source /etc/profile ##在当前bash环境下读取并执行profile中的命令。
4.查看go安装是否完成,命令如下:
go env
输出如图表示安装OK
go安装完成了
安装git
下面3个命令挨个跑完就好了
wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
yum install -y git
git安装完成了
二、傻妞安装
拉取机器人库
cd ~ && git clone https://ghproxy.com/https://github.com/cdle/sillyGirl
拉去京东组件扩展库
cd sillyGirl/develop && git clone https://ghproxy.com/https://github.com/ufuckee/jd_cookie
新建dev文件
在root/sillyGirl目录新建文件dev.go写入下面内容(包含QQ,微信,TG,公众号,青龙扩展,京东CK扩展)
package main
import (
//青龙2.9机器人
_"github.com/cdle/sillyGirl/develop/qinglong"
//京东账号
_ "github.com/cdle/sillyGirl/develop/jd_cookie"
//腾讯QQ
_"github.com/cdle/sillyGirl/im/qq"
//Te Legram
_"github.com/cdle/sillyGirl/im/tg"
//微信公众号
_"github.com/cdle/sillyGirl/im/wxmp"
//微信号
_"github.com/cdle/sillyGirl/im/wx"
)
然后编译
cd && cd sillyGirl && go build
启动
chmod 777 sillyGirl
./sillyGirl
等弹出二维码机器人QQ扫码绑定机器人
等到QQ登录完,按住ctrl再按c退出
然后静默挂机 执行下面代码
nohup ./sillyGirl 1>/dev/null 2>&1 & #AMD64
用机器人QQ给机器人自己发送一下内容设置你自己QQ为机器人管理员
set qq masters 你的QQ号
禁用机器人自己回复信息
set qq onself false
重启一下
现在可以去机器人玩了
三、傻妞常规设置
傻妞机器人名
set sillyGirl name 傻妞
傻妞http服务端口
set sillyGirl port 8080
傻妞消息撤回等待时间,单位秒
set sillyGirl duration 5
傻妞自动升级是否通知
set sillyGirl update_notify false
是否开启傻妞自动更新
set sillyGirl auto_update true
傻妞内置赞赏码
set sillyGirl appreciate https://gitee.com/aiancandle/sillyGirl/raw/main/appreciate.jpg
是否启动http服务
set sillyGirl enable_http_server false
设置青龙openapi的client_id参数
set qinglong client_id ?
设置青龙openapi的client_secret参数
set qinglong client_secret ?
青龙是否开启自动隐藏重复任务功能
set qinglong autoCronHideDuplicate true
设置青龙面板地址
set qinglong host http://127.0.0.1:5700
设置qq登录账号
set qq uin 10000
设置qq登录密码
set qq password 123456789
设置qq临时消息默认群号
set qq tempMessageGroupCode ?
指定要监听的qq群
set qq onGroups g1&g2&g3…
设置是否自动同意好友请求
set qq auto_friend false
设置是否对监听自身消息
set qq onself true
设置qq管理员
set qq masters q1&q2&q3…
设置接受通知的qq账号
set qq notifier q1&q2&q3…
设置qq设备信息(自动生成)
set qq device.json ?
设置qq登录令牌(自动生成)
set qq session.token ?
设置telegram机器人token
set tg token ?
设置telegram机器人代理
set tg http_proxy ?
设置telegram机器人管理员
set tg masters t1&t2&t3…
设置接受通知的telegram账号
set tg notifier t1&t2&t3…
设置微信公众平台app_id
set wxmp app_id ?
设置微信公众平台app_secret
set wxmp app_secret ?
设置微信公众平台token
set wxmp token ?
设置微信公众平台encoding_aes_key
set wxmp encoding_aes_key ?
设置微信公众平台管理员
set wxmp masters w1&w2&w3…
傻妞内置微信插件,依赖于可爱猫和http-sdk
傻妞远程处理接口 /wx/receive
设置插件调用地址,确保傻妞可以访问可爱猫端口
#set wx api_url ?
设置图片转发模式,否则可能会出现此图片来自xx未经允许不得使用的提示
#set wx relay_mode true
设置指定转发地址,格式为 https://域名/relay?url=%s,不知道不用填
#set wx relaier ?
设置动态网络地址,适用于傻妞家庭宽带而可爱猫在云服务器的情况下
set wx dynamic_ip true
获取群号 TG QQ 微信 通用
groupCode
获取自己ID TG QQ 微信 通用
myuid
获取上次编译时间
compiled_at
设置内置小爱API
set sillyGirl 小爱同学 http://jiuli.xiaoapi.cn/i/xiaoai_tts.php?msg=%s
小爱API返回词典中获取那个键的值
set sillyGirl 小爱同学gjson text
关键词撤回功能
set sillyGirl recall 关键词1&关键词2…
关键词回复功能
set reply 关键词[支持正则] 回复内容
四、傻妞对接微信、公众号、以及TG机器人
对接微信
对接微信(需要Windows服务器或者电脑)
1.首先加入QQ群323731210,下载群文件iHttp.cat.dll文件和可爱猫文件
2.将iHttp.cat.dll放入可爱猫app目录
3.运行可爱猫然后双击iHttp插件,如图。
4.在远程处理接口那里写上http://你的IP:傻妞端口/wx/receive
端口写80 后面的服务开关✓上。记录你的Windows主机外网IP以及你自己设置的端口,端口需要防火墙放行。如图
5.重启可爱猫,然后从可爱猫首页启动微信并登录。注意这个微信手机端不能退出,退出就掉线了。你可以找一个不用的手机登录你的微信机器人号码扫码,只要你不主动退出即使你的手机关机微信机器人也在线。
6.设置相关配置
设置插件调用地址,确保傻妞可以访问可爱猫端口
set wx api_url http://IP:端口
设置图片转发模式,否则可能会出现此图片来自xx未经允许不得使用的提示
set wx relay_mode true
设置指定转发地址,格式为
https://域名/relay?url=%s
set wx relaier ?
设置动态网络地址,适用于傻妞家庭宽带而可爱猫在云服务器的情况下
set wx dynamic_ip true
微信发送机器人myuid,获取你的微信ID
然后用下面命令设置自己为机器人管理员
set wx masters 你的微信ID
现在你的微信已经可以用了。
公众号对接教程
首先注册一个自己的公众号,有公众号的可以跳过。公众号注册应该都会就不讲了,不会的自己百度
然后查看自己公众号的app_id,app_secret(点击开发基础配置可以看到)。
接下来回到自己的QQ发送以下指令给机器人
set wxmp app_id 你的appid
set wxmp app_secret 你的appsecret
set wxmp encoding_aes_key 自定义key
由大小写字母和0-9组成的43位字符,可以在公众号后台随机生成
set wxmp token 自定义token
set sillyGirl port 80
set sillyGirl enable_http_server true
上面两个自定义的一定记牢下面要用,英文字母和数字组成。
然后登入你的公众号后台
1) 公众平台官网登录之后,找到“基本配置”菜单.
2) 填写配置
url填写:http://外网IP:端口/wx/ http的端口号固定使用80,不可填写其他。Token:你刚才自定义的token,这个token与公众平台wiki中常提的access_token不是一回事。这个token只用于验证开发者服务器。
选择明文模式,然后提交显示token验证成功就OK了。
需要注意的是你80端口没被其他服务占用,服务器装了宝塔安装了ningx的80端口肯定是占用了,如果你不用ningx可以在宝塔应用管理里卸载然后重启傻妞即可,要用或者其他程序占用了的自己百度方案解决吧。只要token验证成功就可以用了
然后启用服务 重启傻妞 就可以正常使用了
设置微信公众平台管理员
用微信发送 myuid
然后用QQ管理员发送机器人设置微信管理员
set wxmp masters 刚才查的uid
设置多个管理员
set wxmp masters uid1&uid2…
现在公众号可以使用傻妞功能了!
对接TG机器人
本方案原来是CloudFlare Worker反代Telegram的api.telegram.org。
1.首先注册CloudFlare账号,注册地址:cloudflare.com。注册账号非常的简单。不懂英文的现在浏览器都有翻译功能翻译后再去注册。
2.启用worker
登录cloudflare后,在左上角下拉菜单中找到 workers,入口:https://workers.cloudflare.com
然后自定义一个二级域名,记下来选择套餐选免费的就可以了。每天10万次请求够你玩了。
3.创建配置worker
进入cf的workers后台,点击 创建worker 按钮,新建一个worker。
然后进入worker编辑界面,输入下面代码后,点击安装部署。
const whitelist = ["/bot你的机器人ID:"];
const tg_host = "api.telegram.org";
addEventListener('fetch', event => {
event.respondWith(handleRequest(event.request))
})
function validate(path) {
for (var i = 0; i < whitelist.length; i++) {
if (path.startsWith(whitelist[i]))
return true;
}
return false;
}
async function handleRequest(request) {
var u = new URL(request.url);
u.host = tg_host;
if (!validate(u.pathname))
return new Response('Unauthorized', {
status: 403
});
var req = new Request(u, {
method: request.method,
headers: request.headers,
body: request.body
});
const result = await fetch(req);
return result;
}
注:机器人ID就是机器人token前面的数字部分。不知道的可以TG @BotFather这个机器人可以获取你的机器人token。
现在你的机器人已经可以用了可以通过打开下面链接测试是否成功
https://xxxxx.xxx.workers.dev/bot机器人的token/sendMessage?chat_id=你的ID&text=发送的内容
机器人token获取方法上面说过了,你的ID获取方式 @userinfobot 找这个机器人可以拿到。
然后傻妞设置
set tg url https://xxx.xxx.workers.dev
xxx.xxx是你自定义的域名
set tg token xxxxx:xxxxxxxxxxxxx
后面x:xx是你的机器人token
现在你的TG机器人就可以用了。
或者直接用sock5代理
设置tg机器人token
set tg token xxxxx:xxxxxxxxxxx
设置sock5
set tg sock5 xxxxxxxx
(若有用户名和密码用@链接 set tg sock5 xxxxxxxxxx@xxx@xxx )
设置tg管理员
set tg masters xxxx
五、傻妞重启、更换机器人QQ、手动更新
重启
ps -A|grep sillyGirl ##显示进程号
kill -9 xxxxxx ##杀掉进程
cd && cd sillyGirl && ./sillyGirl ##启动傻妞
等待数据库加载完成,按下curl 再按 C 退出
然后执行下面命令 静默挂机
nohup ./sillyGirl 1>/dev/null 2>&1 & #AMD64
或
./sillyGirl -d
不出错就重启OK了,出错的话看执行日志对症下药!
更换机器人QQ
首先确保傻妞是新版不是老古董,用下面命令注销现有QQ
delete qq session.token
然后重新启动傻妞
cd && cd sillyGirl && ./sillyGirl ##启动傻妞
等待弹出二维码用准备更换的新QQ扫码
等待登录成功,然后按住curl 再按下 C 退出
然后执行下面命令静默挂机。
nohup ./sillyGirl 1>/dev/null 2>&1 & #AMD64
或
./sillyGirl -d
现在就更换到了新的号码,注意之前的设置是不会丢的不用一一重新设置。
手动更新
手动更新只需要执行下面命令
cd && cd sillyGirl && git stash && git pull && go build && ./sillyGirl -d
QQ发升级出现
解决方案如下:找到/root/sillyGirl/.git/config文件
在文件最后一行加上两行代码
[user]
email = xxx@qq.com #自己的邮箱或者随意
name = 爱的味道 #随意昵称
保存一下就可以了,不行重启再试!
六、傻妞青龙扩展使用
首先你得有青龙,不会装青龙的自行搜索教程或者加我QQ群16319366发送【教程】可查看系列教程。
有了青龙然后你可以对接傻妞进行交互。(注意傻妞只支持青龙2.9+)
1.创建青龙应用
然后复制你的应用信息对接傻妞
设置青龙open api id
set qinglong client_id 青龙应用ID
设置青龙open api 密码
set qinglong client_secret 青龙应用secret(密钥)
设置青龙登录地址
set qinglong host http://IP:端口号
例如:set qinglong host http://123.1.2.123:5700
如果各种信息都正确就配置OK了,需要注意的是青龙如果是2.8升级的会出现报错。重启容器即可
docker restart 你的容器名
2.青龙常用交互命令
拉去脚本
ql raw 脚本地址
查询COOKIE状态
ql cookie status
指定CK运行脚本
ql task 任务文件名 desi JD_COOKIE 指定的CK编号(如1 1-2 等等)
CK优先级
jd exchange ? ?
CK备注
jd remark ? ?
[修改QQ、Cookie绑定关系]
删除Cookie对应QQ号关系[只需要改pt_pin为你要改的pin]
delete pinQQ pt_pin
绑定Cookie对应QQ关系 [改pt_pin为你要改的pin qq号为需要绑定QQ号]
set pinQQ pt_pin qq号
解除指定账号关联的一切账号
jd unbind im 账号
青龙关闭自动隐藏任务命令
set qinglong autoCronHideDuplicate false
默认开启。
^ql\s+crons$
ql crons #获取所有青龙任务
^ql\s+cron\s+status\s+(\S+)$
ql cron starts 任务名 #查看该任务状态
^ql\s+cron\s+run\s+(\S+)$
ql cron run 任务名 #运行该任务
^ql\s+cron\s+stop\s+(\S+)$
ql cron stop 任务名 #停止该任务
^ql\s+cron\s+enable\s+(\S+)$
ql cron enable 任务名 #启用该任务
^ql\s+cron\s+disable\s+(\S+)$
ql cron disable 任务名 #禁用该任务
^ql\s+cron\s+find\s+(\S+)$
ql cron find 任务名 #查找该任务
^ql\s+cron\s+logs\s+(\S+)$
ql cron logs 任务名 #查看该任务日志
^ql\s+update$
ql update #升级青龙面板
^ql\s+update\s+logs$
ql update logs #查看青龙面板升级日志
^ql\s+cron\s+hide\s+duplicate$
ql cron hide duplicate #删除重复任务
ql\s+config$
ql config #查看青龙配置文件 QQ字数限制所以用不了
^ql\s+envs$
ql envs #查看青龙已有变量不含CK
^ql\s+env\s+get\s+(\S+)$
ql env get 变量名 #获取变量信息包含名称/状态和值
^ql\s+env\s+find\s+(\S+)$
ql env find 变量名 #用于查询是否已设置此变量
^ql\s+env\s+set\s+(\S+)\s+(\S+)$
ql env set 变量名 变量值 #设置新的变量
^ql\s+env\s+remark\s+(\S+)\s+(\S+)$
ql env remark 变量名 备注 #设置变量备注
^ql\s+env\s+disable\s+(\S+)$
ql env disable 变量名 #禁用变量
^ql\s+env\s+enable\s+(\S+)$
ql env enable 变量名 #启用变量
如果还有其他的可以在评论补充。
七、其他
傻妞功能较为广泛,可以指定义在conf/config.yaml中添加API配置,也可以自己写脚本放到develop/replies目录里。
API配置样板文件如下:
replies:
#文本类型的回复
- type: text
rules:
- 在吗
content: 我是花猫,欢迎来撩,可以发送功能查看我能做什么,喵喵喵!
#链接类型回复
- type: url
rules:
- 壁纸
- 二次元
request:
#图片
response_type: image
url: https://acg.toubiec.cn/random.php
- type: url
rules:
- 姐姐
- 妹妹
- 小姐姐
request:
#图片
response_type: image
url: http://api.btstu.cn/sjbz/zsy.php
- type: url
rules:
- 舔狗日记
- 舔狗
request:
#纯文本
response_type: text
url: https://api.oick.cn/dog/api.php
- type: url
- 股票 (.*)
request:
#纯文本
response_type: text
url: https://zyzcfa.com:444/api/stocks?keyword={{1}}
- type: url
rules:
- 蓝奏云 (.*) (.*)
- 蓝奏云 (.*)
- 蓝奏云 (.*)密码:(.*)
request:
#纯文本
response_type: json
url: http://yingy.20wl.co/Api/php/LanZous.php?url={{1}}&pwd={{2}}
get: data.url
- type: url
rules:
- 游戏
- 开始游戏
request:
#纯文本
response_type: text
url: http://hm.suol.cc/API/game_gs.php?msg=开始游戏
- type: url
rules:
- 答 (.*)
- 答(.*)
request:
#纯文本
response_type: text
url: http://hm.suol.cc/API/game_gs.php?msg=答{{1}}
- type: url
rules:
- 提示
request:
#纯文本
response_type: text
url: http://hm.suol.cc/API/game_gs.php?msg=提示
- type: url
rules:
- ^查字\s*(\S*)$
replace:
-
- <br>
- "\n"
request:
response_type: template
url: https://api.tianapi.com/txapi/xhzd/index?key=19eea766886493ecd04e770d0c2b56f9&word={{1}}
template: "汉字:gjson(newslist.[0].hanzi)\n读音:gjson(newslist.[0].pyyb)\n解释:gjson(newslist.[0].content)\n拓展:gjson(newslist.[0].explain)"
# - type: url
# rules:
# - .*
# request:
# #纯文本
# response_type: json
# url: https://api.ixiaowai.cn/tgrj/index.php
# get: data.msg
定时推送js样例文件
// [rule: ^每日热点$ ]
// [cron: 0 6 * * * ]
// [admin: true ]
var data = request({
"url": "https://api.tianapi.com/txapi/wxhottopic/index?key=" + get("tianapi_key"), // set otto tianapi_key ?
"dataType": "json"
})
var newslist = ["每日热点:"];
var content = "";
var messages = eval('(' + get("hottopic") + ')'); // set otto hottopic [{imType:"qq",groupCode:16319366}]
if (data && data.newslist) {
hots = data.newslist.reverse()
for (var i = 0; i < hots.length; i++) {
newslist.push((i + 1) + ". " + hots[i].word)
}
content = newslist.join("\n")
} else {
content = "每日热点," + data
}
for (var i = 0; i < messages.length; i++) {
message = messages[i]
message["content"] = content
push(message)
}
sendText("操作成功。")
其他待补充,就到这吧!