diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index 1dca216..0000000 --- a/.gitattributes +++ /dev/null @@ -1,9 +0,0 @@ -*.md linguist-language=Java -*.yml linguist-language=Java -*.html linguist-language=Java -*.js linguist-language=Java -*.xml linguist-language=Java -*.css linguist-language=Java -*.sql linguist-language=Java -*.uml linguist-language=Java -*.cmd linguist-language=Java \ No newline at end of file diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 1a93568..0000000 --- a/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -**/logs -**/.idea -**/cachedata -**/target -**/*.iml -**/.DS_Store - diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 261eeb9..0000000 --- a/LICENSE +++ /dev/null @@ -1,201 +0,0 @@ - Apache License - Version 2.0, January 2004 - http://www.apache.org/licenses/ - - TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - - 1. Definitions. - - "License" shall mean the terms and conditions for use, reproduction, - and distribution as defined by Sections 1 through 9 of this document. - - "Licensor" shall mean the copyright owner or entity authorized by - the copyright owner that is granting the License. - - "Legal Entity" shall mean the union of the acting entity and all - other entities that control, are controlled by, or are under common - control with that entity. For the purposes of this definition, - "control" means (i) the power, direct or indirect, to cause the - direction or management of such entity, whether by contract or - otherwise, or (ii) ownership of fifty percent (50%) or more of the - outstanding shares, or (iii) beneficial ownership of such entity. - - "You" (or "Your") shall mean an individual or Legal Entity - exercising permissions granted by this License. - - "Source" form shall mean the preferred form for making modifications, - including but not limited to software source code, documentation - source, and configuration files. - - "Object" form shall mean any form resulting from mechanical - transformation or translation of a Source form, including but - not limited to compiled object code, generated documentation, - and conversions to other media types. - - "Work" shall mean the work of authorship, whether in Source or - Object form, made available under the License, as indicated by a - copyright notice that is included in or attached to the work - (an example is provided in the Appendix below). - - "Derivative Works" shall mean any work, whether in Source or Object - form, that is based on (or derived from) the Work and for which the - editorial revisions, annotations, elaborations, or other modifications - represent, as a whole, an original work of authorship. For the purposes - of this License, Derivative Works shall not include works that remain - separable from, or merely link (or bind by name) to the interfaces of, - the Work and Derivative Works thereof. - - "Contribution" shall mean any work of authorship, including - the original version of the Work and any modifications or additions - to that Work or Derivative Works thereof, that is intentionally - submitted to Licensor for inclusion in the Work by the copyright owner - or by an individual or Legal Entity authorized to submit on behalf of - the copyright owner. For the purposes of this definition, "submitted" - means any form of electronic, verbal, or written communication sent - to the Licensor or its representatives, including but not limited to - communication on electronic mailing lists, source code control systems, - and issue tracking systems that are managed by, or on behalf of, the - Licensor for the purpose of discussing and improving the Work, but - excluding communication that is conspicuously marked or otherwise - designated in writing by the copyright owner as "Not a Contribution." - - "Contributor" shall mean Licensor and any individual or Legal Entity - on behalf of whom a Contribution has been received by Licensor and - subsequently incorporated within the Work. - - 2. Grant of Copyright License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - copyright license to reproduce, prepare Derivative Works of, - publicly display, publicly perform, sublicense, and distribute the - Work and such Derivative Works in Source or Object form. - - 3. Grant of Patent License. Subject to the terms and conditions of - this License, each Contributor hereby grants to You a perpetual, - worldwide, non-exclusive, no-charge, royalty-free, irrevocable - (except as stated in this section) patent license to make, have made, - use, offer to sell, sell, import, and otherwise transfer the Work, - where such license applies only to those patent claims licensable - by such Contributor that are necessarily infringed by their - Contribution(s) alone or by combination of their Contribution(s) - with the Work to which such Contribution(s) was submitted. If You - institute patent litigation against any entity (including a - cross-claim or counterclaim in a lawsuit) alleging that the Work - or a Contribution incorporated within the Work constitutes direct - or contributory patent infringement, then any patent licenses - granted to You under this License for that Work shall terminate - as of the date such litigation is filed. - - 4. Redistribution. You may reproduce and distribute copies of the - Work or Derivative Works thereof in any medium, with or without - modifications, and in Source or Object form, provided that You - meet the following conditions: - - (a) You must give any other recipients of the Work or - Derivative Works a copy of this License; and - - (b) You must cause any modified files to carry prominent notices - stating that You changed the files; and - - (c) You must retain, in the Source form of any Derivative Works - that You distribute, all copyright, patent, trademark, and - attribution notices from the Source form of the Work, - excluding those notices that do not pertain to any part of - the Derivative Works; and - - (d) If the Work includes a "NOTICE" text file as part of its - distribution, then any Derivative Works that You distribute must - include a readable copy of the attribution notices contained - within such NOTICE file, excluding those notices that do not - pertain to any part of the Derivative Works, in at least one - of the following places: within a NOTICE text file distributed - as part of the Derivative Works; within the Source form or - documentation, if provided along with the Derivative Works; or, - within a display generated by the Derivative Works, if and - wherever such third-party notices normally appear. The contents - of the NOTICE file are for informational purposes only and - do not modify the License. You may add Your own attribution - notices within Derivative Works that You distribute, alongside - or as an addendum to the NOTICE text from the Work, provided - that such additional attribution notices cannot be construed - as modifying the License. - - You may add Your own copyright statement to Your modifications and - may provide additional or different license terms and conditions - for use, reproduction, or distribution of Your modifications, or - for any such Derivative Works as a whole, provided Your use, - reproduction, and distribution of the Work otherwise complies with - the conditions stated in this License. - - 5. Submission of Contributions. Unless You explicitly state otherwise, - any Contribution intentionally submitted for inclusion in the Work - by You to the Licensor shall be under the terms and conditions of - this License, without any additional terms or conditions. - Notwithstanding the above, nothing herein shall supersede or modify - the terms of any separate license agreement you may have executed - with Licensor regarding such Contributions. - - 6. Trademarks. This License does not grant permission to use the trade - names, trademarks, service marks, or product names of the Licensor, - except as required for reasonable and customary use in describing the - origin of the Work and reproducing the content of the NOTICE file. - - 7. Disclaimer of Warranty. Unless required by applicable law or - agreed to in writing, Licensor provides the Work (and each - Contributor provides its Contributions) on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or - implied, including, without limitation, any warranties or conditions - of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A - PARTICULAR PURPOSE. You are solely responsible for determining the - appropriateness of using or redistributing the Work and assume any - risks associated with Your exercise of permissions under this License. - - 8. Limitation of Liability. In no event and under no legal theory, - whether in tort (including negligence), contract, or otherwise, - unless required by applicable law (such as deliberate and grossly - negligent acts) or agreed to in writing, shall any Contributor be - liable to You for damages, including any direct, indirect, special, - incidental, or consequential damages of any character arising as a - result of this License or out of the use or inability to use the - Work (including but not limited to damages for loss of goodwill, - work stoppage, computer failure or malfunction, or any and all - other commercial damages or losses), even if such Contributor - has been advised of the possibility of such damages. - - 9. Accepting Warranty or Additional Liability. While redistributing - the Work or Derivative Works thereof, You may choose to offer, - and charge a fee for, acceptance of support, warranty, indemnity, - or other liability obligations and/or rights consistent with this - License. However, in accepting such obligations, You may act only - on Your own behalf and on Your sole responsibility, not on behalf - of any other Contributor, and only if You agree to indemnify, - defend, and hold each Contributor harmless for any liability - incurred by, or claims asserted against, such Contributor by reason - of your accepting any such warranty or additional liability. - - END OF TERMS AND CONDITIONS - - APPENDIX: How to apply the Apache License to your work. - - To apply the Apache License to your work, attach the following - boilerplate notice, with the fields enclosed by brackets "[]" - replaced with your own identifying information. (Don't include - the brackets!) The text should be enclosed in the appropriate - comment syntax for the file format. We also recommend that a - file or class name and description of purpose be included on the - same "printed page" as the copyright notice for easier - identification within third-party archives. - - Copyright [yyyy] [name of copyright owner] - - Licensed under the Apache License, Version 2.0 (the "License"); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License. diff --git a/README.md b/README.md deleted file mode 100644 index b8b6991..0000000 --- a/README.md +++ /dev/null @@ -1,77 +0,0 @@ -
- - - - -## 项目介绍 - -novel-plus 是一个多端(PC、WAP)阅读,功能完善的原创文学 CMS -系统。由前台门户系统、作家后台管理系统、平台后台管理系统和爬虫管理系统等多个子系统构成,包括小说推荐、作品检索、小说排行、小说阅读、小说评论、会员中心、作家专区等功能,支持自定义多模版、可拓展的多种小说内容存储方式(内置数据库分表存储和 -TXT 文本存储)、阅读主题切换、多爬虫源自动采集和更新数据、会员充值、订阅模式、新闻发布和实时统计报表。 - -## 项目地址 - -- 学习版:[GitHub](https://github.com/201206030/novel) | [码云](https://gitee.com/novel_dev_team/novel) - | [保姆级教程](https://docs.xxyopen.com) -- **应用版**:[GitHub](https://github.com/201206030/novel-plus) | [码云](https://gitee.com/novel_dev_team/novel-plus) -- 微服务版:[GitHub](https://github.com/201206030/novel-cloud) | [码云](https://gitee.com/novel_dev_team/novel-cloud) - -## 项目结构 - -``` -novel-plus -- 父工程 -├── novel-common -- 通用模块 -├── novel-front -- 前台门户&作家后台 -├── novel-crawl -- 爬虫 -├── novel-admin -- 管理后台 -└── templates -- 前端模版 -``` - -## 技术选型 - -| 技术 | 说明 -|---------------------| --------------------------- -| Spring Boot | Spring 应用快速开发脚手架 -| Spring AI | Spring 官方 AI 框架 -| MyBatis | 持久层 ORM 框架 -| MyBatis Dynamic SQL | Mybatis 动态 sql -| PageHelper | MyBatis 分页插件 -| MyBatis Generator | 持久层代码生成插件 -| Sharding-JDBC | 代码层分库分表中间件 -| JJWT | JWT 登录支持 -| Spring Security | 安全框架 -| Apache Shiro | 安全框架 -| Redis | 缓存方案 -| Aliyun OSS | 阿里云对象存储服务(图片存储备选方案) -| Lombok | 简化对象封装工具 -| Docker | 应用容器引擎 -| MySQL | 数据库服务 -| Thymeleaf | 模板引擎 -| Layui | 前端 UI 框架 - -## 项目截图 - -### 绿色主题模版 - -[](https://www.xxyopen.com/images/green_novel.png) -[](https://www.xxyopen.com/images/resource/os/novel-plus/green3.png) -[](https://www.xxyopen.com/images/resource/os/novel-plus/green2.png) - -## 演示视频 - -https://www.bilibili.com/video/BV18e41197xs - - -## 免责声明 - -本项目提供的爬虫工具仅用于采集项目初期的测试数据,请勿用于商业盈利。 用户使用本系统从事任何违法违规的事情,一切后果由用户自行承担,作者不承担任何责任。 diff --git a/config/shardingsphere-jdbc.yml b/config/shardingsphere-jdbc.yml deleted file mode 100644 index 82ef745..0000000 --- a/config/shardingsphere-jdbc.yml +++ /dev/null @@ -1,53 +0,0 @@ -mode: - # 单机模式 - type: Standalone - # 元数据持久化 - repository: - # 数据库持久化 - type: JDBC - -# 数据源配置 -dataSources: - ds_1: - dataSourceClassName: com.zaxxer.hikari.HikariDataSource - driverClassName: com.mysql.cj.jdbc.Driver - jdbcUrl: jdbc:mysql://localhost:3306/novel_plus?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai - username: root - password: 123456 - ds_2: - dataSourceClassName: com.zaxxer.hikari.HikariDataSource - driverClassName: com.mysql.cj.jdbc.Driver - url: jdbc:mysql://localhost:3306/information_schema?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai - username: root - password: 123456 -# 规则配置 -rules: - - !SINGLE - tables: - - "*.*" - - !SHARDING - tables: # 数据分片规则配置 - book_content: - # 分库策略,缺省表示使用默认分库策略 - actualDataNodes: ds_${1}.book_content${0..9} - # 分表策略 - tableStrategy: - standard: - # 分片列名称 - shardingColumn: index_id - # 分片算法名称 - shardingAlgorithmName: bookContentSharding - - shardingAlgorithms: - bookContentSharding: - # 行表达式分片算法,使用 Groovy 的表达式,提供对 SQL 语句中的 = 和 IN 的分片操作支持 - type: INLINE - props: - # 分片算法的行表达式 - algorithm-expression: book_content${index_id % 10} - - - -props: - # 是否在日志中打印 SQL - sql-show: true diff --git a/doc/es/book.http b/doc/es/book.http deleted file mode 100644 index 6d5c777..0000000 --- a/doc/es/book.http +++ /dev/null @@ -1,82 +0,0 @@ -PUT /novel -{ - "mappings" : { - "book" : { - "properties" : { - "id" : { - "type" : "long" - }, - "authorId" : { - "type" : "long" - }, - "authorName" : { - "type" : "text", - "analyzer": "ik_smart", - "boost": 1.9 - }, - - "bookName" : { - "type" : "text", - "analyzer": "ik_smart", - "boost": 2 - }, - - "bookDesc" : { - "type" : "text", - "analyzer": "ik_smart", - "boost": 0.1 - }, - - "bookStatus" : { - "type" : "short" - }, - - "catId" : { - "type" : "integer" - }, - - "catName" : { - "type" : "text", - "analyzer": "ik_smart", - "boost": 1.0 - }, - - "lastIndexId" : { - "type" : "long" - }, - - "lastIndexName" : { - "type" : "text", - "analyzer": "ik_smart", - "boost": 0.1 - }, - - "lastIndexUpdateTime" : { - "type": "keyword" - }, - - "picUrl" : { - "type" : "keyword" - }, - - "score" : { - "type" : "float" - }, - - "wordCount" : { - "type" : "integer" - }, - - "workDirection" : { - "type" : "short" - }, - - "visitCount" : { - "type": "long" - } - - - } - } - } -} \ No newline at end of file diff --git a/doc/sql/20200511.sql b/doc/sql/20200511.sql deleted file mode 100644 index 8eb12a3..0000000 --- a/doc/sql/20200511.sql +++ /dev/null @@ -1,33 +0,0 @@ -/* -Navicat MySQL Data Transfer - -Source Server : localhost -Source Server Version : 50725 -Source Host : localhost:3306 -Source Database : novel_plus - -Target Server Type : MYSQL -Target Server Version : 50725 -File Encoding : 65001 - -Date: 2020-05-11 17:56:23 -*/ - -SET FOREIGN_KEY_CHECKS=0; - --- ---------------------------- --- Table structure for order_pay --- ---------------------------- -DROP TABLE IF EXISTS `order_pay`; -CREATE TABLE `order_pay` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', - `out_trade_no` bigint(20) NOT NULL COMMENT '商户订单号', - `trade_no` varchar(64) DEFAULT NULL COMMENT '支付宝/微信交易号', - `pay_channel` tinyint(1) NOT NULL DEFAULT '1' COMMENT '支付渠道,1:支付宝,2:微信', - `total_amount` int(11) NOT NULL COMMENT '交易金额(单位元)', - `user_id` bigint(20) NOT NULL COMMENT '支付用户ID', - `pay_status` tinyint(1) DEFAULT '2' COMMENT '支付状态:0:支付失败,1:支付成功,2:待支付', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `update_time` datetime DEFAULT NULL COMMENT '更新时间', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8mb4 COMMENT='充值订单'; diff --git a/doc/sql/20200513.sql b/doc/sql/20200513.sql deleted file mode 100644 index 3351233..0000000 --- a/doc/sql/20200513.sql +++ /dev/null @@ -1,87 +0,0 @@ -/* -Navicat MySQL Data Transfer - -Source Server : localhost -Source Server Version : 50624 -Source Host : localhost:3306 -Source Database : novel_plus - -Target Server Type : MYSQL -Target Server Version : 50624 -File Encoding : 65001 - -Date: 2020-05-13 21:42:20 -*/ - -SET FOREIGN_KEY_CHECKS=0; - --- ---------------------------- --- Table structure for author --- ---------------------------- -DROP TABLE IF EXISTS `author`; -CREATE TABLE `author` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', - `user_id` bigint(20) DEFAULT NULL COMMENT '用户ID', - `invite_code` varchar(20) DEFAULT NULL COMMENT '邀请码', - `pen_name` varchar(20) DEFAULT NULL COMMENT '笔名', - `tel_phone` varchar(20) DEFAULT NULL COMMENT '手机号码', - `chat_account` varchar(50) DEFAULT NULL COMMENT 'QQ或微信账号', - `email` varchar(50) DEFAULT NULL COMMENT '电子邮箱', - `work_direction` tinyint(4) DEFAULT NULL COMMENT '作品方向,0:男频,1:女频', - `status` tinyint(4) DEFAULT '0' COMMENT '0:正常,1:封禁', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - PRIMARY KEY (`id`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COMMENT='作者表'; - --- ---------------------------- --- Records of author --- ---------------------------- -INSERT INTO `author` VALUES ('1', null, 'reerer', 'abc', '13560487656', '23484388', '23484388@qq.com', '0', '0', null); -INSERT INTO `author` VALUES ('2', '1255060328322027520', 'rwrr445554', '梦入神机', '13560421324', '1179705413', 'reerer@qq.com', '0', '0', '2020-05-13 14:01:31'); - --- ---------------------------- --- Table structure for author_code --- ---------------------------- -DROP TABLE IF EXISTS `author_code`; -CREATE TABLE `author_code` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', - `invite_code` varchar(100) DEFAULT NULL COMMENT '邀请码', - `validity_time` datetime DEFAULT NULL COMMENT '有效时间', - `is_use` tinyint(1) DEFAULT '0' COMMENT '是否使用过,0:未使用,1:使用过', - `create_time` datetime DEFAULT NULL COMMENT '创建时间', - `create_user_id` bigint(20) DEFAULT NULL COMMENT '创建人ID', - PRIMARY KEY (`id`), - UNIQUE KEY `key_code` (`invite_code`) USING BTREE -) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8mb4 COMMENT='作家邀请码表'; - --- ---------------------------- --- Records of author_code --- ---------------------------- -INSERT INTO `author_code` VALUES ('3', 'reerer', '2020-05-27 22:43:45', '1', '2020-05-13 11:40:56', '1'); -INSERT INTO `author_code` VALUES ('4', '123456', '2020-05-28 00:00:00', '0', '2020-05-13 14:09:55', '1'); -INSERT INTO `author_code` VALUES ('5', 'ww34343', '2020-05-21 00:00:00', '0', '2020-05-13 14:18:58', '1'); - - - --- ---------------------------- --- Table structure for user_buy_record --- ---------------------------- -DROP TABLE IF EXISTS `user_buy_record`; -CREATE TABLE `user_buy_record` ( - `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键', - `user_id` bigint(20) NOT NULL COMMENT '用户ID', - `book_id` bigint(20) DEFAULT NULL COMMENT '购买的小说ID', - `book_name` varchar(50) DEFAULT NULL COMMENT '购买的小说名', - `book_index_id` bigint(20) DEFAULT NULL COMMENT '购买的章节ID', - `book_index_name` varchar(100) DEFAULT NULL COMMENT '购买的章节名', - `buy_amount` int(11) DEFAULT NULL COMMENT '购买使用的屋币数量', - `create_time` datetime DEFAULT NULL COMMENT '购买时间', - PRIMARY KEY (`id`), - UNIQUE KEY `key_userId_indexId` (`user_id`,`book_index_id`) -) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COMMENT='用户消费记录表'; - --- ---------------------------- --- Records of user_buy_record --- ---------------------------- -INSERT INTO `user_buy_record` VALUES ('1', '1255060328322027520', '1260400284744613890', '我是一只消消乐2', '1260522024606953472', '第三章', '10', '2020-05-13 21:29:09'); -INSERT INTO `user_buy_record` VALUES ('2', '1255060328322027520', '1260400284744613890', '我是一只消消乐2', '1260564410687107072', '第四章', '10', '2020-05-13 21:40:38'); diff --git a/doc/sql/20200518.sql b/doc/sql/20200518.sql deleted file mode 100644 index 02df2d2..0000000 --- a/doc/sql/20200518.sql +++ /dev/null @@ -1,3 +0,0 @@ -INSERT INTO `crawl_source` (`id`, `source_name`, `crawl_rule`, `source_status`, `create_time`, `update_time`) VALUES ('4', '书趣阁', '{\r\n \"bookListUrl\": \"http://m.shuquge.com/sort/{catId}/0_{page}.html\",\r\n \"catIdRule\": {\r\n \"catId1\": \"1\",\r\n \"catId2\": \"2\",\r\n \"catId3\": \"3\",\r\n \"catId4\": \"4\",\r\n \"catId5\": \"7\",\r\n \"catId6\": \"6\",\r\n \"catId7\": \"8\"\r\n },\r\n \"bookIdPatten\": \"href=\\\"/s/(\\\\d+)\\\\.html\\\"\",\r\n \"pagePatten\": \"第(\\\\d+)/\\\\d+页\",\r\n \"totalPagePatten\": \"第\\\\d+/(\\\\d+)页\",\r\n \"bookDetailUrl\": \"http://m.shuquge.com/s/{bookId}.html\",\r\n \"bookNamePatten\": \"作者:([^/]+)
\",\r\n \"picUrlPatten\": \"src=\\\"(http://www.shuquge.com/files/article/image/\\\\d+/\\\\d+/\\\\d+s\\\\.jpg)\\\"\",\r\n \"statusPatten\": \"状态:([^/]+)
\",\r\n \"bookStatusRule\": {\r\n \"连载中\": 0,\r\n \"完本\": 1\r\n },\r\n \"descStart\": \"\",\"descEnd\":\"
\",\"bookIndexUrl\":\"http://m.mcmssc.com/{bookId}/all.html\",\"indexIdPatten\":\"[^/]+\",\"indexNamePatten\":\"([^/]+)\",\"bookContentUrl\":\"http://www.mcmssc.com/{bookId}/{indexId}.html\",\"contentStart\":\"\",\"contentEnd\":\"作者:([^/]+)
\",\n \"picUrlPatten\": \"src=\\\"(http://www.shuquge.com/files/article/image/\\\\d+/\\\\d+/\\\\d+s\\\\.jpg)\\\"\",\n \"statusPatten\": \"状态:([^/]+)
\",\n \"bookStatusRule\": {\n \"连载中\": 0,\n \"完本\": 1\n },\n \"descStart\": \"最后更新:(\\\\d+-\\\\d+-\\\\d+\\\\s\\\\d+:\\\\d+:\\\\d+)
\",\n \"upadateTimeFormatPatten\": \"yyyy-MM-dd HH:mm:ss\",\n \"bookIndexUrl\": \"http://www.xbiquge.la/{bookId}/\",\n \"indexIdPatten\": \"[^/]+\",\n \"indexNamePatten\": \"([^/]+)\",\n \"bookContentUrl\": \"http://www.xbiquge.la/{bookId}/{indexId}.html\",\n \"contentStart\": \"\"\n}', 0, '2020-05-23 22:46:58', '2020-05-23 22:46:58');
diff --git a/doc/sql/20200615.sql b/doc/sql/20200615.sql
deleted file mode 100644
index cac7888..0000000
--- a/doc/sql/20200615.sql
+++ /dev/null
@@ -1,40 +0,0 @@
-/*
-Navicat MySQL Data Transfer
-
-Source Server : localhost
-Source Server Version : 50725
-Source Host : localhost:3306
-Source Database : novel_plus
-
-Target Server Type : MYSQL
-Target Server Version : 50725
-File Encoding : 65001
-
-Date: 2020-06-15 15:06:55
-*/
-
-SET FOREIGN_KEY_CHECKS=0;
-
--- ----------------------------
--- Table structure for crawl_single_task
--- ----------------------------
-DROP TABLE IF EXISTS `crawl_single_task`;
-CREATE TABLE `crawl_single_task` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
- `source_id` int(11) DEFAULT NULL COMMENT '爬虫源ID',
- `source_name` varchar(50) DEFAULT NULL COMMENT '爬虫源名',
- `source_book_id` varchar(255) DEFAULT NULL COMMENT '源站小说ID',
- `cat_id` int(11) DEFAULT NULL COMMENT '分类ID',
- `book_name` varchar(50) DEFAULT NULL COMMENT '爬取的小说名',
- `author_name` varchar(50) DEFAULT NULL COMMENT '爬取的小说作者名',
- `task_status` tinyint(1) DEFAULT '2' COMMENT '任务状态,0:失败,1:成功,2;未执行',
- `exc_count` tinyint(2) DEFAULT '0' COMMENT '已经执行次数,最多执行5次',
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
- PRIMARY KEY (`id`)
-) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COMMENT='抓取单本小说任务表';
-
--- ----------------------------
--- Records of crawl_single_task
--- ----------------------------
-INSERT INTO `crawl_single_task` VALUES ('6', '2', '百书斋', '1', '1', '1', '1', '0', '5', '2020-06-15 14:36:07');
-INSERT INTO `crawl_single_task` VALUES ('7', '5', '笔趣阁', '108_108291', '1', '衍天志之不朽仙', '白衣少年丶', '1', '1', '2020-06-15 14:46:08');
diff --git a/doc/sql/20201103.sql b/doc/sql/20201103.sql
deleted file mode 100644
index d003a0f..0000000
--- a/doc/sql/20201103.sql
+++ /dev/null
@@ -1,27 +0,0 @@
-CREATE TABLE `author_income_detail` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
- `user_id` bigint(20) NOT NULL COMMENT '用户ID',
- `author_id` bigint(20) NOT NULL COMMENT '作家ID',
- `book_id` bigint(20) NOT NULL DEFAULT '0' COMMENT '作品ID,0表示全部作品',
- `income_date` date NOT NULL COMMENT '收入日期',
- `income_account` int(11) NOT NULL DEFAULT '0' COMMENT '订阅总额',
- `income_count` int(11) NOT NULL DEFAULT '0' COMMENT '订阅次数',
- `income_number` int(11) NOT NULL DEFAULT '0' COMMENT '订阅人数',
- `create_time` datetime DEFAULT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='稿费收入明细统计表';
-
-CREATE TABLE `author_income` (
- `id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
- `user_id` bigint(20) NOT NULL COMMENT '用户ID',
- `author_id` bigint(20) NOT NULL COMMENT '作家ID',
- `book_id` bigint(20) NOT NULL COMMENT '作品ID',
- `income_month` date NOT NULL COMMENT '收入月份',
- `pre_tax_income` bigint(20) NOT NULL DEFAULT '0' COMMENT '税前收入(分)',
- `after_tax_income` bigint(20) NOT NULL DEFAULT '0' COMMENT '税后收入(分)',
- `pay_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '支付状态,0:待支付,1:已支付',
- `confirm_status` tinyint(1) NOT NULL DEFAULT '0' COMMENT '稿费确认状态,0:待确认,1:已确认',
- `detail` varchar(255) DEFAULT NULL COMMENT '详情',
- `create_time` datetime DEFAULT NULL,
- PRIMARY KEY (`id`)
-) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='稿费收入统计表';
\ No newline at end of file
diff --git a/doc/sql/20201109.sql b/doc/sql/20201109.sql
deleted file mode 100644
index 3275bb5..0000000
--- a/doc/sql/20201109.sql
+++ /dev/null
@@ -1 +0,0 @@
-alter table book add column `yesterday_buy` int(11) DEFAULT '0' COMMENT '昨日订阅数' after comment_count;
diff --git a/doc/sql/20201122.sql b/doc/sql/20201122.sql
deleted file mode 100644
index b723efa..0000000
--- a/doc/sql/20201122.sql
+++ /dev/null
@@ -1 +0,0 @@
-alter table book_index add column `book_price` int(3) DEFAULT 0 COMMENT '章节费用(屋币)' after `is_vip`;
\ No newline at end of file
diff --git a/doc/sql/20201201.sql b/doc/sql/20201201.sql
deleted file mode 100644
index 140d9a9..0000000
--- a/doc/sql/20201201.sql
+++ /dev/null
@@ -1,32 +0,0 @@
-INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`, `gmt_create`, `gmt_modified`) VALUES (246, 241, '批量删除', NULL, 'novel:news:batchRemove', 2, NULL, 6, NULL, NULL);
-INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`, `gmt_create`, `gmt_modified`) VALUES (245, 241, '删除', NULL, 'novel:news:remove', 2, NULL, 6, NULL, NULL);
-INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`, `gmt_create`, `gmt_modified`) VALUES (244, 241, '修改', NULL, 'novel:news:edit', 2, NULL, 6, NULL, NULL);
-INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`, `gmt_create`, `gmt_modified`) VALUES (243, 241, '新增', NULL, 'novel:news:add', 2, NULL, 6, NULL, NULL);
-INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`, `gmt_create`, `gmt_modified`) VALUES (242, 241, '查看', NULL, 'novel:news:detail', 2, NULL, 6, NULL, NULL);
-INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`, `gmt_create`, `gmt_modified`) VALUES (241, 234, '新闻列表', 'novel/news', 'novel:news:news', 1, 'fa', 8, NULL, NULL);
-INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`, `gmt_create`, `gmt_modified`) VALUES (240, 235, '批量删除', NULL, 'novel:category:batchRemove', 2, NULL, 6, NULL, NULL);
-INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`, `gmt_create`, `gmt_modified`) VALUES (239, 235, '删除', NULL, 'novel:category:remove', 2, NULL, 6, NULL, NULL);
-INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`, `gmt_create`, `gmt_modified`) VALUES (238, 235, '修改', NULL, 'novel:category:edit', 2, NULL, 6, NULL, NULL);
-INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`, `gmt_create`, `gmt_modified`) VALUES (237, 235, '新增', NULL, 'novel:category:add', 2, NULL, 6, NULL, NULL);
-INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`, `gmt_create`, `gmt_modified`) VALUES (236, 235, '查看', NULL, 'novel:category:detail', 2, NULL, 6, NULL, NULL);
-INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`, `gmt_create`, `gmt_modified`) VALUES (235, 234, '类别管理', 'novel/category', 'novel:category:category', 1, 'fa', 6, NULL, NULL);
-INSERT INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`, `gmt_create`, `gmt_modified`) VALUES (234, 0, '新闻管理', '', '', 0, 'fa fa-newspaper-o', 8, NULL, NULL);
-
-
-
-INSERT INTO `sys_role_menu`(`id`, `role_id`, `menu_id`) VALUES (4889, 1, 246);
-INSERT INTO `sys_role_menu`(`id`, `role_id`, `menu_id`) VALUES (4890, 1, 245);
-INSERT INTO `sys_role_menu`(`id`, `role_id`, `menu_id`) VALUES (4891, 1, 244);
-INSERT INTO `sys_role_menu`(`id`, `role_id`, `menu_id`) VALUES (4892, 1, 243);
-INSERT INTO `sys_role_menu`(`id`, `role_id`, `menu_id`) VALUES (4893, 1, 242);
-INSERT INTO `sys_role_menu`(`id`, `role_id`, `menu_id`) VALUES (4899, 1, 241);
-INSERT INTO `sys_role_menu`(`id`, `role_id`, `menu_id`) VALUES (4894, 1, 240);
-INSERT INTO `sys_role_menu`(`id`, `role_id`, `menu_id`) VALUES (4895, 1, 239);
-INSERT INTO `sys_role_menu`(`id`, `role_id`, `menu_id`) VALUES (4896, 1, 238);
-INSERT INTO `sys_role_menu`(`id`, `role_id`, `menu_id`) VALUES (4897, 1, 237);
-INSERT INTO `sys_role_menu`(`id`, `role_id`, `menu_id`) VALUES (4898, 1, 236);
-INSERT INTO `sys_role_menu`(`id`, `role_id`, `menu_id`) VALUES (4900, 1, 235);
-INSERT INTO `sys_role_menu`(`id`, `role_id`, `menu_id`) VALUES (4888, 1, 234);
-
-
-delete from sys_menu where menu_id = 202;
\ No newline at end of file
diff --git a/doc/sql/20210726.sql b/doc/sql/20210726.sql
deleted file mode 100644
index 7e56bf6..0000000
--- a/doc/sql/20210726.sql
+++ /dev/null
@@ -1 +0,0 @@
-alter table news add column `read_count` BIGINT NOT NULL DEFAULT '0' COMMENT '阅读量' after content;
\ No newline at end of file
diff --git a/doc/sql/20210913.sql b/doc/sql/20210913.sql
deleted file mode 100644
index 97d00e6..0000000
--- a/doc/sql/20210913.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-alter table book_index add column storage_type varchar(10) NOT NULL DEFAULT 'db' COMMENT '存储方式' after book_price ;
-
-
diff --git a/doc/sql/20230413.sql b/doc/sql/20230413.sql
deleted file mode 100644
index 4a8dfcd..0000000
--- a/doc/sql/20230413.sql
+++ /dev/null
@@ -1,121 +0,0 @@
-CREATE TABLE `website_info`
-(
- id bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',
- name varchar(50) NOT NULL COMMENT '网站名',
- domain varchar(50) NOT NULL COMMENT '网站域名',
- keyword varchar(50) NOT NULL COMMENT 'SEO关键词',
- description varchar(512) NOT NULL COMMENT '网站描述',
- qq varchar(20) NOT NULL COMMENT '站长QQ',
- logo varchar(200) NOT NULL COMMENT '网站logo图片(默认)',
- logo_dark varchar(200) NOT NULL COMMENT '网站logo图片(深色)',
- create_time datetime null comment '创建时间',
- create_user_id bigint null comment '创建人ID',
- update_time datetime null comment '更新时间',
- update_user_id bigint null comment '更新人ID',
- PRIMARY KEY (`id`)
-) ENGINE = InnoDB
- DEFAULT CHARSET = utf8mb4 COMMENT ='网站信息表';
-
-INSERT INTO website_info (id, name, domain, keyword, description, qq, logo, logo_dark, create_time, create_user_id,
- update_time, update_user_id)
-VALUES (1, '小说精品屋', 'www.xxyopen.com', '小说精品屋,小说,小说CMS,原创文学系统,开源小说系统,免费小说建站程序',
- '小说精品屋是一个多端(PC、WAP)阅读、功能完善的原创文学CMS系统,由前台门户系统、作家后台管理系统、平台后台管理系统、爬虫管理系统等多个子系统构成,支持会员充值、订阅模式、新闻发布和实时统计报表等功能,新书自动入库,老书自动更新。',
- '1179705413', 'https://youdoc.gitee.io/resource/images/logo/logo.png',
- 'https://youdoc.gitee.io/resource/images/logo/logo_white.png', null, null, null, null);
-
-INSERT INTO sys_menu (menu_id, parent_id, name, url, perms, type, icon, order_num, gmt_create, gmt_modified)
-VALUES (300, 0, '网站管理', '', '', 0, 'fa fa-television', 6, null, null);
-
-INSERT
-INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (301, 300, '网站信息', 'novel/websiteInfo', 'novel:websiteInfo:websiteInfo', '1', 'fa', '6');
-
-
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 300);
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 301);
-
-
-INSERT INTO `sys_menu` (menu_id, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (310, 300, '友情链接', 'novel/friendLink', 'novel:friendLink:friendLink', '1', 'fa', '16');
-
-INSERT INTO `sys_menu` (menu_id, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (311, 310, '查看', null, 'novel:friendLink:detail', '2', null, '6');
-INSERT INTO `sys_menu` (menu_id, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (312, 310, '新增', null, 'novel:friendLink:add', '2', null, '6');
-INSERT INTO `sys_menu` (menu_id, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (313, 310, '修改', null, 'novel:friendLink:edit', '2', null, '6');
-INSERT INTO `sys_menu` (menu_id, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (314, 310, '删除', null, 'novel:friendLink:remove', '2', null, '6');
-INSERT INTO `sys_menu` (menu_id, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (315, 310, '批量删除', null, 'novel:friendLink:batchRemove', '2', null, '6');
-
-
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 310);
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 311);
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 312);
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 313);
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 314);
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 315);
-
-
-INSERT INTO sys_menu (menu_id, parent_id, name, url, perms, type, icon, order_num, gmt_create, gmt_modified)
-VALUES (400, 0, '会员管理', '', '', 0, 'fa fa-vcard', 9, null, null);
-
-INSERT
-INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (401, 400, '会员列表', 'novel/user', 'novel:user:user', '1', 'fa', '6');
-
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 400);
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 401);
-
-
-INSERT INTO sys_menu (menu_id, parent_id, name, url, perms, type, icon, order_num, gmt_create, gmt_modified)
-VALUES (500, 0, '订单管理', '', '', 0, 'fa fa-money', 19, null, null);
-
-INSERT
-INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (501, 500, '订单列表', 'novel/pay', 'novel:pay:pay', '1', 'fa', '6');
-
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 500);
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 501);
-
-
-INSERT INTO sys_menu (menu_id, parent_id, name, url, perms, type, icon, order_num, gmt_create, gmt_modified)
-VALUES (600, 0, '小说管理', '', '', 0, 'fa fa-book', 15, null, null);
-
-INSERT
-INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (601, 600, '小说列表', 'novel/book', 'novel:book:book', '1', 'fa', '6');
-
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 600);
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 601);
-
-INSERT INTO `sys_menu` (menu_id, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (602, 601, '删除', null, 'novel:book:remove', '2', null, '6');
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 602);
-
-INSERT
-INTO `sys_menu`(`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (603, 600, '评论管理', 'novel/bookComment', 'novel:bookComment:bookComment', '1', 'fa', '10');
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 603);
-
-INSERT INTO `sys_menu` (menu_id, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (604, 603, '删除', null, 'novel:bookComment:remove', '2', null, '6');
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 604);
\ No newline at end of file
diff --git a/doc/sql/20230418.sql b/doc/sql/20230418.sql
deleted file mode 100644
index f20f927..0000000
--- a/doc/sql/20230418.sql
+++ /dev/null
@@ -1,51 +0,0 @@
-INSERT INTO sys_dict (name, value, type, description, sort, parent_id, create_by, create_date, update_by,
- update_date, remarks, del_flag)
-VALUES ('轮播图', '0', 'book_rec_type', '小说推荐类型', 0, null, null, null, null, null, '', null);
-INSERT INTO sys_dict (name, value, type, description, sort, parent_id, create_by, create_date, update_by,
- update_date, remarks, del_flag)
-VALUES ('顶部小说栏', '1', 'book_rec_type', '小说推荐类型', 1, null, null, null, null, null, '', null);
-INSERT INTO sys_dict (name, value, type, description, sort, parent_id, create_by, create_date, update_by,
- update_date, remarks, del_flag)
-VALUES ('本周强推', '2', 'book_rec_type', '小说推荐类型', 2, null, null, null, null, null, '', null);
-INSERT INTO sys_dict (name, value, type, description, sort, parent_id, create_by, create_date, update_by,
- update_date, remarks, del_flag)
-VALUES ('热门推荐', '3', 'book_rec_type', '小说推荐类型', 3, null, null, null, null, null, '', null);
-INSERT INTO sys_dict (name, value, type, description, sort, parent_id, create_by, create_date, update_by,
- update_date, remarks, del_flag)
-VALUES ('精品推荐', '4', 'book_rec_type', '小说推荐类型', 4, null, null, null, null, null, '', null);
-
-
-
-INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (320, '300', '小说推荐', 'novel/bookSetting', 'novel:bookSetting:bookSetting', '1', 'fa', '6');
-
-INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (321, '320', '查看', null, 'novel:bookSetting:detail', '2', null, '6');
-INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (322, '320', '新增', null, 'novel:bookSetting:add', '2', null, '6');
-INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (323, '320', '修改', null, 'novel:bookSetting:edit', '2', null, '6');
-INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (324, '320', '删除', null, 'novel:bookSetting:remove', '2', null, '6');
-INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (325, '320', '批量删除', null, 'novel:bookSetting:batchRemove', '2', null, '6');
-
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 320);
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 321);
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 322);
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 323);
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 324);
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 325);
-
-
-INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (410, '400', '会员反馈', 'novel/userFeedback', 'novel:userFeedback:userFeedback', '1', 'fa', '16');
-
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 410);
diff --git a/doc/sql/20230508.sql b/doc/sql/20230508.sql
deleted file mode 100644
index dd058c3..0000000
--- a/doc/sql/20230508.sql
+++ /dev/null
@@ -1,4 +0,0 @@
-INSERT INTO `sys_menu` (`menu_id`, `parent_id`, `name`, `url`, `perms`, `type`, `icon`, `order_num`)
-VALUES (305, '301', '修改', null, 'novel:websiteInfo:edit', '2', null, '6');
-INSERT INTO sys_role_menu (role_id, menu_id)
-VALUES (1, 305);
\ No newline at end of file
diff --git a/doc/sql/20240512.sql b/doc/sql/20240512.sql
deleted file mode 100644
index b27af92..0000000
--- a/doc/sql/20240512.sql
+++ /dev/null
@@ -1,3 +0,0 @@
-update crawl_source
-set crawl_rule = replace(crawl_rule, 'ibiquge.net', 'ibiquzw.org')
-where id = 16;
\ No newline at end of file
diff --git a/doc/sql/20250317.sql b/doc/sql/20250317.sql
deleted file mode 100644
index 56f1808..0000000
--- a/doc/sql/20250317.sql
+++ /dev/null
@@ -1,44 +0,0 @@
-INSERT INTO crawl_source (source_name, crawl_rule, source_status, create_time, update_time)
-VALUES ('香书小说网', '{
- "bookListUrl": "http://www.xbiqugu.la/fenlei/{catId}_{page}.html",
- "catIdRule": {
- "catId1": "1",
- "catId2": "2",
- "catId3": "3",
- "catId4": "4",
- "catId5": "6",
- "catId6": "5"
- },
- "bookIdPatten": "",
- "pagePatten": "(\\\\d+)/\\\\d+",
- "totalPagePatten": "\\\\d+/(\\\\d+)",
- "bookDetailUrl": "http://www.xbiqugu.la/{bookId}/",
- "bookNamePatten": "([^/]+)
",
- "authorNamePatten": "者:([^/]+)
最后更新:(\\\\d+-\\\\d+-\\\\d+\\\\s\\\\d+:\\\\d+:\\\\d+)
", - "upadateTimeFormatPatten": "yyyy-MM-dd HH:mm:ss", - "bookIndexUrl": "http://www.xbiqugu.la/{bookId}/", - "indexIdPatten": "[^/]+", - "indexNamePatten": "([^/]+)", - "bookContentUrl": "http://www.xbiqugu.la/{bookId}/{indexId}.html", - "contentStart": "", - "filterContent":"
\",\r\n \"descEnd\": \"
\",\r\n \"upadateTimePatten\": \"更新:(\\\\d+-\\\\d+-\\\\d+)\",\r\n \"upadateTimeFormatPatten\": \"yy-MM-dd\",\r\n \"bookIndexUrl\": \"https://m.baishuzhai.com/ibook/{bookId}/all.html\",\r\n \"indexIdPatten\": \"[^/]+\",\r\n \"indexNamePatten\": \"([^/]+)\",\r\n \"bookContentUrl\": \"https://baishuzhai.com/ibook/{bookId}/{indexId}.html\",\r\n \"contentStart\": \"id=\\\"content\\\">\",\r\n \"contentEnd\": \" - - - -