巨巨,跪求解。关于coolq-telegram-bot
Opened this issue · 35 comments
coolq已经跑起来了,私聊QQ机器人也有反应。
telegram的bot也建立了。填写了token和tg群ID。
bot_constant.py也修改过了。
TOKEN = '45??????????????????????Lk'
QQ_BOT_ID = 3???????????0
FORWARD_LIST = [
{
'QQ': 17???????????5,
'TG': -1001???????78,
'Drive_mode': False,
'Pic_link': False
},
{
'QQ': 17?????????5,
'TG': -1001??????????78,
'Drive_mode': False,
'Pic_link': False
},
]
SERVER_PIC_URL = 'http://example.com:8080/image/'
CQ_ROOT = '/root/coolq-data/'
CQ_PORT = 11235
JQ_MODE = False # if use Coolq Pro, set as True, otherwise False
然而转发bot运行起来没有效果?原因不明,我应该检查哪里啊?
你按照教程安装 socketapi插件到coolq 了吗
你按照教程安装 socketapi插件到coolq 了吗
-----------安装过了呀
是不是我的FORWARD_LIST 填写的格式不对?
如果安装过,你能不能在coolq的log窗口里看到client update这种消息?
我把QQ机器人拉到自己的一个群里了。log里面都有显示,可以看到群里的聊天内容日志
如果你没看到client update那说明bot没有与coolq 建立连接,请检查cqsocketapi的安装
能看到群里聊天记录日志是coolq本身的功能
我想我知道怎么回事了。我的coolQ是在docker里面运行的,cqsocketapi需要开启一个11235端口,然而docker镜像没有开启这个端口
netstat -an了一下,本地根本没开11235端口。
我把bot开到docker镜像里边了,我推荐你们也这么做
可以放个dockerfile吗?适合我这种小白。
重启过本项目的bot,wine-qq-docker镜像增加了11235端口。然而日志还有没有显示您说的client update字样
是这样的,那个cqsocketapi只监听了127.0.0.1,所以bot推荐放到docker里运行,具体怎么进入docker的shell环境 google一下就有,这部分暂时不提供教程
dockerfile是计划制作的,但是太忙了最近,没有时间去搞,估计是咕咕咕了
或者你自行编译一个监听0.0.0.0的cqsocketapi替换也可以
可以了,照您说的,我把bot塞进docker里面去了。现在可以看到 client update:53098 字样了。然而tg群和QQ群的消息还是没有互相转发。接下里我应该检查哪里?
确认qq群号和telegram群id没写错吧,以及只写了一遍?我看你上面似乎写了两遍
应该只写一遍吗? 我写2次一样的
试试删掉一组,我也没测试写两遍一样的会不会出问题
wine qq docker和bot都运行正常. 然后依然无法互相转发消息. 尝试过把bot_constant.py保存为UTF-8编码,重启所有,依然无法转发消息.是否腾讯封禁了?
应该不是,只要你coolq能收到消息就不是这个问题
这样吧,你试试 python daemon.py run,看看输出什么
先把之前的bot停掉
root@af3b447935b1:/home/user/coolq/coolq-telegram-bot# python daemon.py run
Traceback (most recent call last):
File "daemon.py", line 4, in
import global_vars
File "/home/user/coolq/coolq-telegram-bot/global_vars.py", line 30
def append_command(command: Command):
^
SyntaxError: invalid syntax
root@af3b447935b1:/home/user/coolq/coolq-telegram-bot#
有个错误
请问你是python3.5及以上的版本吗
突然又冒出来一个人,吓我一跳(
@jqqqqqqqqqq 我已经视奸这个Repo很久了(
root@af3b447935b1:/# python -V
Python 2.7.12
我懂了,我去装个py3
@Z4HD 妈耶好怕怕
卸载掉了旧版本的python,
root@af3b447935b1:/home/user/coolq/coolq-telegram-bot# python3 daemon.py run
Traceback (most recent call last):
File "daemon.py", line 70, in
main()
File "daemon.py", line 58, in main
daemon.run()
File "daemon.py", line 40, in run
import plugins
File "/home/user/coolq/coolq-telegram-bot/plugins/init.py", line 1, in
import automodinit
ImportError: No module named 'automodinit'
Update "None" caused error "Conflict: terminated by other long poll or webhook (409)"
Update "None" caused error "Conflict: terminated by other long poll or webhook (409)"
Update "None" caused error "Conflict: terminated by other long poll or webhook (409)"
Update "None" caused error "Conflict: terminated by other long poll or webhook (409)"
Update "None" caused error "Conflict: terminated by other long poll or webhook (409)"
巨巨们,我仍然没成功, 看我一眼. T_T
重装了一遍docker镜像,只装了py3,依然提示这些错误。应该就是py环境的问题,但是我不会 T_T (死
pip3 install automodinit
问题解决,跑起来了。
非常不好意思,automodinit其实没用上,我没注释干净
QQ群转发到tg群的消息,只显示了QQ号,没显示昵称。图片也没能转发过去。
我继续研究,也许我会再发issue哈
没有昵称需要执行下bot命令 [reload namelist]
这个是我重构之后还没解决的问题
图片转发有两个问题,一个是qq发tg收,这个涉及到一个gchat.qpic.cn这个域名海外解析有点问题,会下不下来图片,我的解决办法是在docker的/etc/hosts里写死一个国内ip
另一个是tg发qq收,air版coolq是不给这个权限的,这也是sticker_link_mode的作用,会下下来之后发一个链接给qq,指向你服务器的一个地址,当然这个得配置本机的nginx,在docker里的话复杂一些。Pro版可以直接发图片到qq,效果也还不错,不过60块半年