1 line
13 KiB
JavaScript
1 line
13 KiB
JavaScript
var e=this&&this.__awaiter||function(e,t,a,n){return new(a||(a=Promise))(function(r,l){function i(e){try{s(n.next(e))}catch(e){l(e)}}function o(e){try{s(n.throw(e))}catch(e){l(e)}}function s(e){var t;e.done?r(e.value):(t=e.value,t instanceof a?t:new a(function(e){e(t)})).then(i,o)}s((n=n.apply(e,t||[])).next())})},t=this&&this.__generator||function(e,t){var a,n,r,l={label:0,sent:function(){if(1&r[0])throw r[1];return r[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return i.next=o(0),i.throw=o(1),i.return=o(2),"function"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function o(o){return function(s){return function(o){if(a)throw new TypeError("Generator is already executing.");for(;i&&(i=0,o[0]&&(l=0)),l;)try{if(a=1,n&&(r=2&o[0]?n.return:o[0]?n.throw||((r=n.return)&&r.call(n),0):n.next)&&!(r=r.call(n,o[1])).done)return r;switch(n=0,r&&(o=[2&o[0],r.value]),o[0]){case 0:case 1:r=o;break;case 4:return l.label++,{value:o[1],done:!1};case 5:l.label++,n=o[1],o=[0];continue;case 7:o=l.ops.pop(),l.trys.pop();continue;default:if(!(r=l.trys,(r=r.length>0&&r[r.length-1])||6!==o[0]&&2!==o[0])){l=0;continue}if(3===o[0]&&(!r||o[1]>r[0]&&o[1]<r[3])){l.label=o[1];break}if(6===o[0]&&l.label<r[1]){l.label=r[1],r=o;break}if(r&&l.label<r[2]){l.label=r[2],l.ops.push(o);break}r[2]&&l.ops.pop(),l.trys.pop();continue}o=t.call(e,l)}catch(e){o=[6,e],n=0}finally{a=r=0}if(5&o[0])throw o[1];return{value:o[0]?o[1]:void 0,done:!0}}([o,s])}}},a=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.MadaraPlugin=void 0;var n=require("@libs/fetch"),r=require("cheerio"),l=require("@libs/defaultCover"),i=require("@libs/novelStatus"),o=a(require("dayjs")),s=require("@libs/storage"),u=function(e,t){return new RegExp(t.join("|")).test(e)},c=function(){function a(e){var t,a;this.hideLocked=s.storage.get("hideLocked"),this.parseData=function(e){var t,a=(0,o.default)(),n=(null===(t=e.match(/\d+/))||void 0===t?void 0:t[0])||"",r=parseInt(n,10);if(!n)return e;if(u(e,["detik","segundo","second","วินาที"]))a=a.subtract(r,"second");else if(u(e,["menit","dakika","min","minute","minuto","นาที","دقائق"]))a=a.subtract(r,"minute");else if(u(e,["jam","saat","heure","hora","hour","ชั่วโมง","giờ","ore","ساعة","小时"]))a=a.subtract(r,"hours");else if(u(e,["hari","gün","jour","día","dia","day","วัน","ngày","giorni","أيام","天"]))a=a.subtract(r,"days");else if(u(e,["week","semana"]))a=a.subtract(r,"week");else if(u(e,["month","mes"]))a=a.subtract(r,"month");else{if(!u(e,["year","año"]))return"Invalid Date"!==(0,o.default)(e).format("LL")?(0,o.default)(e).format("LL"):e;a=a.subtract(r,"year")}return a.format("LL")},this.id=e.id,this.name=e.sourceName,this.icon="multisrc/madara/".concat(e.id.toLowerCase(),"/icon.png"),this.site=e.sourceSite;var n=(null===(t=e.options)||void 0===t?void 0:t.versionIncrements)||0;this.version="2.2.".concat(n),this.options=e.options,this.filters=e.filters,(null===(a=this.options)||void 0===a?void 0:a.hasLocked)&&(this.pluginSettings={hideLocked:{value:"",label:"Hide locked chapters",type:"Switch"}})}return a.prototype.translateDragontea=function(e){var t;if("dragontea"!==this.id)return e;var a=(0,r.load)((null===(t=e.html())||void 0===t?void 0:t.replace("\n","").replace(/<br\s*\/?>/g,"\n"))||"");return e.html(a.html()),e.find("*").addBack().contents().filter(function(e,t){return 3===t.nodeType}).each(function(e,t){var n=a(t),r=n.text().normalize("NFD").split("").map(function(e){var t=e.normalize("NFC"),a="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ".indexOf(t);return a>=0?"zyxwvutsrqponmlkjihgfedcbaZYXWVUTSRQPONMLKJIHGFEDCBA"[a]+e.slice(t.length):e}).join("");n.replaceWith(r.replace("\n","<br>"))}),e},a.prototype.getHostname=function(e){var t=(e=e.split("/")[2]).split(".");return t.pop(),t.join(".")},a.prototype.getCheerio=function(a,l){return e(this,void 0,void 0,function(){var e,i,o,s;return t(this,function(t){switch(t.label){case 0:return[4,(0,n.fetchApi)(a)];case 1:if(!(e=t.sent()).ok&&1!=l)throw new Error("Could not reach site ("+e.status+") try to open in webview.");return o=r.load,[4,e.text()];case 2:if(i=o.apply(void 0,[t.sent()]),s=i("title").text().trim(),this.getHostname(a)!=this.getHostname(e.url)||"Bot Verification"==s||"You are being redirected..."==s||"Un instant..."==s||"Just a moment..."==s||"Redirecting..."==s)throw new Error("Captcha error, please open in webview");return[2,i]}})})},a.prototype.parseNovels=function(e){var t=[];return e(".manga-title-badges").remove(),e(".page-item-detail, .c-tabs-item__content").each(function(a,n){var r=e(n).find(".post-title").text().trim(),i=e(n).find(".post-title").find("a").attr("href")||"";if(r&&i){var o=e(n).find("img"),s={name:r,cover:o.attr("data-src")||o.attr("src")||o.attr("data-lazy-srcset")||l.defaultCover,path:i.replace(/https?:\/\/.*?\//,"")};t.push(s)}}),t},a.prototype.popularNovels=function(a,n){return e(this,arguments,void 0,function(e,a){var n,r,l,i,o,s,u=a.filters,c=a.showLatestNovels;return t(this,function(t){switch(t.label){case 0:for(r in n=this.site+"/page/"+e+"/?s=&post_type=wp-manga",u||(u=this.filters||{}),c&&(n+="&m_orderby=latest"),u)if("object"==typeof u[r].value)for(l=0,i=u[r].value;l<i.length;l++)o=i[l],n+="&".concat(r,"=").concat(o);else u[r].value&&(n+="&".concat(r,"=").concat(u[r].value));return[4,this.getCheerio(n,1!=e)];case 1:return s=t.sent(),[2,this.parseNovels(s)]}})})},a.prototype.parseNovel=function(a){return e(this,void 0,void 0,function(){var e,s,u,c,h,p,v,d,m,b,f,g,y,x,w,k,S=this;return t(this,function(t){switch(t.label){case 0:return[4,this.getCheerio(this.site+a,!1)];case 1:return(e=t.sent())(".manga-title-badges, #manga-title span").remove(),(s={path:a,name:e(".post-title h1").text().trim()||e("#manga-title h1").text().trim()||e(".manga-title").text().trim()||""}).cover=e(".summary_image > a > img").attr("data-lazy-src")||e(".summary_image > a > img").attr("data-src")||e(".summary_image > a > img").attr("src")||l.defaultCover,e(".post-content_item, .post-content").each(function(){var t=e(this).find("h5").text().trim(),a=e(this).find(".summary-content")||e(this).find(".summary_content");switch(t){case"Genre(s)":case"Genre":case"Tags(s)":case"Tag(s)":case"Tags":case"Género(s)":case"Kategori":case"التصنيفات":s.genres?s.genres+=", "+a.find("a").map(function(t,a){return e(a).text()}).get().join(", "):s.genres=a.find("a").map(function(t,a){return e(a).text()}).get().join(", ");break;case"Author(s)":case"Author":case"Autor(es)":case"المؤلف":case"المؤلف (ين)":s.author=a.text().trim();break;case"Translator(s)":case"Translator":case"Translators":s.author||(s.author=a.text().trim());break;case"Status":case"Novel":case"Estado":case"Durum":s.status=a.text().trim().includes("OnGoing")||a.text().trim().includes("مستمرة")?i.NovelStatus.Ongoing:i.NovelStatus.Completed;break;case"Artist(s)":s.artist=a.text().trim()}}),s.genres||(s.genres=e(".genres-content").text().trim()),s.status||(s.status=e(".manga-status").text().trim().includes("OnGoing")?i.NovelStatus.Ongoing:i.NovelStatus.Completed),s.author||(s.author=e(".manga-author a").text().trim()),s.rating||(s.rating=parseFloat(e(".post-rating span").text().trim())),s.author||(s.author=e(".manga-authors").text().trim()),e("div.summary__content .code-block,script,noscript").remove(),s.summary=this.translateDragontea(e("div.summary__content")).text().trim()||e("#tab-manga-about").text().trim()||e('.post-content_item h5:contains("Summary")').next().find("span").map(function(t,a){return e(a).text()}).get().join("\n\n").trim()||e('.post-content_item h5:contains("Summary")').next().find("p").map(function(t,a){return e(a).text()}).get().join("\n\n").trim()||e(".manga-summary p").map(function(t,a){return e(a).text()}).get().join("\n\n").trim()||e(".manga-excerpt p").map(function(t,a){return e(a).text()}).get().join("\n\n").trim(),u=[],c="",(null===(k=this.options)||void 0===k?void 0:k.useNewChapterEndpoint)?[4,(0,n.fetchApi)(this.site+a+"ajax/chapters/",{method:"POST",referrer:this.site+a}).then(function(e){return e.text()})]:[3,7];case 2:if(c=t.sent(),h=(0,r.load)(c),!((p=h(".pagination a[data-page]")).length>0))return[3,6];if(v=Math.max.apply(Math,p.map(function(e,t){return parseInt(h(t).attr("data-page")||"1",10)}).get()),d=p.last().attr("href")||"",-1===(m=d.indexOf("?")))return[3,6];b=d.slice(m).replace(/\d+$/,""),f=2,t.label=3;case 3:return f<=v?[4,(0,n.fetchApi)(this.site+a+"ajax/chapters/"+b+f,{method:"POST",referrer:this.site+a}).then(function(e){return e.text()})]:[3,6];case 4:(g=t.sent())&&"0"!==g&&(c+=g),t.label=5;case 5:return f++,[3,3];case 6:return[3,9];case 7:return y=e(".rating-post-id").attr("value")||e("#manga-chapters-holder").attr("data-id")||"",(x=new FormData).append("action","manga_get_chapters"),x.append("manga",y),[4,(0,n.fetchApi)(this.site+"wp-admin/admin-ajax.php",{method:"POST",body:x}).then(function(e){return e.text()})];case 8:c=t.sent(),t.label=9;case 9:return"0"!==c&&(e=(0,r.load)(c)),w=e(".wp-manga-chapter").length,e(".wp-manga-chapter").each(function(t,a){var n=e(a).find("a").text().trim(),r=a.attribs.class.includes("premium-block");r&&(n="🔒 "+n);var l=e(a).find("span.chapter-release-date").text().trim();l=l?S.parseData(l):(0,o.default)().format("LL");var i=e(a).find("a").attr("href")||"";!i||"#"==i||r&&S.hideLocked||u.push({name:n,path:i.replace(/https?:\/\/.*?\//,""),releaseTime:l||null,chapterNumber:w-t})}),s.chapters=u.reverse(),[2,s]}})})},a.prototype.parseChapter=function(a){return e(this,void 0,void 0,function(){var e,n,r;return t(this,function(t){switch(t.label){case 0:return[4,this.getCheerio(this.site+a,!1)];case 1:return e=t.sent(),n=e(".text-left")||e(".text-right")||e(".entry-content")||e(".c-blog-post > div > div:nth-child(2)"),null===(r=this.options)||void 0===r||r.customJs,[2,this.translateDragontea(n).html()||""]}})})},a.prototype.searchNovels=function(a,n){return e(this,void 0,void 0,function(){var e,r;return t(this,function(t){switch(t.label){case 0:return e=this.site+"/page/"+n+"/?s="+encodeURIComponent(a)+"&post_type=wp-manga",[4,this.getCheerio(e,!0)];case 1:return r=t.sent(),[2,this.parseNovels(r)]}})})},a}();exports.MadaraPlugin=c;var h=new c({id:"novelTL",sourceSite:"https://noveltranslate.com/",sourceName:"NovelTranslate",options:{down:!0,downSince:1768289212925},filters:{"genre[]":{type:"Checkbox",label:"Genre",value:[],options:[{label:"Action",value:"action"},{label:"Adult",value:"adult"},{label:"Adventure",value:"adventure"},{label:"Bleach",value:"bleach"},{label:"Chinese",value:"chinese"},{label:"Comedy",value:"comedy"},{label:"Conan",value:"conan"},{label:"cooking",value:"cooking"},{label:"Dragon Ball",value:"dragon-ball"},{label:"Drama",value:"drama"},{label:"Ecchi",value:"ecchi"},{label:"Erciyuan",value:"erciyuan"},{label:"Fairy Tail",value:"fairy-tail"},{label:"Faloo",value:"faloo"},{label:"Fan-Fiction",value:"fan-fiction"},{label:"Fantasy",value:"fantasy"},{label:"FoodWars!",value:"foodwars"},{label:"Game",value:"game"},{label:"Gender Bender",value:"gender-bender"},{label:"Harem",value:"harem"},{label:"Historical",value:"historical"},{label:"Horror",value:"horror"},{label:"Hunter x Hunter",value:"hunter-x-hunter"},{label:"Isekai",value:"isekai"},{label:"Japanese",value:"japanese"},{label:"Jojo",value:"jojo"},{label:"Josei",value:"josei"},{label:"Korean",value:"korean"},{label:"Martial Arts",value:"martial-arts"},{label:"Marvel",value:"marvel"},{label:"Mature",value:"mature"},{label:"Mecha",value:"mecha"},{label:"Military",value:"military"},{label:"Mystery",value:"mystery"},{label:"Naruto",value:"naruto"},{label:"One piece",value:"one-piece"},{label:"Pokemon",value:"pokemon"},{label:"Political",value:"political"},{label:"Psychological",value:"psychological"},{label:"Romance",value:"romance"},{label:"School Life",value:"school-life"},{label:"Sci-fi",value:"sci-fi"},{label:"Seinen",value:"seinen"},{label:"Shoujo",value:"shoujo"},{label:"Shoujo Ai",value:"shoujo-ai"},{label:"Shounen",value:"shounen"},{label:"Shounen Ai",value:"shounen-ai"},{label:"Slice of Life",value:"slice-of-life"},{label:"Smut",value:"smut"},{label:"Sport",value:"sport"},{label:"Sports",value:"sports"},{label:"Supernatural",value:"supernatural"},{label:"System",value:"system"},{label:"Toriko",value:"toriko"},{label:"Tragedy",value:"tragedy"},{label:"Urban",value:"urban"},{label:"Urban Life",value:"urban-life"},{label:"Wuxia",value:"wuxia"},{label:"Xianxia",value:"xianxia"},{label:"Xuanhuan",value:"xuanhuan"},{label:"Yaoi",value:"yaoi"},{label:"Yuri",value:"yuri"}]},op:{type:"Switch",label:"having all selected genres",value:!1},author:{type:"Text",label:"Author",value:""},artist:{type:"Text",label:"Artist",value:""},release:{type:"Text",label:"Year of Released",value:""},adult:{type:"Picker",label:"Adult content",value:"",options:[{label:"All",value:""},{label:"None adult content",value:"0"},{label:"Only adult content",value:"1"}]},"status[]":{type:"Checkbox",label:"Status",value:[],options:[{label:"OnGoing",value:"on-going"},{label:"Completed",value:"end"},{label:"Canceled",value:"canceled"},{label:"On Hold",value:"on-hold"},{label:"Upcoming",value:"upcoming"}]},m_orderby:{type:"Picker",label:"Order by",value:"",options:[{label:"Relevance",value:""},{label:"Latest",value:"latest"},{label:"A-Z",value:"alphabet"},{label:"Rating",value:"rating"},{label:"Trending",value:"trending"},{label:"Most Views",value:"views"},{label:"New",value:"new-manga"}]}}});exports.default=h; |