一、傻妞功能简介
一个有灵魂的机器人框架,可以订阅插件源或者自己编写插件。
二、傻妞安装
安装傻妞。
创建文件夹
mkdir sillyGirl
建立配置并设置 QQ 管理员,改中文部分为你 QQ 号
s=/etc/sillyGirl;if [ ! -d ];then mkdir ; fi; echo "set qq masters 你操控机器人的QQ号" > /etc/sillyGirl/sets.conf
需要服务器装有 git ,没装的先装一下 git
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
进入傻妞目录并拉去文件
cd && cd sillyGirl && wget https://ghproxy.com/https://github.com/muzikeji/mzkj/blob/master/sillyGirl
给傻妞读写权限
chmod 777 sillyGirl
启动
./sillyGirl -t
开启群组监控
监听群组 listenOnGroups ,屏蔽指定群组任何消息,默认不监听任何群组。
不回复群组 noReplyGroups ,接受指令但不做出回复,默认回复所有群组消息。
可以识别返利群组设置,动态进行监听,无需手动。
也就是说你不设置监听群就所有群消息不再回复。
设置方法
先进入傻妞目录执行./sillyGirl -t
开启终端交互。
一键进入并启用终端交互命令如下:
cd && cd sillyGirl && ./sillyGirl -t ##启动傻妞终端交互
然后设置监听群组。设置命令
set silly listenOnGroups 群号
多个群号用&链接,例如
set silly listenOnGroups 323731210&487640458&-1001726293303&17899942923&19865189169&20403300341&21985308594&1018242024
QQ、微信、TG群都一样需要设置。
傻妞更新新增傻瓜指令:
listen 监听当前群聊
unlisten 取消监听当前群聊
reply 回复当前群聊
noreply 不回复当前群聊
开始部署QQ机器人必备环境
需要先装node.js
1、Node.js 下载
官方下载地址:[Node.js Download](Node.js Download)
1、右击指定位置,复制链接地址
2、进入Linux自定义目录下,通过 wget 命令获取 Node.js 安装程序比如我们安装在 usr/local目录,执行如下命令:
cd /usr/local && wget https://nodejs.org/dist/v14.17.5/node-v14.17.5-linux-x64.tar.xz
2、Node.js 解压下载得到的 Node.js 是 ***.tar.xz 格式,需要使用解压命令首先对其进行解压
xz -dk node-v14.17.5-linux-x64.tar.xz && tar -xvf node-v14.17.5-linux-x64.tar
3、Node.js 环境配置
1.进入配置文件:
vi /etc/profile
2.按键 i 进入编辑模式,在文件的最后面新行添加以下三行代码:
export NODE_HOME=/usr/local/node-v14.17.5-linux-x64
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
3.Esc键退出编辑模式,:wq 退出该配置文件
4.生效配置文件
source /etc/profile
和装go环境一样不会用命令的,用SFTP(不知道SFTP是什么的自行百度,还不知道的劝你别弄了我帮你挂吧) 连接但服务器找到根目录/etc/profile文件打开,把下面代码复制粘贴到最后一行,保存然后再执行source /etc/profile 效果一样的。
4、检查是否安装成功
查看node版本 node -v
查询结果 V14.17.5
查看nmp版本 npm -v
查询结果 V6.14.xx
到此安装好node.js
安装个pm2
不然后第6步没法守护进程。
由于我们已经安装好了node.js所以直接用下面命令安装
npm install pm2 -g
执行pm2 -v查看是否安装成功
打开傻妞http服务。
由于需要访问傻妞http服务,所以我们得开启http服务。
有TG等机器人的直接机器人发送
set sillyGirl enable_http_server true
set sillyGirl port 8080
没其他机器人的打开/etc/sillyGirl/sets.conf这个文件把这两个写进去,然后手动重启一下傻妞,教程第五部分,手动重启。
文件格式样例如图
接入QQ机器人
QQ对接方法一
//node-onebot机器人接入到傻妞
1.克隆仓库
git clone https://github.com/takayama-lily/node-onebot.git
2.进入仓库
cd node-onebot
3.创建配置文件
vi config.js
module.exports = {
//通用配置
general: {
platform: 1,
log_level: "info", //trace,debug,info,warn,error,mark
use_cqhttp_notice: false, //是否使用cqhttp标准的notice事件格式
host: "0.0.0.0", //监听主机名
port: 5700, //端口
use_http: false, //启用http
use_ws: false, //启用正向ws,和http使用相同地址和端口
access_token: "", //访问api的token
secret: "", //上报数据的sha1签名密钥
post_timeout: 30, //post超时时间(秒)
post_message_format:"array", //"string"或"array"
enable_cors: false, //是否允许跨域请求
enable_heartbeat: false, //是否启用ws心跳
heartbeat_interval: 15000, //ws心跳间隔(毫秒)
rate_limit_interval:500, //使用_rate_limited后缀限速调用api的排队间隔时间(毫秒)
event_filter: "", //json格式的事件过滤器文件路径
post_url: [ //上报地址,可以添加多个url
// "http://your.address.com:80",
],
ws_reverse_url: [ //反向ws地址,可以添加多个url
"ws://127.0.0.1:8080/qq/receive",
],
ws_reverse_reconnect_interval: 3000, //反向ws断线重连间隔(毫秒),设为负数直接不重连
ws_reverse_reconnect_on_code_1000: true, //反向ws是否在关闭状态码为1000的时候重连
},
//每个账号的单独配置(用于覆盖通用配置)
147258369: {
},
};
4.在上面文件中access_token中设置一个对接token。
然后在终端设置中或者用其他平台机器人又或者存配置文件里 设置如下命令(终端交互默认关闭,运行携带参数-t即可启用。比如 ./sillyGirl -t)
set qq token 你设置的token
5.登录,根据提示操作
cd && cd node-onebot && node main 机器人账号
会给一个二维码地址,复制到浏览器打开QQ扫码登录授权。等命令跑完,Ctrl +c 退出。
6.用pm2守护进程。
pm2 start "node main 机器人QQ号"
#这个""自己看看,博客这个转译好像给变成中文,自己改回去。
/方法一结束/
QQ对接方法二
//安装oicq//
oicq库
oicq Github:https://github.com/takayama-lily/oicq/tree/master/http-api
npm i oicq@1 -g #安装
npm up -g oicq #更新
配置文件config.js
路径/root/.oicq/ 可能系统不同路径不同具体自己找一下
// 此文件必须名为config.js才能生效哦
module.exports = {
//通用配置
general: {
platform: 1, //1:安卓手机 2:aPad 3:安卓手表 4:MacOS 5:iPad
log_level: "info", //trace,debug,info,warn,error,mark
use_cqhttp_notice: false, //是否使用cqhttp标准的notice事件格式
host: "0.0.0.0", //监听主机名
port: 5700, //端口
use_http: false, //启用http
use_ws: false, //启用正向ws,和http使用相同地址和端口
access_token: "", //访问api的token
secret: "", //上报数据的sha1签名密钥
post_timeout: 30, //post超时时间(秒)
post_message_format:"array", //"string"或"array"
enable_cors: false, //是否允许跨域请求
enable_heartbeat: false, //是否启用ws心跳
heartbeat_interval: 15000, //ws心跳间隔(毫秒)
rate_limit_interval:500, //使用_rate_limited后缀限速调用api的排队间隔时间(毫秒)
event_filter: "", //json格式的事件过滤器文件路径
post_url: [ //上报地址,可以添加多个url
// "http://your.address.com:80",
],
ws_reverse_url: [ //反向ws地址,可以添加多个url 傻妞的ip加端口
"ws://ip:port"
],
ws_reverse_reconnect_interval: 3000, //反向ws断线重连间隔(毫秒),设为负数直接不重连
ws_reverse_reconnect_on_code_1000: true, //反向ws是否在关闭状态码为1000的时候重连
},
//每个账号的单独配置(用于覆盖通用配置)
1234567890: {
},
};
// 安全注意:
// 监听0.0.0.0表示监听网卡上的所有地址。如果你的机器可以通过公网ip直接访问,同时你也没有设定access_token,则被认为是极不安全的。
// 你应该知道这样做会导致以下后果:任何人都可以无限制地访问你的Bot的所有API接口。
// 如果只需要在本地访问,建议将监听地址改为localhost。
在上面文件中access_token中设置一个对接token。
然后在终端设置中或者用其他平台机器人又或者存配置文件里 设置如下命令(终端交互默认关闭,运行携带参数-t即可启用。比如 ./sillyGirl -t)
set qq token 你设置的token
启动oicq
oicq 机器人QQ号
如
oicq 1975537275
Ctrl + C 然后再守护进程
pm2守护进程
pm2 start "oicq 机器人QQ"
如
pm2 start "oicq 1975537275"
//方法二结束
QQ无法用pm2守护进程的看这里。
最近出现部分服务器无法用pm2守护进程。解决办法是用screen取代。
首先安装screen
- 安装
在命令行中执行
screen -ls
如果出现“-bash: screen: command not found”的提示则表明系统中没有安装screen,安装方法如下:
CentOS下使用yum安装
yum -y install screen
Debian或Ubuntu下
apt-get install screen
安装好之后使用screen命令创建一个会话。
#直接使用screen命令创建一个默认名称的会话
screen
#此处推荐使用-S参数指定会话窗口的名称
screen -S qqbot
此时ssh会创建一个新的窗口
然后再执行
cd && cd node-onebot && node main 机器人账号
或者
oicq 机器人QQ号
输入密码、回复完ticket 显示反向链接成功后
使用ctrl+a,然后输入d,退出当前窗口即可。
*注意⚠️:反向链接失败的参考教程第八部分解决。
可以使用-d -r命令切换到对应的会话,后面可以是pid,也可以是名称,以20167.pts-0.computername为例,可以使用下面两种方式进入:
screen -d -r 20167
screen -d -r pts-0.computername
如果退出会话也很简单,首先使用上面的方式进入会话,然后执行exit命令就可以退出了。
QQ机器人老被封?
免封密码
set qq ban_one2one true
设置QQ管理员
QQ机器人默认管理员功能从sillyGirl中移除,初始配置请到/etc/sillyGirl/sets.conf配置如下内容。
#设置qq管理员
set qq masters 管理QQ号码
或者SSH执行此命令
s=/etc/sillyGirl;if [ ! -d $s ];then mkdir $s; fi; echo "set qq masters 你的管理QQ号" > /etc/sillyGirl/sets.conf
禁用机器人自己回复信息
set qq onself true
重启一下
现在可以去机器人玩了
注意:
自愿开启芝士(京东CK功能)请执行
set jd_cookie enable_jd_cookie true
并重启。
三、傻妞常规设置
傻妞机器人名
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
傻妞自定义回复更新,在哪个群设置就对哪个群有效。
口令更新,支持正则
设置回复 reply ? ?
删除回复reply ? nil
查看自定义回复 replies
set timeout/interval ? ?
#timeout多少秒后执行某个命令,interval每隔多少秒执行命令。
四、傻妞对接微信、公众号、以及TG机器人
对接微信【可爱猫】或者【VLW】
- 对接微信需要Windows服务器或者电脑*
1.可爱猫对接微信
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:端口
开启傻妞http协议服务
set sillyGirl enable_http_server true
set sillyGirl port 80
设置图片转发模式,否则可能会出现此图片来自xx未经允许不得使用的提示
set wx relay_mode true
设置指定转发地址,格式为
https://域名/relay?url=%s
set wx relaier ?
设置动态网络地址,适用于傻妞家庭宽带而可爱猫在云服务器的情况下
set wx dynamic_ip true
2.VLW对接微信
1.首先下载VLW
教程以VLW3.1.4为例
2.下载完成后点击全部提取文件到你的自定义路径。
3.双击打开vlw主程序。这时会生成一些目录和文件其中有一个plugin的目录为插件目录。
4.加入QQ群323731210下载下图所示文件
5.将下载的文件放入VLW的plugin目录内。
6.点击插件管理安装此插件。
7.点了打开此插件,如图所示进行配置。
配置一定要认真点,初端口自定义其他都按要求写。
8.配置好了点击端口边上的启用服务。
9.现在开始回到傻妞进行参数设置
开启傻妞http协议服务
set sillyGirl enable_http_server true
set sillyGirl port 80
set wx api_url http外网API调用地址
如 set wx api_url http://1.12.123.22:80
set wx vlw_token 上图自定义的token
如 set wx vlw_token 123456
10.从vlw启动微信。然后用作为机器人的微信号扫码登录。登录成功如下图
11.现在你重启傻妞。然后就可以用了。
3.设置微信管理员
微信发送机器人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可以在宝塔应用管理里卸载然后重启傻妞即可,要用或者其他程序占用了的自己百度方案解决吧。
netstat -lnp|grep 80
运行这个傻妞端口挂载正常如下图,不然就是傻妞没在80端口。
只要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 = ["/bot123456789:"];/*123456789为机器人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 找这个机器人发送token可以拿到。
然后傻妞设置
set tg url https://xxx.xxx.workers.dev
xxx.xxx是你自定义的域名
set tg token xxx:xxxxxxxxxxxxx
后面xxx:xxxxxxxxxxxxx是你的机器人token
现在你的TG机器人就可以用了。
重要提醒:
群组内使用需要给机器人拉进群并设置为管理员,否则无法监控群消息。
五、傻妞重启、更换机器人QQ、手动更新
重启
ps -A|grep sillyGirl ##显示进程号
kill -9 xxxxxx ##杀掉进程
cd && cd sillyGirl && ./sillyGirl ##启动傻妞
等待数据库加载完成,按下Ctrl 再按 C 退出
然后执行下面命令 静默挂机
nohup ./sillyGirl 1>/dev/null 2>&1 & #AMD64
或
./sillyGirl -d
不出错就重启OK了,出错的话看执行日志对症下药!
更换机器人QQ
首先确保傻妞是新版不是老古董
傻妞更新支持多QQ机器人,私聊全部有效、群聊只有主机器人有效,主机器人挂了后,其他机器人随机替代主机器人位置。
此外,返利支持多QQ协同发单减少风控几率。
设置主机器人QQ:
set qq default_bot 主机器人账号
更换机器人QQ
先看看进程列表
pm2 list
杀死所有进程
pm2 delete all
更换新QQ登录
oicq 新机器人QQ
守护进程
pm2 start "oicq 新机器人QQ"
你也可以同时挂多个QQ,想更换只需要重新设置主机器人号码,然后重启。
现在就更换到了新的号码,注意之前的设置是不会丢的不用一一重新设置。
手动更新
手动更新只需要执行下面命令
rm -rf /root/sillyGirl/sillyGirl && s=sillyGirl;a=arm64;if [[ $(uname -a | grep "x86_64") != "" ]];then a=amd64;fi ;if [ ! -d $s ];then mkdir $s;fi ;cd $s;wget https://pd.zwc365.com/https://github.com/cdle/${s}/releases/download/main/${s}_linux_$a -O $s && chmod 777 $s;pkill -9 $s;$(pwd)/$s
然后Ctrl+c退出
再跑静默挂机命令
nohup ./sillyGirl 1>/dev/null 2>&1 & #AMD64
QQ发升级出现
解决方案如下:找到/root/sillyGirl/.git/config文件
在文件最后一行加上两行代码
[user]
email = [email protected] #自己的邮箱或者随意
name = 爱的味道 #随意昵称
保存一下就可以了,不行重启再试!
六、傻妞青龙扩展使用
首先你得有青龙,不会装青龙的自行搜索教程或者加我QQ群323731210发送【教程】可查看系列教程。
有了青龙然后你可以对接傻妞进行交互。(注意傻妞只支持青龙2.9+)
1.创建青龙应用
然后复制你的应用信息对接傻妞
对你的机器人发送【青龙管理】根据提示填入对应参数即可。
如果各种信息都正确就配置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 变量名 #启用变量
如果还有其他的可以在评论补充。
七、配置文件、js插件、插件开发函数等!
傻妞功能较为广泛,可以自定义在conf/config.yaml中添加API配置,也可以自己写js脚本放到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("操作成功。")
js开发函数
js 插件可调用或被支持的傻妞内置函数(此命令多数转自科技玩家https://www.kejiwanjia.com/jiaocheng/58292.html
// [rule: ^demo(.*)$] 使用正则匹配,括号中为期望匹配的值
// [rule: demo ?] 使用问号匹配
// [rule: demo] 直接匹配
// [cron: 36 11,17 * * *] 定时任务
// [admin: true] 是否只允许管理员使用
// [disable: false] 是否禁用
// [priority: 10] 匹配优先级
// [server: 1 ] 如果不指定rule和cron时,设置为非空则指定为一个空服务,否则这个js不会加载
//上下文获取
param(n)//获取rule中期望捕获的第n个字符串,中文需要使用 encodeURI(param(n))
ImType()//聊天来源类型如:qq,wx等,其中fake为特殊调用可能为cron调用
GetUserID()//发送人用户id
GetUsername()//发送人昵称
GetChatID()//群号
GetChatname()//群名
GetContent()//获取接受到的消息
isAdmin()//发送人是否管理员
//系统功能相关
cancall(name)//返回特殊调用的函数
call(name,value)//特殊调用
Debug(log)//打印日志
sleep(millisecond)//休眠
GroupBan(uid, time)//群禁言,需要在群聊才可用
GroupKick(uid, reject)//群踢人,reject为是否拉黑名单,需要在群聊才可用
RecallMessage(GetMessageID())//撤回群消息
request({
url:"",//必须
method:"",//get,post,put,delete,可选,默认get
headers:{},//可选
body:"",//可选
dataType:"",//location=>重定向url,json=>尝试解析为对象,否则为body字符串,可选
useproxy:false,//可选
})//发送请求
//存储相关 sillyGirl存储结构为 {mainKey1:{key1:value,key2:value},mainKey2:{key1:value,key2:value}}}
bucketGet(mainKey,key)//取值
bucketSet(mainKey,key,value)//存值
bucketKeys(mainKey)//获取所有key名称
get(key)//同bucketGet("otto",key)
set(key,value)//同bucketSet("otto",key,value)
//消息相关
input(time /*[,str]*/)//等待下一个消息,str不为空时可接受其他群的消息 str可选
breakIn(str)//生成一个新的消息向下传递,可以被所有命令处理(包括当前js,所以需要防止递归)
Continue()//消息继续向下传递,可以被其他命令处理
Delete()//撤回接受到的这条消息
image(string)//图片地址转可拼接消息字符串
push({
imType:string,//发送到指定渠道,如qq,wx,必须有
userID:"",//groupCode不为0时为@指定用户,可选
groupCode:"",//可选
content:string,//发送消息
})//给指定im发送消息
notifyMasters(string)//通知管理员
sendText(string)//发送文本
sendImage(url)//发送图片
sendVideo(url)//发送视频
傻妞js插件新功能:
//[show: 插件说明] 自定义插件说明
//[imType:qq,wx] 白名单,只在qq,wx生效
//[imType+:qq,wx] 同上,不写+号默认为白名单模式
//[imType-:qq] 黑名单qq,除了qq生效
//[userId+:id1,id2] 同样支持黑白名单模式
//[groupId+:id1,id2] 同样支持黑白名单模式
其他待补充,就到这吧!
八`反向链接被关闭的原因排除
1.傻妞没在后台运行
执行下面代码
cd && cd sillyGirl && ./sillyGirl ##启动傻妞
自己看目录,此命令适合傻妞安装在root目录下
然后执行下面命令设置后台静默运行
nohup ./sillyGirl 1>/dev/null 2>&1 & #AMD64 静默运行
2.端口没开
端口没放行 打开服务器控制面板-安全组-放行你的映射端口。
如果你有宝塔宝塔安全里也要放行才能打开。
3.傻妞http服务没开启
由于需要访问傻妞http服务,所以我们得开启http服务。
有其他平台机器人的直接机器人发送
set sillyGirl enable_http_server true
和
set sillyGirl port 8080 ##8080是端口号 根据自己需求修改
没其他机器人的打开/etc/sillyGirl/sets.conf
这个文件把上面这两个命令写进去,然后手动重启一下傻妞
样板文件
4.检测傻妞是不是可以正常访问
打开ssh工具 链接你的服务器 然后执行下面命令
curl 127.0.0.1:8080
8080为你的傻妞端口 根据实际情况修改 执行
显示如下图算正常
或者你也可以浏览器打开你的公网IP:port 看看是不是显示 Hello world!
5.反向WS地址填写错误
这个地址填你的ws://IP:port/qq/receive
如:
ws://127.0.0.1:80/qq/receive
6.其他问题
自行排查