|
6 years ago | |
---|---|---|
dist | 6 years ago | |
src | 6 years ago | |
.gitignore | 6 years ago | |
LICENSE | 6 years ago | |
README.md | 6 years ago | |
config.example.json | 6 years ago | |
package.json | 6 years ago | |
tsconfig.json | 6 years ago | |
tslint.json | 6 years ago | |
yarn.lock | 6 years ago |
是一个可以订阅 Twitter 并转发到 QQ 的 Bot。
npm i -g cqhttp-twitter-bot
当然还需要配合 coolq-http-api 和 酷Q 才能工作。
它们是什么?
观察它们的文档:https://cqhttp.cc/ https://cqp.cc/t/15124
因为需要发图所以必须用 酷Q Pro 才行。酷Q Pro 是收费的,一个月 10 块左右。
为什么要发图?
因为 twitter 有很多种,转推、回复、带图片的、带视频的。如果直接发文字的话体验很不好,估计也没人会需要吧。
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 | (必填) |
work_interval | 对单个订阅两次拉取更新的最少间隔时间(秒) | 60 |
webshot_delay | 抓取网页截图时等待网页加载的延迟时长(毫秒) | 5000 |
lockfile | 本地保存订阅信息以便下次启动时恢复 | subscriber.lock |
loglevel | 日志调试等级 | info |
示例文件在 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 秒应该是比较保险了。
如果在同一个聊天里的会话有重复,不会被去重。例如在某聊天中同时订阅了特朗普和 包含特朗普的列表 A,那么每次特朗普发推你都会收到两条一样的推送。这个是因为 API 的构造 本身决定的,要是给你去重的话还得存给你推过哪些,很麻烦,懒得做,意义不大,就注意不要 这样就好了。
列表中是没有回复的。实际上你看 Twitter 的列表本来也没有回复。个人的时间轴会显示 回复。
转推是没有图片的。这个也是 API 的问题。这个人原创的 twitter 的话如果有图片 会另外拉取一波图片附加在消息里。如果是视频的话则是封面图。
怎么查看翻译?QQ 点开图片,长按 -> 提取图中文字 -> 译