|
il y a 6 ans | |
---|---|---|
dist | il y a 6 ans | |
src | il y a 6 ans | |
.gitignore | il y a 6 ans | |
LICENSE | il y a 6 ans | |
README.md | il y a 6 ans | |
config.example.json | il y a 6 ans | |
package.json | il y a 6 ans | |
tsconfig.json | il y a 6 ans | |
tslint.json | il y a 6 ans | |
yarn.lock | il y a 6 ans |
是一个可以订阅 Twitter 并转发到 QQ 的 Bot。
npm i -g cqhttp-twitter-bot
当然还需要配合 coolq-http-api 和 酷Q 才能工作。
它们是什么?
观察它们的文档:https://cqhttp.cc/ https://cqp.cc/t/15124
cqhttp-twitter-bot config.json
它会从命令传入的 JSON 配置文件里读取配置,配置说明如下
配置项 | 说明 | 默认 |
---|---|---|
cq_ws_host | CQHTTP Websocket 服务端地址 | 127.0.0.1 |
cq_ws_port | CQHTTP Websocket 服务端口 | 6700 |
cq_access_token | CQHTTP access_token | (空) |
twitter_consumer_key | Twitter App consumer_key | (必填) |
twitter_consumer_secret | Twitter App consumer_secret | (必填) |
twitter_access_token_key | Twitter App access_token_key | (必填) |
twitter_access_token_secret | Twitter App access_token_secret | (必填) |
mode | 工作模式,0 为图文模式,1 为纯文本模式。图文模式必须使用 酷Q Pro。 | 0 |
work_interval | 对单个订阅两次拉取更新的最少间隔时间(秒) | 60 |
webshot_delay | 抓取网页截图时等待网页加载的延迟时长(毫秒) | 5000 |
lockfile | 本地保存订阅信息以便下次启动时恢复 | subscriber.lock |
loglevel | 日志调试等级 | info |
redis | 启用 Redis | false |
redis_host | Redis Host | 127.0.0.1 |
redis_port | Redis Port | 6379 |
redis_expire_time | Redis key 过期时间(秒) | 43200 |
示例文件在 config.example.json
Bot 启动了以后就可以在 QQ 里用命令了。命令有:
链接可以是一个个人的时间轴或者是列表,支持下面几种格式:
个人:
列表:
Twitter 这两个(时间轴和列表) API 对单个应用的限制是 900次/15min, 也就是最快可以 1s 一次。这个 Bot 的工作方式是轮流拉取,即: 每次从队首拿出任务,完成后放到队尾。在不达到 1s 一次的前提下, 总体请求速度会随着订阅量的增加而加快:例如当 work_interval 设置为 60 时, 如果只有 1 个订阅,那么每分钟只有 1 个请求。如果有 2 个订阅,每分钟则有 2 个请求。 如果有 70 个订阅,每分钟仍然只有 60 个请求。
上面说的每分钟之类指的是休眠的时长,工作时间不算在内。因此实际的 API 调用 频率要比这个低。
webshot_delay 如果设成 0 的话肯定不行的,会出现正在加载的界面。这个具体多 少最合适可以自己试,5 秒应该是比较保险了。
如果启用了 Redis,同一聊天中 Redis 过期时间内的重复推文会被去重, 如同一列表中不同人转推等。
转推是没有图片的。这个是 API 的问题。这个人原创的 twitter 的话如果有图片 会另外拉取一波图片附加在消息里。如果是视频的话则是封面图。
怎么查看翻译?QQ 点开图片,长按 -> 提取图中文字 -> 译