通过酷Q小号转发信息
2018-11-18 ArchLinux摸鱼的我有一个摸鱼的阿里云ECS,
摸鱼的阿里云上有一个摸鱼的酷Q。
突然有一天,我觉得摸鱼太颓废了,
于是摸鱼的酷Q被我翻出来,帮我从电脑上转发消息到我的手机。
之前想把电脑上的信息发送到自己手机时,要么在TG上进行中转,要么利用自己的paste,share,ScrToQQ进行中转,但都不是特别方便。既然服务器上有了酷Q,就可以利用它来做转发。
简单地来说,就是酷Q上登录自己的小号,手机上登录大号,在ArchLinux上通过命令发送信息给服务器上的小号,让它发给自己的大号,自己在手机上就可以方便地把内容转发给好友。
如果使用的是酷Q Air,就不能发送图片。我使用的是酷Q Pro,按照CoolQ HTTP API 插件的说明文档在阿里云服务器上利用Docker运行酷Q。配置完成后可以通过快捷键发送剪切版的当前文字或当前图片,还可以在文件管理器中的图片文件右键菜单里选择发送。
Environment
- KDE Plasma 5.14.3
- Qt 5.11.2
- Klipper 5.14.3
- Dolphin 18.08.3
- 服务器IP: 10.10.10.10
- HTTP API 插件端口: 5700
- access_token: MY_ACCESS_TOKEN
- 发送目标QQ号: 111111111
- 发送目标群号: 999999999
Klipper
直接在通知栏的剪切版图标上右键打开配置页面,添加动作:
- 利用
.*
匹配所有,即不论当前剪切版内容是什么,都可以选择作为文本发送:- 发送给某人:
echo -n "%s" | curl -d "user_id=111111111" --data-urlencode message@- -H "Authorization: Token MY_ACCESS_TOKEN" "http://10.10.10.10:5700/send_private_msg"
- 发送到某群:
echo -n "%s" | curl -d "group_id=999999999" --data-urlencode message@- -H "Authorization: Token MY_ACCESS_TOKEN" "http://10.10.10.10:5700/send_group_msg"
- 发送给某人:
- 利用
^(file:///|/).*\.(png|jpg|jpeg)$
匹配图片,即当剪切版内容类似于file:///home/nian/test.png
或者/home/nian/test.png
时,可以选择作为图片发送:- 发送给某人:
echo -n "[CQ:image,file=base64://"`base64 -w 0 $(echo %s | sed 's/^file:\/\///')`"]" | curl -d "user_id=111111111" --data-urlencode message@- -H "Authorization: Token MY_ACCESS_TOKEN" "http://10.10.10.10:5700/send_private_msg"
- 发送到某群:
echo -n "[CQ:image,file=base64://"`base64 -w 0 $(echo %s | sed 's/^file:\/\///')`"]" | curl -d "group_id=999999999" --data-urlencode message@- -H "Authorization: Token MY_ACCESS_TOKEN" "http://10.10.10.10:5700/send_group_msg"
- 发送给某人:
PS:
- 剪切版执行动作的快捷键需要自己在剪切版配置页面手动指定。
echo -n
为了去掉末尾多出来的换行,base64 -w 0
也是为了去掉输出中的自动换行。- 直接在文件管理器中右键选择复制图片文件的话,剪切版中的内容类似于
file:///home/nian/test.png
,KDE截图工具Spectacle开启保存后将文件位置复制到剪切版后,截图保存到剪切版的内容类似于/home/nian/test.png
,因此需要利用正则表达式和sed
命令综合处理。
Dolphin
利用Dolphin的动作菜单为图片文件的右键菜单添加发送选项,在~/.local/share/kservices5
中创建新的动作菜单:
- 发送给某人:
vim ~/.local/share/kservices5/qq1.desktop
,内容如下:[Desktop Entry] Type=Service Icon=user X-KDE-ServiceTypes=KonqPopupMenu/Plugin MimeType=image/jpg;image/png;image/jpeg; Actions=SendToNian; [Desktop Action SendToNian] Name=发送给念 Icon=user Exec=echo -n "[CQ:image,file=base64://"`base64 -w 0 "%f"`"]" | curl -d "user_id=111111111" --data-urlencode message@- -H "Authorization: Token MY_ACCESS_TOKEN" "http://10.10.10.10:5700/send_private_msg"
- 发送到某群:
vim ~/.local/share/kservices5/qq2.desktop
,内容如下:[Desktop Entry] Type=Service Icon=user-group-new X-KDE-ServiceTypes=KonqPopupMenu/Plugin MimeType=image/jpg;image/png;image/jpeg; Actions=SendToGroup; [Desktop Action SendToGroup] Name=发送到群 Icon=user-group-new Exec=echo -n "[CQ:image,file=base64://"`base64 -w 0 "%f"`"]" | curl -d "group_id=999999999" --data-urlencode message@- -H "Authorization: Token MY_ACCESS_TOKEN" "http://10.10.10.10:5700/send_group_msg"
- 编辑完成后使用
kbuildsycoca5
命令重建系统配置缓存,然后在Dolphin的图片文件右键菜单里就可以找到添加的发送选项了。