系统架构
# ChopperBot系统架构
说明
ChopperBot作为一个视频切片剪辑平台,它具有自动化,多功能,可扩展,易搭建的特性。为了实现这些特性,我们将ChopperBot的功能按性质分成了多个模块
,其中每个模块中又包含了许多插件,简单来说ChopperBot是由模块和插件构成,不同模块和插件的搭配使用将带来不同的效果。
接下来为了便于大家开发我们来了解一下ChopperBot的架构
# ChopperBot模块介绍
模块名 | 模块介绍 |
---|---|
ChopperBot | ChopperBot本身,没错整个系统本身也是一个模块,而众多模块则作为ChopperBot的插件进行启动,当然ChopperBot也包含了一些系统线程池,工具等等插件,在之后会详细了解到 |
File | 文件模块, ChopperBot考虑到人人都能轻松搭建ChopperBot,没有使用数据库等工具,取而代之的是本地json文件,为了能流程高效的进行文件读写,文件模块提供了多种工具以及文件缓存池来进行高效读写 |
Creeper | 爬虫模块,负责爬取各个平台的热门数据,直播信息等等,除了爬取数据也会协助进行账号登录和视频发布 |
Hot | 热门模块,负责监控每个平台的热门模块,热门直播,根据用户配置文件来进行热门直播的推荐和爬取任务发送。也会根据用户关注的主播来进行自动爬取 |
LiveVideo | 直播视频模块,主要对爬取的直播视频进行存储,记录,管理,并进行一些视频的基础操作 |
BarrageAnalysis | 弹幕分析模块,为所有弹幕进行打分并筛选出弹幕高分区间作为切片参考,同时也会对弹幕高分区间进行文本分类(游戏,搞笑,争论),为视频打上标签 |
VideoSection | 视频切片模块,对已有的直播视频进行切片,并做好分类 |
Process | 切片加工模块,对已有的切片使用AI算法获取视频标题,视频封面,视频简介以及视频剪辑创作等功能 |
Account | 账号模块,负责对各个视频平台的账号进行管理,打造账号的人设标签(例如:LOL搞笑,Apex操作),来筛选切片并输入给账号进行发布 |
DIY | 客制化模块,用户可以参考开发指南来自行开发一些插件帮助自己更好的使用ChopperBot |
# ChopperBot的文件系统
为了方便启动,ChopperBot不使用任何需要额外安装的(关系型OR非关系型)数据库等软件,取而代之的是使用json文件以及内存对ChopperBot进行配置和关键信息存储 ChopperBot将会创建 ./config根目录,并在其中安装所有模块的文件夹,整个ChopperBot的数据世界都将在这一个目录中发生,当然你也不用担心 频繁大量的IO流会使项目性能降低,针对ChopperBot的文件操作我们专门使用了文件缓存技术,来实现项目对文件快速的响应。
# ChopperBot的启动过程
代码请见 InitWorld (opens new window) 👈
# 项目文件层级关系
+-- ChopperBot
| +-- 模块名
| | +-- 插件
| | +-- 插件
| +-- 模块名
1
2
3
4
5
2
3
4
5
在ChopperBot中,模块通常作为项目中的一个maven子类,插件作为模块中的某一个类。但这并不是严格要求的,只是为了编写代码的时候方便理解。
帮助我们改善此页面! (opens new window)
上次更新: 2023/08/03, 00:54:55