码线红 / twitch聊天机器人
使用Vue Skeleton制作的Twitch聊天机器人
Requires
- php: ^7.4
- vrana/adminer: 4.6.2
README
访问 截图 了解内部视图。
此应用程序基于 Vue Skeleton (1.x)。
该软件旨在安装在您的本地机器上。如果您想在公共Web服务器上安装,请通过.htpasswd
或类似方式确保public
文件夹的安全。
目录
- 包含的第三方代码
- 安装指南
chatbot.js
- 项目命令
- 端口
chatbot.json
gulpfile.json
- 聊天机器人命令
- Web UI功能
import-videos-folder.js
migration.js
- 本地化
- 链接
- 音频文件
- 已知问题
包含
- jQuery 3
- Bootstrap 4
- Font Awesome 5
- LazyLoad 17
- CSS User Agent 2
- Moment 2
- Datatables 1
- Sqlite3 5
- Vue 2
- Vue Router 3
- Vue i18n 8
- Vue Datetime Picker 2
- Vue SFC 1
安装生产版本(推荐)
必需
在您的操作系统上打开控制台,并导航到您想安装项目的位置。
使用Composer
php composer create-project --ignore-platform-reqs --no-dev codelinered/twitch-chatbot twitch-chatbot "dev-production" cd twitch-chatbot npm i --only=prod
将用户名、tmiToken、您的频道和其他频道添加到src/app/chatbot.json
node migration.js node chatbot.js
使用GIT
git clone https://github.com/CodelineRed/twitch-chatbot.git
cd twitch-chatbot
git checkout production
npm i --only=prod
将用户名、tmiToken、您的频道和其他频道添加到src/app/chatbot.json
node migration.js node chatbot.js
使用ZIP
Unix
wget -O tcb-prod.zip https://github.com/CodelineRed/twitch-chatbot/archive/production.zip unzip tcb-prod.zip
Windows 10+
curl -L -o tcb-prod.zip https://github.com/CodelineRed/twitch-chatbot/archive/production.zip tar -xf tcb-prod.zip
所有操作系统
cd twitch-chatbot-production
npm i --only=prod
将用户名、tmiToken、您的频道和其他频道添加到src/app/chatbot.json
node migration.js node chatbot.js
生成tmiToken 并点击 "连接"。
如果您需要PHP,您必须转到 使用Docker安装。
安装主/开发版本
必需
在您的操作系统上打开2个控制台,并导航到您想安装项目的位置。
使用Composer
php composer create-project --ignore-platform-reqs codelinered/twitch-chatbot twitch-chatbot
cd twitch-chatbot
npm i
gulp build
将用户名、tmiToken、您的频道和其他频道添加到src/app/chatbot.json
node migration.js node chatbot.js
在第二个控制台
gulp
使用GIT
git clone https://github.com/CodelineRed/twitch-chatbot.git
cd twitch-chatbot
git checkout main
npm i
gulp build
将用户名、tmiToken、您的频道和其他频道添加到src/app/chatbot.json
node migration.js node chatbot.js
在第二个控制台
gulp
使用ZIP
Unix
wget -O tcb-main.zip https://github.com/CodelineRed/twitch-chatbot/archive/main.zip unzip tcb-main.zip
Windows 10+
curl -L -o tcb-main.zip https://github.com/CodelineRed/twitch-chatbot/archive/main.zip tar -xf tcb-main.zip
所有操作系统
cd twitch-chatbot-main
npm i
gulp build
将用户名、tmiToken、您的频道和其他频道添加到src/app/chatbot.json
node migration.js node chatbot.js
在第二个控制台
gulp
生成tmiToken 并点击 "连接"。
打开 localhost:3000 以访问Web UI。
使用Docker安装(可选)
必需
在您的操作系统上打开控制台,并导航到解压缩或克隆的应用程序文件夹。
Unix
systemctl docker start docker-compose up -d docker run --rm --interactive --tty --volume $PWD:/app composer install --no-dev docker exec -ti twitch-chatbot php /var/www/vendor/vrana/adminer/compile.php -- Ignore error messages -- mv adminer-4.6.2.php ./adminer
Windows 10+
"c:\path\to\Docker Desktop.exe" docker-compose up -d docker run --rm --interactive --tty --volume %cd%:/app composer install --no-dev docker exec -ti twitch-chatbot php /var/www/vendor/vrana/adminer/compile.php -- Ignore error messages -- move adminer-4.6.2.php ./adminer
所有操作系统
$ npm i $ gulp build $ node migration.js $ node chatbot.js
chatbot.js
选项
项目命令
端口
chatbot.json
gulpfile.json
聊天机器人命令
聊天机器人命令(针对主播和版主)
自定义命令选项(针对主播和版主)
聊天机器人列表选项(针对主播和版主)
Web UI功能
聊天
- 时间戳
- 徽章
- 自定义用户颜色
- 以全色和斜体样式显示“/me”消息
- 欢呼
- 订阅、重新订阅、订阅礼物(随机和特定)、礼物升级
- 封禁、暂时封禁、删除
- 现在托管、被托管、被突袭、取消托管
- 可点击链接
- Twitch表情
- BetterTTV表情
- FrankerFaceZ表情
- 弹出URL
/channel/[channel]/chat
以在OBS中使用浏览器源(无像素推荐)
命令
- 冷却时间
- 活动状态
- 上次执行时间
自定义命令
- 添加命令(仅在聊天中)
- 删除命令
- 切换命令
- 更新命令(仅在聊天中)
计数器
- 弹出URL
/channel/[channel]/counter
以在OBS中使用浏览器源(像素推荐:400x400px)
播放列表
- 使用
localhost:3060
域名播放本地MP4文件。(见docker-compose.videos-folder.yml
) - 播放Twitch剪辑和视频(过往直播、精彩片段和视频上传)
- 播放YouTube视频
- 添加视频
- 编辑视频
- 跳过视频
- 移动视频
- 删除视频
- 删除已播放视频
- 删除跳过视频
- 添加播放列表
- 所有播放列表
- 编辑播放列表
- 切换播放列表
- 合并播放列表
- 删除播放列表
- 重置播放列表
- 清空播放列表
- playlistInfo命令
- 弹出URL
/channel/[channel]/player
以在OBS中使用浏览器源(像素推荐:1920x1080px) - 播放器中的视频名称叠加
- 自动填充视频名称、子名称和时长(取决于
videosFolder
、youtubeToken
和clientIdToken
设置) - 更改流标题和/或游戏动态(如果至少有一个Twitch账户连接到Twitch上的“Insanity Meets - Chatbot”应用)
自动填充
1 example_video-2020.mp4
解析为 Example Video - 2020
投票
- 开始投票
- 关闭投票
- 删除投票
- 将投票复制到表单
- 所有投票模态框
- 宣布投票到聊天按钮
- 结果到聊天按钮
- 动画获胜者(如果多个选项相等,则随机选择获胜者)
- 为获胜者播放音频(音频仅在弹出窗口中播放)
- 循环播放投票音频(音频仅在弹出窗口中播放)
- 宣布获胜者到聊天
- 多选是/否
- 将投票与抽奖结合
- 开始日期时间
- 结束日期时间
- 日期时间选择器
- 弹出URL
/channel/[channel]/poll
以在OBS中使用浏览器源(像素推荐:1000x563px,最多6个选项)
抽奖
- 开始抽奖
- 关闭抽奖
- 删除抽奖
- 将抽奖复制到表单
- 所有抽奖模态框
- 宣布抽奖到聊天按钮
- 结果到聊天按钮
- 动画获胜者
- 为获胜者播放音频(音频仅在弹出窗口中播放)
- 循环播放投票音频(音频仅在弹出窗口中播放)
- 宣布获胜者到聊天
- 自定义关键词
- 乘数
- 开始日期时间
- 结束日期时间
- 日期时间选择器
- 弹出URL
/channel/[channel]/raffle
以在OBS中使用浏览器源(像素推荐:1000x563px)
机器人
- 在聊天中拥有徽章
- 5个机器人预设(Mod4YouBot、Moobot、Nightbot、StreamElements、Streamlabs)
- 使用BetterTTV API自动填充机器人
统计
- 以图表形式显示观众数量
- 所有表情符号前15名
- Twitch表情符号前15名
- BTTV表情符号前15名
- FFZ表情符号前15名
- 前15名聊天者
- 前15个标签
- 前15个命令
- 订阅者数量
- 新订阅者数量
- 新付费订阅者数量
- 新Prime订阅者数量
- 直接赠送的订阅者数量
- 随机赠送的订阅者数量
- 重新订阅者数量
- 付费重新订阅者数量
- Prime重新订阅者数量
- 清除数量
- 删除消息数量
- 超时消息数量
- 超时用户数量
- 被禁用用户数量
- 新用户数量
- 所有用户数量
- 聊天消息数量
- 使用表情符号数量
- 欢呼数量
- Bits数量
- 观众最小值
- 观众最大值
- 观众平均值
import-videos-folder.js
选项
示例执行:node import-videos-folder.js -c CodelineRed
导入要求
videosFolder
在chatbot.json
中指向现有文件夹videosFolder
下的每个文件夹都对应一个播放列表- 只允许MP4文件
脚本只导入数据库中不存在的视频。
migration.js
选项
示例执行: node migration.js -d up
本地化
- Web UI:
i18n-locales.js
- Web UI:
langswitch.vue
- Node:
locales.js
链接
- Twitch 消息接口
- Twitch TMI 令牌
- Twitch API 令牌
- Twitch API 参考
- YouTube API 令牌
- BetterTTV API
- FrankerFaceZ API
- Twitch 录像 API
- Twitch 录像嵌入
- Twitch 视频嵌入
- ESLint Js 规则
- ESLint Vue 规则
- ESLint 导入规则
- Sass Lint 规则
- Vue SFC
- 路径到正则表达式
- Moment 解析(日期格式)
- SCSS 烟花
音频文件
- Airy 由 CodelineRed
- Ambi EP 由 CodelineRed
- 大力鼓掌
- Brassy 由 CodelineRed
- C-Space 由 CodelineRed
- 欢呼鼓掌
- 合奏由 CodelineRed
- 欢呼声 1
- 欢呼声 2
- 欢呼声 3
- 自由 由 Dracon
- 希望 由 Dracon
- 记忆宫殿 由 Dracon
- 和平 由 Dracon
- 山谷 由 Dracon
- 怀疑的声音 由 Dracon
- 获胜者深沉的声音
- 获胜者女性声音
- 获胜者机器人声音
已知问题
- 有时用户没有插入到 channel_user_join 中。这正在进行调查。
- 在添加新消息后,聊天组件中的表情可以闪烁
- 一个跟随 Twitch 表情(例如 🧡 CoolCat)的 Emoji 被错误地解释为
emote.encodeTwitch()
- API 发送了错误的
userstate.emotes
对象
- API 发送了错误的