@ -3,218 +3,281 @@
< head >
< meta charset = "UTF-8" >
< title > 书源编辑器v3.8< / title >
< link rel = "stylesheet" type = "text/css" href = "/index.css" / >
< title > 阅读3.0书源编辑器_V4.0< / title >
< link rel = "icon" href = "favicon.ico" >
< link rel = "stylesheet" type = "text/css" href = "index.css" / >
< / head >
< body >
< div class = "editor" >
< div class = "setbox" >
< div class = "rules" >
< div > < b > 书源基础信息 < / b > < / div >
< div > < b > 基本 < / b > < / div >
< div >
< div > 书源名称:< / div >
< textarea rows = "1" id = "bookSourceName" placeholder = "书源名称(bookSourceName) | 会显示在书源列表" > < / textarea >
< div > 源URL :< / div >
< textarea rows = "1" id = "bookSourceUrl" class = "base" title = "bookSourceUrl"
placeholder="< 必填 > 通常填写网站主页,例: https://www.qidian.com">< / textarea >
< / div >
< div >
< div > 书源分组:< / div >
< textarea rows = "1" id = "bookSourceGroup" placeholder = "书源分组(bookSourceGroup) | 描述书源的特征信息" > < / textarea >
< div > 源类型 :< / div >
< textarea rows = "1" id = "bookSourceType" class = "base" title = "bookSourceType"
placeholder="< 必填> 0:文本 1:音频">< / textarea >
< / div >
< div >
< div > 书 源域 名:< / div >
< textarea rows = "1" id = "bookSourceUrl "
placeholder="书源URL(bookSourceUrl) | 通常填写网站主页(标头不可省略),例: https://www.qidian.com ">< / textarea >
< div > 源名称 :< / div >
< textarea rows = "1" id = "bookSourceName" class = "base" title = "bookSourceName "
placeholder="< 必填> 会显示在书源列表 ">< / textarea >
< / div >
< div >
< div > 登录网页:< / div >
< textarea rows = "1" id = "loginUrl" placeholder = "登录URL(loginUrl) | 填写网站登录网址,仅在需要登录的书源有用" > < / textarea >
< div > 源分组 :< / div >
< textarea rows = "1" id = "bookSourceGroup" class = "base" title = "bookSourceGroup"
placeholder="< 选填> 描述书源的特征信息">< / textarea >
< / div >
< div > < b > 书籍发现规则< / b > < / div >
< div >
< div > 发现菜单 :< / div >
< textarea rows = "5" id = "ruleFind Url"
placeholder="发现分类菜单规则(ruleFindUrl),将显示在发现菜单 每行一条发现分类(网址域名可省略): 名称1::网址(Url)1 名称2::网址(Url)2 ... ">< / textarea >
< div > 登录地址 :< / div >
< textarea rows = "1" id = "loginUrl" class = "base" title = "login Url"
placeholder="< 选填> 填写网站登录网址,仅在需要登录的书源有用 ">< / textarea >
< / div >
< div >
< div > 结果列表 :< / div >
< textarea rows = "1" id = "ruleFindList "
placeholder="发现页列表规则(ruleFindList) | 选择书籍节点 (规则结果为List< Element> ) ">< / textarea >
< div > 链接验证 :< / div >
< textarea rows = "1" id = "bookUrlPattern" class = "base" title = "bookUrlPattern "
placeholder="< 选填> 当详情页URL与源URL的域名不一致时有效,用于添加网址 ">< / textarea >
< / div >
< div >
< div > 书籍名称:< / div >
< textarea rows = "1" id = "ruleFindName"
placeholder="发现页书名规则(ruleFindName) | 选择节点书名 (规则结果为String)">< / textarea >
< div > 请求头 :< / div >
< textarea rows = "3" id = "header" class = "base" title = "header" placeholder = "<选填>客户端标识" > < / textarea >
< / div >
< p > < / p >
< div > < b > 搜索< / b > < / div >
< div >
< div > 书籍作者:< / div >
< textarea rows = "1" id = "ruleFindAuthor "
placeholder="发现页作者规则(ruleFindAuthor) | 选择节点作者 (规则结果为String) ">< / textarea >
< div > 搜索地址 :< / div >
< textarea rows = "1" id = "searchUrl" class = "base" title = "searchUrl "
placeholder="[域名可省略]/search.php@kw={{key}} ">< / textarea >
< / div >
< div >
< div > 书籍分类:< / div >
< textarea rows = "1" id = "ruleFindKind"
placeholder="发现页分类规则(ruleFindKind) | 选择节点分类信息 (规则结果为List< String> )">< / textarea >
< div > 列表规则:< / div >
< textarea rows = "3" id = "ruleSearch_bookList" class = "ruleSearch" title = "bookList"
placeholder="选择书籍节点 (规则结果为List< Element> )">< / textarea >
< / div >
< div >
< div > 书名规则:< / div >
< textarea rows = "1" id = "ruleSearch_name" class = "ruleSearch" title = "name"
placeholder="选择节点书名 (规则结果为String)">< / textarea >
< / div >
< div >
< div > 作者规则:< / div >
< textarea rows = "1" id = "ruleSearch_author" class = "ruleSearch" title = "author"
placeholder="选择节点作者 (规则结果为String)">< / textarea >
< / div >
< div >
< div > 分类规则:< / div >
< textarea rows = "1" id = "ruleSearch_kind" class = "ruleSearch" title = "kind"
placeholder="选择节点分类信息 (规则结果为String)">< / textarea >
< / div >
< div >
< div > 字数规则:< / div >
< textarea rows = "1" id = "ruleSearch_wordCount" class = "ruleSearch" title = "wordCount"
placeholder="选择节点字数信息 (规则结果为String)">< / textarea >
< / div >
< div >
< div > 最新章节:< / div >
< textarea rows = "1" id = "ruleFindLastChapter"
placeholder="发现页最新章节规则(ruleFindLastChapter) | 选择节点最新章节 (规则结果为String)">< / textarea >
< textarea rows = "1" id = "ruleSearch_lastChapter" class = "ruleSearch" title = "l astChapter"
placeholder="选择节点最新章节 (规则结果为String)">< / textarea >
< / div >
< div >
< div > 简介内容:< / div >
< textarea rows = "1" id = "ruleFindIntroduce"
placeholder="发现页简介规则(ruleFindIntroduce) | 选择节点书籍简介 (规则结果为String)">< / textarea >
< div > 简介规则 :< / div >
< textarea rows = "1" id = "ruleSearch_intro" class = "ruleSearch" title = "intro "
placeholder="选择节点书籍简介 (规则结果为String)">< / textarea >
< / div >
< div >
< div > 封面链接:< / div >
< textarea rows = "1" id = "ruleFindCoverUrl"
placeholder="发现页封面规则(ruleFindCoverUrl) | 选择节点书籍封面 (规则结果为Url)">< / textarea >
< div > 封面规则 :< / div >
< textarea rows = "1" id = "ruleSearch_coverUrl" class = "ruleSearch" title = "c overUrl"
placeholder="选择节点书籍封面 (规则结果为String类型的u rl)">< / textarea >
< / div >
< div >
< div > 详情链接:< / div >
< textarea rows = "1" id = "ruleFindNoteUrl"
placeholder="发现页详情规则(ruleFindNoteUrl) | 选择书籍详情页网址 (规则结果为Url)">< / textarea >
< div > 详情地址 :< / div >
< textarea rows = "1" id = "ruleSearch_bookUrl" class = "ruleSearch" title = "book Url"
placeholder="选择书籍详情页网址 (规则结果为String类型的u rl)">< / textarea >
< / div >
< div > < b > 书籍搜索规则< / b > < / div >
< p > < / p >
< div > < b > 发现< / b > < / div >
< div >
< div > 搜索网 址:< / div >
< textarea rows = "1" id = "ruleSearch Url"
placeholder="搜索网址(ruleSearchUrl) | [域名可省略]/search.php@kw=searchKey|char=utf-8 ">< / textarea >
< div > 发现地 址:< / div >
< textarea rows = "6" id = "exploreUrl" class = "base" title = "explore Url"
placeholder="内容能显示在发现菜单 每行一条发现分类(网址域名可省略),例: 名称1::网址(Url)1 名称2::网址(Url)2 ... ">< / textarea >
< / div >
< div >
< div > 结果验证 :< / div >
< textarea rows = "1" id = "ruleBookUrlPattern "
placeholder="搜索页URL验证(ruleBookUrlPattern) | 正则验证URL是否为详情页,成功则跳过搜索页解析 ">< / textarea >
< div > 列表规则 :< / div >
< textarea rows = "1" id = "ruleExplore_bookList" class = "ruleExplore" title = "bookList "
placeholder="选择书籍节点 (规则结果为List< Element> ) ">< / textarea >
< / div >
< div >
< div > 结果列表 :< / div >
< textarea rows = "1" id = "ruleSearchList "
placeholder="搜索页列表规则(ruleSearchList) | 选择书籍节点 (规则结果为List< Element> )">< / textarea >
< div > 书名规则 :< / div >
< textarea rows = "1" id = "ruleExplore_name" class = "ruleExplore" title = "name "
placeholder="选择节点书名 (规则结果为String )">< / textarea >
< / div >
< div >
< div > 书籍名称 :< / div >
< textarea rows = "1" id = "ruleSearchName "
placeholder="搜索页书名规则(ruleSearchName) | 选择节点书名 (规则结果为String)">< / textarea >
< div > 作者规则 :< / div >
< textarea rows = "1" id = "ruleExplore_author" class = "ruleExplore" title = "author "
placeholder="选择节点作者 (规则结果为String)">< / textarea >
< / div >
< div >
< div > 书籍作者 :< / div >
< textarea rows = "1" id = "ruleSearchAuthor "
placeholder="搜索页作者规则(ruleSearchAuthor) | 选择节点作者 (规则结果为String)">< / textarea >
< div > 分类规则 :< / div >
< textarea rows = "1" id = "ruleExplore_kind" class = "ruleExplore" title = "kind "
placeholder="选择节点分类信息 (规则结果为String)">< / textarea >
< / div >
< div >
< div > 书籍分类 :< / div >
< textarea rows = "1" id = "ruleSearchKind "
placeholder="搜索页分类规则(ruleSearchKind) | 选择节点分类信息 (规则结果为List< String> )">< / textarea >
< div > 字数规则 :< / div >
< textarea rows = "1" id = "ruleExplore_wordCount" class = "ruleExplore" title = "wordCount "
placeholder="选择节点字数信息 (规则结果为String )">< / textarea >
< / div >
< div >
< div > 最新章节:< / div >
< textarea rows = "1" id = "ruleSearchL astChapter"
placeholder="搜索页最新章节规则(ruleSearchLastChapter) | 选择节点最新章节 (规则结果为String)">< / textarea >
< textarea rows = "1" id = "ruleExplore_lastChapter" class = "ruleExplore" title = "l astChapter"
placeholder="选择节点最新章节 (规则结果为String)">< / textarea >
< / div >
< div >
< div > 简介内容 :< / div >
< textarea rows = "1" id = "ruleSearchIntroduce "
placeholder="搜索页简介规则(ruleSearchIntroduce) | 选择节点书籍简介 (规则结果为String)">< / textarea >
< div > 简介规则 :< / div >
< textarea rows = "1" id = "ruleExplore_intro" class = "ruleExplore" title = "intro "
placeholder="选择节点书籍简介 (规则结果为String)">< / textarea >
< / div >
< div >
< div > 封面链接 :< / div >
< textarea rows = "1" id = "ruleSearchC overUrl"
placeholder="搜索页封面规则(ruleSearchCoverUrl) | 选择节点书籍封面 (规则结果为U rl)">< / textarea >
< div > 封面规则 :< / div >
< textarea rows = "1" id = "ruleExplore_coverUrl" class = "ruleExplore" title = "c overUrl"
placeholder="选择节点书籍封面 (规则结果为String类型的u rl)">< / textarea >
< / div >
< div >
< div > 详情链接 :< / div >
< textarea rows = "1" id = "ruleSearchNote Url"
placeholder="搜索页详情规则(ruleSearchNoteUrl) | 选择书籍详情页网址 (规则结果为U rl)">< / textarea >
< div > 详情地址 :< / div >
< textarea rows = "1" id = "ruleExplore_bookUrl" class = "ruleExplore" title = "book Url"
placeholder="选择书籍详情页网址 (规则结果为String类型的u rl)">< / textarea >
< / div >
< div > < b > 书籍详情规则< / b > < / div >
< p > < / p >
< div > < b > 详情< / b > < / div >
< div >
< div > 页面处理 :< / div >
< textarea rows = "1 " id = "ruleBookInfoInit"
placeholder="详情页信息预处理(ruleBookInfoInit) | 用于加速详情信息检索">< / textarea >
< div > 预处理 :< / div >
< textarea rows = "3 " id = "ruleBookInfo_init" class = "ruleBook Info" title = "i nit"
placeholder="用于加速详情信息检索,只支持AllInOne规则 ">< / textarea >
< / div >
< div >
< div > 书籍名称 :< / div >
< textarea rows = "1" id = "ruleBookN ame"
placeholder="书名规则(ruleBookName) | 选择详情页 书名 (规则结果为String)">< / textarea >
< div > 书名规则 :< / div >
< textarea rows = "1" id = "ruleBookInfo_name" class = "ruleBookInfo" title = "n ame"
placeholder="选择节点 书名 (规则结果为String)">< / textarea >
< / div >
< div >
< div > 书籍 作者:< / div >
< textarea rows = "1" id = "ruleBookA uthor"
placeholder="作者规则(ruleBookAuthor) | 选择详情页 作者 (规则结果为String)">< / textarea >
< div > 作者规则 :< / div >
< textarea rows = "1" id = "ruleBookInfo_author" class = "ruleBookInfo" title = "a uthor"
placeholder="选择节点 作者 (规则结果为String)">< / textarea >
< / div >
< div >
< div > 书籍 分类:< / div >
< textarea rows = "1" id = "ruleBookK ind"
placeholder="分类规则(ruleBookKind) | 选择详情页分类信息 (规则结果为List< String> )">< / textarea >
< div > 分类规则 :< / div >
< textarea rows = "1" id = "ruleBookInfo_kind" class = "ruleBookInfo" title = "k ind"
placeholder="选择节点分类信息 (规则结果为String )">< / textarea >
< / div >
< div >
< div > 最新章节 :< / div >
< textarea rows = "1" id = "ruleBookLastChapter "
placeholder="最新章节规则(ruleBookLastChapter) | 选择详情页最新章 节 (规则结果为String)">< / textarea >
< div > 字数规则 :< / div >
< textarea rows = "1" id = "ruleBookInfo_wordCount" class = "ruleBookInfo" title = "wordCount "
placeholder="选择节点字数信息 (规则结果为String)">< / textarea >
< / div >
< div >
< div > 简介内容 :< / div >
< textarea rows = "1" id = "ruleIntroduce "
placeholder="简介规则(ruleIntroduce) | 选择详情页书籍简介 (规则结果为String)">< / textarea >
< div > 最新章节 :< / div >
< textarea rows = "1" id = "ruleBookInfo_lastChapter" class = "ruleBookInfo" title = "lastChapter "
placeholder="选择节点最新章节 (规则结果为String)">< / textarea >
< / div >
< div >
< div > 封面链接:< / div >
< textarea rows = "1" id = "ruleCoverUrl" placeholder = "封面规则(ruleCoverUrl) | 选择详情页书籍封面 (规则结果为Url)" > < / textarea >
< div > 简介规则:< / div >
< textarea rows = "1" id = "ruleBookInfo_intro" class = "ruleBookInfo" title = "intro"
placeholder="选择节点书籍简介 (规则结果为String)">< / textarea >
< / div >
< div >
< div > 目录链接 :< / div >
< textarea rows = "1" id = "ruleChapt erUrl"
placeholder="目录URL规则(ruleChapterUrl) | 选择目录页网址 (规则结果为Url, 与详情页相同时可省略 )">< / textarea >
< div > 封面规则 :< / div >
< textarea rows = "1" id = "ruleBookInfo_coverUrl" class = "ruleBookInfo" title = "cov erUrl"
placeholder="选择节点书籍封面 (规则结果为String类型的url )">< / textarea >
< / div >
< div > < b > 目录列表规则< / b > < / div >
< div >
< div > 目录翻页 :< / div >
< textarea rows = "1" id = "ruleChapterUrlNext "
placeholder="目录下一页规则(ruleChapterUrlNext) | 选择目录下一页链接 (规则结果为List< Url> )">< / textarea >
< div > 目录地址 :< / div >
< textarea rows = "1" id = "ruleBookInfo_tocUrl" class = "ruleBookInfo" title = "tocUrl "
placeholder="选择书籍详情页网址 (规则结果为String类型的url, 与详情页相同时可省略 )">< / textarea >
< / div >
< p > < / p >
< div > < b > 目录< / b > < / div >
< div >
< div > 目录列表:< / div >
< textarea rows = "1" id = "ruleC hapterList"
placeholder="目录列表规则(ruleChapterList) | 选择目录列表的章节节点 (规则结果为List< Element> )">< / textarea >
< div > 列表规则 :< / div >
< textarea rows = "3" id = "ruleToc_chapterList" class = "ruleToc" title = "c hapterList"
placeholder="选择目录列表的章节节点 (规则结果为List< Element> )">< / textarea >
< / div >
< div >
< div > 章节名称:< / div >
< textarea rows = "1" id = "ruleChapterName"
placeholder="章节名称规则(ruleChapterName) | 选择章节名称 (规则结果为String)">< / textarea >
< textarea rows = "1" id = "ruleToc_chapterName" class = "ruleToc" title = "chapterName"
placeholder="选择章节名称 (规则结果为String)">< / textarea >
< / div >
< div >
< div > 章节地址:< / div >
< textarea rows = "1" id = "ruleToc_chapterUrl" class = "ruleToc" title = "chapterUrl"
placeholder="选择章节链接 (规则结果为String类型的Url)">< / textarea >
< / div >
< div >
< div > 章节链接:< / div >
< textarea rows = "1" id = "ruleContentUrl"
placeholder="章节URL规则(ruleContentUrl) | 选择章节链接 (规则结果为Url)">< / textarea >
< div > 收费标识 :< / div >
< textarea rows = "1" id = "ruleToc_isVip" class = "ruleToc" title = "isVip "
placeholder="章节是否为VIP章节 (规则结果为Boo l)">< / textarea >
< / div >
< div > < b > 正文阅读规则< / b > < / div >
< div >
< div > 章节正文 :< / div >
< textarea rows = "1" id = "ruleBookContent "
placeholder="正文规则(ruleBookContent) | 选择正文内容 (规则结果为String)">< / textarea >
< div > 章节信息 :< / div >
< textarea rows = "1" id = "ruleToc_updateTime" class = "ruleToc" title = "updateTime "
placeholder="选择章节信息 (规则结果为String)">< / textarea >
< / div >
< div >
< div > 正文 翻页:< / div >
< textarea rows = "1" id = "ruleContentUrlNext "
placeholder="正文翻页URL规则(ruleContentUrlNext) | 选择下一分页(不是下一章)链接 (规则结果为Url )">< / textarea >
< div > 翻页规则 :< / div >
< textarea rows = "1" id = "ruleToc_nextTocUrl" class = "ruleToc" title = "nextTocUrl "
placeholder="选择目录下一页链接 (规则结果为List< String> 或String )">< / textarea >
< / div >
< p > < / p >
< div > < b > 正文< / b > < / div >
< div >
< div > 正文规则:< / div >
< textarea rows = "1" id = "ruleContent_content" class = "ruleContent" title = "content"
placeholder="选择正文内容 (规则结果为String)">< / textarea >
< / div >
< div >
< div > 翻页规则:< / div >
< textarea rows = "1" id = "ruleContent_nextContentUrl" class = "ruleContent" title = "nextContentUrl"
placeholder="选择下一分页(不是下一章)链接 (规则结果为String类型的Url)">< / textarea >
< / div >
< div >
< div > 脚本注入:< / div >
< textarea rows = "3" id = "ruleContent_webJs" class = "ruleContent" title = "webJs"
placeholder="注入javascript,用于模拟鼠标点击等,无返回结果">< / textarea >
< / div >
< div >
< div > 资源正则:< / div >
< textarea rows = "1" id = "ruleContent_sourceRegex" class = "ruleContent" title = "sourceRegex"
placeholder="匹配资源的url特征,用于嗅探">< / textarea >
< / div >
< p > < / p >
< div > < b > 其它规则< / b > < / div >
< div >
< div > 浏览标识:< / div >
< textarea rows = "1" id = "httpUserAgent"
placeholder="浏览器UA(HttpUserAgent) | 浏览器标识:User-Agent (可选)">< / textarea >
< div > 启用搜索 :< / div >
< textarea rows = "1" id = "enabled" class = "base" title = "enabled "
placeholder="启用: true 关闭: false (可选,默认true )">< / textarea >
< / div >
< div >
< div > 排序编号:< / div >
< textarea rows = "1" id = "serialNumber" placeholder = "整数: 0~N (可选,默认0) | 数字越小越靠前" > < / textarea >
< div > 启用发现:< / div >
< textarea rows = "1" id = "enabledExplore" class = "base" title = "enabledExplore"
placeholder="启用: true 关闭: false (可选,默认true)">< / textarea >
< / div >
< div >
< div > 搜索权重:< / div >
< textarea rows = "1" id = "weight" placeholder = "整数: 0~N (可选,默认0) | 数字越大越靠前" > < / textarea >
< textarea rows = "1" id = "weight" class = "base" title = "weight"
placeholder="整数: 0~N (可选,默认0) | 数字越大越靠前">< / textarea >
< / div >
< div >
< div > 排序编号:< / div >
< textarea rows = "1" id = "customOrder" class = "base" title = "customOrder"
placeholder="整数: 0~N (可选,默认0) | 数字越小越靠前">< / textarea >
< / div >
< div >
< div > 是否启用:< / div >
< textarea rows = "1" id = "enable" placeholder = "默认启用=true,手动启用=false (可选,默认true)" > < / textarea >
< div > 更新时间:< / div >
< textarea rows = "1" id = "lastUpdateTime" class = "base" title = "lastUpdateTime"
placeholder="整数: 0~N (可选,默认0) | 暂未使用">< / textarea >
< / div >
< / div >
< / div >
@ -266,13 +329,15 @@
< / div >
< div class = "tabbody" >
< div class = "tab1 this" >
< textarea class = "context" id = "RuleJsonString" placeholder = "这里输出序列化的JSON数据,可直接导入'阅读'APP" > < / textarea >
< textarea class = "context" id = "RuleJsonString"
placeholder="这里输出序列化的JSON数据,可直接导入'阅读'APP">< / textarea >
< / div >
< div class = "tab2" >
< input type = "text" class = "inputbox" id = "DebugKey" placeholder = "我的" >
< input type = "text" class = "inputbox" id = "DebugKey" placeholder = "输入搜索关键字,默认搜「 我的」 " >
< textarea class = "context" id = "DebugConsole" placeholder = "这里用于输出调试信息" > < / textarea >
< / div >
< div class = "tab3" >
< input type = "text" class = "inputbox" id = "Filter" placeholder = "输入筛选关键词(源名称、源URL或源分组)后按回车筛选源" >
< div class = "titlebar" >
< button id = "Import" > 导入书源文件< / button >
< button id = "Export" > 导出书源文件< / button >
@ -283,7 +348,7 @@
< / div >
< div class = "tab4" >
< div class = "context link" >
< a target = "_blank" href = "https://gedoor.github.io/MyBookshelf/sourcerule.html " > 官方书 源教程< / a >
< a target = "_blank" href = "https://celeter.github.io " > 源制作 教程< / a >
< a target = "_blank" href = "https://zhuanlan.zhihu.com/p/29436838" > Xpath基础教程< / a >
< a target = "_blank" href = "https://zhuanlan.zhihu.com/p/32187820" > Xpath高级教程< / a >
< a target = "_blank" href = "https://www.w3cschool.cn/regex_rmjc/?" > 正则表达式教程< / a >
@ -294,14 +359,15 @@
< br > (?i) 前缀表示忽略大小写
< / div >
< a target = "_blank" href = "https://www.beta.browxy.com/" > 代码在线运行工具< / a >
< a target = "_blank" href = "/bookshelf.html" > 阅读书架(测试)< / a >
< a target = "_blank" href = "bookshelf.html" > 阅读书架(经典)< / a >
< a target = "_blank" href = "new/bookshelf.html" > 阅读书架(新潮)< / a >
< / div >
< / div >
< / div >
< / div >
< / div >
< / div >
< script type = "text/javascript" src = "/ index.js" > < / script >
< script type = "text/javascript" src = "index.js" > < / script >
< / body >
< / html >