");else if("image"===a._type){var s=this.resolveImageRef(null===(e=a.asset)||void 0===e?void 0:e._ref);s&&r.push('
'))}else if("block"===a._type){var l=a,u="h2"===l.style?"h2":"p",c=(null!==(n=l.children)&&void 0!==n?n:[]).map(function(t){var e,n,r,o=null!==(e=t.text)&&void 0!==e?e:"";return(null===(n=t.marks)||void 0===n?void 0:n.includes("strong"))&&(o="".concat(o,"")),(null===(r=t.marks)||void 0===r?void 0:r.includes("em"))&&(o="".concat(o,"")),o}).join("");c.trim()&&r.push("<".concat(u,">").concat(c,"").concat(u,">"))}}return r.join("\n")},a.prototype.plainTextFromPortableText=function(t){if(t)return t.filter(function(t){return"block"===t._type}).map(function(t){var e;return(null!==(e=t.children)&&void 0!==e?e:[]).map(function(t){return t.text}).join("")}).filter(function(t){return t.trim()}).join("\n\n")||void 0},a.prototype.parseNovel=function(n){return t(this,void 0,void 0,function(){var t,r,a,s,l,u,c;return e(this,function(e){switch(e.label){case 0:return t={path:n,name:n,cover:o.defaultCover,status:i.NovelStatus.Ongoing,chapters:[]},[4,this.fetchPageData(n)];case 1:return r=e.sent(),(a=null==r?void 0:r.vol)?(t.name=this.displayName(a.title),t.cover=null!==(u=null===(l=null===(s=a.mainImage)||void 0===s?void 0:s.asset)||void 0===l?void 0:l.url)&&void 0!==u?u:o.defaultCover,t.summary=this.plainTextFromPortableText(a.synopsis),t.chapters=(null!==(c=a.chapters)&&void 0!==c?c:[]).map(function(t,e){return{name:t.title,path:"".concat(n,"/").concat(t.chkeyword),chapterNumber:e+1}}),[2,t]):(t.summary="This novel is not available on Anime Anyway.",[2,t])}})})},a.prototype.parseChapter=function(n){return t(this,void 0,void 0,function(){var t,r,o;return e(this,function(e){switch(e.label){case 0:return[4,this.fetchPageData(n)];case 1:return t=e.sent(),(r=null===(o=null==t?void 0:t.chapter)||void 0===o?void 0:o.content)?[2,this.renderPortableText(r)||"This chapter appears to be empty.
"]:[2,"This chapter is not available on Anime Anyway.
"]}})})},a}();exports.default=new a;
\ No newline at end of file
diff --git a/.js/src/plugins/english/ao3.js b/.js/src/plugins/english/ao3.js
new file mode 100644
index 0000000..6100805
--- /dev/null
+++ b/.js/src/plugins/english/ao3.js
@@ -0,0 +1 @@
+var e=this&&this.__awaiter||function(e,a,l,t){return new(l||(l=Promise))(function(r,n){function u(e){try{i(t.next(e))}catch(e){n(e)}}function o(e){try{i(t.throw(e))}catch(e){n(e)}}function i(e){var a;e.done?r(e.value):(a=e.value,a instanceof l?a:new l(function(e){e(a)})).then(u,o)}i((t=t.apply(e,a||[])).next())})},a=this&&this.__generator||function(e,a){var l,t,r,n={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]},u=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return u.next=o(0),u.throw=o(1),u.return=o(2),"function"==typeof Symbol&&(u[Symbol.iterator]=function(){return this}),u;function o(o){return function(i){return function(o){if(l)throw new TypeError("Generator is already executing.");for(;u&&(u=0,o[0]&&(n=0)),n;)try{if(l=1,t&&(r=2&o[0]?t.return:o[0]?t.throw||((r=t.return)&&r.call(t),0):t.next)&&!(r=r.call(t,o[1])).done)return r;switch(t=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return n.label++,{value:o[1],done:!1};case 5:n.label++,t=o[1],o=[0];continue;case 7:o=n.ops.pop(),n.trys.pop();continue;default:if(!(r=n.trys,(r=r.length>0&&r[r.length-1])||6!==o[0]&&2!==o[0])){n=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]40 or range eg. 10-100",type:r.FilterTypes.TextInput},hits:{value:"",label:"Hits",type:r.FilterTypes.TextInput},bookmarks:{value:"",label:"Bookmarks",type:r.FilterTypes.TextInput},comments:{value:"",label:"Comments",type:r.FilterTypes.TextInput},kudos:{value:"",label:"Kudos",type:r.FilterTypes.TextInput}}}return u.prototype.parseNovels=function(e){var a=[];return e("li.work").each(function(l,t){var r,u=e(t).find("h4.heading > a").first().text().trim(),o=null===(r=e(t).find("h4.heading > a").first().attr("href"))||void 0===r?void 0:r.trim();if(o){var i={name:u,cover:n.defaultCover,path:o.slice(1)};a.push(i)}}),a},u.prototype.popularNovels=function(r,n){return e(this,arguments,void 0,function(e,r){var n,u,o,i,s=r.showLatestNovels,v=r.filters;return a(this,function(a){switch(a.label){case 0:return n=new URLSearchParams({commit:"Search",page:e.toString(),"work_search[language_id]":v.language.value}),s?n.set("work_search[sort_column]","revised_at"):n.set("work_search[sort_column]",v.sort.value),n.set("work_search[sort_direction]",v.sortdir.value),""!==v.completion.value&&n.set("work_search[complete]",v.completion.value),""!==v.crossover.value&&n.set("work_search[crossover]",v.crossover.value),v.categories.value.length>0&&v.categories.value.forEach(function(e){n.append("work_search[category_ids][]",e)}),v.warningsFilter.value.length>0&&v.warningsFilter.value.forEach(function(e){n.append("work_search[archive_warning_ids][]",e)}),v.singlechap.value&&n.set("work_search[single_chapter]","1"),""!==v.author.value&&n.set("work_search[creators]",v.author.value),""!==v.dateFilter.value&&""!==v.dateIncrements.value&&n.set("work_search[revised_at]","".concat(v.dateFilter.value," ").concat(v.dateIncrements.value)),""!==v.words.value&&n.set("work_search[word_count]",v.words.value),""!==v.hits.value&&n.set("work_search[hits]",v.hits.value),""!==v.bookmarks.value&&n.set("work_search[bookmarks_count]",v.bookmarks.value),""!==v.comments.value&&n.set("work_search[comments_count]",v.comments.value),""!==v.kudos.value&&n.set("work_search[kudos_count]",v.kudos.value),u="".concat(this.site,"works/search?").concat(n.toString()),[4,(0,t.fetchApi)(u).then(function(e){return e.text()})];case 1:return o=a.sent(),i=(0,l.load)(o),[2,this.parseNovels(i)]}})})},u.prototype.parseNovel=function(r){return e(this,void 0,void 0,function(){var e,u,o,i,s,v,c,b,h,p,d,m,g,f,k,y,w,_,x,T,S;return a(this,function(a){switch(a.label){case 0:return[4,(0,t.fetchApi)(new URL(r,this.site).toString())];case 1:return e=a.sent(),u=r+"/navigate",[4,(0,t.fetchApi)(new URL(u,this.site).toString())];case 2:return o=a.sent(),[4,e.text()];case 3:return i=a.sent(),[4,o.text()];case 4:return s=a.sent(),v=(0,l.load)(s),c=(0,l.load)(i),(b={path:r,name:c("h2.title").text().trim()||"Untitled",cover:n.defaultCover,status:c("dt.status").text().includes("Updated")?"Ongoing":"Completed",chapters:[]}).author=c('a[rel="author"]').map(function(e,a){return c(a).text().trim()}).get().join(", "),b.genres=Array.from(c("dd.freeform.tags li a.tag")).map(function(e){return c(e).text().trim()}).join(","),h=c("blockquote.userstuff").text().trim(),p=Array.from(c("dd.fandom.tags li a.tag")).map(function(e){return c(e).text().trim()}).join(","),d=Array.from(c("dd.rating.tags li a.tag")).map(function(e){return c(e).text().trim()}).join(","),m=Array.from(c("dd.warning.tags li a.tag")).map(function(e){return c(e).text().trim()}).join(","),g=Array.from(c("dd.series li a.tag")).map(function(e){return c(e).text().trim()}).join(","),f=Array.from(c("dd.relationship.tags li a.tag")).map(function(e){return c(e).text().trim()}).join(","),k=Array.from(c("dd.character.tags li a.tag")).map(function(e){return c(e).text().trim()}).join(","),y=Array.from(c("dd.stats li a.tag")).map(function(e){return c(e).text().trim()}).join(","),b.summary="Fandom:\n".concat(p,"\n\nRating:\n").concat(d,"\n\nWarning:\n").concat(m,"\n\nSummary:\n").concat(h,"\n\nSeries:\n").concat(g,"\n\nRelationships:\n").concat(f,"\n\nCharacters:\n").concat(k,"\n\nStats:\n").concat(y),w=[],_=[],v("ol.index").each(function(e,a){v(a).find("li").each(function(e,a){var l=v(a).find("span.datetime").text().replace(/\(([^)]+)\)/g,"$1").trim(),t=l?new Date(l).toISOString():"";_.push(t)})}),x=c(".wrapper dd.published").text().trim(),T=x?new Date(x).toISOString():"",S=0,c("#chapter_index select").length>0&&c("#chapter_index select").each(function(e,a){c(a).find("option").each(function(e,a){var l,t=c(a).text().trim(),n=null===(l=c(a).attr("value"))||void 0===l?void 0:l.trim(),u="".concat(r,"/chapters/").concat(n),o=_[S];S++,u&&w.push({name:t,path:u,releaseTime:o})})}),0===w.length&&(c("#chapters h3.title").each(function(e,a){var l,t,n=c(a).text().trim().match(/:\s*(.*)$/),u=n?n[1].trim():"",o=null===(l=c(a).find("a").attr("href"))||void 0===l?void 0:l.trim(),i=null===(t=null==o?void 0:o.match(/\/chapters\/(\d+)/))||void 0===t?void 0:t[1],s="".concat(r,"/chapters/").concat(i);if(s){if(""===u)u=c(".work .title.heading").text().trim();w.push({name:u,path:s,releaseTime:T})}}),0===w.length&&c(".work.navigation.actions li a").each(function(e,a){var l=c(a).attr("href");if(l&&l.includes("/downloads/")){var t=l.match(/updated_at=(\d+)/),n=t?t[1]:null,u=c("h2.title.heading").text().trim(),o="".concat(r,"/chapters/").concat(n);if(o){if(""===u)u=c(".work .title.heading").text().trim();w.push({name:u,path:o,releaseTime:T})}}})),b.chapters=w,[2,b]}})})},u.prototype.parseChapter=function(r){return e(this,void 0,void 0,function(){var e,n;return a(this,function(a){switch(a.label){case 0:return[4,(0,t.fetchApi)(new URL(r,this.site).toString())];case 1:return[4,a.sent().text()];case 2:return e=a.sent(),(n=(0,l.load)(e))("h3.title").each(function(e,a){var l=n(a),t=l.find("a");t.removeAttr("href");var r=t.text().trim(),u=l.contents().filter(function(e,a){return 3===a.nodeType}).text().trim();l.html("".concat(r,"
").concat(u))}),n("h3.landmark.heading#work").remove(),[2,n("div#chapters > div").html()||""]}})})},u.prototype.searchNovels=function(r,n){return e(this,void 0,void 0,function(){var e,u,o,i;return a(this,function(a){switch(a.label){case 0:return e=new URLSearchParams({commit:"Search",page:n.toString(),"work_search[language_id]":"en","work_search[query]":r}),u="".concat(this.site,"works/search?").concat(e.toString()),[4,(0,t.fetchApi)(u)];case 1:return[4,a.sent().text()];case 2:return o=a.sent(),i=(0,l.load)(o),[2,this.parseNovels(i)]}})})},u}();exports.default=new u;
\ No newline at end of file
diff --git a/.js/src/plugins/english/bakaTsuki.js b/.js/src/plugins/english/bakaTsuki.js
new file mode 100644
index 0000000..dd41004
--- /dev/null
+++ b/.js/src/plugins/english/bakaTsuki.js
@@ -0,0 +1 @@
+var t=this&&this.__assign||function(){return t=Object.assign||function(t){for(var e,r=1,i=arguments.length;r0&&n[n.length-1])||6!==o[0]&&2!==o[0])){a=0;continue}if(3===o[0]&&(!n||o[1]>n[0]&&o[1]=n.length?[2,[]]:[2,this.withCovers(n.slice(l,l+this.pageSize))]}})})},u.prototype.normalize=function(t){return t.normalize("NFD").replace(/[̀-ͯ]/g,"").toLowerCase().replace(/[^a-z0-9]+/g," ").trim()},u.prototype.score=function(t,e){var r=this.normalize(t),i=this.normalize(e);if(!r||!i)return 0;if(r===i)return 1e3;if(r.startsWith(i))return 900-Math.min(r.length-i.length,99);if(r.includes(i))return 800-Math.min(r.length-i.length,99);var n=i.split(" ").filter(Boolean),a=r.split(" ").filter(Boolean),s=n.filter(function(t){return a.some(function(e){return e.startsWith(t)})}).length;return s===n.length?700-Math.min(r.length,99):s>0?Math.round(s/n.length*500):0},u.prototype.searchNovels=function(t,n){return e(this,void 0,void 0,function(){var e,a,s,o,l,u,c,h,p,v,d,f,m,g,y,b,S,w,k,T,P,C,x,j,q=this;return r(this,function(r){switch(r.label){case 0:return(e=t.trim())?[4,this.getCatalogue().catch(function(){return[]})]:[2,[]];case 1:return a=r.sent(),n>1?[4,this.query({action:"query",list:"search",srsearch:e,srnamespace:"0",srlimit:String(this.pageSize),sroffset:String((n-1)*this.pageSize)})]:[3,4];case 2:return s=r.sent(),o=(null!==(T=null===(k=s.query)||void 0===k?void 0:k.search)&&void 0!==T?T:[]).map(function(t){return t.title}).filter(function(t){return q.isNovelTitle(t)}),l=this.withCovers,[4,this.dropEmptyProjects(o)];case 3:return[2,l.apply(this,[r.sent()])];case 4:for(u=new Map,c=0,h=a;c0&&u.set(y,b);return[4,Promise.all([this.query({action:"query",list:"prefixsearch",pssearch:e,psnamespace:"0",pslimit:"50"}).catch(function(){return{}}),this.query({action:"query",list:"search",srsearch:e,srnamespace:"0",srlimit:"50"}).catch(function(){return{}})])];case 5:for(p=r.sent(),v=p[0],d=p[1],f=i(i([],(null!==(C=null===(P=v.query)||void 0===P?void 0:P.prefixsearch)&&void 0!==C?C:[]).map(function(t){return t.title}),!0),(null!==(j=null===(x=d.query)||void 0===x?void 0:x.search)&&void 0!==j?j:[]).map(function(t){return t.title}),!0),m=0,g=f;m0&&u.set(y,b-50);return S=Array.from(u.entries()).sort(function(t,e){return e[1]-t[1]||t[0].localeCompare(e[0])}).slice(0,this.pageSize).map(function(t){return t[0]}),w=this.withCovers,[4,this.dropEmptyProjects(S)];case 6:return[2,w.apply(this,[r.sent()])]}})})},u.prototype.hasReadableContent=function(t){return e(this,void 0,void 0,function(){var e,i,n,a,s,o;return r(this,function(r){switch(r.label){case 0:e="".concat(t.split(":")[0].trim(),":"),r.label=1;case 1:return r.trys.push([1,3,,4]),[4,this.query({action:"query",list:"allpages",apprefix:e,apnamespace:"0",aplimit:"1"})];case 2:return i=r.sent(),n=(null!==(o=null===(s=null===(a=i.query)||void 0===a?void 0:a.allpages)||void 0===s?void 0:s.length)&&void 0!==o?o:0)>0,this.contentCache.set(t,n),[2,n];case 3:return r.sent(),[2,!0];case 4:return[2]}})})},u.prototype.dropEmptyProjects=function(t){return e(this,void 0,void 0,function(){var e,i,n=this;return r(this,function(r){switch(r.label){case 0:return e=0,[4,Promise.all(t.map(function(t){if(n.catalogueSet.has(t)&&!n.possiblyEmpty.has(t))return!0;var r=n.contentCache.get(t);return void 0!==r?r:e>=12||(e++,n.hasReadableContent(t))}))];case 1:return i=r.sent(),[2,t.filter(function(t,e){return i[e]})]}})})},u.prototype.isNovelTitle=function(t){return!!this.catalogueSet.has(t)||!t.includes(":")&&(!/\([^)]+\)\s*$/.test(t)&&(!this.subPagePattern.test(t)&&!this.nonEnglishPattern.test(t)))},u.prototype.parseNovel=function(t){return e(this,void 0,void 0,function(){var e,i,n,a,s,l,u,c,h,p,v,d,f,m=this;return r(this,function(r){switch(r.label){case 0:return e=this.toTitle(t),i={path:t,name:e,cover:o.defaultCover,chapters:[]},[4,this.query({action:"query",titles:e,prop:"extracts|pageimages|categories",explaintext:"1",exsectionformat:"raw",piprop:"thumbnail",pithumbsize:"400",cllimit:"max",clshow:"!hidden",redirects:"1"})];case 1:return n=r.sent(),!(a=null===(v=null===(p=n.query)||void 0===p?void 0:p.pages)||void 0===v?void 0:v[0])||a.missing?(i.summary="This project is not available on Baka-Tsuki.",[2,i]):(i.name=a.title,(null===(d=a.thumbnail)||void 0===d?void 0:d.source)&&(i.cover=a.thumbnail.source),(s=this.extractSummary(a.extract))&&(i.summary=s),l=(null!==(f=a.categories)&&void 0!==f?f:[]).map(function(t){return t.title}),u=l.map(function(t){var e,r;return null===(r=null===(e=t.match(m.genrePattern))||void 0===e?void 0:e[1])||void 0===r?void 0:r.trim()}).filter(function(t){return Boolean(t)}),u.length&&(i.genres=u.join(",")),i.status=this.resolveStatus(l,a.title),(c=this.resolveAuthor(l))&&(i.author=c),h=i,[4,this.parseChapterList(a.title)]);case 2:return h.chapters=r.sent(),[2,i]}})})},u.prototype.extractSummary=function(t){if(t){for(var e=/^(?:only available to registered users|register here|please read|this project|the project|as of |note:|warning:|attention|status:|translation|editing|recruit)|available in the following languages|this project has been|has been (?:restored|licensed|removed|discontinued|taken down)|do you (?:follow|want)/i,r=t.split(/^\s*=+\s*(.+?)\s*=+\s*$/m),i=1;i40&&!e.test(t)});if(r.length){var i=r.join("\n\n");return i.length>1500?"".concat(i.slice(0,1497),"..."):i}}},u.prototype.resolveStatus=function(t,e){for(var r,i=0,n=t;iThis chapter appears to be empty."]):[2,"This chapter is not available on Baka-Tsuki.
"]}})})},u}();exports.default=new u;
\ No newline at end of file
diff --git a/.js/src/plugins/english/chikari.js b/.js/src/plugins/english/chikari.js
new file mode 100644
index 0000000..1ed92a6
--- /dev/null
+++ b/.js/src/plugins/english/chikari.js
@@ -0,0 +1 @@
+var e=this&&this.__awaiter||function(e,t,a,n){return new(a||(a=Promise))(function(r,o){function l(e){try{c(n.next(e))}catch(e){o(e)}}function i(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?r(e.value):(t=e.value,t instanceof a?t:new a(function(e){e(t)})).then(l,i)}c((n=n.apply(e,t||[])).next())})},t=this&&this.__generator||function(e,t){var a,n,r,o={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]},l=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return l.next=i(0),l.throw=i(1),l.return=i(2),"function"==typeof Symbol&&(l[Symbol.iterator]=function(){return this}),l;function i(i){return function(c){return function(i){if(a)throw new TypeError("Generator is already executing.");for(;l&&(l=0,i[0]&&(o=0)),o;)try{if(a=1,n&&(r=2&i[0]?n.return:i[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,i[1])).done)return r;switch(n=0,r&&(i=[2&i[0],r.value]),i[0]){case 0:case 1:r=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,n=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(r=o.trys,(r=r.length>0&&r[r.length-1])||6!==i[0]&&2!==i[0])){o=0;continue}if(3===i[0]&&(!r||i[1]>r[0]&&i[1]0?l.authors.map(function(e){return e.name}).join(", "):"Unknown",c=l.genres&&l.genres.length>0?l.genres.map(function(e){return e.name}).join(", "):"",u={path:n,name:l.title||"Untitled",cover:l.cover_url||r.defaultCover,author:i,summary:l.description||"",genres:c,status:"releasing"===l.status?o.NovelStatus.Ongoing:o.NovelStatus.Completed},s=[],h=0,p=500,v=!0,t.label=3;case 3:return v?(f="".concat(this.site,"/api/novels/").concat(n,"/chapters?order=asc&limit=").concat(p,"&offset=").concat(h),[4,(0,a.fetchApi)(f)]):[3,6];case 4:return[4,t.sent().json()];case 5:return b=t.sent(),(d=b.items)&&0!==d.length?(d.forEach(function(e){s.push({name:e.title||"Chapter ".concat(e.number),path:"api/novels/".concat(n,"/chapters/").concat(e.number,"/read"),releaseTime:e.created_at||"",chapterNumber:e.number})}),d.length===p?h+=p:v=!1,[3,3]):(v=!1,[3,6]);case 6:return u.chapters=s,[2,u]}})})},l.prototype.parseChapter=function(n){return e(this,void 0,void 0,function(){var e,r,o;return t(this,function(t){switch(t.label){case 0:return e="".concat(this.site,"/").concat(n),[4,(0,a.fetchApi)(e)];case 1:return[4,t.sent().json()];case 2:return r=t.sent(),o=r.body||"",[2,o.split("\n").map(function(e){return"".concat(e.trim(),"
")}).filter(function(e){return""!==e}).join("")]}})})},l}();exports.default=new l;
\ No newline at end of file
diff --git a/.js/src/plugins/english/chrysanthemumgarden.js b/.js/src/plugins/english/chrysanthemumgarden.js
new file mode 100644
index 0000000..4e94d78
--- /dev/null
+++ b/.js/src/plugins/english/chrysanthemumgarden.js
@@ -0,0 +1 @@
+var e=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{c(n.next(e))}catch(e){o(e)}}function s(e){try{c(n.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(a,s)}c((n=n.apply(e,t||[])).next())})},t=this&&this.__generator||function(e,t){var r,n,i,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(c){return function(s){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(o=0)),o;)try{if(r=1,n&&(i=2&s[0]?n.return:s[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,s[1])).done)return i;switch(n=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,n=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1] a").text().includes("Manhua")){var r=a(t).find("h2.novel-title > a").attr("href");if(r)return{name:a(t).find("h2.novel-title > a").text(),path:r.replace(s.site,"").replace(/^\//,"").replace(/\/$/,""),cover:a(t).find("div.novel-cover > img").attr("data-breeze")||o.defaultCover}}}).toArray().filter(Boolean)]}})})},a.prototype.parseNovel=function(o){return e(this,void 0,void 0,function(){var e,a,s,c,u,l,h=this;return t(this,function(t){switch(t.label){case 0:return[4,(0,n.fetchApi)(this.site+"/"+o+"/")];case 1:return[4,t.sent().text()];case 2:return e=t.sent(),(a=(0,i.load)(e))("h1.novel-title > span.novel-raw-title").remove(),s={path:o,name:a("h1.novel-title").text(),cover:a("div.novel-cover > img").attr("data-breeze"),summary:a("div.entry-content > p").map(function(e,t){return a(t).text()}).toArray().join("\n\n")},c=a("div.novel-info").html(),s.author=c?null===(l=null===(u=c.match(/Author:\s*([^<]*)
/))||void 0===u?void 0:u[1])||void 0===l?void 0:l.trim():void 0,s.genres=r(r([],a("div.series-genres > a").map(function(e,t){return a(t).text()}).toArray(),!0),a("a.series-tag").map(function(e,t){return a(t).text().split("(")[0].trim()}).toArray(),!0).join(", "),s.chapters=a("div.chapter-item > a").map(function(e,t){var r=a(t).attr("href");if(r)return{name:a(t).text().trim(),path:r.replace(h.site,"").replace(/^\//,"").replace(/\/$/,"")}}).toArray(),[2,s]}})})},a.prototype.parseChapter=function(r){return e(this,void 0,void 0,function(){var e;return t(this,function(t){switch(t.label){case 0:return[4,(0,n.fetchApi)(this.site+"/"+r+"/")];case 1:return[4,t.sent().text()];case 2:return e=t.sent(),[2,(0,i.load)(e)("div#novel-content").html()||""]}})})},a.prototype.searchNovels=function(r,i){return e(this,void 0,void 0,function(){var e,a,s=this;return t(this,function(t){switch(t.label){case 0:return 1!==i?[2,[]]:[4,(0,n.fetchApi)(this.site+"/wp-json/cg/novels")];case 1:return[4,t.sent().json()];case 2:return e=t.sent(),(a=e.map(function(e){return{name:e.name,path:e.link.replace(s.site,"").replace(/\/$/,"").replace(/^\//,""),cover:o.defaultCover}}))?[2,a.filter(function(e){return e.name.toLowerCase().includes(r.toLowerCase())})]:[2,[]]}})})},a.prototype.getAllNovels=function(){return e(this,void 0,void 0,function(){return t(this,function(e){return[2]})})},a}();exports.default=new a;
\ No newline at end of file
diff --git a/.js/src/plugins/english/crimsonscrolls.js b/.js/src/plugins/english/crimsonscrolls.js
new file mode 100644
index 0000000..21916af
--- /dev/null
+++ b/.js/src/plugins/english/crimsonscrolls.js
@@ -0,0 +1 @@
+var t=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,o){function a(t){try{c(r.next(t))}catch(t){o(t)}}function s(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}c((r=r.apply(t,e||[])).next())})},e=this&&this.__generator||function(t,e){var n,r,i,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(c){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(o=0)),o;)try{if(n=1,r&&(i=2&s[0]?r.return:s[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,s[1])).done)return i;switch(r=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,r=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1]0}).join(" "),cover:s,path:c?new URL(c,e.site).pathname.substring(1):a.defaultCover};n.push(l)}}),n},c.prototype.popularNovels=function(r){return t(this,void 0,void 0,function(){var t;return e(this,function(e){switch(e.label){case 0:return[4,this.queryAPI({action:n.novels,params:{page:r.toString()}})];case 1:return t=e.sent(),[2,this.parseNovels(t)]}})})},c.prototype.parseNovel=function(n){return t(this,void 0,void 0,function(){var t,o,c,l,u,h,p,f,d,v,m,b,g,y=this;return e(this,function(e){switch(e.label){case 0:return[4,(0,i.fetchApi)("".concat(this.site,"/").concat(n)).then(function(t){return t.text()})];case 1:return t=e.sent(),o=(0,r.load)(t),c=o("#single-novel-content-wrapper"),(l={path:n,name:null!==(v=c.find("h1").text().trim())&&void 0!==v?v:"Untitled",cover:null!==(b=null===(m=c.find("img:first").data("src"))||void 0===m?void 0:m.toString())&&void 0!==b?b:a.defaultCover,summary:c.find("#synopsis-full").text().trim(),author:c.find("strong:first").next().text().trim(),chapters:[]}).genres=c.find(".cs-genre-chip").map(function(t,e){return o(e).text().trim()}).toArray().join(","),u=c.find(".cs-nsb-badge").text().trim(),h={ongoing:s.NovelStatus.Ongoing,hiatus:s.NovelStatus.OnHiatus,dropped:s.NovelStatus.Cancelled,cancelled:s.NovelStatus.Cancelled,completed:s.NovelStatus.Completed},l.status=null!==(g=h[u.toLowerCase()])&&void 0!==g?g:s.NovelStatus.Unknown,p=o("#chapter-list").data("novel"),[4,this.fetchChapters(Number(p))];case 2:return f=e.sent(),d=[],f.forEach(function(t,e){t.locked&&y.hideLocked||d.push({name:t.locked?"🔒 ".concat(t.title):t.title,path:t.url?new URL(t.url,y.site).pathname.split("/")[2]:"",chapterNumber:e+1})}),l.chapters=d,[2,l]}})})},c.prototype.parseChapter=function(n){return t(this,void 0,void 0,function(){var t,o,a,s;return e(this,function(e){switch(e.label){case 0:return[4,(0,i.fetchApi)("".concat(this.site,"/chapter/").concat(n)).then(function(t){return t.text()})];case 1:for(t=e.sent(),o=(0,r.load)(t),a=0,s=["hr.cs-attrib-divider","div.cs-attrib","p.cs-chapter-attrib"];a0&&i[i.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1] a.chapter-box").each(function(r,n){var i=e(n).attr("href"),o=e(n).text().replace(/\s+/g," ").trim();i&&o&&t.push({name:o,path:i.replace(/^\//,"")})}),t},o.prototype.nextChapterPage=function(e){var t=e("a.btn-page").filter(function(t,r){return e(r).text().includes("Next")}).attr("href");return null!=t?t:null},o.prototype.popularNovels=function(n){return e(this,void 0,void 0,function(){var e,i,o,a;return t(this,function(t){switch(t.label){case 0:return[4,this.fetchSite("".concat(this.site,"?page=").concat(n),{headers:this.headers}).then(function(e){return e.text()})];case 1:return e=t.sent(),i=(0,r.load)(e)("span.btn-pagi.active").text(),o=parseInt(null!==(a=i.split("/")[1])&&void 0!==a?a:"",10),Number.isFinite(o)&&n>o?[2,[]]:[2,this.parseNovelCards(e)]}})})},o.prototype.parseNovel=function(n){return e(this,void 0,void 0,function(){var e,o,a,s,c,h,u,l,p;return t(this,function(t){switch(t.label){case 0:return[4,this.fetchSite(this.site+n,{headers:this.headers}).then(function(e){return e.text()})];case 1:e=t.sent(),o=(0,r.load)(e),a={path:n,name:o("h1").first().text().trim()||"Untitled",cover:i.defaultCover,chapters:[]},s=this.collectChapters(o),c=this.nextChapterPage(o),h=1,u=100,t.label=2;case 2:return c&&h1?[2,[]]:[4,this.fetchSite("".concat(this.site,"?q=").concat(encodeURIComponent(r)),{headers:this.headers}).then(function(e){return e.text()})];case 1:return e=t.sent(),[2,this.parseNovelCards(e)]}})})},o}();exports.default=new o;
\ No newline at end of file
diff --git a/.js/src/plugins/english/divinedaolibrary.js b/.js/src/plugins/english/divinedaolibrary.js
new file mode 100644
index 0000000..b813c88
--- /dev/null
+++ b/.js/src/plugins/english/divinedaolibrary.js
@@ -0,0 +1 @@
+var t=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,o){function a(t){try{c(r.next(t))}catch(t){o(t)}}function s(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}c((r=r.apply(t,e||[])).next())})},e=this&&this.__generator||function(t,e){var n,r,i,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(c){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(o=0)),o;)try{if(n=1,r&&(i=2&s[0]?r.return:s[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,s[1])).done)return i;switch(r=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,r=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1] span > a").map(function(t,e){var n=b.getPath(e.attribs.href);if(n)return{name:c(e).text(),path:n}}).toArray(),[4,this.findLatestChapter(t)]):[3,3]);case 2:f=e.sent(),h=f?p.slice(0,1+p.findIndex(function(t){return t.path===f})):p,e.label=3;case 3:return[2,{name:s[0].title.rendered,path:t,cover:null!==(d=null!==(v=l.attr("data-lazy-src"))&&void 0!==v?v:l.attr("src"))&&void 0!==d?d:n.defaultCover,author:c("h3").first().text().replace(/^Author:\s*/g,""),summary:u("p").first().text().replace(/^.+Description\s*/g,""),chapters:h}]}})})},a.prototype.grabCachedNovel=function(n){return t(this,void 0,void 0,function(){var t,r,i;return e(this,function(e){switch(e.label){case 0:return(t=this.novelItemCache.get(n))?[2,t]:[4,this.grabNovel(n,!1)];case 1:return void 0===(r=e.sent())?[2,void 0]:(i={name:r.name,path:r.path,cover:r.cover},this.novelItemCache.set(n,i),[2,i])}})})},a.prototype.grabCachedNovels=function(){return t(this,void 0,void 0,function(){var t,n,i,a=this;return e(this,function(e){switch(e.label){case 0:return this.allNovelsCache?[2,this.allNovelsCache]:[4,(0,r.fetchApi)(this.site+"novels").then(function(t){return t.text()})];case 1:return t=e.sent(),n=(0,o.load)(t),i=n(".entry-content ul").map(function(t,e){var r=n(e),i=r.prev().text();return r.find("a").map(function(t,e){var r=a.getPath(e.attribs.href);if(r){var o=n(e).text();return[[i,o,r]]}}).toArray()}).toArray(),this.allNovelsCache=i,[2,i]}})})},a.prototype.latestNovels=function(){return t(this,void 0,void 0,function(){var t,n,i,a,s=this;return e(this,function(e){switch(e.label){case 0:return[4,(0,r.fetchApi)(this.site).then(function(t){return t.text()})];case 1:return t=e.sent(),n=(0,o.load)(t),i=n("#main").find('a[rel="category tag"]').map(function(t,e){return s.getPath(e.attribs.href)}).toArray(),a=new Set(i),[2,Array.from(a)]}})})},a.prototype.allNovels=function(n){return t(this,void 0,void 0,function(){var t;return e(this,function(e){switch(e.label){case 0:return[4,this.grabCachedNovels()];case 1:return(t=e.sent())?[2,t.filter(function(t){var e=t[0];return n.value.includes(e)}).map(function(t){return t[2]})]:[2,[]]}})})},a.prototype.popularNovels=function(n,r){return t(this,void 0,void 0,function(){var t,i;return e(this,function(e){switch(e.label){case 0:return 1!==n?[2,[]]:(t=r.showLatestNovels?this.latestNovels():this.allNovels(r.filters.category),i=this.asyncMap,[4,t]);case 1:return[4,i.apply(this,[e.sent(),this.grabCachedNovel.bind(this)])];case 2:return[2,e.sent()]}})})},a.prototype.parseNovel=function(n){return t(this,void 0,void 0,function(){var t;return e(this,function(e){switch(e.label){case 0:return[4,this.grabNovel(n,!0)];case 1:if(void 0===(t=e.sent()))throw new Error('The path "'.concat(n,'" could not be resolved.'));return[2,t]}})})},a.prototype.parseChapter=function(n){return t(this,void 0,void 0,function(){var t,i,o,a;return e(this,function(e){switch(e.label){case 0:return t="".concat(this.site,"wp-json/wp/v2/posts?slug=").concat(n),[4,(0,r.fetchApi)(t).then(function(t){return t.json()})];case 1:return 1!==(i=e.sent()).length?[2,""]:(o="".concat(i[0].title.rendered,"
"),a=i[0].content.rendered,[2,"".concat(o).concat(a)])}})})},a.prototype.searchNovels=function(n,r){return t(this,void 0,void 0,function(){var t,i;return e(this,function(e){switch(e.label){case 0:return 1!==r?[2,[]]:[4,this.grabCachedNovels()];case 1:return(t=e.sent())?(i=t.filter(function(t){return t[1].toLocaleLowerCase().includes(n.toLocaleLowerCase())}).map(function(t){return t[2]}),[4,this.asyncMap(i,this.grabCachedNovel.bind(this))]):[2,[]];case 2:return[2,e.sent()]}})})},a}();exports.default=new a;
\ No newline at end of file
diff --git a/.js/src/plugins/english/dreambigtl.js b/.js/src/plugins/english/dreambigtl.js
new file mode 100644
index 0000000..12a4e6d
--- /dev/null
+++ b/.js/src/plugins/english/dreambigtl.js
@@ -0,0 +1 @@
+var t=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,o){function a(t){try{c(r.next(t))}catch(t){o(t)}}function s(t){try{c(r.throw(t))}catch(t){o(t)}}function c(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,s)}c((r=r.apply(t,e||[])).next())})},e=this&&this.__generator||function(t,e){var n,r,i,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=s(0),a.throw=s(1),a.return=s(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function s(s){return function(c){return function(s){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,s[0]&&(o=0)),o;)try{if(n=1,r&&(i=2&s[0]?r.return:s[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,s[1])).done)return i;switch(r=0,i&&(s=[2&s[0],i.value]),s[0]){case 0:case 1:i=s;break;case 4:return o.label++,{value:s[1],done:!1};case 5:o.label++,r=s[1],s=[0];continue;case 7:s=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==s[0]&&2!==s[0])){o=0;continue}if(3===s[0]&&(!i||s[1]>i[0]&&s[1] li.has-sub").each(function(t,e){var n=s(e).children("a").first().text().trim();u.includes(n)&&s(e).find("ul.sub-menu.m-sub").find("li > a").each(function(t,e){var n=s(e).text().trim(),r=s(e).attr("href");r&&c.push({name:n,path:r.replace(l.site,""),cover:""})})}),c.forEach(function(t){return console.log("Novel:",t.name,t.path)}),0===c.length&&s("a").each(function(t,e){var n=s(e).attr("href");if(n&&n.includes("/p/")&&!n.includes("disclaimer")){var r=s(e).text().trim();c.push({name:r,path:n.replace(l.site,""),cover:""})}}),h&&c.sort(function(t,e){return e.path.localeCompare(t.path)}),[2,c]}})})},i.prototype.parseNovel=function(i){return t(this,void 0,void 0,function(){var t,o,a,s,c,u;return e(this,function(e){switch(e.label){case 0:return t=this.site+i,[4,(0,r.fetchApi)(t)];case 1:return[4,e.sent().text()];case 2:return o=e.sent(),a=(0,n.load)(o),s={path:i,name:a("h1.entry-title").text().trim(),cover:a(".post-body img").first().attr("src")||"",summary:a(".post-body p").first().text().trim(),author:(null===(u=null===(c=a(".post-body").text().match(/Author:\s*(.+)/i))||void 0===c?void 0:c[1])||void 0===u?void 0:u.trim())||"Unknown",status:this.getNovelStatus(i)},[4,this.parseChapters(a)];case 3:return s.chapters=e.sent(),[2,s]}})})},i.prototype.parseChapters=function(n){return t(this,void 0,void 0,function(){var t,r=this;return e(this,function(e){return t=[],n(".chapter-panel").each(function(e,i){"Free Tier"===n(i).find("summary").text().trim()&&n(i).find("ul li a").each(function(e,i){var o=n(i).text().trim(),a=n(i).attr("href");a&&t.push({name:o,path:a.replace(r.site,"")})})}),0===t.length&&n('h2:contains("List of Chapters"), span:contains("List of Chapters")').each(function(e,i){n(i).next("ul").find("li a").each(function(e,i){var o=n(i).text().trim(),a=n(i).attr("href");a&&t.push({name:o,path:a.replace(r.site,"")})})}),[2,t.reverse()]})})},i.prototype.getNovelStatus=function(t){return t.includes("completed")?"Completed":"Ongoing"},i.prototype.parseChapter=function(i){return t(this,void 0,void 0,function(){var t,o,a,s,c;return e(this,function(e){switch(e.label){case 0:return t=this.site+i,[4,(0,r.fetchApi)(t)];case 1:return[4,e.sent().text()];case 2:return o=e.sent(),a=(0,n.load)(o),s=a("h1.entry-title").text().trim(),c=a(".post-body").html()||"",[2,"".concat(s,"
").concat(c)]}})})},i.prototype.searchNovels=function(i){return t(this,void 0,void 0,function(){var t,o,a,s,c=this;return e(this,function(e){switch(e.label){case 0:return t="".concat(this.site,"search?q=").concat(encodeURIComponent(i)),[4,(0,r.fetchApi)(t)];case 1:return[4,e.sent().text()];case 2:return o=e.sent(),a=(0,n.load)(o),s=[],a(".blog-posts.index-post-wrap .blog-post.hentry.index-post").each(function(t,e){var n=a(e).find(".entry-title a").text().trim(),r=a(e).find(".entry-title a").attr("href"),i=a(e).find(".entry-image").attr("data-image")||"";r&&s.push({name:n,path:r.replace(c.site,""),cover:i})}),[2,s]}})})},i}();exports.default=new i;
\ No newline at end of file
diff --git a/.js/src/plugins/english/dreamyTranslations.js b/.js/src/plugins/english/dreamyTranslations.js
new file mode 100644
index 0000000..d01bab6
--- /dev/null
+++ b/.js/src/plugins/english/dreamyTranslations.js
@@ -0,0 +1 @@
+var e=this&&this.__awaiter||function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function a(e){try{s(n.next(e))}catch(e){o(e)}}function c(e){try{s(n.throw(e))}catch(e){o(e)}}function s(e){var t;e.done?i(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(a,c)}s((n=n.apply(e,t||[])).next())})},t=this&&this.__generator||function(e,t){var r,n,i,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=c(0),a.throw=c(1),a.return=c(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(c){return function(s){return function(c){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(o=0)),o;)try{if(r=1,n&&(i=2&c[0]?n.return:c[0]?n.throw||((i=n.return)&&i.call(n),0):n.next)&&!(i=i.call(n,c[1])).done)return i;switch(n=0,i&&(c=[2&c[0],i.value]),c[0]){case 0:case 1:i=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,n=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==c[0]&&2!==c[0])){o=0;continue}if(3===c[0]&&(!i||c[1]>i[0]&&c[1]3?o[3]:o},a.prototype.extractDeferredText=function(e,t){var r=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),n=new RegExp("(?:^|\\n)".concat(r,":T([0-9a-fA-F]+),")).exec(e);if(!n)throw new Error("Could not locate chapter content in server response");var i=n.index+n[0].length,o=parseInt(n[1],16),a=e.slice(i),c=(new TextEncoder).encode(a);return(new TextDecoder).decode(c.slice(0,o))},a.prototype.findDeferredText=function(e,t){var r=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),n=new RegExp("(?:^|\\n)".concat(r,":T([0-9a-fA-F]+),")).exec(e);if(n){var i=n.index+n[0].length,o=parseInt(n[1],16),a=(new TextEncoder).encode(e.slice(i));return(new TextDecoder).decode(a.slice(0,o))}},a.prototype.extractChapterObject=function(e){var t=e.split("\n"),r=t.find(function(e){return e.includes('"chapter"')&&e.includes('"hasAccess"')});if(r){var n=r.indexOf(":");if(-1!==n){var i=r.slice(n+1);try{var o=JSON.parse(i);if(Array.isArray(o)&&o.length>3&&o[3])return o[3];if(o&&"object"==typeof o&&!Array.isArray(o))return o}catch(e){}}}var a='"chapter":{',c=e.indexOf(a);if(-1===c)throw new Error("Could not locate chapter data in server response");for(var s=-1,l=c;l>=0;l--)if("{"===e[l]){var u=e.slice(l,c+11);if(u.startsWith("{")&&u.includes('"chapter"')){s=l;break}}if(-1===s)throw new Error("Could not locate chapter object in server response");var h=0,p=!1,f=!1;for(l=s;l]*\/?>$/i.test(e)?e:"".concat(e.replace(/\n/g,"
"),"
")}).join("")]}})})},a.prototype.searchNovels=function(r,n){return e(this,void 0,void 0,function(){var e,i;return t(this,function(t){switch(t.label){case 0:return 1!==n?[2,[]]:[4,this.fetchAllNovels()];case 1:return e=t.sent(),i=r.toLowerCase(),[2,e.filter(function(e){return e.name.toLowerCase().includes(i)})]}})})},a}();exports.default=new a;
\ No newline at end of file
diff --git a/.js/src/plugins/english/faqwikius.js b/.js/src/plugins/english/faqwikius.js
new file mode 100644
index 0000000..894456e
--- /dev/null
+++ b/.js/src/plugins/english/faqwikius.js
@@ -0,0 +1 @@
+var t=this&&this.__awaiter||function(t,e,n,r){return new(n||(n=Promise))(function(i,o){function a(t){try{s(r.next(t))}catch(t){o(t)}}function c(t){try{s(r.throw(t))}catch(t){o(t)}}function s(t){var e;t.done?i(t.value):(e=t.value,e instanceof n?e:new n(function(t){t(e)})).then(a,c)}s((r=r.apply(t,e||[])).next())})},e=this&&this.__generator||function(t,e){var n,r,i,o={label:0,sent:function(){if(1&i[0])throw i[1];return i[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=c(0),a.throw=c(1),a.return=c(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function c(c){return function(s){return function(c){if(n)throw new TypeError("Generator is already executing.");for(;a&&(a=0,c[0]&&(o=0)),o;)try{if(n=1,r&&(i=2&c[0]?r.return:c[0]?r.throw||((i=r.return)&&i.call(r),0):r.next)&&!(i=i.call(r,c[1])).done)return i;switch(r=0,i&&(c=[2&c[0],i.value]),c[0]){case 0:case 1:i=c;break;case 4:return o.label++,{value:c[1],done:!1};case 5:o.label++,r=c[1],c=[0];continue;case 7:c=o.ops.pop(),o.trys.pop();continue;default:if(!(i=o.trys,(i=i.length>0&&i[i.length-1])||6!==c[0]&&2!==c[0])){o=0;continue}if(3===c[0]&&(!i||c[1]>i[0]&&c[1]0&&a[a.length-1])||6!==l[0]&&2!==l[0])){i=0;continue}if(3===l[0]&&(!a||l[1]>a[0]&&l[1]3})||u[0],[4,(0,r.fetchApi)("".concat(this.site,"/api/series/filter?page=1&per_page=20&search=").concat(encodeURIComponent(s))).then(function(e){return e.json()})]);case 3:return(p=t.sent()).data&&p.data.length>0?(e=p.data[0].slug,[4,(0,r.fetchApi)("".concat(this.site,"/api/new/v2/series/").concat(e,"/chapters"),{})]):[3,5];case 4:i=t.sent(),t.label=5;case 5:if(!i.ok)throw new Error("Novel not found. It may have been removed or its URL changed significantly.");t.label=6;case 6:return[4,(0,r.fetchApi)("".concat(this.site,"/api/new/v2/series/").concat(e)).then(function(e){return e.json()})];case 7:return v=t.sent(),h=(0,n.load)(v.description||""),d={path:e,name:v.title||"",summary:h("p").length>0?h("p").map(function(e,t){return(0,n.load)(t).text()}).get().join("\n\n"):h.text()||"",author:(null===(b=v.user)||void 0===b?void 0:b.name)||(null===(m=v.user)||void 0===m?void 0:m.username)||"",cover:v.cover?this.site+"/"+v.cover:o.defaultCover,genres:(v.genres||[]).map(function(e){return e.name}).join(","),status:v.status||"Unknown"},[4,i.json()];case 8:return f=t.sent(),this.hideLocked&&(f=f.filter(function(e){var t;return!(null===(t=e.locked)||void 0===t?void 0:t.price)})),d.chapters=f.map(function(e){var t,r,n,i,o,l;return{name:((null===(t=e.locked)||void 0===t?void 0:t.price)?"🔒 ":"")+(null==(null===(r=e.group)||void 0===r?void 0:r.index)?"":"Vol "+(null===(n=e.group)||void 0===n?void 0:n.index)+" ")+"Chapter "+e.number+(e.title&&e.title.trim()!="Chapter "+e.number?" - "+e.title.replace(/^chapter [0-9]+ . /i,""):""),path:a+(null==(null===(i=e.group)||void 0===i?void 0:i.index)?"":"/"+(null===(o=e.group)||void 0===o?void 0:o.slug))+"/"+(e.slug||"chapter-"+e.number)+"~~"+e.id,releaseTime:e.created_at,chapterNumber:e.number+1e4*((null===(l=e.group)||void 0===l?void 0:l.index)||0)}}).sort(function(e,t){return e.chapterNumber-t.chapterNumber}),[2,d]}})})},l.prototype.parseChapter=function(a){return e(this,void 0,void 0,function(){var e,i,o,l,c,u,s,p,v,h,d,f,b,m,y,g;return t(this,function(t){switch(t.label){case 0:return(e=a.split("~~")[1])?(i="".concat(this.site,"/api/new/v2/chapters/").concat(e),[4,(0,r.fetchApi)(i)]):[3,3];case 1:return[4,t.sent().json()];case 2:if(d=t.sent(),o=d.content)try{if("doc"===(l=JSON.parse(o)).type)return[2,l.content.map(function(e){var t,r,n;if("paragraph"===e.type){var a=(null===(t=e.content)||void 0===t?void 0:t.map(function(e){var t;if("text"===e.type){var r=e.text;if(e.marks)for(var n=0,a=e.marks;n".concat(r,"