diff --git a/.idea/.gitignore b/.idea/.gitignore index 13566b8..a50a9e8 100644 --- a/.idea/.gitignore +++ b/.idea/.gitignore @@ -6,3 +6,15 @@ # Datasource local storage ignored files /dataSources/ /dataSources.local.xml +# Project exclude paths +/console/target +/common/target/ +/HotModule/target/ +/FileModule/target/ +/BarrageModule/target/ +/SectionModule/target/ +/SectionWorkModule/target/ +/PublishModule/target/ +/LiveRecordModule/target/ +/doc/docs/.vuepress/dist/ +/CreeperModule/target/ diff --git a/CreeperModule/src/main/java/org/example/init/CreeperModuleInitMachine.java b/CreeperModule/src/main/java/org/example/init/module/CreeperModuleInitMachine.java similarity index 71% rename from CreeperModule/src/main/java/org/example/init/CreeperModuleInitMachine.java rename to CreeperModule/src/main/java/org/example/init/module/CreeperModuleInitMachine.java index 7a442b4..c46fc4a 100644 --- a/CreeperModule/src/main/java/org/example/init/CreeperModuleInitMachine.java +++ b/CreeperModule/src/main/java/org/example/init/module/CreeperModuleInitMachine.java @@ -1,5 +1,8 @@ -package org.example.init; +package org.example.init.module; +import org.example.init.CreeperConfigInitMachine; +import org.example.init.ModuleInitMachine; +import org.example.init.TaskCenterInitMachine; import org.example.log.ChopperLogFactory; import org.example.log.LoggerType; import org.slf4j.Logger; @@ -14,7 +17,7 @@ import static org.example.constpool.ConstPool.FILE; * @author Genius * @date 2023/07/29 01:58 **/ -public class CreeperModuleInitMachine extends ModuleInitMachine{ +public class CreeperModuleInitMachine extends ModuleInitMachine { public CreeperModuleInitMachine() { super(List.of(FILE), diff --git a/FileModule/src/main/java/org/example/init/FileModuleInitMachine.java b/FileModule/src/main/java/org/example/init/module/FileModuleInitMachine.java similarity index 67% rename from FileModule/src/main/java/org/example/init/FileModuleInitMachine.java rename to FileModule/src/main/java/org/example/init/module/FileModuleInitMachine.java index d985b97..2984080 100644 --- a/FileModule/src/main/java/org/example/init/FileModuleInitMachine.java +++ b/FileModule/src/main/java/org/example/init/module/FileModuleInitMachine.java @@ -1,6 +1,8 @@ -package org.example.init; +package org.example.init.module; import org.example.constpool.ConstPool; +import org.example.init.FileCacheManagerInitMachine; +import org.example.init.ModuleInitMachine; import org.example.log.ChopperLogFactory; import org.example.log.LoggerType; @@ -10,7 +12,7 @@ import java.util.List; * @author Genius * @date 2023/07/22 18:47 **/ -public class FileModuleInitMachine extends ModuleInitMachine{ +public class FileModuleInitMachine extends ModuleInitMachine { public FileModuleInitMachine() { super(List.of( diff --git a/HotModule/src/main/java/org/example/init/HotModuleConfigInitMachine.java b/HotModule/src/main/java/org/example/init/HotConfigInitMachine.java similarity index 51% rename from HotModule/src/main/java/org/example/init/HotModuleConfigInitMachine.java rename to HotModule/src/main/java/org/example/init/HotConfigInitMachine.java index 5f988f5..a280d52 100644 --- a/HotModule/src/main/java/org/example/init/HotModuleConfigInitMachine.java +++ b/HotModule/src/main/java/org/example/init/HotConfigInitMachine.java @@ -5,26 +5,17 @@ package org.example.init; * @date 2023/07/21 00:18 **/ -import org.example.cache.FileCache; -import org.example.cache.FileCacheManagerInstance; -import org.example.config.CreeperLogConfigFile; import org.example.config.HotModuleConfig; import org.example.constpool.PluginName; -import org.example.exception.FileCacheException; import org.example.log.ChopperLogFactory; import org.example.log.LoggerType; -import org.example.util.FileUtil; -import org.example.util.JsonFileUtil; -import org.slf4j.Logger; - -import java.util.Map; /** * 热门模块配置文件初始化机器 */ -public class HotModuleConfigInitMachine extends ConfigInitMachine { +public class HotConfigInitMachine extends ConfigInitMachine { - public HotModuleConfigInitMachine() { + public HotConfigInitMachine() { super(PluginName.HOT_CONFIG_PLUGIN ,new HotModuleConfig() ,ChopperLogFactory.getLogger(LoggerType.Hot)); diff --git a/HotModule/src/main/java/org/example/init/HotModuleGuardInitMachine.java b/HotModule/src/main/java/org/example/init/HotGuardInitMachine.java similarity index 97% rename from HotModule/src/main/java/org/example/init/HotModuleGuardInitMachine.java rename to HotModule/src/main/java/org/example/init/HotGuardInitMachine.java index 7915533..2d1eb2f 100644 --- a/HotModule/src/main/java/org/example/init/HotModuleGuardInitMachine.java +++ b/HotModule/src/main/java/org/example/init/HotGuardInitMachine.java @@ -25,10 +25,10 @@ import static org.example.constpool.HotModuleConstPool.LOAD_TASK_CLASS_ROOT; * @author Genius * @date 2023/07/21 09:58 **/ -public class HotModuleGuardInitMachine extends CommonInitMachine{ +public class HotGuardInitMachine extends CommonInitMachine{ - public HotModuleGuardInitMachine() { + public HotGuardInitMachine() { super( List.of(PluginName.HOT_CONFIG_PLUGIN, PluginName.FILE_CACHE_PLUGIN), diff --git a/HotModule/src/main/java/org/example/init/HotModuleInitMachine.java b/HotModule/src/main/java/org/example/init/module/HotModuleInitMachine.java similarity index 50% rename from HotModule/src/main/java/org/example/init/HotModuleInitMachine.java rename to HotModule/src/main/java/org/example/init/module/HotModuleInitMachine.java index 52dbdfd..0816252 100644 --- a/HotModule/src/main/java/org/example/init/HotModuleInitMachine.java +++ b/HotModule/src/main/java/org/example/init/module/HotModuleInitMachine.java @@ -1,7 +1,10 @@ -package org.example.init; +package org.example.init.module; import org.example.constpool.ConstPool; -import org.example.core.recommend.HeatRecommendation; +import org.example.init.HeatRecommendationInitMachine; +import org.example.init.HotConfigInitMachine; +import org.example.init.HotGuardInitMachine; +import org.example.init.ModuleInitMachine; import org.example.log.ChopperLogFactory; import org.example.log.LoggerType; @@ -15,15 +18,15 @@ import java.util.List; /** * 整个热门模块的模块初始化类 */ -public class HotModuleInitMachine extends ModuleInitMachine{ +public class HotModuleInitMachine extends ModuleInitMachine { public HotModuleInitMachine() { super( - List.of(ConstPool.FILE), + List.of(ConstPool.FILE,ConstPool.CREEPER), ChopperLogFactory.getLogger(LoggerType.Hot), List.of( - new HotModuleConfigInitMachine(), //热门模块配置文件插件 - new HotModuleGuardInitMachine(), //平台热门直播,热门模块监控插件 + new HotConfigInitMachine(), //热门模块配置文件插件 + new HotGuardInitMachine(), //平台热门直播,热门模块监控插件 new HeatRecommendationInitMachine() //平台热门直播推送插件 ), ConstPool.HOT diff --git a/common/src/main/java/org/example/init/CommonInitMachine.java b/common/src/main/java/org/example/init/CommonInitMachine.java index dfd44c4..a6e1637 100644 --- a/common/src/main/java/org/example/init/CommonInitMachine.java +++ b/common/src/main/java/org/example/init/CommonInitMachine.java @@ -25,6 +25,7 @@ public abstract class CommonInitMachine implements ComponentInitMachine{ + /** * 注册插件 */ @@ -117,4 +118,8 @@ public abstract class CommonInitMachine implements ComponentInitMachine{ public void afterInit() { } + + public List getNeedPlugins() { + return needPlugins; + } } diff --git a/common/src/main/java/org/example/init/ModuleInitMachine.java b/common/src/main/java/org/example/init/ModuleInitMachine.java index 2c818ea..676da30 100644 --- a/common/src/main/java/org/example/init/ModuleInitMachine.java +++ b/common/src/main/java/org/example/init/ModuleInitMachine.java @@ -88,6 +88,11 @@ public abstract class ModuleInitMachine extends CommonInitMachine{ } + public String getModuleName() { + return moduleName; + } + + @Override public void successLog() { successLog(String.format("✅ <%s> init success! init %s plugins ! ",moduleName,initMachines.size())); diff --git a/common/src/main/java/org/example/util/PluginUtil.java b/common/src/main/java/org/example/util/PluginUtil.java new file mode 100644 index 0000000..75f49cd --- /dev/null +++ b/common/src/main/java/org/example/util/PluginUtil.java @@ -0,0 +1,93 @@ +package org.example.util; + +import lombok.AllArgsConstructor; +import lombok.Data; +import org.example.exception.InitException; +import org.example.init.InitMachine; +import org.example.init.ModuleInitMachine; + +import java.util.*; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicInteger; + +/** + * plugin工具,用来排序module初始化顺序以及检测是否存在相互依赖 + * @author Genius + * @date 2023/07/31 17:17 + **/ +public class PluginUtil { + + @Data + @AllArgsConstructor + static class NeedPlugin{ + private InitMachine initMachine; + private int needTimes; + } + + static class NeedTimesComparator implements Comparator { + @Override + public int compare(NeedPlugin p1,NeedPlugin p2) { + return p2.getNeedTimes() - p1.getNeedTimes(); + } + } + + public static List getAllModuleInit() throws Exception { + List classes = ClassUtil.getClassesInPackage("org.example.init.module"); + List list = new ArrayList<>(); + for (String aClass : classes) { + list.add((InitMachine) Class.forName(aClass).getDeclaredConstructor().newInstance()); + } + return sortModuleInit(list); + + } + + private static List sortModuleInit(List list){ + Map needPlugins = new HashMap<>(); + Map NameToInitMachine = new HashMap<>(); + for (InitMachine initMachine : list) { + String moduleName = ((ModuleInitMachine) initMachine).getModuleName(); + if(!NameToInitMachine.containsKey(moduleName)){ + needPlugins.put(initMachine,0); + NameToInitMachine.put(moduleName,initMachine); + }else{ + throw new InitException("Found same module name!"); + } + } + + for(InitMachine initMachine:list){ + List needPluginsList = ((ModuleInitMachine) initMachine).getNeedPlugins(); + needPluginsList.forEach( + plugin->{ + InitMachine obj = NameToInitMachine.get(plugin); + needPlugins.put(obj,needPlugins.get(obj)+1); + } + ); + } + List machines = new ArrayList<>(); + int n = needPlugins.size(); + + while(machines.size(){ + if(v==0){ + machines.add(k); + ((ModuleInitMachine)k).getNeedPlugins().forEach( + h->{ + InitMachine machine = NameToInitMachine.get(h); + needPlugins.put(machine,needPlugins.get(machine)-1); + } + ); + needPlugins.put(k,v-1); + isLoop.set(false); + } + } + ); + if(isLoop.get()){ + throw new InitException("Found loop depend on"); + } + } + Collections.reverse(machines); + return machines; + } +} diff --git a/config/Creeper/log/creeper-2023-07-31.log b/config/Creeper/log/creeper-2023-07-31.log deleted file mode 100644 index 71f559c..0000000 --- a/config/Creeper/log/creeper-2023-07-31.log +++ /dev/null @@ -1,6 +0,0 @@ -{ - "data":{ - "task":[] - }, - "updateTime":"2023-07-31 01:13:20" -} \ No newline at end of file diff --git a/console/src/main/java/org/example/init/ModuleSrcConfigFileInitMachine.java b/console/src/main/java/org/example/init/ChopperBotConfigFileInitMachine.java similarity index 95% rename from console/src/main/java/org/example/init/ModuleSrcConfigFileInitMachine.java rename to console/src/main/java/org/example/init/ChopperBotConfigFileInitMachine.java index 47e7185..fd4244c 100644 --- a/console/src/main/java/org/example/init/ModuleSrcConfigFileInitMachine.java +++ b/console/src/main/java/org/example/init/ChopperBotConfigFileInitMachine.java @@ -16,7 +16,6 @@ import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Map; -import java.util.concurrent.ConcurrentHashMap; /** * @author Genius @@ -24,13 +23,13 @@ import java.util.concurrent.ConcurrentHashMap; **/ @Component -public class ModuleSrcConfigFileInitMachine extends CommonInitMachine { +public class ChopperBotConfigFileInitMachine extends CommonInitMachine { ModuleSrcConfigFile moduleSrcConfigFile; private boolean initFlag; - public ModuleSrcConfigFileInitMachine() { + public ChopperBotConfigFileInitMachine() { super( ChopperLogFactory.getLogger(LoggerType.System), PluginName.MODULE_CONFIG_PLUGIN); moduleSrcConfigFile = new ModuleSrcConfigFile(); diff --git a/console/src/main/java/org/example/init/InitWorld.java b/console/src/main/java/org/example/init/InitWorld.java index 8a11c08..89fcc03 100644 --- a/console/src/main/java/org/example/init/InitWorld.java +++ b/console/src/main/java/org/example/init/InitWorld.java @@ -1,11 +1,13 @@ package org.example.init; +import org.example.util.ClassUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.context.ConfigurableApplicationContext; import org.springframework.stereotype.Component; import javax.annotation.PostConstruct; +import java.io.IOException; /** * @author Genius @@ -17,7 +19,7 @@ import javax.annotation.PostConstruct; public class InitWorld { @Autowired - ModuleSrcConfigFileInitMachine moduleSrcConfigFileInitMachine; + ChopperBotConfigFileInitMachine moduleSrcConfigFileInitMachine; private ConfigurableApplicationContext ctx; @@ -29,7 +31,13 @@ public class InitWorld { @PostConstruct private void init(){ if(moduleSrcConfigFileInitMachine.isInitFlag()){ - WorldInitMachine world = new WorldInitMachine(); + WorldInitMachine world = null; + try { + world = new WorldInitMachine(); + } catch (Exception e) { + close(); + return; + } if (world.init()) { world.afterInit(); return; @@ -37,8 +45,11 @@ public class InitWorld { world.shutdown(); } } + close(); + } + + private void close(){ int exit = SpringApplication.exit(ctx, () -> 0); System.exit(exit); } - } diff --git a/console/src/main/java/org/example/init/WorldInitMachine.java b/console/src/main/java/org/example/init/WorldInitMachine.java index 5b72456..45fff9e 100644 --- a/console/src/main/java/org/example/init/WorldInitMachine.java +++ b/console/src/main/java/org/example/init/WorldInitMachine.java @@ -1,11 +1,16 @@ package org.example.init; +import lombok.AllArgsConstructor; +import lombok.Data; +import org.example.exception.InitException; import org.example.log.ChopperLogFactory; import org.example.log.LoggerType; import org.example.thread.ChopperBotGuardPool; import org.example.thread.oddjob.OddJobBoy; +import org.example.util.ClassUtil; +import org.example.util.PluginUtil; -import java.util.List; +import java.util.*; import java.util.function.Supplier; /** @@ -14,13 +19,13 @@ import java.util.function.Supplier; **/ public class WorldInitMachine extends ModuleInitMachine{ + + + private static final String githubUrl = "https://github.com/969025903/ChopperBot"; - public WorldInitMachine() { - super(List.of( - new FileModuleInitMachine(), - new CreeperModuleInitMachine(), - new HotModuleInitMachine() - ), "ChopperBot", ChopperLogFactory.getLogger(LoggerType.System)); + + public WorldInitMachine() throws Exception { + super(PluginUtil.getAllModuleInit(), "ChopperBot", ChopperLogFactory.getLogger(LoggerType.System)); } diff --git a/doc/docs/.vuepress/config/nav.js b/doc/docs/.vuepress/config/nav.js index 9d3c598..b1fd3bc 100644 --- a/doc/docs/.vuepress/config/nav.js +++ b/doc/docs/.vuepress/config/nav.js @@ -2,10 +2,11 @@ module.exports = [ { text: "首页", link: "/" }, { text: "指南", - link: "/pages/24112f/", + link: "/pages/779a67/", items: [ - { text: "快速入门", link: "/pages/24112f/" }, - { text: "技术文档", link: "/pages/779a6e/" }, + { text: "快速开始", link: "/pages/24112f/" }, + { text: "开发指南", link: "/pages/779a67/" }, + { text: "技术文档", link: "/pages/e3a691/" }, ] }, { diff --git a/doc/docs/.vuepress/public/img/SAD.png b/doc/docs/.vuepress/public/img/SAD.png new file mode 100644 index 0000000..fe4016c Binary files /dev/null and b/doc/docs/.vuepress/public/img/SAD.png differ diff --git a/doc/docs/01.指南/01.开发指南/01.快速开发/01.系统架构.md b/doc/docs/01.指南/01.开发指南/01.快速开发/01.系统架构.md new file mode 100644 index 0000000..dc534f6 --- /dev/null +++ b/doc/docs/01.指南/01.开发指南/01.快速开发/01.系统架构.md @@ -0,0 +1,29 @@ +--- +title: 系统架构 +date: 2021-12-14 18:15:59 +permalink: /pages/779a67/ +article: false +--- +[[toc]] +## ChopperBot系统架构 +::: tip 说明 +ChopperBot作为一个视频切片剪辑平台,它具有自动化,多功能,可扩展,易搭建的特性。为了实现这些特性,我们将ChopperBot的功能按性质分成了多个模块 +,其中每个模块中又包含了许多插件,简单来说ChopperBot是由模块和插件构成,不同模块和插件的搭配使用将带来不同的效果。 +

接下来为了便于大家开发我们来了解一下ChopperBot的架构 +::: + +![image](https://mynoteimages.oss-cn-hangzhou.aliyuncs.com/20230731145824602.png) + +## ChopperBot模块介绍 +| 模块名 | 模块介绍 | +| :-: | :-: +| ChopperBot| ChopperBot本身,没错整个系统本身也是一个模块,而众多模块则作为ChopperBot的插件进行启动,当然ChopperBot也包含了一些系统线程池,工具等等插件,在之后会详细了解到 | +| File |文件模块, ChopperBot考虑到人人都能轻松搭建ChopperBot,没有使用数据库等工具,取而代之的是本地json文件,为了能流程高效的进行文件读写,文件模块提供了多种工具以及文件缓存池来进行高效读写| +| Creeper | 爬虫模块,负责爬取各个平台的热门数据,直播信息等等,除了爬取数据也会协助进行账号登录和视频发布 | +| Hot | 热门模块,负责监控每个平台的热门模块,热门直播,根据用户配置文件来进行热门直播的推荐和爬取任务发送。也会根据用户关注的主播来进行自动爬取 | +| LiveVideo | 直播视频模块,主要对爬取的直播视频进行存储,记录,管理,并进行一些视频的基础操作 | +| BarrageAnalysis | 弹幕分析模块,为所有弹幕进行打分并筛选出弹幕高分区间作为切片参考,同时也会对弹幕高分区间进行文本分类(游戏,搞笑,争论),为视频打上标签 | +| VideoSection | 视频切片模块,对已有的直播视频进行切片,并做好分类 | +| Process | 切片加工模块,对已有的切片使用AI算法获取视频标题,视频封面,视频简介以及视频剪辑创作等功能 | +| Account | 账号模块,负责对各个视频平台的账号进行管理,打造账号的人设标签(例如:LOL搞笑,Apex操作),来筛选切片并输入给账号进行发布| +| DIY | 客制化模块,用户可以参考开发指南来自行开发一些插件帮助自己更好的使用ChopperBot | diff --git a/doc/docs/01.指南/01.开发指南/01.快速开发/02.模块与插件.md b/doc/docs/01.指南/01.开发指南/01.快速开发/02.模块与插件.md new file mode 100644 index 0000000..3ed1070 --- /dev/null +++ b/doc/docs/01.指南/01.开发指南/01.快速开发/02.模块与插件.md @@ -0,0 +1,16 @@ +--- +title: 模块与插件 +date: 2023-07-31 01:56:35 +permalink: /pages/c30e11/ +--- +[[toc]] +## 项目文件层级关系 +``` ++-- ChopperBot +| +-- 模块名 +| | +-- 插件 +| | +-- 插件 +| +-- 模块名 +``` +在ChopperBot中,模块通常作为项目中的一个maven子类,插件作为模块中的某一个类,但这并不是严格要求的,只是为了编写代码的时候方便理解。 +## InitMachine diff --git a/doc/docs/01.指南/01.开发指南/01.快速开发/03.爬虫模块.md b/doc/docs/01.指南/01.开发指南/01.快速开发/03.爬虫模块.md new file mode 100644 index 0000000..14b2628 --- /dev/null +++ b/doc/docs/01.指南/01.开发指南/01.快速开发/03.爬虫模块.md @@ -0,0 +1,5 @@ +--- +title: 爬虫脚本编写 +date: 2023-07-31 02:05:34 +permalink: /pages/63a89d/ +--- diff --git a/doc/docs/01.指南/01.开发指南/01.快速开发/04.日志框架.md b/doc/docs/01.指南/01.开发指南/01.快速开发/04.日志框架.md new file mode 100644 index 0000000..1586793 --- /dev/null +++ b/doc/docs/01.指南/01.开发指南/01.快速开发/04.日志框架.md @@ -0,0 +1,5 @@ +--- +title: 日志框架 +date: 2023-07-31 02:07:00 +permalink: /pages/e3eba5/ +--- diff --git a/doc/docs/01.指南/01.开发指南/01.快速开发/05.配置文件.md b/doc/docs/01.指南/01.开发指南/01.快速开发/05.配置文件.md new file mode 100644 index 0000000..86329b5 --- /dev/null +++ b/doc/docs/01.指南/01.开发指南/01.快速开发/05.配置文件.md @@ -0,0 +1,6 @@ +--- +title: 配置文件 +date: 2023-07-31 02:10:01 +permalink: /pages/1c428e/ +--- + diff --git a/doc/docs/01.指南/01.开发指南/02.系统插件/01.文件缓存插件.md b/doc/docs/01.指南/01.开发指南/02.系统插件/01.文件缓存插件.md new file mode 100644 index 0000000..175ee6a --- /dev/null +++ b/doc/docs/01.指南/01.开发指南/02.系统插件/01.文件缓存插件.md @@ -0,0 +1,5 @@ +--- +title: 文件缓存插件 +date: 2023-07-31 02:08:42 +permalink: /pages/ce59a2/ +--- diff --git a/doc/docs/01.指南/01.开发指南/02.系统插件/02.热度推荐插件.md b/doc/docs/01.指南/01.开发指南/02.系统插件/02.热度推荐插件.md new file mode 100644 index 0000000..0b3c154 --- /dev/null +++ b/doc/docs/01.指南/01.开发指南/02.系统插件/02.热度推荐插件.md @@ -0,0 +1,5 @@ +--- +title: 热度推荐插件 +date: 2023-07-31 02:09:15 +permalink: /pages/0f9d04/ +--- diff --git a/doc/docs/01.指南/01.开发指南/02.系统插件/03.热度监控插件.md b/doc/docs/01.指南/01.开发指南/02.系统插件/03.热度监控插件.md new file mode 100644 index 0000000..0590faa --- /dev/null +++ b/doc/docs/01.指南/01.开发指南/02.系统插件/03.热度监控插件.md @@ -0,0 +1,5 @@ +--- +title: 热度监控插件 +date: 2023-07-31 02:09:26 +permalink: /pages/1a5970/ +--- diff --git a/doc/docs/01.指南/01.开发指南/02.系统插件/04.爬虫任务中心插件.md b/doc/docs/01.指南/01.开发指南/02.系统插件/04.爬虫任务中心插件.md new file mode 100644 index 0000000..81557c5 --- /dev/null +++ b/doc/docs/01.指南/01.开发指南/02.系统插件/04.爬虫任务中心插件.md @@ -0,0 +1,5 @@ +--- +title: 爬虫任务中心插件 +date: 2023-07-31 02:09:42 +permalink: /pages/691628/ +--- diff --git a/doc/docs/01.指南/01.快速入门/01.简介.md b/doc/docs/06.快速开始/01.快速开始/01.简介.md similarity index 100% rename from doc/docs/01.指南/01.快速入门/01.简介.md rename to doc/docs/06.快速开始/01.快速开始/01.简介.md diff --git a/doc/docs/01.指南/01.快速入门/02.快速开始.md b/doc/docs/06.快速开始/01.快速开始/02.快速开始.md similarity index 100% rename from doc/docs/01.指南/01.快速入门/02.快速开始.md rename to doc/docs/06.快速开始/01.快速开始/02.快速开始.md diff --git a/doc/docs/01.指南/02.技术文档/06.common/01.目录.md b/doc/docs/07.技术文档/01.模块文档/01.common/01.目录.md similarity index 100% rename from doc/docs/01.指南/02.技术文档/06.common/01.目录.md rename to doc/docs/07.技术文档/01.模块文档/01.common/01.目录.md diff --git a/doc/docs/01.指南/02.技术文档/01.FileModule/01.目录.md b/doc/docs/07.技术文档/01.模块文档/02.FileModule/01.目录.md similarity index 100% rename from doc/docs/01.指南/02.技术文档/01.FileModule/01.目录.md rename to doc/docs/07.技术文档/01.模块文档/02.FileModule/01.目录.md diff --git a/doc/docs/01.指南/02.技术文档/01.FileModule/02.FileCache.md b/doc/docs/07.技术文档/01.模块文档/02.FileModule/02.FileCache.md similarity index 100% rename from doc/docs/01.指南/02.技术文档/01.FileModule/02.FileCache.md rename to doc/docs/07.技术文档/01.模块文档/02.FileModule/02.FileCache.md diff --git a/doc/docs/index.md b/doc/docs/index.md index 28a475c..86427bd 100644 --- a/doc/docs/index.md +++ b/doc/docs/index.md @@ -56,7 +56,7 @@ postList: none ### 参与贡献 -欢迎各路好汉一起来参与完善 Assistant,我们期待你的 PR! +欢迎各路好汉一起来参与完善 ChopperBot,我们期待你的 PR! - 贡献代码:代码地址 [ChopperBot](https://github.com/969025903/ChopperBot) ,欢迎提交 Issue 或者 Pull Requests - 维护文档:文档地址 [ChopperBot-Doc](https://github.com/twj666/Chopper-Doc) ,欢迎参与翻译和修订