diff --git a/app/src/main/assets/web/source/css/app.13bafeb4.css b/app/src/main/assets/web/source/css/app.177fcd98.css
similarity index 96%
rename from app/src/main/assets/web/source/css/app.13bafeb4.css
rename to app/src/main/assets/web/source/css/app.177fcd98.css
index a8060e852..fa8661af5 100644
--- a/app/src/main/assets/web/source/css/app.13bafeb4.css
+++ b/app/src/main/assets/web/source/css/app.177fcd98.css
@@ -1 +1 @@
-.editor{display:flex;align-items:stretch;height:100vh}.left{width:calc(50% - 55px);min-width:500px;display:inline-block}.main{width:100%;height:calc(100vh - 64px);overflow-y:auto}textarea{min-height:20px;flex:1;outline:none;border-radius:4px;border:1px solid #ccc;font-size:14px;font-family:Cascadia,Microsoft YaHei UI,Arial,serif;line-height:20px;padding:10px 10px 10px}.fixed[data-v-ab8a8a34]{position:fixed;top:100px;left:50%;transform:translateX(-50%)}.half-circle-spinner [data-v-ab8a8a34],.half-circle-spinner[data-v-ab8a8a34]{box-sizing:border-box}.half-circle-spinner[data-v-ab8a8a34]{width:60px;height:60px;border-radius:100%;position:relative}.half-circle-spinner .circle[data-v-ab8a8a34]{content:"";position:absolute;width:100%;height:100%;border-radius:100%;border:6px solid transparent}.half-circle-spinner .circle.circle-1[data-v-ab8a8a34]{border-top-color:#ff1d5e;-webkit-animation:half-circle-spinner-animation-ab8a8a34 1s infinite;animation:half-circle-spinner-animation-ab8a8a34 1s infinite}.half-circle-spinner .circle.circle-2[data-v-ab8a8a34]{border-bottom-color:#ff1d5e;-webkit-animation:half-circle-spinner-animation-ab8a8a34 1s infinite alternate;animation:half-circle-spinner-animation-ab8a8a34 1s infinite alternate}@-webkit-keyframes half-circle-spinner-animation-ab8a8a34{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes half-circle-spinner-animation-ab8a8a34{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.warm[data-v-27eae50d]{position:fixed;top:100px;left:50%;transform:translateX(-50%);color:#eee;background-color:#ff1d5e;padding:20px;border-radius:8px;font-size:18px}button[data-v-27eae50d]{float:right;width:70px;height:35px;outline:none;border:unset;border-radius:8px;font-size:14px;transition:background-color .3s ease}.success[data-v-bef92f74],button[data-v-27eae50d]:hover{color:#333;background-color:#7fffd4}.success[data-v-bef92f74]{z-index:3;position:fixed;top:100px;left:50%;transform:translateX(-50%);padding:10px;border-radius:8px}p[data-v-bef92f74]{margin:0}.menu{display:flex;flex-direction:column;justify-content:center}button[data-v-5c287c97]{width:100px;height:50px;margin:5px;outline:none;padding:10px;font-size:16px;border-radius:4px;box-sizing:border-box;border:1px solid #333;background-color:transparent;transition:all .3s ease;overflow:hidden}button span[data-v-5c287c97]{display:inline-block;transform:translateY(20px);opacity:0;font-size:12px;transition:all .3s ease}button[data-v-5c287c97]:hover{color:#fff;background-color:gray}button:hover span[data-v-5c287c97]{transform:translateY(0);opacity:1}textarea[data-v-554d8227]{font-size:14px}input[data-v-28b882dd]{outline:none;height:25px;font-size:16px}textarea[data-v-28b882dd]{font-size:14px}.search[data-v-5570960e]{border:1px solid #ddd;border-radius:4px}input[data-v-5570960e]{text-align:center;font-size:16px;height:25px;outline:none}.tool[data-v-5570960e]{display:flex;justify-content:space-around;padding:4px 0}.tool button[data-v-5570960e]{border-radius:4px;padding:5px;outline:none;border:none;flex:1;margin:0 2px}.tool button[data-v-5570960e]:hover{background-color:#ddd}input[type=checkbox][data-v-5570960e]{transform:scale(2);margin:0 15px 0}.book_item[data-v-5570960e]{overflow:hidden;display:flex;align-items:center;margin-top:10px;padding:10px;cursor:pointer;background-color:#eee}.book_active[data-v-5570960e]{background-color:#32cd32}.book_index[data-v-5570960e]{width:auto;height:30px;text-align:center;line-height:30px;border-radius:8px;padding:0 10px;background-color:#ffb6c1}.book_info[data-v-5570960e]{display:flex;justify-content:space-between}.source_list[data-v-5570960e]{height:calc(100vh - 125px);overflow-y:auto}a[data-v-7ac1e65e]{display:block;height:25px;transition:margin-left .3s ease}a[data-v-7ac1e65e]:hover{color:red;margin-left:10px}code[data-v-7ac1e65e]{display:inline-block;font-size:16px;font-family:Cascadia Mono,JetBrains Mono,Microsoft YaHei UI,serif;background-color:#f3f4f4;border-radius:4px}.author[data-v-7ac1e65e]{position:fixed;right:20px;bottom:20px}.author a[data-v-7ac1e65e]{padding:5px 10px;border-radius:4px}.author a[data-v-7ac1e65e]:hover{box-shadow:0 0 3px 3px #ccc;background-color:#ddd}.out{min-width:620px}.out,.out .box{flex:1;display:flex;flex-flow:column}ul li[data-v-0fc56f5e]{border-bottom:2px solid #333}a[data-v-0fc56f5e]{font-size:18px;color:blue}span[data-v-2ede5ef6]{display:flex;justify-content:space-around;width:70px;white-space:nowrap}span i[data-v-2ede5ef6]{font-style:normal}.edit_input[data-v-2ede5ef6]{display:flex;justify-content:space-between;align-items:center;margin:10px 5px}a{text-decoration:none;color:#333}body,ul{margin:0;padding:0}ul{width:100%;height:40px;display:flex}ul li{display:block;text-align:center;line-height:40px;width:16%;list-style:none;cursor:pointer}ul li:hover{color:red}.active{color:#fff!important;background-color:hsla(0,0%,50%,.459);border-bottom:unset!important}ul li[data-v-63af33ef]{border-bottom:2px solid #333}a[data-v-63af33ef]{font-size:18px;color:blue}
\ No newline at end of file
+.editor{display:flex;align-items:stretch;height:100vh}.left{width:calc(50% - 55px);min-width:500px;display:inline-block}.main{width:100%;height:calc(100vh - 64px);overflow-y:auto}textarea{min-height:20px;flex:1;outline:none;border-radius:4px;border:1px solid #ccc;font-size:14px;font-family:Cascadia,Microsoft YaHei UI,Arial,serif;line-height:20px;padding:10px 10px 10px}.fixed[data-v-ab8a8a34]{position:fixed;top:100px;left:50%;transform:translateX(-50%)}.half-circle-spinner [data-v-ab8a8a34],.half-circle-spinner[data-v-ab8a8a34]{box-sizing:border-box}.half-circle-spinner[data-v-ab8a8a34]{width:60px;height:60px;border-radius:100%;position:relative}.half-circle-spinner .circle[data-v-ab8a8a34]{content:"";position:absolute;width:100%;height:100%;border-radius:100%;border:6px solid transparent}.half-circle-spinner .circle.circle-1[data-v-ab8a8a34]{border-top-color:#ff1d5e;-webkit-animation:half-circle-spinner-animation-ab8a8a34 1s infinite;animation:half-circle-spinner-animation-ab8a8a34 1s infinite}.half-circle-spinner .circle.circle-2[data-v-ab8a8a34]{border-bottom-color:#ff1d5e;-webkit-animation:half-circle-spinner-animation-ab8a8a34 1s infinite alternate;animation:half-circle-spinner-animation-ab8a8a34 1s infinite alternate}@-webkit-keyframes half-circle-spinner-animation-ab8a8a34{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes half-circle-spinner-animation-ab8a8a34{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.warm[data-v-27eae50d]{position:fixed;top:100px;left:50%;transform:translateX(-50%);color:#eee;background-color:#ff1d5e;padding:20px;border-radius:8px;font-size:18px}button[data-v-27eae50d]{float:right;width:70px;height:35px;outline:none;border:unset;border-radius:8px;font-size:14px;transition:background-color .3s ease}.success[data-v-bef92f74],button[data-v-27eae50d]:hover{color:#333;background-color:#7fffd4}.success[data-v-bef92f74]{z-index:3;position:fixed;top:100px;left:50%;transform:translateX(-50%);padding:10px;border-radius:8px}p[data-v-bef92f74]{margin:0}.menu{display:flex;flex-direction:column;justify-content:center}button[data-v-5c287c97]{width:100px;height:50px;margin:5px;outline:none;padding:10px;font-size:16px;border-radius:4px;box-sizing:border-box;border:1px solid #333;background-color:transparent;transition:all .3s ease;overflow:hidden}button span[data-v-5c287c97]{display:inline-block;transform:translateY(20px);opacity:0;font-size:12px;transition:all .3s ease}button[data-v-5c287c97]:hover{color:#fff;background-color:gray}button:hover span[data-v-5c287c97]{transform:translateY(0);opacity:1}textarea[data-v-554d8227]{font-size:14px}input[data-v-28b882dd]{outline:none;height:25px;font-size:16px}textarea[data-v-28b882dd]{font-size:14px}.search[data-v-5570960e]{border:1px solid #ddd;border-radius:4px}input[data-v-5570960e]{text-align:center;font-size:16px;height:25px;outline:none}.tool[data-v-5570960e]{display:flex;justify-content:space-around;padding:4px 0}.tool button[data-v-5570960e]{border-radius:4px;padding:5px;outline:none;border:none;flex:1;margin:0 2px}.tool button[data-v-5570960e]:hover{background-color:#ddd}input[type=checkbox][data-v-5570960e]{transform:scale(2);margin:0 15px 0}.book_item[data-v-5570960e]{overflow:hidden;display:flex;align-items:center;margin-top:10px;padding:10px;cursor:pointer;background-color:#eee}.book_active[data-v-5570960e]{background-color:#32cd32}.book_index[data-v-5570960e]{width:auto;height:30px;text-align:center;line-height:30px;border-radius:8px;padding:0 10px;background-color:#ffb6c1}.book_info[data-v-5570960e]{display:flex;justify-content:space-between}.source_list[data-v-5570960e]{height:calc(100vh - 125px);overflow-y:auto}a[data-v-7ac1e65e]{display:block;height:25px;transition:margin-left .3s ease}a[data-v-7ac1e65e]:hover{color:red;margin-left:10px}code[data-v-7ac1e65e]{display:inline-block;font-size:16px;font-family:Cascadia Mono,JetBrains Mono,Microsoft YaHei UI,serif;background-color:#f3f4f4;border-radius:4px}.author[data-v-7ac1e65e]{position:fixed;right:20px;bottom:20px}.author a[data-v-7ac1e65e]{padding:5px 10px;border-radius:4px}.author a[data-v-7ac1e65e]:hover{box-shadow:0 0 3px 3px #ccc;background-color:#ddd}.out{min-width:620px}.out,.out .box{flex:1;display:flex;flex-flow:column}ul li[data-v-0fc56f5e]{border-bottom:2px solid #333}a[data-v-0fc56f5e]{font-size:18px;color:blue}span[data-v-b51d440e]{display:flex;justify-content:space-around;width:70px;white-space:nowrap}span i[data-v-b51d440e]{font-style:normal}.edit_input[data-v-b51d440e]{display:flex;justify-content:space-between;align-items:center;margin:10px 5px}a{text-decoration:none;color:#333}body,ul{margin:0;padding:0}ul{width:100%;height:40px;display:flex}ul li{display:block;text-align:center;line-height:40px;width:16%;list-style:none;cursor:pointer}ul li:hover{color:red}.active{color:#fff!important;background-color:hsla(0,0%,50%,.459);border-bottom:unset!important}ul li[data-v-63af33ef]{border-bottom:2px solid #333}a[data-v-63af33ef]{font-size:18px;color:blue}
\ No newline at end of file
diff --git a/app/src/main/assets/web/source/index.html b/app/src/main/assets/web/source/index.html
index f21bfd687..89cbbadf3 100644
--- a/app/src/main/assets/web/source/index.html
+++ b/app/src/main/assets/web/source/index.html
@@ -1 +1 @@
-
legado_web_source_editor
\ No newline at end of file
+legado_web_source_editor
\ No newline at end of file
diff --git a/app/src/main/assets/web/source/js/app.90e7caad.js b/app/src/main/assets/web/source/js/app.90e7caad.js
new file mode 100644
index 000000000..2b5620c41
--- /dev/null
+++ b/app/src/main/assets/web/source/js/app.90e7caad.js
@@ -0,0 +1 @@
+(function(){"use strict";var t={4753:function(t,e,n){var o=n(9963),r=n(6252);const i={class:"editor"};function a(t,e,n,o,a,l){const c=(0,r.up)("router-view");return(0,r.wg)(),(0,r.iD)("div",i,[(0,r.Wm)(c)])}var l={setup(){}},c=n(3744);const s=(0,c.Z)(l,[["render",a]]);var u=s,d=n(2201),p=n(3577);const g=t=>((0,r.dD)("data-v-0fc56f5e"),t=t(),(0,r.Cn)(),t),h={class:"left"},S=g((()=>(0,r._)("div",null,[(0,r._)("a",{href:"/"},"←主页"),(0,r._)("b",null,"书源")],-1))),w=["onClick"],v=["onClick"],m=["onClick"],y=["onClick"],b=["onClick"],f=["onClick"],k=["onClick"],C=["onClick"];function _(t,e,n,o,i,a){const l=(0,r.up)("router-link"),c=(0,r.up)("router-view"),s=(0,r.up)("edit-menu"),u=(0,r.up)("edit-out");return(0,r.wg)(),(0,r.iD)(r.HY,null,[(0,r._)("div",h,[(0,r._)("div",null,[S,(0,r._)("ul",null,[(0,r.Wm)(l,{to:{name:"book-base"},custom:""},{default:(0,r.w5)((({navigate:t,isActive:e})=>[(0,r._)("li",{onClick:t,class:(0,p.C_)({active:e?"active":""})}," 基础 ",10,w)])),_:1}),(0,r.Wm)(l,{to:{name:"book-search"},custom:""},{default:(0,r.w5)((({navigate:t,isActive:e})=>[(0,r._)("li",{onClick:t,class:(0,p.C_)({active:e?"active":""})}," 搜索 ",10,v)])),_:1}),(0,r.Wm)(l,{to:{name:"book-find"},custom:""},{default:(0,r.w5)((({navigate:t,isActive:e})=>[(0,r._)("li",{onClick:t,class:(0,p.C_)({active:e?"active":""})}," 发现 ",10,m)])),_:1}),(0,r.Wm)(l,{custom:"",to:{name:"book-detail"}},{default:(0,r.w5)((({navigate:t,isActive:e})=>[(0,r._)("li",{onClick:t,class:(0,p.C_)({active:e?"active":""})}," 详情 ",10,y)])),_:1}),(0,r.Wm)(l,{custom:"",to:{name:"book-directory"}},{default:(0,r.w5)((({navigate:t,isActive:e})=>[(0,r._)("li",{onClick:t,class:(0,p.C_)({active:e?"active":""})}," 目录 ",10,b)])),_:1}),(0,r.Wm)(l,{custom:"",to:{name:"book-content"}},{default:(0,r.w5)((({navigate:t,isActive:e})=>[(0,r._)("li",{onClick:t,class:(0,p.C_)({active:e?"active":""})}," 正文 ",10,f)])),_:1}),(0,r.Wm)(l,{custom:"",to:{name:"book-review"}},{default:(0,r.w5)((({navigate:t,isActive:e})=>[(0,r._)("li",{onClick:t,class:(0,p.C_)({active:e?"active":""})}," 段评 ",10,k)])),_:1}),(0,r.Wm)(l,{custom:"",to:{name:"book-other"}},{default:(0,r.w5)((({navigate:t,isActive:e})=>[(0,r._)("li",{onClick:t,class:(0,p.C_)({active:e?"active":""})}," 其他 ",10,C)])),_:1})])]),(0,r.Wm)(c,null,{default:(0,r.w5)((({Component:t})=>[((0,r.wg)(),(0,r.j4)(r.Ob,null,[((0,r.wg)(),(0,r.j4)((0,r.LL)(t)))],1024))])),_:1})]),(0,r.Wm)(s),(0,r.Wm)(u)],64)}var D=n(2262);n(7658);const U=t=>((0,r.dD)("data-v-5c287c97"),t=t(),(0,r.Cn)(),t),x={class:"menu"},B=(0,r.Uk)("⇈推送源 "),I=U((()=>(0,r._)("span",null,"Ctrl+P",-1))),T=[B,I],j=(0,r.Uk)("⇊拉取源 "),K=U((()=>(0,r._)("span",null,"Shift+P",-1))),A=[j,K],N=(0,r.Uk)(" ⋙生成源"),E=U((()=>(0,r._)("span",null,"Ctrl+E",-1))),H=[N,E],L=(0,r.Uk)(" ⋘编辑源"),R=U((()=>(0,r._)("span",null,"Shift+E",-1))),O=[L,R],J=(0,r.Uk)(" ✗清空表单"),q=U((()=>(0,r._)("span",null,"Shift+C",-1))),W=[J,q],Z=(0,r.Uk)("↶撤销操作"),P=U((()=>(0,r._)("span",null,"Ctrl+Z",-1))),$=[Z,P],M=(0,r.Uk)("↷重做操作"),Y=U((()=>(0,r._)("span",null,"Shift+R",-1))),V=[M,Y],z=(0,r.Uk)(" ⇏调试源 "),F=U((()=>(0,r._)("span",null,"Ctrl+Enter",-1))),G=[z,F],Q=(0,r.Uk)(" ✓保存源"),X=U((()=>(0,r._)("span",null,"Ctrl+S",-1))),tt=[Q,X];function et(t,e,n,o,i,a){const l=(0,r.up)("edit-loading"),c=(0,r.up)("edit-warn"),s=(0,r.up)("edit-success");return(0,r.wg)(),(0,r.iD)("div",x,[(0,r._)("div",null,[o.showLoading?((0,r.wg)(),(0,r.j4)(l,{key:0})):(0,r.kq)("",!0),(0,r.Wm)(c,{text:o.warnText,"is-show":o.warnShow,onChangeShow:o.changeShow},null,8,["text","is-show","onChangeShow"]),o.successShow?((0,r.wg)(),(0,r.j4)(s,{key:1,isShow:o.successShow,onChangeShow:o.changeSuccessShow,text:o.successText},null,8,["isShow","onChangeShow","text"])):(0,r.kq)("",!0)]),(0,r._)("button",{onClick:e[0]||(e[0]=(...t)=>o.push&&o.push(...t)),title:"Ctrl+P"},T),(0,r._)("button",{onClick:e[1]||(e[1]=(...t)=>o.pull&&o.pull(...t)),title:"Shift+P"},A),(0,r._)("button",{onClick:e[2]||(e[2]=(...t)=>o.conver2Tab&&o.conver2Tab(...t)),title:"Ctrl+E"},H),(0,r._)("button",{onClick:e[3]||(e[3]=(...t)=>o.conver2Source&&o.conver2Source(...t)),title:"Shift+E"},O),(0,r._)("button",{onClick:e[4]||(e[4]=(...t)=>o.clearEdit&&o.clearEdit(...t)),title:"Shift+C"},W),(0,r._)("button",{onClick:e[5]||(e[5]=(...t)=>o.undo&&o.undo(...t)),title:"Ctrl+Z"},$),(0,r._)("button",{onClick:e[6]||(e[6]=(...t)=>o.redo&&o.redo(...t)),title:"Shift+R"},V),(0,r._)("button",{onClick:e[7]||(e[7]=(...t)=>o.debug&&o.debug(...t)),title:"Ctrl+Enter"},G),(0,r._)("button",{onClick:e[8]||(e[8]=(...t)=>o.saveSource&&o.saveSource(...t)),title:"Ctrl+S"},tt)])}function nt(t,e){return fetch(t,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)}).then((t=>t.json()))}function ot(t){return fetch(t).then((t=>t.json()))}function rt(t,e=!0){let n=/bookSource/.test(location.href),o=`http://${localStorage.getItem("url")||location.host}/`,r=n?"BookSource":"RssSource";return`${o}${t}${r}${e?"s":""}`}function it(){return ot(rt("get"))}function at(t){return nt(rt("save"),t)}function lt(t){return nt(rt("save",!1),t)}function ct(t){return nt(rt("delete"),t)}var st=n(3907),ut=(0,st.MT)({state:{url:localStorage.getItem("url")||"",bookSources:[],rssSources:[],currentSource:{},currentTab:localStorage.getItem("tabName")||"editTab",editTabSource:{},deBugMsg:"",searchKey:""},getters:{},mutations:{changeSearchKey(t,e){t.searchKey=e},saveSources(t,e){/bookSource/.test(location.href)?t.bookSources=e:t.rssSources=e},saveCurrentSource(t){let e,n,o=t.currentSource;/bookSource/.test(location.href)?(o=t.bookSources,n="bookSourceUrl"):(o=t.rssSources,n="sourceUrl");let r=e.findIndex((t=>t[n]===o[n]));r>-1?e.splice(r,1,o):e.push(o)},changeCurrentSource(t,e){const n=JSON.stringify(e);t.currentSource=JSON.parse(n)},changeCurrentSourceValue(t,e){let n=e.value,o={true:!0,false:!1};if("Boolean"===e.type&&(n=o[n]||n),"Number"===e.type&&(n=Number(n)||n),e.key.includes("_")){let o=e.key.split("_")[0],r=e.key.split("_")[1],i={};i[r]=n,t.currentSource[o]=Object.assign(t.currentSource[o]||{},i)}else t.currentSource[e.key]=n;t.currentSource.lastUpdateTime=(new Date).getTime()},changeTabName(t,e){t.currentTab=e,localStorage.setItem("tabName",e),console.log(e)},changeEditTabSource(t,e){const n=JSON.stringify(e);t.editTabSource=JSON.parse(n)},editHistory(t,e){let n;if(localStorage.getItem("history"))n=JSON.parse(localStorage.getItem("history")),n.new.push(e),n.new.length>50&&n.new.shift(),n.old.length>50&&n.old.shift(),localStorage.setItem("history",JSON.stringify(n));else{const t={new:[e],old:[]};localStorage.setItem("history",JSON.stringify(t))}},editHistoryUndo(t){if(localStorage.getItem("history")){let e=JSON.parse(localStorage.getItem("history"));e.old.push(t.currentSource),e.new.length&&(t.currentSource=e.new.pop()),localStorage.setItem("history",JSON.stringify(e))}},clearAllHistory(){localStorage.setItem("history",JSON.stringify({new:[],old:[]}))},clearEdit(t){t.editTabSource={},t.currentSource={}},appendDeBugMsg(t,e){let n=document.querySelector("#debug_text");n.scrollTop=n.scrollHeight,t.deBugMsg+=e+"\n"},clearDeBugMsg(t){t.deBugMsg=""},clearAllSource(t){t.bookSources=[],t.rssSources=[]}},actions:{},modules:{}});const dt=t=>((0,r.dD)("data-v-ab8a8a34"),t=t(),(0,r.Cn)(),t),pt={class:"fixed"},gt=dt((()=>(0,r._)("div",{class:"half-circle-spinner"},[(0,r._)("div",{class:"circle circle-1"}),(0,r._)("div",{class:"circle circle-2"})],-1))),ht=[gt];function St(t,e,n,o,i,a){return(0,r.wg)(),(0,r.iD)("div",pt,ht)}var wt={name:"editLoading"};const vt=(0,c.Z)(wt,[["render",St],["__scopeId","data-v-ab8a8a34"]]);var mt=vt;const yt={key:0,class:"warm"};function bt(t,e,n,o,i,a){return n.isShow?((0,r.wg)(),(0,r.iD)("div",yt,[(0,r._)("p",null,(0,p.zw)(n.text),1),(0,r._)("div",null,[(0,r._)("button",{onClick:e[0]||(e[0]=(...t)=>o.changeShow&&o.changeShow(...t))},"关闭")])])):(0,r.kq)("",!0)}var ft={name:"editWarm",props:{isShow:{default:!1,type:Boolean},text:{type:String,default:""}},setup(t,{emit:e}){const n=()=>{e("changeShow",!t.isShow)};return{changeShow:n}}};const kt=(0,c.Z)(ft,[["render",bt],["__scopeId","data-v-27eae50d"]]);var Ct=kt;const _t={class:"success"};function Dt(t,e,n,o,i,a){return(0,r.wg)(),(0,r.iD)("div",_t,[(0,r._)("p",null,(0,p.zw)(n.text),1)])}var Ut={props:{text:{type:String,default:""},isShow:{type:Boolean,default:!1}},emits:["changeShow"],setup(t,{emit:e}){return setTimeout((()=>{e("changeShow",!t.isShow)}),3e3),{}}};const xt=(0,c.Z)(Ut,[["render",Dt],["__scopeId","data-v-bef92f74"]]);var Bt=xt,It={components:{editLoading:mt,editWarn:Ct,editSuccess:Bt},setup(){const t=(0,D.iH)(!1),e=(0,D.iH)(!1),n=(0,D.iH)(""),o=(0,D.iH)(!1),i=(0,D.iH)(""),a=t=>{e.value=t},l=t=>{console.log(t),o.value=t},c=()=>{t.value=!0,it().then((r=>{t.value=!1,r.isSuccess?(ut.commit("changeTabName","editList"),ut.commit("saveSources",r.data),n.value=`成功拉取${r.data.length}条源`,o.value=!0):(i.value=r.errorMsg,e.value=!0)})).catch((n=>{console.log(n),t.value=!1,i.value=" 请求发生了错误,请检查你的后端地址,填写是否正确,或者 阅读APP\n确认开启web服务",e.value=!0}))},s=()=>{n.value="正在推送中",o.value=!0,t.value=!0;let r=/bookSource/.test(location.href)?ut.state.bookSources:ut.state.rssSources;at(r).then((a=>{if(a.isSuccess){let t=a.data;if(Array.isArray(t)){let e="";r.length>t.length&&(r.forEach((e=>{t.find((t=>t.bookSourceUrl===e.bookSourceUrl))||console.log(e.bookSourceUrl)})),e="\n推送失败的源将用红色字体标注!"),n.value=`批量推送源到「阅读3.0APP」\n共计: ${r.length} 条\n成功: ${t.length} 条\n失败: ${r.length-t.length} 条${e}`,o.value=!0}else n.value=`批量推送源到「阅读3.0APP」成功!\n共计: ${r.length} 条`,o.value=!0}else i.value=`批量推送源失败!\nErrorMsg: ${a.errorMsg}`,e.value=!0;t.value=!1})).catch((n=>{console.log(n),t.value=!1,e.value=!0,i.value="请求发生了错误,请检查你的后端地址,填写是否正确,或者 阅读APP\n确认开启web服务"}))},u=()=>{ut.commit("changeEditTabSource",ut.state.currentSource),ut.commit("changeTabName","editTab")},d=()=>{ut.commit("changeCurrentSource",ut.state.editTabSource)},p=()=>{ut.commit("editHistoryUndo")},g=()=>{ut.commit("clearEdit"),console.log("已清除"),n.value="已清除",o.value=!0},h=()=>{ut.commit("clearEdit"),ut.commit("clearAllHistory"),n.value="已清除所有历史记录",o.value=!0},S=()=>{let t=/bookSource/.test(location.href),r=ut.state.currentSource;t&&""!==r.bookSourceUrl&&""!==r.bookSourceType&&""!==r.bookSourceName||!t&&""!==r.sourceUrl&&""!==r.sourceName?lt(r).then((a=>{a.isSuccess?(n.value=`源《${t?r.bookSourceName:r.sourceName}》已成功保存到「阅读3.0APP」`,o.value=!0,ut.commit("saveCurrentSource")):(i.value=`源《${t?r.bookSourceName:r.sourceName}》保存失败!\nErrorMsg: ${a.errorMsg}`,e.value=!0)})):(i.value="请检查<必填>项是否全部填写",e.value=!0)},w=()=>{t.value=!0,ut.commit("clearDeBugMsg"),ut.commit("changeTabName","editDebug");let e=/bookSource/.test(location.href),r=ut.state.currentSource;lt(r).then((i=>{console.log(i);let a="ws://"+(localStorage.getItem("url")||location.host).replace(/\d+$/,(t=>parseInt(t)+1))+"/"+(e?"bookSourceDebug":"rssSourceDebug");console.log(a);const l=new WebSocket(a);let c="",s=e?r.bookSourceUrl:r.sourceUrl;e&&(c=r.ruleSearch.checkKeyWord?r.ruleSearch.checkKeyWord:ut.state.searchKey?ut.state.searchKey:"我的"),l.onopen=()=>{l.send(`{"tag":"${s}", "key":"${c}"}`)},l.onmessage=t=>{ut.commit("appendDeBugMsg",t.data)},l.onclose=()=>{t.value=!1,n.value="调试已关闭!",o.value=!0,ut.commit("appendDeBugMsg","调试已关闭!")}}))};return(0,r.bv)((()=>{document.onkeydown=t=>{(t.ctrlKey||t.metaKey)&&"Enter"===t.key&&w(),(t.ctrlKey||t.metaKey)&&"s"===t.key&&(S(),t.preventDefault()),t.shiftKey&&"R"===t.key&&h(),t.shiftKey&&"C"===t.key&&g(),t.ctrlKey&&"e"===t.key&&(u(),t.preventDefault()),t.shiftKey&&"e"===t.key&&(d(),t.preventDefault()),t.shiftKey&&"P"===t.key&&c(),t.ctrlKey&&"p"===t.key&&(s(),t.preventDefault())}})),{debug:w,push:s,pull:c,clearEdit:g,showLoading:t,changeShow:a,warnShow:e,successText:n,changeSuccessShow:l,successShow:o,undo:p,redo:h,conver2Tab:u,conver2Source:d,warnText:i,saveSource:S}}};const Tt=(0,c.Z)(It,[["render",et],["__scopeId","data-v-5c287c97"]]);var jt=Tt;const Kt={class:"out"};function At(t,e,n,o,i,a){return(0,r.wg)(),(0,r.iD)("div",Kt,[(0,r._)("ul",null,[(0,r._)("li",{class:(0,p.C_)("editTab"===t.current_tab?"active":""),onClick:e[0]||(e[0]=t=>o.handleSetActive("editTab"))}," 编辑源 ",2),(0,r._)("li",{class:(0,p.C_)("editDebug"===t.current_tab?"active":""),onClick:e[1]||(e[1]=t=>o.handleSetActive("editDebug"))}," 调试源 ",2),(0,r._)("li",{class:(0,p.C_)("editList"===t.current_tab?"active":""),onClick:e[2]||(e[2]=t=>o.handleSetActive("editList"))}," 源列表 ",2),(0,r._)("li",{class:(0,p.C_)("editHelp"===t.current_tab?"active":""),onClick:e[3]||(e[3]=t=>o.handleSetActive("editHelp"))}," 帮助信息 ",2)]),((0,r.wg)(),(0,r.j4)(r.Ob,null,[((0,r.wg)(),(0,r.j4)((0,r.LL)(t.current_tab)))],1024))])}function Nt(t,e,n,i,a,l){return(0,r.wy)(((0,r.wg)(),(0,r.iD)("textarea",{placeholder:"这里输出序列化的JSON数据,可直接导入'阅读'APP","onUpdate:modelValue":e[0]||(e[0]=e=>t.source=e),onInput:e[1]||(e[1]=(...t)=>i.updateEditSource&&i.updateEditSource(...t))},null,544)),[[o.nr,t.source]])}var Et={name:"editTab",setup(){const t=(0,D.qj)({source:""}),e=()=>{ut.commit("changeEditTabSource",JSON.parse(t.source))};return(0,r.m0)((()=>{let e=ut.state.editTabSource;Object.keys(e).length>0?(e.lastUpdateTime=(new Date).getTime(),t.source=JSON.stringify(e,null,4)):t.source=""})),{...(0,D.BK)(t),updateEditSource:e}}};const Ht=(0,c.Z)(Et,[["render",Nt],["__scopeId","data-v-554d8227"]]);var Lt=Ht;function Rt(t,e,n,i,a,l){return(0,r.wg)(),(0,r.iD)(r.HY,null,[i.isBookSource?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:0,type:"text",style:{"text-align":"center",border:"1px solid #dddddd","border-radius":"4px"},placeholder:"输入搜索关键字,默认搜「我的」","onUpdate:modelValue":e[0]||(e[0]=e=>t.searchKey=e),onInput:e[1]||(e[1]=e=>i.changeSearch(t.searchKey)),onKeydown:e[2]||(e[2]=(0,o.D2)(((...t)=>i.startSearch&&i.startSearch(...t)),["enter"])),title:"输入关键词 enter(回车键)快捷搜索"},null,544)),[[o.nr,t.searchKey]]):(0,r.kq)("",!0),(0,r.wy)((0,r._)("textarea",{placeholder:"这里用于输出调试信息","onUpdate:modelValue":e[3]||(e[3]=e=>t.printDebug=e),ref:"textareaDom",id:"debug_text"},null,512),[[o.nr,t.printDebug]])],64)}var Ot={name:"editDebug",setup(){const t=(0,D.iH)(""),e=(0,D.qj)({printDebug:ut.state.deBugMsg,searchKey:""}),n=t=>{ut.commit("changeSearchKey",t)};(0,r.m0)((()=>{e.printDebug=ut.state.deBugMsg}));const o=()=>{document.querySelectorAll(".menu>button")[6].click()},i=(0,r.Fl)((()=>/bookSource/.test(window.location.href)));return{...(0,D.BK)(e),textareaDom:t,changeSearch:n,startSearch:o,isBookSource:i}}};const Jt=(0,c.Z)(Ot,[["render",Rt],["__scopeId","data-v-28b882dd"]]);var qt=Jt;const Wt={style:{display:"flex","flex-flow":"column"}},Zt={class:"tool"},Pt={class:"source_list"},$t=["value"],Mt={class:"book_index"},Yt=["onClick"],Vt={class:"book_info"},zt={key:0};function Ft(t,e,n,i,a,l){return(0,r.wg)(),(0,r.iD)("div",Wt,[(0,r.wy)((0,r._)("input",{class:"search",type:"text",placeholder:"输入筛选关键词(源名称、源URL或源分组)输入自动筛选源","onUpdate:modelValue":e[0]||(e[0]=e=>t.searchKey=e),onFocus:e[1]||(e[1]=e=>t.delArr=[])},null,544),[[o.nr,t.searchKey]]),(0,r._)("div",null,[(0,r._)("div",Zt,[(0,r._)("button",{onClick:e[2]||(e[2]=(...t)=>i.upFile&&i.upFile(...t))},"导入书源文件"),(0,r._)("button",{onClick:e[3]||(e[3]=(...t)=>i.outExport&&i.outExport(...t))},"导出书源文件"),(0,r._)("button",{onClick:e[4]||(e[4]=(...t)=>i.deleteActiveSource&&i.deleteActiveSource(...t))},"删除选中源"),(0,r._)("button",{onClick:e[5]||(e[5]=(...t)=>i.clearAllSources&&i.clearAllSources(...t))},"清空列表")]),(0,r._)("div",Pt,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.filtedSources,((n,a)=>((0,r.wg)(),(0,r.iD)("div",{key:n.bookSourceUrl||n.sourceUrl,class:(0,p.C_)(["book_item",a===i.currentActive?"book_active":""])},[(0,r.wy)((0,r._)("input",{type:"checkbox",value:a,"onUpdate:modelValue":e[6]||(e[6]=e=>t.delArr=e)},null,8,$t),[[o.e8,t.delArr]]),(0,r._)("div",Mt,(0,p.zw)(a+1),1),(0,r._)("div",{style:{"margin-left":"10px",flex:"1"},onClick:t=>i.handleItemClick(a)},[(0,r._)("div",Vt,[(0,r._)("span",null,(0,p.zw)(n.bookSourceName||n.sourceName),1),i.isBookSource?((0,r.wg)(),(0,r.iD)("span",zt,"最后修改:"+(0,p.zw)(i.formatTime(n.lastUpdateTime)),1)):(0,r.kq)("",!0),(0,r._)("span",null,"分组:"+(0,p.zw)(n.bookSourceGroup||n.sourceGroup||"无分组"),1)]),(0,r._)("div",null,(0,p.zw)(n.bookSourceUrl||n.sourceUrl),1)],8,Yt)],2)))),128))])])])}var Gt={name:"editList",setup(){let t=(0,D.qj)({searchKey:"",delArr:[],sources:[],filtedSources:[]}),e=(0,D.iH)(null);const n=n=>{e.value=n,ut.commit("clearEdit"),ut.commit("changeCurrentSource",t.filtedSources[n])},o=()=>{ut.commit("clearAllSource")},i=t=>{if(!t)return null;const e=new Date(t),n=e.getFullYear();let o=e.getMonth()+1;o=o<10?"0"+o:o;let r=e.getDate();r=r<10?"0"+r:r;let i=e.getHours();i=i<10?"0"+i:i;let a=e.getMinutes();a=a<10?"0"+a:a;let l=e.getSeconds();return l=l<10?"0"+l:l,n+"-"+o+"-"+r+" "+i+":"+a+":"+l},a=(e,n)=>{if(""===n)return t.sources;let o=/bookSource/.test(location.href);return o?e.filter((t=>t.bookSourceName.toUpperCase().includes(n.toUpperCase())||(t.bookSourceGroup||"").toUpperCase().includes(n.toUpperCase())||t.bookSourceUrl.toUpperCase().includes(n.toUpperCase()))):e.filter((t=>t.sourceName.toUpperCase().includes(n.toUpperCase())||(t.sourceGroup||"").toUpperCase().includes(n.toUpperCase())||t.sourceUrl.toUpperCase().includes(n.toUpperCase())))};(0,r.m0)((()=>{const e=/bookSource/.test(location.href),n=e?ut.state.bookSources:ut.state.rssSources;t.sources=n})),(0,r.m0)((()=>{t.filtedSources=a(t.sources,t.searchKey)}));const l=(0,r.Fl)((()=>/bookSource/.test(window.location.href))),c=()=>{if(0===t.delArr.length)return console.log("没有选中的书源"),!1;const e=[];t.delArr.forEach((n=>{e.push(t.filtedSources[n])})),ct(e).then((e=>{e.isSuccess?(console.log("删除成功"),t.delArr.forEach((e=>{let[n]=t.filtedSources.splice(e,1),o=t.sources.indexOf(n);t.sources.splice(o,1)})),t.delArr=[]):console.log("错误",e)}))},s=()=>{const t=document.createElement("input");t.type="file",t.accept=".json",t.addEventListener("change",(t=>{const e=t.target.files[0];var n=new FileReader;n.readAsText(e),n.onload=()=>{const t=JSON.parse(n.result);ut.commit("saveSources",t)}})),t.click()},u=()=>{const t=document.createElement("a");let e=/bookSource/.test(location.href),n=e?ut.state.bookSources:ut.state.rssSources,o=e?"BookSource":"RssSource";t.download=`${o}_${Date().replace(/.*?\s(\d+)\s(\d+)\s(\d+:\d+:\d+).*/,"$2$1$3").replace(/:/g,"")}.json`;let r=new Blob([JSON.stringify(n,null,4)],{type:"application/json"});t.href=window.URL.createObjectURL(r),t.click()};return{currentActive:e,isBookSource:l,deleteActiveSource:c,handleItemClick:n,...(0,D.BK)(t),formatTime:i,clearAllSources:o,upFile:s,outExport:u}}};const Qt=(0,c.Z)(Gt,[["render",Ft],["__scopeId","data-v-5570960e"]]);var Xt=Qt;const te=(0,r.uE)('书源制作教程xpath基础教程xpath高级教程正则表达式教程正则表达式在线验证工具^$()[]{}.?+*|
这些是Java正则特殊符号,匹配需转义
(?s)
前缀表示跨行解析
(?m)
前缀表示逐行匹配
(?i)
前缀表示忽略大小写
',6);function ee(t,e,n,o,r,i){return te}var ne={name:"editHelp"};const oe=(0,c.Z)(ne,[["render",ee],["__scopeId","data-v-7ac1e65e"]]);var re=oe,ie={name:"editOut",components:{editDebug:qt,editTab:Lt,editList:Xt,editHelp:re},setup(){const t=(0,D.qj)({url:localStorage.getItem("url")||"",current_tab:ut.state.currentTab||"editTab"}),e=t=>{ut.commit("changeTabName",t)},n=t=>{ut.commit("changeUrl",t)};(0,r.m0)((()=>{t.current_tab=ut.state.currentTab}));const o=()=>{document.querySelectorAll(".menu>button")[1].click()};return{...(0,D.BK)(t),handleSetActive:e,changInput:n,pullSource:o}}};const ae=(0,c.Z)(ie,[["render",At]]);var le=ae,ce={components:{editMenu:jt,editOut:le},setup(){const t=(0,D.qj)({});return(0,r.bv)((()=>{})),{...(0,D.BK)(t)}}};const se=(0,c.Z)(ce,[["render",_],["__scopeId","data-v-0fc56f5e"]]);var ue=se;const de={class:"main"};function pe(t,e,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",de,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.data,((t,e)=>((0,r.wg)(),(0,r.j4)(l,{key:e,id:t.id,type:t.type,hint:t.hint,title:t.title,rows:t.rows,content:o.getContent(t.id),onChangeContent:o.upData},null,8,["id","type","hint","title","rows","content","onChangeContent"])))),128))])}const ge=t=>((0,r.dD)("data-v-b51d440e"),t=t(),(0,r.Cn)(),t),he={class:"edit_input"},Se=ge((()=>(0,r._)("i",null,":",-1))),we=["id","placeholder","rows","value"];function ve(t,e,n,o,i,a){return(0,r.wg)(),(0,r.iD)("div",he,[(0,r._)("span",null,[(0,r.Uk)((0,p.zw)(n.title),1),Se]),(0,r._)("textarea",{id:n.id,class:(0,p.C_)(n.type),placeholder:n.hint,rows:n.rows,value:n.content,ref:"attr",onInput:e[0]||(e[0]=(...t)=>o.change&&o.change(...t)),onBlur:e[1]||(e[1]=(...t)=>o.changeHistory&&o.changeHistory(...t)),onFocus:e[2]||(e[2]=(...t)=>o.changeHeight&&o.changeHeight(...t))},null,42,we)])}var me={props:{title:{type:String,default:""},rows:{type:Number,default:1},hint:{type:String,default:""},id:{type:String,default:""},type:{type:String,default:"String"},content:{type:[String,Number,Boolean],default:""}},emits:["changeContent"],setup(t,{emit:e}){const n=(0,D.iH)(""),o=()=>{e("changeContent",{value:n.value.value,key:n.value.getAttribute("id"),type:n.value.getAttribute("class")})},i=()=>{localStorage.getItem("history")||localStorage.setItem("history",JSON.stringify({new:[],old:[]}));const t=JSON.parse(localStorage.getItem("history")),e=t.new;if(e.length){const t=n.value.getAttribute("id");if(t.includes("_")||e[e.length-1][t]===ut.state.currentSource[t]){if(t.includes("_")){let n=t.split("_")[0],o=t.split("_")[1];e[e.length-1][n][o]!==ut.state.currentSource[n][o]&&ut.commit("editHistory",ut.state.currentSource)}}else ut.commit("editHistory",ut.state.currentSource)}else ut.commit("editHistory",ut.state.currentSource)},a=()=>{(0,r.Y3)((()=>{let t=n.value;const e=t.scrollHeight,o=t.offsetHeight;o<=e&&(t.style.height="auto",t.style.height=t.scrollHeight+"px")}))};return{changeHistory:i,change:o,attr:n,changeHeight:a}}};const ye=(0,c.Z)(me,[["render",ve],["__scopeId","data-v-b51d440e"]]);var be=ye,fe={base:[{title:"源域名",rows:1,id:"bookSourceUrl",type:"String",hint:"<必填>通常填写网站主页,例: https://www.qidian.com"},{title:"源类型",rows:1,id:"bookSourceType",type:"Number",hint:"<必填>0:文本 1:音频 2:图片 3:文件(只提供下载的网站)"},{title:"源名称",rows:1,id:"bookSourceName",type:"String",hint:"<必填>会显示在源列表"},{title:"源分组",rows:1,id:"bookSourceGroup",type:"String",hint:"<选填>描述源的特征信息"},{title:"源注释",rows:1,id:"bookSourceComment",type:"String",hint:"<选填>描述源作者和状态"},{title:"书源变量",rows:1,id:"variableComment",type:"String",hint:"<选填>书源变量说明"},{title:"登录地址",rows:1,id:"loginUrl",type:"String",hint:"<选填>填写网站登录网址,仅在需要登录的源有用"},{title:"登录界面",rows:3,id:"loginUi",type:"String",hint:"<选填>自定义登录界面"},{title:"登录检测",rows:3,id:"loginCheckJs",type:"String",hint:"<选填>登录检测js"},{title:"封面解密",rows:3,id:"coverDecodeJs",type:"String",hint:"<选填>封面解密js"},{title:"并发率",rows:1,id:"concurrentRate",type:"String",hint:"<选填>并发率"},{title:"请求头",rows:3,id:"header",type:"String",hint:"<选填>客户端标识"},{title:"链接验证",rows:1,id:"bookUrlPattern",type:"String",hint:"<选填>当详情页URL与源URL的域名不一致时有效,用于添加网址"}],search:[{title:"搜索地址",rows:1,id:"searchUrl",type:"String",hint:"[域名可省略]/search.php@kw={{key}}"},{title:"校验文字",rows:1,id:"ruleSearch_checkKeyWord",type:"String",hint:"校验关键字"},{title:"列表规则",rows:1,id:"ruleSearch_bookList",type:"String",hint:"选择书籍节点 (规则结果为List)"},{title:"书名规则",rows:1,id:"ruleSearch_name",type:"String",hint:"选择节点书名 (规则结果为String)"},{title:"作者规则",rows:1,id:"ruleSearch_author",type:"String",hint:"选择节点作者 (规则结果为String)"},{title:"分类规则",rows:1,id:"ruleSearch_kind",type:"String",hint:"选择节点分类信息 (规则结果为String)"},{title:"字数规则",rows:1,id:"ruleSearch_wordCount",type:"String",hint:"选择节点字数信息 (规则结果为String)"},{title:"最新章节",rows:1,id:"ruleSearch_lastChapter",type:"String",hint:"选择节点最新章节 (规则结果为String)"},{title:"简介规则",rows:1,id:"ruleSearch_intro",type:"String",hint:"选择节点书籍简介 (规则结果为String)"},{title:"封面规则",rows:1,id:"ruleSearch_coverUrl",type:"String",hint:"选择节点书籍封面 (规则结果为String类型的url)"},{title:"详情地址",rows:1,id:"ruleSearch_bookUrl",type:"String",hint:"选择书籍详情页网址 (规则结果为String类型的url)"}],find:[{title:"发现地址",rows:6,id:"exploreUrl",type:"String",hint:"内容能显示在发现菜单\n每行一条发现分类(网址域名可省略),例:\n名称1::网址(Url)1\n名称2::网址(Url)2\n..."},{title:"列表规则",rows:1,id:"ruleExplore_bookList",type:"String",hint:"选择书籍节点 (规则结果为List)"},{title:"书名规则",rows:1,id:"ruleExplore_name",type:"String",hint:"选择节点书名 (规则结果为String)"},{title:"作者规则",rows:1,id:"ruleExplore_author",type:"String",hint:"选择节点作者 (规则结果为String)"},{title:"分类规则",rows:1,id:"ruleExplore_kind",type:"String",hint:"选择节点分类信息 (规则结果为String)"},{title:"字数规则",rows:1,id:"ruleExplore_wordCount",type:"String",hint:"选择节点字数信息 (规则结果为String)"},{title:"最新章节",rows:1,id:"ruleExplore_lastChapter",type:"String",hint:"选择节点最新章节 (规则结果为String)"},{title:"简介规则",rows:1,id:"ruleExplore_intro",type:"String",hint:"选择节点书籍简介 (规则结果为String)"},{title:"封面规则",rows:1,id:"ruleExplore_coverUrl",type:"String",hint:"选择节点书籍封面 (规则结果为String类型的url)"},{title:"详情地址",rows:1,id:"ruleExplore_bookUrl",type:"String",hint:"选择书籍详情页网址 (规则结果为String类型的url)"}],detail:[{title:"预处理",rows:3,id:"ruleBookInfo_init",type:"String",hint:"用于加速详情信息检索,只支持AllInOne规则"},{title:"书名规则",rows:1,id:"ruleBookInfo_name",type:"String",hint:"选择节点书名 (规则结果为String)"},{title:"作者规则",rows:1,id:"ruleBookInfo_author",type:"String",hint:"选择节点作者 (规则结果为String)"},{title:"分类规则",rows:1,id:"ruleBookInfo_kind",type:"String",hint:"选择节点分类信息 (规则结果为String)"},{title:"字数规则",rows:1,id:"ruleBookInfo_wordCount",type:"String",hint:"选择节点字数信息 (规则结果为String)"},{title:"最新章节",rows:1,id:"ruleBookInfo_lastChapter",type:"String",hint:"选择节点最新章节 (规则结果为String)"},{title:"简介规则",rows:1,id:"ruleBookInfo_intro",type:"String",hint:"选择节点书籍简介 (规则结果为String)"},{title:"封面规则",rows:1,id:"ruleBookInfo_coverUrl",type:"String",hint:"选择节点书籍封面 (规则结果为String类型的url)"},{title:"目录地址",rows:1,id:"ruleBookInfo_tocUrl",type:"String",hint:"选择书籍详情页网址 (规则结果为String类型的url, 与详情页相同时可省略)"},{title:"下载URL",rows:1,id:"ruleBookInfo_downloadUrls",type:"String",hint:"文件类书源下载地址 (规则结果为String类型的url, 多个链接返回数组)"},{title:"修改书籍",rows:1,id:"ruleBookInfo_canReName",type:"String",hint:"允许修改书名作者(规则结果为String类型, 默认不允许)"}],directory:[{title:"更新前JS",rows:3,id:"ruleToc_preUpdateJs",type:"String",hint:"更新前JS 动态更新书籍目录链接"},{title:"列表规则",rows:3,id:"ruleToc_chapterList",type:"String",hint:"选择目录列表的章节节点 (规则结果为List)"},{title:"章节名称",rows:1,id:"ruleToc_chapterName",type:"String",hint:"选择章节名称 (规则结果为String)"},{title:"章节地址",rows:1,id:"ruleToc_chapterUrl",type:"String",hint:"选择章节链接 (规则结果为String类型的Url)"},{title:"卷名标识",rows:1,id:"ruleToc_isVolume",type:"String",hint:"章节名称是否是卷名 (规则结果为Bool)"},{title:"收费标识",rows:1,id:"ruleToc_isVip",type:"String",hint:"章节是否为VIP章节 (规则结果为Bool)"},{title:"购买标识",rows:1,id:"ruleToc_isPay",type:"String",hint:"章节是否为已购买 (规则结果为Bool)"},{title:"章节信息",rows:1,id:"ruleToc_updateTime",type:"String",hint:"选择章节信息 (规则结果为String)"},{title:"翻页规则",rows:1,id:"ruleToc_nextTocUrl",type:"String",hint:"选择目录下一页链接 (规则结果为List或String)"}],content:[{title:"脚本注入",rows:3,id:"ruleContent_webJs",type:"String",hint:"注入javascript,用于模拟鼠标点击等,必须有返回值,一般为String类型"},{title:"正文规则",rows:1,id:"ruleContent_content",type:"String",hint:"选择正文内容 (规则结果为String)"},{title:"翻页规则",rows:1,id:"ruleContent_nextContentUrl",type:"String",hint:"选择下一分页(不是下一章)链接 (规则结果为String类型的Url)"},{title:"资源正则",rows:1,id:"ruleContent_sourceRegex",type:"String",hint:"匹配资源的url特征,用于嗅探"},{title:"替换规则",rows:1,id:"ruleContent_replaceRegex",type:"String",hint:"多页内容合并后替换,用于正文净化"},{title:"图片样式",rows:1,id:"ruleContent_imageStyle",type:"String",hint:"FULL:铺满 不填:默认样式"},{title:"购买操作",rows:1,id:"ruleContent_payAction",type:"String",hint:"填写JavaScript 返回购买链接或者调用购买接口"},{title:"图片解密",rows:1,id:"ruleContent_imageDecode",type:"String",hint:"填写JavaScript 返回解密图片的bytes "}],review:[{title:"段评URL",rows:1,id:"ruleReview_reviewUrl",type:"String",hint:"段评URL"},{title:"发布者头像",rows:1,id:"ruleReview_avatarRule",type:"String",hint:"段评发布者头像"},{title:"段评内容",rows:1,id:"ruleReview_contentRule",type:"String",hint:"段评内容"},{title:"发布时间",rows:1,id:"ruleReview_postTimeRule",type:"String",hint:"段评发布时间"},{title:"回复URL",rows:1,id:"ruleReview_reviewQuoteUrl",type:"String",hint:"获取段评回复URL"},{title:"点赞URL",rows:1,id:"ruleReview_voteUpUrl",type:"String",hint:"点赞URL"},{title:"点踩URL",rows:1,id:"ruleReview_voteDownUrl",type:"String",hint:"点踩URL"},{title:"发送回复",rows:1,id:"ruleReview_postReviewUrl",type:"String",hint:"发送回复URL"},{title:"回复段评",rows:1,id:"ruleReview_postQuoteUrl",type:"String",hint:"发送回复段评URL"},{title:"删除段评",rows:1,id:"ruleReview_deleteUrl",type:"String",hint:"删除段评URL"}],other:[{title:"启用搜索",rows:1,id:"enabled",type:"Boolean",hint:"启用: true 关闭: false (可选,默认true)"},{title:"启用发现",rows:1,id:"enabledExplore",type:"Boolean",hint:"启用: true 关闭: false (可选,默认true)"},{title:"启用段评",rows:1,id:"enabledReview",type:"Boolean",hint:"启用: true 关闭: false (可选,默认false)"},{title:"Cookie",rows:1,id:"enabledCookieJar",type:"Boolean",hint:"保存返回头的Cookie 启用: true 关闭: false (可选,默认false)"},{title:"搜索权重",rows:1,id:"weight",type:"Number",hint:"整数: 0~N (可选,默认0) | 数字越大越靠前"},{title:"排序编号",rows:1,id:"customOrder",type:"Number",hint:"整数: 0~N (可选,默认0) | 数字越小越靠前"}]};function ke(){const t=(0,D.qj)({currentSource:ut.state.currentSource}),e=t=>{ut.commit("changeCurrentSourceValue",t)},n=e=>{try{if(e.includes("_")){let n=e.split("_")[0],o=e.split("_")[1],r=t.currentSource[n];return r?r[o]:null}return t.currentSource[e]}catch(n){console.log("导入错误",n.TypeError),ut.commit("clearEdit")}};return(0,r.m0)((()=>{t.currentSource=ut.state.currentSource})),{...(0,D.BK)(t),upData:e,getContent:n}}var Ce={components:{editInput:be},setup(){const{upData:t,getContent:e}=ke(),n=(0,D.qj)({data:fe.base});return{...(0,D.BK)(n),upData:t,getContent:e}}};const _e=(0,c.Z)(Ce,[["render",pe]]);var De=_e;const Ue={class:"main"};function xe(t,e,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",Ue,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.data,((t,e)=>((0,r.wg)(),(0,r.j4)(l,{key:e,id:t.id,type:t.type,hint:t.hint,title:t.title,rows:t.rows,content:o.getContent(t.id),onChangeContent:o.upData},null,8,["id","type","hint","title","rows","content","onChangeContent"])))),128))])}var Be={components:{editInput:be},setup(){const{upData:t,getContent:e}=ke(),n=(0,D.qj)({data:fe.search});return{...(0,D.BK)(n),upData:t,getContent:e}}};const Ie=(0,c.Z)(Be,[["render",xe]]);var Te=Ie;const je={class:"main"};function Ke(t,e,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",je,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.data,((t,e)=>((0,r.wg)(),(0,r.j4)(l,{key:e,id:t.id,type:t.type,hint:t.hint,title:t.title,rows:t.rows,content:o.getContent(t.id),onChangeContent:o.upData},null,8,["id","type","hint","title","rows","content","onChangeContent"])))),128))])}var Ae={components:{editInput:be},setup(){const{upData:t,getContent:e}=ke(),n=(0,D.qj)({data:fe.directory});return{...(0,D.BK)(n),upData:t,getContent:e}}};const Ne=(0,c.Z)(Ae,[["render",Ke]]);var Ee=Ne;const He={class:"main"};function Le(t,e,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",He,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.data,((t,e)=>((0,r.wg)(),(0,r.j4)(l,{key:e,id:t.id,type:t.type,hint:t.hint,title:t.title,rows:t.rows,content:o.getContent(t.id),onChangeContent:o.upData},null,8,["id","type","hint","title","rows","content","onChangeContent"])))),128))])}var Re={components:{editInput:be},setup(){const{upData:t,getContent:e}=ke(),n=(0,D.qj)({data:fe.content});return{...(0,D.BK)(n),upData:t,getContent:e}}};const Oe=(0,c.Z)(Re,[["render",Le]]);var Je=Oe;const qe={class:"main"};function We(t,e,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",qe,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.data,((t,e)=>((0,r.wg)(),(0,r.j4)(l,{key:e,id:t.id,type:t.type,hint:t.hint,title:t.title,rows:t.rows,content:o.getContent(t.id),onChangeContent:o.upData},null,8,["id","type","hint","title","rows","content","onChangeContent"])))),128))])}var Ze={components:{editInput:be},setup(){const{upData:t,getContent:e}=ke(),n=(0,D.qj)({data:fe.detail});return{...(0,D.BK)(n),upData:t,getContent:e}}};const Pe=(0,c.Z)(Ze,[["render",We]]);var $e=Pe;const Me={class:"main"};function Ye(t,e,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",Me,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.data,((t,e)=>((0,r.wg)(),(0,r.j4)(l,{key:e,id:t.id,type:t.type,hint:t.hint,title:t.title,rows:t.rows,content:o.getContent(t.id),onChangeContent:o.upData},null,8,["id","type","hint","title","rows","content","onChangeContent"])))),128))])}var Ve={components:{editInput:be},setup(){const{upData:t,getContent:e}=ke(),n=(0,D.qj)({data:fe.other});return{...(0,D.BK)(n),upData:t,getContent:e}}};const ze=(0,c.Z)(Ve,[["render",Ye]]);var Fe=ze;const Ge={class:"main"};function Qe(t,e,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",Ge,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.data,((t,e)=>((0,r.wg)(),(0,r.j4)(l,{key:e,id:t.id,type:t.type,hint:t.hint,title:t.title,rows:t.rows,content:o.getContent(t.id),onChangeContent:o.upData},null,8,["id","type","hint","title","rows","content","onChangeContent"])))),128))])}var Xe={components:{editInput:be},setup(){const{upData:t,getContent:e}=ke(),n=(0,D.qj)({data:fe.find});return{...(0,D.BK)(n),upData:t,getContent:e}}};const tn=(0,c.Z)(Xe,[["render",Qe]]);var en=tn;const nn={class:"main"};function on(t,e,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",nn,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.data,((t,e)=>((0,r.wg)(),(0,r.j4)(l,{key:e,id:t.id,type:t.type,hint:t.hint,title:t.title,rows:t.rows,content:o.getContent(t.id),onChangeContent:o.upData},null,8,["id","type","hint","title","rows","content","onChangeContent"])))),128))])}var rn={components:{editInput:be},setup(){const{upData:t,getContent:e}=ke(),n=(0,D.qj)({data:fe.review});return{...(0,D.BK)(n),upData:t,getContent:e}}};const an=(0,c.Z)(rn,[["render",on]]);var ln=an;const cn=t=>((0,r.dD)("data-v-63af33ef"),t=t(),(0,r.Cn)(),t),sn={class:"left"},un=cn((()=>(0,r._)("div",null,[(0,r._)("a",{href:"/"},"←主页"),(0,r._)("b",null,"订阅源")],-1))),dn=["onClick"],pn=["onClick"],gn=["onClick"],hn=["onClick"];function Sn(t,e,n,o,i,a){const l=(0,r.up)("router-link"),c=(0,r.up)("router-view"),s=(0,r.up)("edit-menu"),u=(0,r.up)("edit-out");return(0,r.wg)(),(0,r.iD)(r.HY,null,[(0,r._)("div",sn,[(0,r._)("div",null,[un,(0,r._)("ul",null,[(0,r.Wm)(l,{to:{name:"rss-base"},custom:""},{default:(0,r.w5)((({navigate:t,isActive:e})=>[(0,r._)("li",{onClick:t,class:(0,p.C_)({active:e?"active":""})}," 基础 ",10,dn)])),_:1}),(0,r.Wm)(l,{to:{name:"rss-list"},custom:""},{default:(0,r.w5)((({navigate:t,isActive:e})=>[(0,r._)("li",{onClick:t,class:(0,p.C_)({active:e?"active":""})}," 列表 ",10,pn)])),_:1}),(0,r.Wm)(l,{to:{name:"rss-webView"},custom:""},{default:(0,r.w5)((({navigate:t,isActive:e})=>[(0,r._)("li",{onClick:t,class:(0,p.C_)({active:e?"active":""})}," WebView ",10,gn)])),_:1}),(0,r.Wm)(l,{custom:"",to:{name:"rss-other"}},{default:(0,r.w5)((({navigate:t,isActive:e})=>[(0,r._)("li",{onClick:t,class:(0,p.C_)({active:e?"active":""})}," 其他 ",10,hn)])),_:1})])]),(0,r.Wm)(c,null,{default:(0,r.w5)((({Component:t})=>[((0,r.wg)(),(0,r.j4)(r.Ob,null,[((0,r.wg)(),(0,r.j4)((0,r.LL)(t)))],1024))])),_:1})]),(0,r.Wm)(s),(0,r.Wm)(u)],64)}var wn={components:{editMenu:jt,editOut:le},setup(){const t=(0,D.qj)({});return(0,r.bv)((()=>{})),{...(0,D.BK)(t)}}};const vn=(0,c.Z)(wn,[["render",Sn],["__scopeId","data-v-63af33ef"]]);var mn=vn;const yn={class:"main"};function bn(t,e,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",yn,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.data,((t,e)=>((0,r.wg)(),(0,r.j4)(l,{key:e,id:t.id,type:t.type,hint:t.hint,title:t.title,rows:t.rows,content:o.getContent(t.id),onChangeContent:o.upData},null,8,["id","type","hint","title","rows","content","onChangeContent"])))),128))])}var fn={base:[{title:"源域名",rows:1,id:"sourceUrl",type:"String",hint:"<必填>通常填写网站主页,例: https://www.qidian.com"},{title:"图标",rows:1,id:"sourceIcon",type:"String",hint:"<选填>填写图片网络链接"},{title:"源名称",rows:1,id:"sourceName",type:"String",hint:"<必填>会显示在源列表"},{title:"源分组",rows:1,id:"sourceGroup",type:"String",hint:"<选填>描述源的特征信息"},{title:"源注释",rows:1,id:"sourceComment",type:"String",hint:"<选填>描述源作者和状态"},{title:"变量说明",rows:1,id:"variableComment",type:"String",hint:"<选填>源变量说明"},{title:"登录地址",rows:1,id:"loginUrl",type:"String",hint:"<选填>填写网站登录网址,仅在需要登录的源有用"},{title:"登录界面",rows:3,id:"loginUi",type:"String",hint:"<选填>自定义登录界面"},{title:"登录检测",rows:3,id:"loginCheckJs",type:"String",hint:"<选填>登录检测js"},{title:"封面解密",rows:3,id:"coverDecodeJs",type:"String",hint:"<选填>封面解密js"},{title:"并发率",rows:1,id:"concurrentRate",type:"String",hint:"<选填>并发率"},{title:"请求头",rows:3,id:"header",type:"String",hint:"<选填>客户端标识"},{title:"分类地址",rows:3,id:"sortUrl",type:"String",hint:"<选填>名称1::链接1\n名称2::链接2"}],list:[{title:"列表样式",rows:1,id:"articleStyle",type:"Number",hint:"<选填>0,1,2 (默认0)"},{title:"列表规则",rows:1,id:"ruleArticles",type:"String",hint:"规则结果为List"},{title:"翻页规则",rows:1,id:"ruleNextPage",type:"String",hint:"下一页链接 规则结果为List或String"},{title:"标题规则",rows:1,id:"ruleTitle",type:"String",hint:"文章标题 规则结果为String"},{title:"时间规则",rows:1,id:"rulePubDate",type:"String",hint:"文章发布时间 规则结果为String"},{title:"描述规则",rows:1,id:"ruleDescription",type:"String",hint:"文章简要描述 规则结果为String"},{title:"图片规则",rows:1,id:"ruleImage",type:"String",hint:"文章图片链接 规则结果为String"},{title:"链接规则",rows:1,id:"ruleLink",type:"String",hint:"文章链接 规则结果为String"}],webView:[{title:"启用JS",rows:1,id:"enableJs",type:"Number",hint:"启用: true 关闭: false (可选,默认true)"},{title:"加载地址",rows:1,id:"loadWithBaseUrl",type:"Number",hint:"启用: true 关闭: false (可选,默认true)"},{title:"内容规则",rows:1,id:"ruleContent",type:"String",hint:"文章正文"},{title:"样式规则",rows:3,id:"style",type:"String",hint:"文章正文样式 填写css"}],other:[{title:"启用",rows:1,id:"enabled",type:"Boolean",hint:"启用: true 关闭: false (可选,默认true)"},{title:"Cookie",rows:1,id:"enabledCookieJar",type:"Boolean",hint:"保存返回头的Cookie 启用: true 关闭: false (可选,默认false)"},{title:"单URL",rows:1,id:"singleUrl",type:"Boolean",hint:"启用: true 关闭: false (可选,默认false)"},{title:"排序编号",rows:1,id:"customOrder",type:"Number",hint:"整数: 0~N (可选,默认0) | 数字越小越靠前"}]},kn={components:{editInput:be},setup(){const{upData:t,getContent:e}=ke(),n=(0,D.qj)({data:fn.base});return{...(0,D.BK)(n),upData:t,getContent:e}}};const Cn=(0,c.Z)(kn,[["render",bn]]);var _n=Cn;const Dn={class:"main"};function Un(t,e,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",Dn,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.data,((t,e)=>((0,r.wg)(),(0,r.j4)(l,{key:e,id:t.id,type:t.type,hint:t.hint,title:t.title,rows:t.rows,content:o.getContent(t.id),onChangeContent:o.upData},null,8,["id","type","hint","title","rows","content","onChangeContent"])))),128))])}var xn={components:{editInput:be},setup(){const{upData:t,getContent:e}=ke(),n=(0,D.qj)({data:fn.list});return{...(0,D.BK)(n),upData:t,getContent:e}}};const Bn=(0,c.Z)(xn,[["render",Un]]);var In=Bn;const Tn={class:"main"};function jn(t,e,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",Tn,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.data,((t,e)=>((0,r.wg)(),(0,r.j4)(l,{key:e,id:t.id,type:t.type,hint:t.hint,title:t.title,rows:t.rows,content:o.getContent(t.id),onChangeContent:o.upData},null,8,["id","type","hint","title","rows","content","onChangeContent"])))),128))])}var Kn={components:{editInput:be},setup(){const{upData:t,getContent:e}=ke(),n=(0,D.qj)({data:fn.webView});return{...(0,D.BK)(n),upData:t,getContent:e}}};const An=(0,c.Z)(Kn,[["render",jn]]);var Nn=An;const En={class:"main"};function Hn(t,e,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",En,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(t.data,((t,e)=>((0,r.wg)(),(0,r.j4)(l,{key:e,id:t.id,type:t.type,hint:t.hint,title:t.title,rows:t.rows,content:o.getContent(t.id),onChangeContent:o.upData},null,8,["id","type","hint","title","rows","content","onChangeContent"])))),128))])}var Ln={components:{editInput:be},setup(){const{upData:t,getContent:e}=ke(),n=(0,D.qj)({data:fn.other});return{...(0,D.BK)(n),upData:t,getContent:e}}};const Rn=(0,c.Z)(Ln,[["render",Hn]]);var On=Rn;const Jn=[{path:"/bookSource",name:"book-home",component:ue,redirect:{name:"book-base"},children:[{path:"/bookSource/base",name:"book-base",component:De},{path:"/bookSource/search",name:"book-search",component:Te},{path:"/bookSource/find",name:"book-find",component:en},{path:"/bookSource/detail",name:"book-detail",component:$e},{path:"/bookSource/directory",name:"book-directory",component:Ee},{path:"/bookSource/content",name:"book-content",component:Je},{path:"/bookSource/review",name:"book-review",component:ln},{path:"/bookSource/other",name:"book-other",component:Fe}]},{path:"/rssSource",name:"rss-home",component:mn,redirect:{name:"rss-base"},children:[{path:"/rssSource/base",name:"rss-base",component:_n},{path:"/rssSource/list",name:"rss-list",component:In},{path:"/rssSource/webView",name:"rss-webView",component:Nn},{path:"/rssSource/other",name:"rss-other",component:On}]}],qn=(0,d.p7)({history:(0,d.r5)(),routes:Jn});var Wn=qn;(0,o.ri)(u).use(ut).use(Wn).mount("#app")}},e={};function n(o){var r=e[o];if(void 0!==r)return r.exports;var i=e[o]={exports:{}};return t[o](i,i.exports,n),i.exports}n.m=t,function(){var t=[];n.O=function(e,o,r,i){if(!o){var a=1/0;for(u=0;u=i)&&Object.keys(n.O).every((function(t){return n.O[t](o[c])}))?o.splice(c--,1):(l=!1,i0&&t[u-1][2]>i;u--)t[u]=t[u-1];t[u]=[o,r,i]}}(),function(){n.d=function(t,e){for(var o in e)n.o(e,o)&&!n.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:e[o]})}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(t){if("object"===typeof window)return window}}()}(),function(){n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)}}(),function(){var t={143:0};n.O.j=function(e){return 0===t[e]};var e=function(e,o){var r,i,a=o[0],l=o[1],c=o[2],s=0;if(a.some((function(e){return 0!==t[e]}))){for(r in l)n.o(l,r)&&(n.m[r]=l[r]);if(c)var u=c(n)}for(e&&e(o);s((0,r.dD)("data-v-0fc56f5e"),e=e(),(0,r.Cn)(),e),g={class:"left"},w=p((()=>(0,r._)("div",null,[(0,r._)("a",{href:"/"},"←主页"),(0,r._)("b",null,"书源")],-1))),v=["onClick"],m=["onClick"],S=["onClick"],f=["onClick"],b=["onClick"],C=["onClick"],_=["onClick"],k=["onClick"];function y(e,t,n,o,i,a){const l=(0,r.up)("router-link"),c=(0,r.up)("router-view"),s=(0,r.up)("edit-menu"),u=(0,r.up)("edit-out");return(0,r.wg)(),(0,r.iD)(r.HY,null,[(0,r._)("div",g,[(0,r._)("div",null,[w,(0,r._)("ul",null,[(0,r.Wm)(l,{to:{name:"book-base"},custom:""},{default:(0,r.w5)((({navigate:e,isActive:t})=>[(0,r._)("li",{onClick:e,class:(0,h.C_)({active:t?"active":""})}," 基础 ",10,v)])),_:1}),(0,r.Wm)(l,{to:{name:"book-search"},custom:""},{default:(0,r.w5)((({navigate:e,isActive:t})=>[(0,r._)("li",{onClick:e,class:(0,h.C_)({active:t?"active":""})}," 搜索 ",10,m)])),_:1}),(0,r.Wm)(l,{to:{name:"book-find"},custom:""},{default:(0,r.w5)((({navigate:e,isActive:t})=>[(0,r._)("li",{onClick:e,class:(0,h.C_)({active:t?"active":""})}," 发现 ",10,S)])),_:1}),(0,r.Wm)(l,{custom:"",to:{name:"book-detail"}},{default:(0,r.w5)((({navigate:e,isActive:t})=>[(0,r._)("li",{onClick:e,class:(0,h.C_)({active:t?"active":""})}," 详情 ",10,f)])),_:1}),(0,r.Wm)(l,{custom:"",to:{name:"book-directory"}},{default:(0,r.w5)((({navigate:e,isActive:t})=>[(0,r._)("li",{onClick:e,class:(0,h.C_)({active:t?"active":""})}," 目录 ",10,b)])),_:1}),(0,r.Wm)(l,{custom:"",to:{name:"book-content"}},{default:(0,r.w5)((({navigate:e,isActive:t})=>[(0,r._)("li",{onClick:e,class:(0,h.C_)({active:t?"active":""})}," 正文 ",10,C)])),_:1}),(0,r.Wm)(l,{custom:"",to:{name:"book-review"}},{default:(0,r.w5)((({navigate:e,isActive:t})=>[(0,r._)("li",{onClick:e,class:(0,h.C_)({active:t?"active":""})}," 段评 ",10,_)])),_:1}),(0,r.Wm)(l,{custom:"",to:{name:"book-other"}},{default:(0,r.w5)((({navigate:e,isActive:t})=>[(0,r._)("li",{onClick:e,class:(0,h.C_)({active:t?"active":""})}," 其他 ",10,k)])),_:1})])]),(0,r.Wm)(c,null,{default:(0,r.w5)((({Component:e})=>[((0,r.wg)(),(0,r.j4)(r.Ob,null,[((0,r.wg)(),(0,r.j4)((0,r.LL)(e)))],1024))])),_:1})]),(0,r.Wm)(s),(0,r.Wm)(u)],64)}var D=n(2262);n(7658);const U=e=>((0,r.dD)("data-v-5c287c97"),e=e(),(0,r.Cn)(),e),I={class:"menu"},x=(0,r.Uk)("⇈推送源 "),T=U((()=>(0,r._)("span",null,"Ctrl+P",-1))),j=[x,T],K=(0,r.Uk)("⇊拉取源 "),B=U((()=>(0,r._)("span",null,"Shift+P",-1))),A=[K,B],E=(0,r.Uk)(" ⋙生成源"),L=U((()=>(0,r._)("span",null,"Ctrl+E",-1))),H=[E,L],R=(0,r.Uk)(" ⋘编辑源"),N=U((()=>(0,r._)("span",null,"Shift+E",-1))),O=[R,N],J=(0,r.Uk)(" ✗清空表单"),q=U((()=>(0,r._)("span",null,"Shift+C",-1))),W=[J,q],Z=(0,r.Uk)("↶撤销操作"),P=U((()=>(0,r._)("span",null,"Ctrl+Z",-1))),$=[Z,P],M=(0,r.Uk)("↷重做操作"),Y=U((()=>(0,r._)("span",null,"Shift+R",-1))),V=[M,Y],z=(0,r.Uk)(" ⇏调试源 "),F=U((()=>(0,r._)("span",null,"Ctrl+Enter",-1))),G=[z,F],Q=(0,r.Uk)(" ✓保存源"),X=U((()=>(0,r._)("span",null,"Ctrl+S",-1))),ee=[Q,X];function te(e,t,n,o,i,a){const l=(0,r.up)("edit-loading"),c=(0,r.up)("edit-warn"),s=(0,r.up)("edit-success");return(0,r.wg)(),(0,r.iD)("div",I,[(0,r._)("div",null,[o.showLoading?((0,r.wg)(),(0,r.j4)(l,{key:0})):(0,r.kq)("",!0),(0,r.Wm)(c,{text:o.warnText,"is-show":o.warnShow,onChangeShow:o.changeShow},null,8,["text","is-show","onChangeShow"]),o.successShow?((0,r.wg)(),(0,r.j4)(s,{key:1,isShow:o.successShow,onChangeShow:o.changeSuccessShow,text:o.successText},null,8,["isShow","onChangeShow","text"])):(0,r.kq)("",!0)]),(0,r._)("button",{onClick:t[0]||(t[0]=(...e)=>o.push&&o.push(...e)),title:"Ctrl+P"},j),(0,r._)("button",{onClick:t[1]||(t[1]=(...e)=>o.pull&&o.pull(...e)),title:"Shift+P"},A),(0,r._)("button",{onClick:t[2]||(t[2]=(...e)=>o.conver2Tab&&o.conver2Tab(...e)),title:"Ctrl+E"},H),(0,r._)("button",{onClick:t[3]||(t[3]=(...e)=>o.conver2Source&&o.conver2Source(...e)),title:"Shift+E"},O),(0,r._)("button",{onClick:t[4]||(t[4]=(...e)=>o.clearEdit&&o.clearEdit(...e)),title:"Shift+C"},W),(0,r._)("button",{onClick:t[5]||(t[5]=(...e)=>o.undo&&o.undo(...e)),title:"Ctrl+Z"},$),(0,r._)("button",{onClick:t[6]||(t[6]=(...e)=>o.redo&&o.redo(...e)),title:"Shift+R"},V),(0,r._)("button",{onClick:t[7]||(t[7]=(...e)=>o.debug&&o.debug(...e)),title:"Ctrl+Enter"},G),(0,r._)("button",{onClick:t[8]||(t[8]=(...e)=>o.saveSource&&o.saveSource(...e)),title:"Ctrl+S"},ee)])}function ne(e,t){return fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)}).then((e=>e.json()))}function oe(e){return fetch(e).then((e=>e.json()))}function re(e,t=!0){let n=/bookSource/.test(location.href),o=`http://${localStorage.getItem("url")||location.host}/`,r=n?"BookSource":"RssSource";return`${o}${e}${r}${t?"s":""}`}function ie(){return oe(re("get"))}function ae(e){return ne(re("save"),e)}function le(e){return ne(re("save",!1),e)}function ce(e){return ne(re("delete"),e)}var se=n(3907),ue=(0,se.MT)({state:{url:localStorage.getItem("url")||"",bookSources:[],rssSources:[],currentSource:{},currentTab:localStorage.getItem("tabName")||"editTab",editTabSource:{},deBugMsg:"",searchKey:""},getters:{},mutations:{changeSearchKey(e,t){e.searchKey=t},saveSources(e,t){/bookSource/.test(location.href)?e.bookSources=t:e.rssSources=t},saveCurrentSource(e){let t,n,o=e.currentSource;/bookSource/.test(location.href)?(o=e.bookSources,n="bookSourceUrl"):(o=e.rssSources,n="sourceUrl");let r=t.findIndex((e=>e[n]===o[n]));r>-1?t.splice(r,1,o):t.push(o)},changeCurrentSource(e,t){const n=JSON.stringify(t);e.currentSource=JSON.parse(n)},changeCurrentSourceValue(e,t){let n={true:!0,false:!1},o=n[t.value]||t.value;if(/\d+/.test(o)&&(o=parseInt(o)),t.type.includes("_")){let n=t.type.split("_")[0],r=t.type.split("_")[1],i={};i[r]=o,e.currentSource[n]=Object.assign(e.currentSource[n]||{},i)}else e.currentSource[t.type]=o;e.currentSource.lastUpdateTime=(new Date).getTime()},changeTabName(e,t){e.currentTab=t,localStorage.setItem("tabName",t),console.log(t)},changeEditTabSource(e,t){const n=JSON.stringify(t);e.editTabSource=JSON.parse(n)},editHistory(e,t){let n;if(localStorage.getItem("history"))n=JSON.parse(localStorage.getItem("history")),n.new.push(t),n.new.length>50&&n.new.shift(),n.old.length>50&&n.old.shift(),localStorage.setItem("history",JSON.stringify(n));else{const e={new:[t],old:[]};localStorage.setItem("history",JSON.stringify(e))}},editHistoryUndo(e){if(localStorage.getItem("history")){let t=JSON.parse(localStorage.getItem("history"));t.old.push(e.currentSource),t.new.length&&(e.currentSource=t.new.pop()),localStorage.setItem("history",JSON.stringify(t))}},clearAllHistory(){localStorage.setItem("history",JSON.stringify({new:[],old:[]}))},clearEdit(e){e.editTabSource={},e.currentSource={}},appendDeBugMsg(e,t){let n=document.querySelector("#debug_text");n.scrollTop=n.scrollHeight,e.deBugMsg+=t+"\n"},clearDeBugMsg(e){e.deBugMsg=""},clearAllSource(e){e.bookSources=[],e.rssSources=[]}},actions:{},modules:{}});const de=e=>((0,r.dD)("data-v-ab8a8a34"),e=e(),(0,r.Cn)(),e),he={class:"fixed"},pe=de((()=>(0,r._)("div",{class:"half-circle-spinner"},[(0,r._)("div",{class:"circle circle-1"}),(0,r._)("div",{class:"circle circle-2"})],-1))),ge=[pe];function we(e,t,n,o,i,a){return(0,r.wg)(),(0,r.iD)("div",he,ge)}var ve={name:"editLoading"};const me=(0,c.Z)(ve,[["render",we],["__scopeId","data-v-ab8a8a34"]]);var Se=me;const fe={key:0,class:"warm"};function be(e,t,n,o,i,a){return n.isShow?((0,r.wg)(),(0,r.iD)("div",fe,[(0,r._)("p",null,(0,h.zw)(n.text),1),(0,r._)("div",null,[(0,r._)("button",{onClick:t[0]||(t[0]=(...e)=>o.changeShow&&o.changeShow(...e))},"关闭")])])):(0,r.kq)("",!0)}var Ce={name:"editWarm",props:{isShow:{default:!1,type:Boolean},text:{type:String,default:""}},setup(e,{emit:t}){const n=()=>{t("changeShow",!e.isShow)};return{changeShow:n}}};const _e=(0,c.Z)(Ce,[["render",be],["__scopeId","data-v-27eae50d"]]);var ke=_e;const ye={class:"success"};function De(e,t,n,o,i,a){return(0,r.wg)(),(0,r.iD)("div",ye,[(0,r._)("p",null,(0,h.zw)(n.text),1)])}var Ue={props:{text:{type:String,default:""},isShow:{type:Boolean,default:!1}},emits:["changeShow"],setup(e,{emit:t}){return setTimeout((()=>{t("changeShow",!e.isShow)}),3e3),{}}};const Ie=(0,c.Z)(Ue,[["render",De],["__scopeId","data-v-bef92f74"]]);var xe=Ie,Te={components:{editLoading:Se,editWarn:ke,editSuccess:xe},setup(){const e=(0,D.iH)(!1),t=(0,D.iH)(!1),n=(0,D.iH)(""),o=(0,D.iH)(!1),i=(0,D.iH)(""),a=e=>{t.value=e},l=e=>{console.log(e),o.value=e},c=()=>{e.value=!0,ie().then((r=>{e.value=!1,r.isSuccess?(ue.commit("changeTabName","editList"),ue.commit("saveSources",r.data),n.value=`成功拉取${r.data.length}条源`,o.value=!0):(i.value=r.errorMsg,t.value=!0)})).catch((n=>{console.log(n),e.value=!1,i.value=" 请求发生了错误,请检查你的后端地址,填写是否正确,或者 阅读APP\n确认开启web服务",t.value=!0}))},s=()=>{n.value="正在推送中",o.value=!0,e.value=!0;let r=/bookSource/.test(location.href)?ue.state.bookSources:ue.state.rssSources;ae(r).then((a=>{if(a.isSuccess){let e=a.data;if(Array.isArray(e)){let t="";r.length>e.length&&(r.forEach((t=>{e.find((e=>e.bookSourceUrl===t.bookSourceUrl))||console.log(t.bookSourceUrl)})),t="\n推送失败的源将用红色字体标注!"),n.value=`批量推送源到「阅读3.0APP」\n共计: ${r.length} 条\n成功: ${e.length} 条\n失败: ${r.length-e.length} 条${t}`,o.value=!0}else n.value=`批量推送源到「阅读3.0APP」成功!\n共计: ${r.length} 条`,o.value=!0}else i.value=`批量推送源失败!\nErrorMsg: ${a.errorMsg}`,t.value=!0;e.value=!1})).catch((n=>{console.log(n),e.value=!1,t.value=!0,i.value="请求发生了错误,请检查你的后端地址,填写是否正确,或者 阅读APP\n确认开启web服务"}))},u=()=>{ue.commit("changeEditTabSource",ue.state.currentSource),ue.commit("changeTabName","editTab")},d=()=>{ue.commit("changeCurrentSource",ue.state.editTabSource)},h=()=>{ue.commit("editHistoryUndo")},p=()=>{ue.commit("clearEdit"),console.log("已清除"),n.value="已清除",o.value=!0},g=()=>{ue.commit("clearEdit"),ue.commit("clearAllHistory"),n.value="已清除所有历史记录",o.value=!0},w=()=>{let e=/bookSource/.test(location.href),r=ue.state.currentSource;e&&""!==r.bookSourceUrl&&""!==r.bookSourceType&&""!==r.bookSourceName||!e&&""!==r.sourceUrl&&""!==r.sourceName?le(r).then((a=>{a.isSuccess?(n.value=`源《${e?r.bookSourceName:r.sourceName}》已成功保存到「阅读3.0APP」`,o.value=!0,ue.commit("saveCurrentSource")):(i.value=`源《${e?r.bookSourceName:r.sourceName}》保存失败!\nErrorMsg: ${a.errorMsg}`,t.value=!0)})):(i.value="请检查<必填>项是否全部填写",t.value=!0)},v=()=>{e.value=!0,ue.commit("clearDeBugMsg"),ue.commit("changeTabName","editDebug");let t=/bookSource/.test(location.href),r=ue.state.currentSource;le(r).then((i=>{console.log(i);let a="ws://"+(localStorage.getItem("url")||location.host).replace(/\d+$/,(e=>parseInt(e)+1))+"/"+(t?"bookSourceDebug":"rssSourceDebug");console.log(a);const l=new WebSocket(a);let c="",s=t?r.bookSourceUrl:r.sourceUrl;t&&(c=r.ruleSearch.checkKeyWord?r.ruleSearch.checkKeyWord:ue.state.searchKey?ue.state.searchKey:"我的"),l.onopen=()=>{l.send(`{"tag":"${s}", "key":"${c}"}`)},l.onmessage=e=>{ue.commit("appendDeBugMsg",e.data)},l.onclose=()=>{e.value=!1,n.value="调试已关闭!",o.value=!0,ue.commit("appendDeBugMsg","调试已关闭!")}}))};return(0,r.bv)((()=>{document.onkeydown=e=>{(e.ctrlKey||e.metaKey)&&"Enter"===e.key&&v(),(e.ctrlKey||e.metaKey)&&"s"===e.key&&(w(),e.preventDefault()),e.shiftKey&&"R"===e.key&&g(),e.shiftKey&&"C"===e.key&&p(),e.ctrlKey&&"e"===e.key&&(u(),e.preventDefault()),e.shiftKey&&"e"===e.key&&(d(),e.preventDefault()),e.shiftKey&&"P"===e.key&&c(),e.ctrlKey&&"p"===e.key&&(s(),e.preventDefault())}})),{debug:v,push:s,pull:c,clearEdit:p,showLoading:e,changeShow:a,warnShow:t,successText:n,changeSuccessShow:l,successShow:o,undo:h,redo:g,conver2Tab:u,conver2Source:d,warnText:i,saveSource:w}}};const je=(0,c.Z)(Te,[["render",te],["__scopeId","data-v-5c287c97"]]);var Ke=je;const Be={class:"out"};function Ae(e,t,n,o,i,a){return(0,r.wg)(),(0,r.iD)("div",Be,[(0,r._)("ul",null,[(0,r._)("li",{class:(0,h.C_)("editTab"===e.current_tab?"active":""),onClick:t[0]||(t[0]=e=>o.handleSetActive("editTab"))}," 编辑源 ",2),(0,r._)("li",{class:(0,h.C_)("editDebug"===e.current_tab?"active":""),onClick:t[1]||(t[1]=e=>o.handleSetActive("editDebug"))}," 调试源 ",2),(0,r._)("li",{class:(0,h.C_)("editList"===e.current_tab?"active":""),onClick:t[2]||(t[2]=e=>o.handleSetActive("editList"))}," 源列表 ",2),(0,r._)("li",{class:(0,h.C_)("editHelp"===e.current_tab?"active":""),onClick:t[3]||(t[3]=e=>o.handleSetActive("editHelp"))}," 帮助信息 ",2)]),((0,r.wg)(),(0,r.j4)(r.Ob,null,[((0,r.wg)(),(0,r.j4)((0,r.LL)(e.current_tab)))],1024))])}function Ee(e,t,n,i,a,l){return(0,r.wy)(((0,r.wg)(),(0,r.iD)("textarea",{placeholder:"这里输出序列化的JSON数据,可直接导入'阅读'APP","onUpdate:modelValue":t[0]||(t[0]=t=>e.source=t),onInput:t[1]||(t[1]=(...e)=>i.updateEditSource&&i.updateEditSource(...e))},null,544)),[[o.nr,e.source]])}var Le={name:"editTab",setup(){const e=(0,D.qj)({source:""}),t=()=>{ue.commit("changeEditTabSource",JSON.parse(e.source))};return(0,r.m0)((()=>{let t=ue.state.editTabSource;Object.keys(t).length>0?(t.lastUpdateTime=(new Date).getTime(),e.source=JSON.stringify(t,null,4)):e.source=""})),{...(0,D.BK)(e),updateEditSource:t}}};const He=(0,c.Z)(Le,[["render",Ee],["__scopeId","data-v-554d8227"]]);var Re=He;function Ne(e,t,n,i,a,l){return(0,r.wg)(),(0,r.iD)(r.HY,null,[i.isBookSource?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:0,type:"text",style:{"text-align":"center",border:"1px solid #dddddd","border-radius":"4px"},placeholder:"输入搜索关键字,默认搜「我的」","onUpdate:modelValue":t[0]||(t[0]=t=>e.searchKey=t),onInput:t[1]||(t[1]=t=>i.changeSearch(e.searchKey)),onKeydown:t[2]||(t[2]=(0,o.D2)(((...e)=>i.startSearch&&i.startSearch(...e)),["enter"])),title:"输入关键词 enter(回车键)快捷搜索"},null,544)),[[o.nr,e.searchKey]]):(0,r.kq)("",!0),(0,r.wy)((0,r._)("textarea",{placeholder:"这里用于输出调试信息","onUpdate:modelValue":t[3]||(t[3]=t=>e.printDebug=t),ref:"textareaDom",id:"debug_text"},null,512),[[o.nr,e.printDebug]])],64)}var Oe={name:"editDebug",setup(){const e=(0,D.iH)(""),t=(0,D.qj)({printDebug:ue.state.deBugMsg,searchKey:""}),n=e=>{ue.commit("changeSearchKey",e)};(0,r.m0)((()=>{t.printDebug=ue.state.deBugMsg}));const o=()=>{document.querySelectorAll(".menu>button")[6].click()},i=(0,r.Fl)((()=>/bookSource/.test(window.location.href)));return{...(0,D.BK)(t),textareaDom:e,changeSearch:n,startSearch:o,isBookSource:i}}};const Je=(0,c.Z)(Oe,[["render",Ne],["__scopeId","data-v-28b882dd"]]);var qe=Je;const We={style:{display:"flex","flex-flow":"column"}},Ze={class:"tool"},Pe={class:"source_list"},$e=["value"],Me={class:"book_index"},Ye=["onClick"],Ve={class:"book_info"},ze={key:0};function Fe(e,t,n,i,a,l){return(0,r.wg)(),(0,r.iD)("div",We,[(0,r.wy)((0,r._)("input",{class:"search",type:"text",placeholder:"输入筛选关键词(源名称、源URL或源分组)输入自动筛选源","onUpdate:modelValue":t[0]||(t[0]=t=>e.searchKey=t),onFocus:t[1]||(t[1]=t=>e.delArr=[])},null,544),[[o.nr,e.searchKey]]),(0,r._)("div",null,[(0,r._)("div",Ze,[(0,r._)("button",{onClick:t[2]||(t[2]=(...e)=>i.upFile&&i.upFile(...e))},"导入书源文件"),(0,r._)("button",{onClick:t[3]||(t[3]=(...e)=>i.outExport&&i.outExport(...e))},"导出书源文件"),(0,r._)("button",{onClick:t[4]||(t[4]=(...e)=>i.deleteActiveSource&&i.deleteActiveSource(...e))},"删除选中源"),(0,r._)("button",{onClick:t[5]||(t[5]=(...e)=>i.clearAllSources&&i.clearAllSources(...e))},"清空列表")]),(0,r._)("div",Pe,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.filtedSources,((n,a)=>((0,r.wg)(),(0,r.iD)("div",{key:n.bookSourceUrl||n.sourceUrl,class:(0,h.C_)(["book_item",a===i.currentActive?"book_active":""])},[(0,r.wy)((0,r._)("input",{type:"checkbox",value:a,"onUpdate:modelValue":t[6]||(t[6]=t=>e.delArr=t)},null,8,$e),[[o.e8,e.delArr]]),(0,r._)("div",Me,(0,h.zw)(a+1),1),(0,r._)("div",{style:{"margin-left":"10px",flex:"1"},onClick:e=>i.handleItemClick(a)},[(0,r._)("div",Ve,[(0,r._)("span",null,(0,h.zw)(n.bookSourceName||n.sourceName),1),i.isBookSource?((0,r.wg)(),(0,r.iD)("span",ze,"最后修改:"+(0,h.zw)(i.formatTime(n.lastUpdateTime)),1)):(0,r.kq)("",!0),(0,r._)("span",null,"分组:"+(0,h.zw)(n.bookSourceGroup||n.sourceGroup||"无分组"),1)]),(0,r._)("div",null,(0,h.zw)(n.bookSourceUrl||n.sourceUrl),1)],8,Ye)],2)))),128))])])])}var Ge={name:"editList",setup(){let e=(0,D.qj)({searchKey:"",delArr:[],sources:[],filtedSources:[]}),t=(0,D.iH)(null);const n=n=>{t.value=n,ue.commit("clearEdit"),ue.commit("changeCurrentSource",e.filtedSources[n])},o=()=>{ue.commit("clearAllSource")},i=e=>{if(!e)return null;const t=new Date(e),n=t.getFullYear();let o=t.getMonth()+1;o=o<10?"0"+o:o;let r=t.getDate();r=r<10?"0"+r:r;let i=t.getHours();i=i<10?"0"+i:i;let a=t.getMinutes();a=a<10?"0"+a:a;let l=t.getSeconds();return l=l<10?"0"+l:l,n+"-"+o+"-"+r+" "+i+":"+a+":"+l},a=(t,n)=>{if(""===n)return e.sources;let o=/bookSource/.test(location.href);return o?t.filter((e=>e.bookSourceName.toUpperCase().includes(n.toUpperCase())||(e.bookSourceGroup||"").toUpperCase().includes(n.toUpperCase())||e.bookSourceUrl.toUpperCase().includes(n.toUpperCase()))):t.filter((e=>e.sourceName.toUpperCase().includes(n.toUpperCase())||(e.sourceGroup||"").toUpperCase().includes(n.toUpperCase())||e.sourceUrl.toUpperCase().includes(n.toUpperCase())))};(0,r.m0)((()=>{const t=/bookSource/.test(location.href),n=t?ue.state.bookSources:ue.state.rssSources;e.sources=n})),(0,r.m0)((()=>{e.filtedSources=a(e.sources,e.searchKey)}));const l=(0,r.Fl)((()=>/bookSource/.test(window.location.href))),c=()=>{if(0===e.delArr.length)return console.log("没有选中的书源"),!1;const t=[];e.delArr.forEach((n=>{t.push(e.filtedSources[n])})),ce(t).then((t=>{t.isSuccess?(console.log("删除成功"),e.delArr.forEach((t=>{let[n]=e.filtedSources.splice(t,1),o=e.sources.indexOf(n);e.sources.splice(o,1)})),e.delArr=[]):console.log("错误",t)}))},s=()=>{const e=document.createElement("input");e.type="file",e.accept=".json",e.addEventListener("change",(e=>{const t=e.target.files[0];var n=new FileReader;n.readAsText(t),n.onload=()=>{const e=JSON.parse(n.result);ue.commit("saveSources",e)}})),e.click()},u=()=>{const e=document.createElement("a");let t=/bookSource/.test(location.href),n=t?ue.state.bookSources:ue.state.rssSources,o=t?"BookSource":"RssSource";e.download=`${o}_${Date().replace(/.*?\s(\d+)\s(\d+)\s(\d+:\d+:\d+).*/,"$2$1$3").replace(/:/g,"")}.json`;let r=new Blob([JSON.stringify(n,null,4)],{type:"application/json"});e.href=window.URL.createObjectURL(r),e.click()};return{currentActive:t,isBookSource:l,deleteActiveSource:c,handleItemClick:n,...(0,D.BK)(e),formatTime:i,clearAllSources:o,upFile:s,outExport:u}}};const Qe=(0,c.Z)(Ge,[["render",Fe],["__scopeId","data-v-5570960e"]]);var Xe=Qe;const et=(0,r.uE)('书源制作教程xpath基础教程xpath高级教程正则表达式教程正则表达式在线验证工具^$()[]{}.?+*|
这些是Java正则特殊符号,匹配需转义
(?s)
前缀表示跨行解析
(?m)
前缀表示逐行匹配
(?i)
前缀表示忽略大小写
',6);function tt(e,t,n,o,r,i){return et}var nt={name:"editHelp"};const ot=(0,c.Z)(nt,[["render",tt],["__scopeId","data-v-7ac1e65e"]]);var rt=ot,it={name:"editOut",components:{editDebug:qe,editTab:Re,editList:Xe,editHelp:rt},setup(){const e=(0,D.qj)({url:localStorage.getItem("url")||"",current_tab:ue.state.currentTab||"editTab"}),t=e=>{ue.commit("changeTabName",e)},n=e=>{ue.commit("changeUrl",e)};(0,r.m0)((()=>{e.current_tab=ue.state.currentTab}));const o=()=>{document.querySelectorAll(".menu>button")[1].click()};return{...(0,D.BK)(e),handleSetActive:t,changInput:n,pullSource:o}}};const at=(0,c.Z)(it,[["render",Ae]]);var lt=at,ct={components:{editMenu:Ke,editOut:lt},setup(){const e=(0,D.qj)({});return(0,r.bv)((()=>{})),{...(0,D.BK)(e)}}};const st=(0,c.Z)(ct,[["render",y],["__scopeId","data-v-0fc56f5e"]]);var ut=st;const dt={class:"main"};function ht(e,t,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",dt,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.data,((e,t)=>((0,r.wg)(),(0,r.j4)(l,{key:t,type:e.id,hint:e.hint,title:e.title,rows:e.rows,content:o.getContent(e.id),onChangeContent:o.upData},null,8,["type","hint","title","rows","content","onChangeContent"])))),128))])}const pt=e=>((0,r.dD)("data-v-2ede5ef6"),e=e(),(0,r.Cn)(),e),gt={class:"edit_input"},wt=pt((()=>(0,r._)("i",null,":",-1))),vt=["id","placeholder","rows","value"];function mt(e,t,n,o,i,a){return(0,r.wg)(),(0,r.iD)("div",gt,[(0,r._)("span",null,[(0,r.Uk)((0,h.zw)(n.title),1),wt]),(0,r._)("textarea",{id:n.type,placeholder:n.hint,rows:n.rows,value:n.content,ref:"attr",onInput:t[0]||(t[0]=(...e)=>o.change&&o.change(...e)),onBlur:t[1]||(t[1]=(...e)=>o.changeHistory&&o.changeHistory(...e)),onFocus:t[2]||(t[2]=(...e)=>o.changeHeight&&o.changeHeight(...e))},null,40,vt)])}var St={props:{title:{type:String,default:""},rows:{type:Number,default:1},hint:{type:String,default:""},type:{type:String,default:""},content:{type:[String,Number,Boolean],default:""}},emits:["changeContent"],setup(e,{emit:t}){const n=(0,D.iH)(""),o=()=>{t("changeContent",{value:n.value.value,type:n.value.getAttribute("id")})},i=()=>{localStorage.getItem("history")||localStorage.setItem("history",JSON.stringify({new:[],old:[]}));const e=JSON.parse(localStorage.getItem("history")),t=e.new;if(t.length){const e=n.value.getAttribute("id");if(e.includes("_")||t[t.length-1][e]===ue.state.currentSource[e]){if(e.includes("_")){let n=e.split("_")[0],o=e.split("_")[1];t[t.length-1][n][o]!==ue.state.currentSource[n][o]&&ue.commit("editHistory",ue.state.currentSource)}}else ue.commit("editHistory",ue.state.currentSource)}else ue.commit("editHistory",ue.state.currentSource)},a=()=>{(0,r.Y3)((()=>{let e=n.value;const t=e.scrollHeight,o=e.offsetHeight;o<=t&&(e.style.height="auto",e.style.height=e.scrollHeight+"px")}))};return{changeHistory:i,change:o,attr:n,changeHeight:a}}};const ft=(0,c.Z)(St,[["render",mt],["__scopeId","data-v-2ede5ef6"]]);var bt=ft,Ct={base:[{title:"源域名",rows:1,id:"bookSourceUrl",hint:"<必填>通常填写网站主页,例: https://www.qidian.com"},{title:"源类型",rows:1,id:"bookSourceType",hint:"<必填>0:文本 1:音频 2:图片 3:文件(只提供下载的网站)"},{title:"源名称",rows:1,id:"bookSourceName",hint:"<必填>会显示在源列表"},{title:"源分组",rows:1,id:"bookSourceGroup",hint:"<选填>描述源的特征信息"},{title:"源注释",rows:1,id:"bookSourceComment",hint:"<选填>描述源作者和状态"},{title:"书源变量说明",rows:1,id:"variableComment",hint:"<选填>书源变量说明"},{title:"登录地址",rows:1,id:"loginUrl",hint:"<选填>填写网站登录网址,仅在需要登录的源有用"},{title:"登录界面",rows:3,id:"loginUi",hint:"<选填>自定义登录界面"},{title:"登录检测",rows:3,id:"loginCheckJs",hint:"<选填>登录检测js"},{title:"封面解密",rows:3,id:"coverDecodeJs",hint:"<选填>封面解密js"},{title:"并发率",rows:1,id:"concurrentRate",hint:"<选填>并发率"},{title:"请求头",rows:3,id:"header",hint:"<选填>客户端标识"},{title:"链接验证",rows:1,id:"bookUrlPattern",hint:"<选填>当详情页URL与源URL的域名不一致时有效,用于添加网址"}],search:[{title:"搜索地址",rows:1,id:"searchUrl",hint:"[域名可省略]/search.php@kw={{key}}"},{title:"校验文字",rows:1,id:"ruleSearch_checkKeyWord",hint:"校验关键字"},{title:"列表规则",rows:1,id:"ruleSearch_bookList",hint:"选择书籍节点 (规则结果为List)"},{title:"书名规则",rows:1,id:"ruleSearch_name",hint:"选择节点书名 (规则结果为String)"},{title:"作者规则",rows:1,id:"ruleSearch_author",hint:"选择节点作者 (规则结果为String)"},{title:"分类规则",rows:1,id:"ruleSearch_kind",hint:"选择节点分类信息 (规则结果为String)"},{title:"字数规则",rows:1,id:"ruleSearch_wordCount",hint:"选择节点字数信息 (规则结果为String)"},{title:"最新章节",rows:1,id:"ruleSearch_lastChapter",hint:"选择节点最新章节 (规则结果为String)"},{title:"简介规则",rows:1,id:"ruleSearch_intro",hint:"选择节点书籍简介 (规则结果为String)"},{title:"封面规则",rows:1,id:"ruleSearch_coverUrl",hint:"选择节点书籍封面 (规则结果为String类型的url)"},{title:"详情地址",rows:1,id:"ruleSearch_bookUrl",hint:"选择书籍详情页网址 (规则结果为String类型的url)"}],find:[{title:"发现地址",rows:6,id:"exploreUrl",hint:"内容能显示在发现菜单\n每行一条发现分类(网址域名可省略),例:\n名称1::网址(Url)1\n名称2::网址(Url)2\n..."},{title:"列表规则",rows:1,id:"ruleExplore_bookList",hint:"选择书籍节点 (规则结果为List)"},{title:"书名规则",rows:1,id:"ruleExplore_name",hint:"选择节点书名 (规则结果为String)"},{title:"作者规则",rows:1,id:"ruleExplore_author",hint:"选择节点作者 (规则结果为String)"},{title:"分类规则",rows:1,id:"ruleExplore_kind",hint:"选择节点分类信息 (规则结果为String)"},{title:"字数规则",rows:1,id:"ruleExplore_wordCount",hint:"选择节点字数信息 (规则结果为String)"},{title:"最新章节",rows:1,id:"ruleExplore_lastChapter",hint:"选择节点最新章节 (规则结果为String)"},{title:"简介规则",rows:1,id:"ruleExplore_intro",hint:"选择节点书籍简介 (规则结果为String)"},{title:"封面规则",rows:1,id:"ruleExplore_coverUrl",hint:"选择节点书籍封面 (规则结果为String类型的url)"},{title:"详情地址",rows:1,id:"ruleExplore_bookUrl",hint:"选择书籍详情页网址 (规则结果为String类型的url)"}],detail:[{title:"预处理",rows:3,id:"ruleBookInfo_init",hint:"用于加速详情信息检索,只支持AllInOne规则"},{title:"书名规则",rows:1,id:"ruleBookInfo_name",hint:"选择节点书名 (规则结果为String)"},{title:"作者规则",rows:1,id:"ruleBookInfo_author",hint:"选择节点作者 (规则结果为String)"},{title:"分类规则",rows:1,id:"ruleBookInfo_kind",hint:"选择节点分类信息 (规则结果为String)"},{title:"字数规则",rows:1,id:"ruleBookInfo_wordCount",hint:"选择节点字数信息 (规则结果为String)"},{title:"最新章节",rows:1,id:"ruleBookInfo_lastChapter",hint:"选择节点最新章节 (规则结果为String)"},{title:"简介规则",rows:1,id:"ruleBookInfo_intro",hint:"选择节点书籍简介 (规则结果为String)"},{title:"封面规则",rows:1,id:"ruleBookInfo_coverUrl",hint:"选择节点书籍封面 (规则结果为String类型的url)"},{title:"目录地址",rows:1,id:"ruleBookInfo_tocUrl",hint:"选择书籍详情页网址 (规则结果为String类型的url, 与详情页相同时可省略)"},{title:"下载URL",rows:1,id:"ruleBookInfo_downloadUrls",hint:"文件类书源下载地址 (规则结果为String类型的url, 多个链接返回数组)"},{title:"允许修改书名作者",rows:1,id:"ruleBookInfo_canReName",hint:"允许修改书名作者(规则结果为String类型, 默认不允许)"}],directory:[{title:"更新前JS",rows:3,id:"ruleToc_preUpdateJs",hint:"动态更新书籍目录链接"},{title:"列表规则",rows:3,id:"ruleToc_chapterList",hint:"选择目录列表的章节节点 (规则结果为List)"},{title:"章节名称",rows:1,id:"ruleToc_chapterName",hint:"选择章节名称 (规则结果为String)"},{title:"章节地址",rows:1,id:"ruleToc_chapterUrl",hint:"选择章节链接 (规则结果为String类型的Url)"},{title:"卷名标识",rows:1,id:"ruleToc_isVolume",hint:"章节名称是否是卷名 (规则结果为Bool)"},{title:"收费标识",rows:1,id:"ruleToc_isVip",hint:"章节是否为VIP章节 (规则结果为Bool)"},{title:"购买标识",rows:1,id:"ruleToc_isPay",hint:"章节是否为已购买 (规则结果为Bool)"},{title:"章节信息",rows:1,id:"ruleToc_updateTime",hint:"选择章节信息 (规则结果为String)"},{title:"翻页规则",rows:1,id:"ruleToc_nextTocUrl",hint:"选择目录下一页链接 (规则结果为List或String)"}],content:[{title:"脚本注入",rows:3,id:"ruleContent_webJs",hint:"注入javascript,用于模拟鼠标点击等,必须有返回值,一般为String类型"},{title:"正文规则",rows:1,id:"ruleContent_content",hint:"选择正文内容 (规则结果为String)"},{title:"翻页规则",rows:1,id:"ruleContent_nextContentUrl",hint:"选择下一分页(不是下一章)链接 (规则结果为String类型的Url)"},{title:"资源正则",rows:1,id:"ruleContent_sourceRegex",hint:"匹配资源的url特征,用于嗅探"},{title:"替换规则",rows:1,id:"ruleContent_replaceRegex",hint:"多页内容合并后替换,用于正文净化"},{title:"图片样式",rows:1,id:"ruleContent_imageStyle",hint:"FULL:铺满 不填:默认样式"},{title:"购买操作",rows:1,id:"ruleContent_payAction",hint:"填写JavaScript 返回购买链接或者调用购买接口"},{title:"图片解密",rows:1,id:"ruleContent_imageDecode",hint:"填写JavaScript 返回解密图片的bytes "}],review:[{title:"段评URL",rows:1,id:"ruleReview_reviewUrl",hint:"段评URL"},{title:"段评发布者头像",rows:1,id:"ruleReview_avatarRule",hint:"段评发布者头像"},{title:"段评内容",rows:1,id:"ruleReview_contentRule",hint:"段评内容"},{title:"段评发布时间",rows:1,id:"ruleReview_postTimeRule",hint:"段评发布时间"},{title:"获取段评回复URL",rows:1,id:"ruleReview_reviewQuoteUrl",hint:"获取段评回复URL"},{title:"点赞URL",rows:1,id:"ruleReview_voteUpUrl",hint:"点赞URL"},{title:"点踩URL",rows:1,id:"ruleReview_voteDownUrl",hint:"点踩URL"},{title:"发送回复URL",rows:1,id:"ruleReview_postReviewUrl",hint:"发送回复URL"},{title:"发送回复段评URL",rows:1,id:"ruleReview_postQuoteUrl",hint:"发送回复段评URL"},{title:"删除段评URL",rows:1,id:"ruleReview_deleteUrl",hint:"删除段评URL"}],other:[{title:"启用搜索",rows:1,id:"enabled",hint:"启用: true 关闭: false (可选,默认true)"},{title:"启用发现",rows:1,id:"enabledExplore",hint:"启用: true 关闭: false (可选,默认true)"},{title:"启用段评",rows:1,id:"enabledReview",hint:"启用: true 关闭: false (可选,默认false)"},{title:"启用CookieJar",rows:1,id:"enabledCookieJar",hint:"启用: true 关闭: false (可选,默认false)"},{title:"搜索权重",rows:1,id:"weight",hint:"整数: 0~N (可选,默认0) | 数字越大越靠前"},{title:"排序编号",rows:1,id:"customOrder",hint:"整数: 0~N (可选,默认0) | 数字越小越靠前"}]};function _t(){const e=(0,D.qj)({currentSource:ue.state.currentSource}),t=e=>{ue.commit("changeCurrentSourceValue",e)},n=t=>{try{if(t.includes("_")){let n=t.split("_")[0],o=t.split("_")[1],r=e.currentSource[n];return r?r[o]:null}return e.currentSource[t]}catch(n){console.log("导入错误",n.TypeError),ue.commit("clearEdit")}};return(0,r.m0)((()=>{e.currentSource=ue.state.currentSource})),{...(0,D.BK)(e),upData:t,getContent:n}}var kt={components:{editInput:bt},setup(){const{upData:e,getContent:t}=_t(),n=(0,D.qj)({data:Ct.base});return{...(0,D.BK)(n),upData:e,getContent:t}}};const yt=(0,c.Z)(kt,[["render",ht]]);var Dt=yt;const Ut={class:"main"};function It(e,t,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",Ut,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.data,((e,t)=>((0,r.wg)(),(0,r.j4)(l,{key:t,type:e.id,hint:e.hint,title:e.title,rows:e.rows,content:o.getContent(e.id),onChangeContent:o.upData},null,8,["type","hint","title","rows","content","onChangeContent"])))),128))])}var xt={components:{editInput:bt},setup(){const{upData:e,getContent:t}=_t(),n=(0,D.qj)({data:Ct.search});return{...(0,D.BK)(n),upData:e,getContent:t}}};const Tt=(0,c.Z)(xt,[["render",It]]);var jt=Tt;const Kt={class:"main"};function Bt(e,t,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",Kt,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.data,((e,t)=>((0,r.wg)(),(0,r.j4)(l,{key:t,type:e.id,hint:e.hint,title:e.title,rows:e.rows,content:o.getContent(e.id),onChangeContent:o.upData},null,8,["type","hint","title","rows","content","onChangeContent"])))),128))])}var At={components:{editInput:bt},setup(){const{upData:e,getContent:t}=_t(),n=(0,D.qj)({data:Ct.directory});return{...(0,D.BK)(n),upData:e,getContent:t}}};const Et=(0,c.Z)(At,[["render",Bt]]);var Lt=Et;const Ht={class:"main"};function Rt(e,t,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",Ht,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.data,((e,t)=>((0,r.wg)(),(0,r.j4)(l,{key:t,type:e.id,hint:e.hint,title:e.title,rows:e.rows,content:o.getContent(e.id),onChangeContent:o.upData},null,8,["type","hint","title","rows","content","onChangeContent"])))),128))])}var Nt={components:{editInput:bt},setup(){const{upData:e,getContent:t}=_t(),n=(0,D.qj)({data:Ct.content});return{...(0,D.BK)(n),upData:e,getContent:t}}};const Ot=(0,c.Z)(Nt,[["render",Rt]]);var Jt=Ot;const qt={class:"main"};function Wt(e,t,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",qt,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.data,((e,t)=>((0,r.wg)(),(0,r.j4)(l,{key:t,type:e.id,hint:e.hint,title:e.title,rows:e.rows,content:o.getContent(e.id),onChangeContent:o.upData},null,8,["type","hint","title","rows","content","onChangeContent"])))),128))])}var Zt={components:{editInput:bt},setup(){const{upData:e,getContent:t}=_t(),n=(0,D.qj)({data:Ct.detail});return{...(0,D.BK)(n),upData:e,getContent:t}}};const Pt=(0,c.Z)(Zt,[["render",Wt]]);var $t=Pt;const Mt={class:"main"};function Yt(e,t,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",Mt,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.data,((e,t)=>((0,r.wg)(),(0,r.j4)(l,{key:t,type:e.id,hint:e.hint,title:e.title,rows:e.rows,content:o.getContent(e.id),onChangeContent:o.upData},null,8,["type","hint","title","rows","content","onChangeContent"])))),128))])}var Vt={components:{editInput:bt},setup(){const{upData:e,getContent:t}=_t(),n=(0,D.qj)({data:Ct.other});return{...(0,D.BK)(n),upData:e,getContent:t}}};const zt=(0,c.Z)(Vt,[["render",Yt]]);var Ft=zt;const Gt={class:"main"};function Qt(e,t,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",Gt,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.data,((e,t)=>((0,r.wg)(),(0,r.j4)(l,{key:t,type:e.id,hint:e.hint,title:e.title,rows:e.rows,content:o.getContent(e.id),onChangeContent:o.upData},null,8,["type","hint","title","rows","content","onChangeContent"])))),128))])}var Xt={components:{editInput:bt},setup(){const{upData:e,getContent:t}=_t(),n=(0,D.qj)({data:Ct.find});return{...(0,D.BK)(n),upData:e,getContent:t}}};const en=(0,c.Z)(Xt,[["render",Qt]]);var tn=en;const nn={class:"main"};function on(e,t,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",nn,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.data,((e,t)=>((0,r.wg)(),(0,r.j4)(l,{key:t,type:e.id,hint:e.hint,title:e.title,rows:e.rows,content:o.getContent(e.id),onChangeContent:o.upData},null,8,["type","hint","title","rows","content","onChangeContent"])))),128))])}var rn={components:{editInput:bt},setup(){const{upData:e,getContent:t}=_t(),n=(0,D.qj)({data:Ct.review});return{...(0,D.BK)(n),upData:e,getContent:t}}};const an=(0,c.Z)(rn,[["render",on]]);var ln=an;const cn=e=>((0,r.dD)("data-v-63af33ef"),e=e(),(0,r.Cn)(),e),sn={class:"left"},un=cn((()=>(0,r._)("div",null,[(0,r._)("a",{href:"/"},"←主页"),(0,r._)("b",null,"订阅源")],-1))),dn=["onClick"],hn=["onClick"],pn=["onClick"],gn=["onClick"];function wn(e,t,n,o,i,a){const l=(0,r.up)("router-link"),c=(0,r.up)("router-view"),s=(0,r.up)("edit-menu"),u=(0,r.up)("edit-out");return(0,r.wg)(),(0,r.iD)(r.HY,null,[(0,r._)("div",sn,[(0,r._)("div",null,[un,(0,r._)("ul",null,[(0,r.Wm)(l,{to:{name:"rss-base"},custom:""},{default:(0,r.w5)((({navigate:e,isActive:t})=>[(0,r._)("li",{onClick:e,class:(0,h.C_)({active:t?"active":""})}," 基础 ",10,dn)])),_:1}),(0,r.Wm)(l,{to:{name:"rss-list"},custom:""},{default:(0,r.w5)((({navigate:e,isActive:t})=>[(0,r._)("li",{onClick:e,class:(0,h.C_)({active:t?"active":""})}," 列表 ",10,hn)])),_:1}),(0,r.Wm)(l,{to:{name:"rss-webView"},custom:""},{default:(0,r.w5)((({navigate:e,isActive:t})=>[(0,r._)("li",{onClick:e,class:(0,h.C_)({active:t?"active":""})}," WebView ",10,pn)])),_:1}),(0,r.Wm)(l,{custom:"",to:{name:"rss-other"}},{default:(0,r.w5)((({navigate:e,isActive:t})=>[(0,r._)("li",{onClick:e,class:(0,h.C_)({active:t?"active":""})}," 其他 ",10,gn)])),_:1})])]),(0,r.Wm)(c,null,{default:(0,r.w5)((({Component:e})=>[((0,r.wg)(),(0,r.j4)(r.Ob,null,[((0,r.wg)(),(0,r.j4)((0,r.LL)(e)))],1024))])),_:1})]),(0,r.Wm)(s),(0,r.Wm)(u)],64)}var vn={components:{editMenu:Ke,editOut:lt},setup(){const e=(0,D.qj)({});return(0,r.bv)((()=>{})),{...(0,D.BK)(e)}}};const mn=(0,c.Z)(vn,[["render",wn],["__scopeId","data-v-63af33ef"]]);var Sn=mn;const fn={class:"main"};function bn(e,t,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",fn,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.data,((e,t)=>((0,r.wg)(),(0,r.j4)(l,{key:t,type:e.id,hint:e.hint,title:e.title,rows:e.rows,content:o.getContent(e.id),onChangeContent:o.upData},null,8,["type","hint","title","rows","content","onChangeContent"])))),128))])}var Cn={base:[{title:"源域名",rows:1,id:"sourceUrl",hint:"<必填>通常填写网站主页,例: https://www.qidian.com"},{title:"图标",rows:1,id:"sourceIcon",hint:"<选填>填写图片网络链接"},{title:"源名称",rows:1,id:"sourceName",hint:"<必填>会显示在源列表"},{title:"源分组",rows:1,id:"sourceGroup",hint:"<选填>描述源的特征信息"},{title:"源注释",rows:1,id:"sourceComment",hint:"<选填>描述源作者和状态"},{title:"源变量说明",rows:1,id:"variableComment",hint:"<选填>源变量说明"},{title:"登录地址",rows:1,id:"loginUrl",hint:"<选填>填写网站登录网址,仅在需要登录的源有用"},{title:"登录界面",rows:3,id:"loginUi",hint:"<选填>自定义登录界面"},{title:"登录检测",rows:3,id:"loginCheckJs",hint:"<选填>登录检测js"},{title:"封面解密",rows:3,id:"coverDecodeJs",hint:"<选填>封面解密js"},{title:"并发率",rows:1,id:"concurrentRate",hint:"<选填>并发率"},{title:"请求头",rows:3,id:"header",hint:"<选填>客户端标识"},{title:"分类地址",rows:3,id:"sortUrl",hint:"<选填>名称1::链接1\n名称2::链接2"}],list:[{title:"列表样式",rows:1,id:"articleStyle",hint:"<选填>0,1,2 (默认0)"},{title:"列表规则",rows:1,id:"ruleArticles",hint:"规则结果为List"},{title:"翻页规则",rows:1,id:"ruleNextPage",hint:"下一页链接 规则结果为List或String"},{title:"标题规则",rows:1,id:"ruleTitle",hint:"文章标题 规则结果为String"},{title:"时间规则",rows:1,id:"rulePubDate",hint:"文章发布时间 规则结果为String"},{title:"描述规则",rows:1,id:"ruleDescription",hint:"文章简要描述 规则结果为String"},{title:"图片规则",rows:1,id:"ruleImage",hint:"文章图片链接 规则结果为String"},{title:"链接规则",rows:1,id:"ruleLink",hint:"文章链接 规则结果为String"}],webView:[{title:"启用JS",rows:1,id:"enableJs",hint:"启用: true 关闭: false (可选,默认true)"},{title:"加载地址",rows:1,id:"loadWithBaseUrl",hint:"启用: true 关闭: false (可选,默认true)"},{title:"内容规则",rows:1,id:"ruleContent",hint:"文章正文"},{title:"样式规则",rows:3,id:"style",hint:"文章正文样式 填写css"}],other:[{title:"启用",rows:1,id:"enabled",hint:"启用: true 关闭: false (可选,默认true)"},{title:"启用CookieJar",rows:1,id:"enabledCookieJar",hint:"启用: true 关闭: false (可选,默认false)"},{title:"单URL",rows:1,id:"singleUrl",hint:"启用: true 关闭: false (可选,默认false)"},{title:"排序编号",rows:1,id:"customOrder",hint:"整数: 0~N (可选,默认0) | 数字越小越靠前"}]},_n={components:{editInput:bt},setup(){const{upData:e,getContent:t}=_t(),n=(0,D.qj)({data:Cn.base});return{...(0,D.BK)(n),upData:e,getContent:t}}};const kn=(0,c.Z)(_n,[["render",bn]]);var yn=kn;const Dn={class:"main"};function Un(e,t,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",Dn,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.data,((e,t)=>((0,r.wg)(),(0,r.j4)(l,{key:t,type:e.id,hint:e.hint,title:e.title,rows:e.rows,content:o.getContent(e.id),onChangeContent:o.upData},null,8,["type","hint","title","rows","content","onChangeContent"])))),128))])}var In={components:{editInput:bt},setup(){const{upData:e,getContent:t}=_t(),n=(0,D.qj)({data:Cn.list});return{...(0,D.BK)(n),upData:e,getContent:t}}};const xn=(0,c.Z)(In,[["render",Un]]);var Tn=xn;const jn={class:"main"};function Kn(e,t,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",jn,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.data,((e,t)=>((0,r.wg)(),(0,r.j4)(l,{key:t,type:e.id,hint:e.hint,title:e.title,rows:e.rows,content:o.getContent(e.id),onChangeContent:o.upData},null,8,["type","hint","title","rows","content","onChangeContent"])))),128))])}var Bn={components:{editInput:bt},setup(){const{upData:e,getContent:t}=_t(),n=(0,D.qj)({data:Cn.webView});return{...(0,D.BK)(n),upData:e,getContent:t}}};const An=(0,c.Z)(Bn,[["render",Kn]]);var En=An;const Ln={class:"main"};function Hn(e,t,n,o,i,a){const l=(0,r.up)("edit-input");return(0,r.wg)(),(0,r.iD)("div",Ln,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(e.data,((e,t)=>((0,r.wg)(),(0,r.j4)(l,{key:t,type:e.id,hint:e.hint,title:e.title,rows:e.rows,content:o.getContent(e.id),onChangeContent:o.upData},null,8,["type","hint","title","rows","content","onChangeContent"])))),128))])}var Rn={components:{editInput:bt},setup(){const{upData:e,getContent:t}=_t(),n=(0,D.qj)({data:Cn.other});return{...(0,D.BK)(n),upData:e,getContent:t}}};const Nn=(0,c.Z)(Rn,[["render",Hn]]);var On=Nn;const Jn=[{path:"/bookSource",name:"book-home",component:ut,redirect:{name:"book-base"},children:[{path:"/bookSource/base",name:"book-base",component:Dt},{path:"/bookSource/search",name:"book-search",component:jt},{path:"/bookSource/find",name:"book-find",component:tn},{path:"/bookSource/detail",name:"book-detail",component:$t},{path:"/bookSource/directory",name:"book-directory",component:Lt},{path:"/bookSource/content",name:"book-content",component:Jt},{path:"/bookSource/review",name:"book-review",component:ln},{path:"/bookSource/other",name:"book-other",component:Ft}]},{path:"/rssSource",name:"rss-home",component:Sn,redirect:{name:"rss-base"},children:[{path:"/rssSource/base",name:"rss-base",component:yn},{path:"/rssSource/list",name:"rss-list",component:Tn},{path:"/rssSource/webView",name:"rss-webView",component:En},{path:"/rssSource/other",name:"rss-other",component:On}]}],qn=(0,d.p7)({history:(0,d.r5)(),routes:Jn});var Wn=qn;(0,o.ri)(u).use(ue).use(Wn).mount("#app")}},t={};function n(o){var r=t[o];if(void 0!==r)return r.exports;var i=t[o]={exports:{}};return e[o](i,i.exports,n),i.exports}n.m=e,function(){var e=[];n.O=function(t,o,r,i){if(!o){var a=1/0;for(u=0;u=i)&&Object.keys(n.O).every((function(e){return n.O[e](o[c])}))?o.splice(c--,1):(l=!1,i0&&e[u-1][2]>i;u--)e[u]=e[u-1];e[u]=[o,r,i]}}(),function(){n.d=function(e,t){for(var o in t)n.o(t,o)&&!n.o(e,o)&&Object.defineProperty(e,o,{enumerable:!0,get:t[o]})}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={143:0};n.O.j=function(t){return 0===e[t]};var t=function(t,o){var r,i,a=o[0],l=o[1],c=o[2],s=0;if(a.some((function(t){return 0!==e[t]}))){for(r in l)n.o(l,r)&&(n.m[r]=l[r]);if(c)var u=c(n)}for(t&&t(o);s