diff --git a/.travis/build.sh b/.travis/build.sh index b53ff2d28..b3290b0f4 100755 --- a/.travis/build.sh +++ b/.travis/build.sh @@ -1,5 +1,4 @@ #!/bin/bash - set -e ./gradlew --no-daemon clean assembleRelease @@ -18,7 +17,8 @@ for APK in ${APKS[@]}; do APKNAME="${BASENAME%%+(-release*)}.apk" APKDEST="$DEST/$APKNAME" - ${TOOLS}/zipalign -v -p 4 $APK $APKDEST + ${TOOLS}/zipalign -c -v -p 4 $APK + cp $APK $APKDEST if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then ${TOOLS}/apksigner sign --ks $STORE_PATH --ks-key-alias $STORE_ALIAS --ks-pass env:STORE_PASS --key-pass env:KEY_PASS $APKDEST fi diff --git a/.travis/create-repo.sh b/.travis/create-repo.sh index dcd537ba0..f84c735e5 100755 --- a/.travis/create-repo.sh +++ b/.travis/create-repo.sh @@ -1,5 +1,4 @@ #!/bin/bash - set -e TOOLS="$(ls -d ${ANDROID_HOME}/build-tools/* | tail -1)" diff --git a/src/all/foolslide/src/eu/kanade/tachiyomi/extension/all/foolslide/FoolSlideFactory.kt b/src/all/foolslide/src/eu/kanade/tachiyomi/extension/all/foolslide/FoolSlideFactory.kt index 43a1a5541..20345b54e 100644 --- a/src/all/foolslide/src/eu/kanade/tachiyomi/extension/all/foolslide/FoolSlideFactory.kt +++ b/src/all/foolslide/src/eu/kanade/tachiyomi/extension/all/foolslide/FoolSlideFactory.kt @@ -6,7 +6,6 @@ import android.support.v7.preference.EditTextPreference import android.support.v7.preference.PreferenceScreen import android.widget.Toast import com.github.salomonbrys.kotson.get -import com.google.gson.JsonParser import eu.kanade.tachiyomi.annotations.Nsfw import eu.kanade.tachiyomi.extension.BuildConfig import eu.kanade.tachiyomi.network.GET @@ -19,7 +18,6 @@ import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SManga import okhttp3.Request import okhttp3.Response -import org.json.JSONObject import org.jsoup.nodes.Document import org.jsoup.nodes.Element import uy.kohesive.injekt.Injekt diff --git a/src/all/mmrcms/src/eu/kanade/tachiyomi/extension/all/mmrcms/GeneratedSources.kt b/src/all/mmrcms/src/eu/kanade/tachiyomi/extension/all/mmrcms/GeneratedSources.kt index ca54c3887..8a6ca5ee0 100644 --- a/src/all/mmrcms/src/eu/kanade/tachiyomi/extension/all/mmrcms/GeneratedSources.kt +++ b/src/all/mmrcms/src/eu/kanade/tachiyomi/extension/all/mmrcms/GeneratedSources.kt @@ -3,45 +3,86 @@ package eu.kanade.tachiyomi.extension.all.mmrcms // GENERATED FILE, DO NOT MODIFY! // Generated Wed, 19 Aug 2020 00:55:40 -0400 -private const val MMRSOURCE_1 = """{"language":"ar","name":"مانجا اون لاين","base_url":"https://onma.me","supports_latest":false,"isNsfw":false,"item_url":"\u003c!doctype html\u003e\n\u003chtml lang\u003d\"en-US\"\u003e\n \u003chead\u003e \n \u003cmeta charset\u003d\"UTF-8\"\u003e \n \u003cmeta http-equiv\u003d\"Content-Type\" content\u003d\"text/html; charset\u003dUTF-8\"\u003e \n \u003cmeta http-equiv\u003d\"X-UA-Compatible\" content\u003d\"IE\u003dEdge,chrome\u003d1\"\u003e \n \u003cmeta name\u003d\"robots\" content\u003d\"noindex, nofollow\"\u003e \n \u003cmeta name\u003d\"viewport\" content\u003d\"width\u003ddevice-width,initial-scale\u003d1\"\u003e \n \u003cmeta http-equiv\u003d\"refresh\" content\u003d\"12\"\u003e \n \u003ctitle\u003eJust a moment...\u003c/title\u003e \n \u003cstyle type\u003d\"text/css\"\u003e\n html, body {width: 100%; height: 100%; margin: 0; padding: 0;}\n body {background-color: #ffffff; color: #000000; font-family:-apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, \"Helvetica Neue\",Arial, sans-serif; font-size: 16px; line-height: 1.7em;-webkit-font-smoothing: antialiased;}\n h1 { text-align: center; font-weight:700; margin: 16px 0; font-size: 32px; color:#000000; line-height: 1.25;}\n p {font-size: 20px; font-weight: 400; margin: 8px 0;}\n p, .attribution, {text-align: center;}\n #spinner {margin: 0 auto 30px auto; display: block;}\n .attribution {margin-top: 32px;}\n @keyframes fader { 0% {opacity: 0.2;} 50% {opacity: 1.0;} 100% {opacity: 0.2;} }\n @-webkit-keyframes fader { 0% {opacity: 0.2;} 50% {opacity: 1.0;} 100% {opacity: 0.2;} }\n #cf-bubbles \u003e .bubbles { animation: fader 1.6s infinite;}\n #cf-bubbles \u003e .bubbles:nth-child(2) { animation-delay: .2s;}\n #cf-bubbles \u003e .bubbles:nth-child(3) { animation-delay: .4s;}\n .bubbles { background-color: #f58220; width:20px; height: 20px; margin:2px; border-radius:100%; display:inline-block; }\n a { color: #2c7cb0; text-decoration: none; -moz-transition: color 0.15s ease; -o-transition: color 0.15s ease; -webkit-transition: color 0.15s ease; transition: color 0.15s ease; }\n a:hover{color: #f4a15d}\n .attribution{font-size: 16px; line-height: 1.5;}\n .ray_id{display: block; margin-top: 8px;}\n #cf-wrapper #challenge-form { padding-top:25px; padding-bottom:25px; }\n #cf-hcaptcha-container { text-align:center;}\n #cf-hcaptcha-container iframe { display: inline-block;}\n \u003c/style\u003e \n \u003cscript type\u003d\"text/javascript\"\u003e\n //\u003c![CDATA[\n (function(){\n \n window._cf_chl_opt\u003d{\n cvId: \"1\",\n cType: \"non-interactive\",\n cNounce: \"27266\",\n cRay: \"5c5148b2aa9a741d\",\n cHash: \"22934b696b71c0f\",\n cRq: {\n d: \"U/ooq0oekkdh8GFXZJ2ANrvSrTUVHsbYRD2fP0Izbj0qtKEl7svzbsEy+QVJqReUOR7QDeUokISlwC4SfgAlHnD71v6YVksnusY5mjyNFpMTJZdolqn6vAte6g4tsXLKBLUMh9M5+IOLGP7S+shnPA6lVXHunWPS29c6ihLCtSvf5lA9EVyaNne9Oh2TrsoarDNd9k0VY+HD3t5liMUvpr7XRafQd9oUdZmc1jeFUltLyTJse+WQsQQZO8lfBovEa9Ck4PU1hrj6tHTcNvfahTazhgnSAqYp7wkIpi3Qnt1XtLcqQ5BlBmlOTOp0vIa7AkgcO9FJ/ZhiXySKUyUfPz12wWfbk4eitAhaCb61moenJFj80TYvyR/6JtEnfuJU2jctNUOIQXKOit0wpjXjuQ\u003d\u003d\",\n t: \"MTU5NzgxMjk0My43OTIwMDA\u003d\",\n m: \"gmc6usNZgNNE0Ka7n7At58p1NKiHx7+HWAI6XbSGTF8\u003d\",\n i1: \"c7feL0KuhzPTaNVONVALtg\u003d\u003d\",\n i2: \"0o+QHTsC+62ZUfjhzEu1cA\u003d\u003d\",\n }\n }\n window._cf_chl_enter \u003d function(){window._cf_chl_opt.p\u003d1};\n \n var a \u003d function() {try{return !!window.addEventListener} catch(e) {return !1} },\n b \u003d function(b, c) {a() ? document.addEventListener(\"DOMContentLoaded\", b, c) : document.attachEvent(\"onreadystatechange\", b)};\n b(function(){\n var cookiesEnabled\u003d(navigator.cookieEnabled)? true : false;\n var cookieSupportInfix\u003dcookiesEnabled?\u0027/nocookie\u0027:\u0027/cookie\u0027;\n var a \u003d document.getElementById(\u0027cf-content\u0027);a.style.display \u003d \u0027block\u0027;\n var isIE \u003d /(MSIE|Trident\\/|Edge\\/)/i.test(window.navigator.userAgent);\n var trkjs \u003d isIE ? new Image() : document.createElement(\u0027img\u0027);\n trkjs.setAttribute(\"src\", \"/cdn-cgi/images/trace/jschal/js\"+cookieSupportInfix+\"/transparent.gif?ray\u003d5c5148b2aa9a741d\");\n trkjs.id \u003d \"trk_jschal_js\";\n trkjs.setAttribute(\"alt\", \"\");\n document.body.appendChild(trkjs);\n \n document.body.appendChild(trkjs);\n var cpo \u003d document.createElement(\u0027script\u0027);\n cpo.type \u003d \u0027text/javascript\u0027;\n cpo.src \u003d \"/cdn-cgi/challenge-platform/orchestrate/jsch/v1\";\n var done \u003d false;\n cpo.onload \u003d cpo.onreadystatechange \u003d function() {\n if (!done \u0026\u0026 (!this.readyState || this.readyState \u003d\u003d\u003d \"loaded\" || this.readyState \u003d\u003d\u003d \"complete\")) {\n done \u003d true;\n cpo.onload \u003d cpo.onreadystatechange \u003d null;\n window._cf_chl_enter()\n }\n };\n document.getElementsByTagName(\u0027head\u0027)[0].appendChild(cpo);\n \n }, false);\n })();\n //]]\u003e\n\u003c/script\u003e \n \u003c/head\u003e \n \u003cbody\u003e \n \u003ctable width\u003d\"100%\" height\u003d\"100%\" cellpadding\u003d\"20\"\u003e \n \u003ctbody\u003e\n \u003ctr\u003e \n \u003ctd align\u003d\"center\" valign\u003d\"middle\"\u003e \n \u003cdiv class\u003d\"cf-browser-verification cf-im-under-attack\"\u003e \n \u003cnoscript\u003e \n \u003ch1 data-translate\u003d\"turn_on_js\" style\u003d\"color:#bd2426;\"\u003ePlease turn JavaScript on and reload the page.\u003c/h1\u003e \n \u003c/noscript\u003e \n \u003cdiv id\u003d\"cf-content\" style\u003d\"display:none\"\u003e \n \u003cdiv id\u003d\"cf-bubbles\"\u003e \n \u003cdiv class\u003d\"bubbles\"\u003e\u003c/div\u003e \n \u003cdiv class\u003d\"bubbles\"\u003e\u003c/div\u003e \n \u003cdiv class\u003d\"bubbles\"\u003e\u003c/div\u003e \n \u003c/div\u003e \n \u003ch1\u003e\u003cspan data-translate\u003d\"checking_browser\"\u003eChecking your browser before accessing\u003c/span\u003e onma.me.\u003c/h1\u003e \n \u003cdiv id\u003d\"no-cookie-warning\" data-translate\u003d\"turn_on_cookies\" style\u003d\"display:none\"\u003e \n \u003cp data-translate\u003d\"turn_on_cookies\" style\u003d\"color:#bd2426;\"\u003ePlease enable Cookies and reload the page.\u003c/p\u003e \n \u003c/div\u003e \n \u003cp data-translate\u003d\"process_is_automatic\"\u003eThis process is automatic. Your browser will redirect to your requested content shortly.\u003c/p\u003e \n \u003cp data-translate\u003d\"allow_5_secs\"\u003ePlease allow up to 5 seconds…\u003c/p\u003e \n \u003c/div\u003e \n \u003cform class\u003d\"challenge-form\" id\u003d\"challenge-form\" action\u003d\"/?__cf_chl_jschl_tk__\u003d9a33cb5b4e88000caf6b2022e0a2766eec8928aa-1597812943-0-AZiYFPUiw2yy1MlWtwnsXm2ImZdKbLsh6mOicXy_9fTwGAH_yNpBN8pHF08dUTj8P2jxN_PE8DidQGP1LQuHsvhhTmXttMjM8Yem2nIN-bpRxRGiGw-sifmFqk4KXVwKwj-8FZcsd2Sc9QCodXWwd1rpxuMAjK49Cff3jYymd5wJ1W80lDLd-zyckXIziUWYZNdyreSwDYFXj7MnTlnPyIlLVeXJgcH9JWvDT-TiNhLFerDm8aWqlL2jRETxQwIwCz5EJtkYMBdLLJVGCknor7k\" method\u003d\"POST\" enctype\u003d\"application/x-www-form-urlencoded\"\u003e \n \u003cinput type\u003d\"hidden\" name\u003d\"r\" value\u003d\"120fd8478c139c87e289ca5af44af1253b0ffd53-1597812943-0-AdjP8FgktnrEFVeaQYhGAW+vEopepaW92IZmI7TS7z4GpFe2eQPHirZuMVpTzYb6rXflGaPVBndLhIS505VEga+vGt8KludTsYHwPWr3zNPMiD4BjaVEE4HXUxyJzvomdp58qdaOEvMSi0z9u/6i2m8KqMmiB/3cUIbon3av0ogE1ZtzcjglQ+pvrzLN3HGhey+b4oGMxz8Xn61syN5DOmgalSmkQgaKmeGfJq7BDms2dpqXfAggqqUvWpOy0yN+IGdn9q0f1/4QCk8EfRtou48veQhCMh7tqCW+nSaDXgi3laia/xgRbegl44LSr8orYQ988cgJV/IsMuavYnKpAFKJQY/aQQDUsBtq+4w3cFdiw1GS+vhlah2vFazUeukGIwBHLPF6R6n43eWsO3XLmCHi4Yt9emDOXoEPDWZaanidyTUObgkM6xTYHkhNgiIsw5Hj7YmJ6EMF0UdMHerbXjYOxjjshgmtAbDSIgaNiK9Q2SQ+Wyv2RlQjSDFiNZGCDfgYiLTcCYxg39Le6+R12utXCkwJZJA1kOs3OkrXt8JqGpM0wpcCTYvxOk7OjWYItkO7U82/EW44Ehk/WjCDjKwLeigsI/XUAvJkp36Bg8wr2T2yjKuU+DNC6Bi7Xj98G8UEcyKFlmKuyiGW7UaV9OXguRBBDR82Av13w3vVniOoKj54tMOPMwuOEh8JfynUqhN1GZtWNbBiE6uC3IgDYOqXJEWnEKSGM4AcQFus5uXoab8aix9BPJe4wcD/UmIGd2tt2KR+XZILWCBJdm/MWHjNBlsw/DdXkB54I1/U7Oox5OTs2EJiR0l8zhi5LHJVufhhcTZ0mRFp0gUvVunCoM1/tXq23V5XLhq5dxqoNXIxYyOskBvdxVO5WawPYeEmNyFGcBwILR5plWzJdTzsJ/uIzT3wr+VqAbYuKHvmSZZuzdR+YDHhByf9yxjHWtnJcuoRQj6awqu/fH7zsunVebKHGC5SPGjk5v3zmAspt3Byry65xA33eRdktm12LuuPtqVNmX3noeOWnzcR2EOYckXR8aU4o+XdTvUg1600OhIkJy8dbYbyf/L1MI1sMztNd1vkKCEJfHEotN2Ddx9bifiTWt7IjaHwcJyhVXtjnBmTyFfnB79sIKDv4ff1nuxkfQ\u003d\u003d\"\u003e \n \u003cinput type\u003d\"hidden\" value\u003d\"7d60f750de6bee022065b5e1f4fd8151\" id\u003d\"jschl-vc\" name\u003d\"jschl_vc\"\u003e \n \u003c!-- \u003cinput type\u003d\"hidden\" value\u003d\"\" id\u003d\"jschl-vc\" name\u003d\"jschl_vc\"/\u003e --\u003e \n \u003cinput type\u003d\"hidden\" name\u003d\"pass\" value\u003d\"1597812947.792-h+Bh1cSKzL\"\u003e \n \u003cinput type\u003d\"hidden\" id\u003d\"jschl-answer\" name\u003d\"jschl_answer\"\u003e \n \u003c/form\u003e \n \u003cdiv id\u003d\"trk_jschal_nojs\" style\u003d\"background-image:url(\u0027/cdn-cgi/images/trace/jschal/nojs/transparent.gif?ray\u003d5c5148b2aa9a741d\u0027)\"\u003e \n \u003c/div\u003e \n \u003c/div\u003e \u003ca href\u003d\"https://robinsonsdrlg.com/direct.php?tag\u003d7\"\u003e\u003cspan style\u003d\"display: none;\"\u003etable\u003c/span\u003e\u003c/a\u003e \n \u003cdiv class\u003d\"attribution\"\u003e\n DDoS protection by \n \u003ca href\u003d\"https://www.cloudflare.com/5xx-error-landing?utm_source\u003diuam\" target\u003d\"_blank\"\u003eCloudflare\u003c/a\u003e \n \u003cbr\u003e \n \u003cspan class\u003d\"ray_id\"\u003eRay ID: \u003ccode\u003e5c5148b2aa9a741d\u003c/code\u003e\u003c/span\u003e \n \u003c/div\u003e \u003c/td\u003e \n \u003c/tr\u003e \n \u003c/tbody\u003e\n \u003c/table\u003e \n \u003c/body\u003e\n\u003c/html\u003e/","categories":[],"tags":"null"}""" -private const val MMRSOURCE_2 = """{"language":"en","name":"Read Comics Online","base_url":"https://readcomicsonline.ru","supports_latest":true,"isNsfw":false,"item_url":"https://readcomicsonline.ru/comic/","categories":[{"id":"1","name":"One Shots \u0026 TPBs"},{"id":"2","name":"DC Comics"},{"id":"3","name":"Marvel Comics"},{"id":"4","name":"Boom Studios"},{"id":"5","name":"Dynamite"},{"id":"6","name":"Rebellion"},{"id":"7","name":"Dark Horse"},{"id":"8","name":"IDW"},{"id":"9","name":"Archie"},{"id":"10","name":"Graphic India"},{"id":"11","name":"Darby Pop"},{"id":"12","name":"Oni Press"},{"id":"13","name":"Icon Comics"},{"id":"14","name":"United Plankton"},{"id":"15","name":"Udon"},{"id":"16","name":"Image Comics"},{"id":"17","name":"Valiant"},{"id":"18","name":"Vertigo"},{"id":"19","name":"Devils Due"},{"id":"20","name":"Aftershock Comics"},{"id":"21","name":"Antartic Press"},{"id":"22","name":"Action Lab"},{"id":"23","name":"American Mythology"},{"id":"24","name":"Zenescope"},{"id":"25","name":"Top Cow"},{"id":"26","name":"Hermes Press"},{"id":"27","name":"451"},{"id":"28","name":"Black Mask"},{"id":"29","name":"Chapterhouse Comics"},{"id":"30","name":"Red 5"},{"id":"31","name":"Heavy Metal"},{"id":"32","name":"Bongo"},{"id":"33","name":"Top Shelf"},{"id":"34","name":"Bubble"},{"id":"35","name":"Boundless"},{"id":"36","name":"Avatar Press"},{"id":"37","name":"Space Goat Productions"},{"id":"38","name":"BroadSword Comics"},{"id":"39","name":"AAM-Markosia"},{"id":"40","name":"Fantagraphics"},{"id":"41","name":"Aspen"},{"id":"42","name":"American Gothic Press"},{"id":"43","name":"Vault"},{"id":"44","name":"215 Ink"},{"id":"45","name":"Abstract Studio"},{"id":"46","name":"Albatross"},{"id":"47","name":"ARH Comix"},{"id":"48","name":"Legendary Comics"},{"id":"49","name":"Monkeybrain"},{"id":"50","name":"Joe Books"},{"id":"51","name":"MAD"},{"id":"52","name":"Comics Experience"},{"id":"53","name":"Alterna Comics"},{"id":"54","name":"Lion Forge"},{"id":"55","name":"Benitez"},{"id":"56","name":"Storm King"},{"id":"57","name":"Sucker"},{"id":"58","name":"Amryl Entertainment"},{"id":"59","name":"Ahoy Comics"},{"id":"60","name":"Mad Cave"},{"id":"61","name":"Coffin Comics"},{"id":"62","name":"Magnetic Press"},{"id":"63","name":"Ablaze"},{"id":"64","name":"Europe Comics"},{"id":"65","name":"Humanoids"},{"id":"66","name":"TKO"},{"id":"67","name":"Soleil"},{"id":"68","name":"SAF Comics"},{"id":"69","name":"Scholastic"},{"id":"70","name":"Upshot"},{"id":"71","name":"Stranger Comics"},{"id":"72","name":"Inverse"},{"id":"73","name":"Virus"}],"tags":"null"}""" -private const val MMRSOURCE_3 = """{"language":"en","name":"Biamam Scans","base_url":"https://biamam.com","supports_latest":true,"isNsfw":false,"item_url":"http://biamam.com/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"4-Koma"},{"id":"34","name":"Cooking"},{"id":"35","name":"Isekai"}],"tags":"null"}""" -private const val MMRSOURCE_4 = """{"language":"en","name":"Fallen Angels","base_url":"https://manga.fascans.com","supports_latest":true,"isNsfw":false,"item_url":"https://manga.fascans.com/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"4-Koma"},{"id":"34","name":"Cooking"}],"tags":"null"}""" -private const val MMRSOURCE_5 = """{"language":"en","name":"White Cloud Pavilion","base_url":"https://www.whitecloudpavilion.com/manga/free","supports_latest":true,"isNsfw":false,"item_url":"https://www.whitecloudpavilion.com/manga/free/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":"null"}""" -private const val MMRSOURCE_6 = """{"language":"fr","name":"Scan FR","base_url":"https://www.scan-fr.co","supports_latest":true,"isNsfw":false,"item_url":"https://www.scan-fr.cc/manga/","categories":[{"id":"1","name":"Comedy"},{"id":"2","name":"Doujinshi"},{"id":"3","name":"Drama"},{"id":"4","name":"Ecchi"},{"id":"5","name":"Fantasy"},{"id":"6","name":"Gender Bender"},{"id":"7","name":"Josei"},{"id":"8","name":"Mature"},{"id":"9","name":"Mecha"},{"id":"10","name":"Mystery"},{"id":"11","name":"One Shot"},{"id":"12","name":"Psychological"},{"id":"13","name":"Romance"},{"id":"14","name":"School Life"},{"id":"15","name":"Sci-fi"},{"id":"16","name":"Seinen"},{"id":"17","name":"Shoujo"},{"id":"18","name":"Shoujo Ai"},{"id":"19","name":"Shounen"},{"id":"20","name":"Shounen Ai"},{"id":"21","name":"Slice of Life"},{"id":"22","name":"Sports"},{"id":"23","name":"Supernatural"},{"id":"24","name":"Tragedy"},{"id":"25","name":"Yaoi"},{"id":"26","name":"Yuri"},{"id":"27","name":"Comics"},{"id":"28","name":"Autre"},{"id":"29","name":"BD Occidentale"},{"id":"30","name":"Manhwa"},{"id":"31","name":"Action"},{"id":"32","name":"Aventure"}],"tags":"null"}""" -private const val MMRSOURCE_7 = """{"language":"fr","name":"Scan VF","base_url":"https://www.scan-vf.net","supports_latest":true,"isNsfw":false,"item_url":"https://www.scan-vf.net/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":"null"}""" -private const val MMRSOURCE_8 = """{"language":"fr","name":"Scan OP","base_url":"https://scan-op.com","supports_latest":true,"isNsfw":false,"item_url":"http://scan-op.net/manga/","categories":[{"id":"1","name":"Comedy"},{"id":"2","name":"Doujinshi"},{"id":"3","name":"Drama"},{"id":"4","name":"Ecchi"},{"id":"5","name":"Fantasy"},{"id":"6","name":"Gender Bender"},{"id":"7","name":"Josei"},{"id":"8","name":"Mature"},{"id":"9","name":"Mecha"},{"id":"10","name":"Mystery"},{"id":"11","name":"One Shot"},{"id":"12","name":"Psychological"},{"id":"13","name":"Romance"},{"id":"14","name":"School Life"},{"id":"15","name":"Sci-fi"},{"id":"16","name":"Seinen"},{"id":"17","name":"Shoujo"},{"id":"18","name":"Shoujo Ai"},{"id":"19","name":"Shounen"},{"id":"20","name":"Shounen Ai"},{"id":"21","name":"Slice of Life"},{"id":"22","name":"Sports"},{"id":"23","name":"Supernatural"},{"id":"24","name":"Tragedy"},{"id":"25","name":"Yaoi"},{"id":"26","name":"Yuri"},{"id":"27","name":"Comics"},{"id":"28","name":"Autre"}],"tags":"null"}""" -private const val MMRSOURCE_9 = """{"language":"id","name":"Komikid","base_url":"https://www.komikid.com","supports_latest":true,"isNsfw":false,"item_url":"https://www.komikid.com/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Fantasy"},{"id":"7","name":"Gender Bender"},{"id":"8","name":"Historical"},{"id":"9","name":"Horror"},{"id":"10","name":"Josei"},{"id":"11","name":"Martial Arts"},{"id":"12","name":"Mature"},{"id":"13","name":"Mecha"},{"id":"14","name":"Mystery"},{"id":"15","name":"One Shot"},{"id":"16","name":"Psychological"},{"id":"17","name":"Romance"},{"id":"18","name":"School Life"},{"id":"19","name":"Sci-fi"},{"id":"20","name":"Seinen"},{"id":"21","name":"Shoujo"},{"id":"22","name":"Shoujo Ai"},{"id":"23","name":"Shounen"},{"id":"24","name":"Shounen Ai"},{"id":"25","name":"Slice of Life"},{"id":"26","name":"Sports"},{"id":"27","name":"Supernatural"},{"id":"28","name":"Tragedy"},{"id":"29","name":"Yaoi"},{"id":"30","name":"Yuri"}],"tags":"null"}""" -private const val MMRSOURCE_10 = """{"language":"pl","name":"ToraScans","base_url":"http://torascans.pl","supports_latest":true,"isNsfw":false,"item_url":"http://torascans.pl/manga/","categories":[{"id":"1","name":"Akcja"},{"id":"2","name":"Przygodowe"},{"id":"3","name":"Komedia"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Dramat"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Zamiana płci"},{"id":"9","name":"Harem"},{"id":"10","name":"Historyczne"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Sztuki walki"},{"id":"14","name":"Dla dorosłych"},{"id":"15","name":"Mecha"},{"id":"16","name":"Tajemnica"},{"id":"17","name":"Psychologiczne"},{"id":"18","name":"Romans"},{"id":"19","name":"Szkolne życie"},{"id":"20","name":"S-F"},{"id":"21","name":"Seinen"},{"id":"22","name":"Shoujo"},{"id":"23","name":"Shoujo Ai"},{"id":"24","name":"Shounen"},{"id":"25","name":"Shounen Ai"},{"id":"26","name":"Okruchy życia"},{"id":"27","name":"Sportowe"},{"id":"28","name":"Supermoce"},{"id":"29","name":"Tragedia"},{"id":"30","name":"Yaoi"},{"id":"31","name":"Yuri"},{"id":"32","name":"Smut"},{"id":"33","name":"Isekai"}],"tags":[{"id":"akcja","name":"Akcja"},{"id":"doujinshi","name":"Doujinshi"},{"id":"dramat","name":"Dramat"},{"id":"fantasy","name":"Fantasy"},{"id":"harem","name":"Harem"},{"id":"historyczne","name":"Historyczne"},{"id":"horror","name":"Horror"},{"id":"isekai","name":"Isekai"},{"id":"josei","name":"Josei"},{"id":"komedia","name":"Komedia"},{"id":"okruchy-zycia","name":"Okruchy życia"},{"id":"przygodowe","name":"Przygodowe"},{"id":"psychologiczne","name":"Psychologiczne"},{"id":"romans","name":"Romans"},{"id":"s-f","name":"S-F"},{"id":"seinen","name":"Seinen"},{"id":"shoujo-ai","name":"Shoujo Ai"},{"id":"shoujou","name":"Shoujou"},{"id":"shounen","name":"Shounen"},{"id":"smut","name":"Smut"},{"id":"sportowe","name":"Sportowe"},{"id":"supermoce","name":"Supermoce"},{"id":"szkolne-zycie","name":"Szkolne życie"},{"id":"sztuki-walki","name":"Sztuki walki"},{"id":"tajemnica","name":"Tajemnica"},{"id":"tragedia","name":"Tragedia"},{"id":"yaoi","name":"Yaoi"},{"id":"yuri","name":"Yuri"},{"id":"zamiana-pci","name":"Zamiana płci"}]}""" -private const val MMRSOURCE_11 = """{"language":"pt-BR","name":"Comic Space","base_url":"https://www.comicspace.com.br","supports_latest":false,"isNsfw":false,"item_url":"https://acomic.space/manga/","categories":[],"tags":"null"}""" -private const val MMRSOURCE_12 = """{"language":"pt-BR","name":"Mangás Yuri","base_url":"https://mangasyuri.net","supports_latest":true,"isNsfw":false,"item_url":"https://mangasyuri.net/manga/","categories":[{"id":"1","name":"Ação"},{"id":"2","name":"Aventura"},{"id":"3","name":"Comédia"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasia"},{"id":"8","name":"Gênero Trocado"},{"id":"9","name":"Harém"},{"id":"10","name":"Histórico"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Artes Marciais"},{"id":"14","name":"Maduro"},{"id":"15","name":"Robô"},{"id":"16","name":"Mistério"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psicológico"},{"id":"19","name":"Romance"},{"id":"20","name":"Vida Escolar"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Cotidiano"},{"id":"26","name":"Esportes"},{"id":"27","name":"Sobrenatural"},{"id":"28","name":"Tragédia"},{"id":"29","name":"Yuri"},{"id":"30","name":"Adulto"},{"id":"31","name":"Shounen"}],"tags":"null"}""" -private const val MMRSOURCE_13 = """{"language":"pl","name":"Dracaena","base_url":"https://dracaena.webd.pl/czytnik","supports_latest":true,"isNsfw":false,"item_url":"https://dracaena.webd.pl/czytnik/manga/","categories":[{"id":"1","name":"Dramat"},{"id":"2","name":"Fantasy"},{"id":"3","name":"Historyczny"},{"id":"4","name":"Komedia"},{"id":"5","name":"Okruchy Życia"},{"id":"6","name":"Romans"},{"id":"7","name":"Shoujo"},{"id":"8","name":"Shounen-ai"},{"id":"9","name":"Sport"},{"id":"10","name":"Tragedia"},{"id":"11","name":"Yaoi"},{"id":"12","name":"Szkolne Życie"},{"id":"13","name":"Nadprzyrodzone moce"},{"id":"14","name":"Psychologiczne"},{"id":"15","name":"Science Fiction"},{"id":"16","name":"Josei"},{"id":"17","name":"Akcja"}],"tags":"null"}""" -private const val MMRSOURCE_14 = """{"language":"pl","name":"Nikushima","base_url":"http://azbivo.webd.pro","supports_latest":true,"isNsfw":false,"item_url":"http://azbivo.webd.pro/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shounen"},{"id":"25","name":"Slice of Life"},{"id":"26","name":"Sports"},{"id":"27","name":"Supernatural"},{"id":"28","name":"Tragedy"},{"id":"29","name":"Isekai"}],"tags":"null"}""" -private const val MMRSOURCE_15 = """{"language":"tr","name":"MangaHanta","base_url":"http://mangahanta.com","supports_latest":true,"isNsfw":false,"item_url":"http://mangahanta.com/manga/","categories":[{"id":"1","name":"Aksiyon"},{"id":"2","name":"Macera"},{"id":"3","name":"Komedi"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantezi"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Tarihi"},{"id":"11","name":"Korku"},{"id":"12","name":"Josei"},{"id":"13","name":"Dövüş Sanatları"},{"id":"14","name":"Yetişkin"},{"id":"15","name":"Mecha"},{"id":"16","name":"Gizem"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psikolojik"},{"id":"19","name":"Romantizm"},{"id":"20","name":"Okul Hayatı"},{"id":"21","name":"Bilim-Kurgu"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Hayattan Bir Parça"},{"id":"28","name":"Spor"},{"id":"29","name":"Doğaüstü"},{"id":"30","name":"Trajedi"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"Vampir"},{"id":"34","name":"Webtoon"}],"tags":[{"id":"tag","name":"-ヒトガタナ-"},{"id":"amber","name":"Amber"},{"id":"amber-manga","name":"Amber manga"},{"id":"amber-oku","name":"Amber oku"},{"id":"amber-turkce-oku","name":"Amber Türkçe Oku"},{"id":"amber-yuno","name":"Amber Yuno"},{"id":"back-stage","name":"Back Stage"},{"id":"ballroom-e-youkoso","name":"Ballroom e Youkoso"},{"id":"beauty-game","name":"Beauty Game"},{"id":"beauty-game-oku","name":"Beauty Game Oku"},{"id":"boku-wa-mari-no-naka","name":"Boku Wa Mari No Naka"},{"id":"god-eater-kyuuseishu-no-kikan","name":"God Eater - Kyuuseishu no Kikan"},{"id":"god-eater-the-spiral-fate","name":"God Eater - The Spiral Fate"},{"id":"happiness","name":"Happiness"},{"id":"happiness-manga-oku","name":"happiness manga oku"},{"id":"happiness-turkce-oku","name":"happiness türkçe oku"},{"id":"hitogatana","name":"Hitogatana"},{"id":"im-in-mari-im-inside-mari","name":"ぼくは麻理のなか I\u0027m in Mari I\u0027m Inside Mari"},{"id":"itsuwaribito-utsuho","name":"Itsuwaribito Utsuho"},{"id":"kaguya-sama-wa-kokurasetai","name":"Kaguya-sama wa Kokurasetai"},{"id":"les-memoires-de-vanitas","name":"Les Mémoires de Vanitas"},{"id":"mahouka-koukou-no-rettousei-tsuioku-hen","name":"Mahouka Koukou no Rettousei - Tsuioku Hen"},{"id":"manga-oku","name":"manga oku"},{"id":"maou-na-ore-to-fushihime-no-yubiwa","name":"Maou na Ore to Fushihime no Yubiwa"},{"id":"may-i-shake-your-hand","name":"May I shake your hand"},{"id":"may-i-shake-your-hand-oku","name":"may I shake your hand oku"},{"id":"may-i-shake-your-hand-turkce-oku","name":"May I Shake Your Hand türkçe oku"},{"id":"memoir-of-vanitas","name":"Memoir of Vanitas"},{"id":"mutluluk","name":"Mutluluk"},{"id":"nanatsu-no-taizai","name":"Nanatsu No Taizai"},{"id":"nanatsu-no-taizai-turkce-oku","name":"Nanatsu no taizai Türkçe oku"},{"id":"oshimi-shuzo","name":"OSHIMI Shuzo"},{"id":"sousei-manga-oku","name":"sousei manga oku"},{"id":"sousei-no-onmyouji","name":"Sousei no Onmyouji"},{"id":"sousei-no-onmyouji-manga-oku","name":"Sousei no onmyouji manga oku"},{"id":"sousei-no-onmyouji-turkce-oku","name":"sousei no onmyouji türkçe oku"},{"id":"the-case-study-of-vanitas","name":"The Case Study of Vanitas"},{"id":"the-seven-deadly-sins","name":"The Seven Deadly Sins"},{"id":"vanitas-no-carte","name":"Vanitas no Carte"},{"id":"vanitas-no-shuki","name":"Vanitas no Shuki"},{"id":"yedi-olumcul-gunah","name":"Yedi Ölümcül Günah"}]}""" -private const val MMRSOURCE_16 = """{"language":"vi","name":"Fallen Angels Scans","base_url":"https://truyen.fascans.com","supports_latest":true,"isNsfw":false,"item_url":"https://truyen.fascans.com/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":"null"}""" -private const val MMRSOURCE_17 = """{"language":"es","name":"LeoManga","base_url":"https://leomanga.me","supports_latest":false,"isNsfw":false,"item_url":"https://leomanga.me/manga/","categories":[{"id":"1","name":"Accion"},{"id":"2","name":"Aventura"},{"id":"3","name":"Comedia"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasia"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historico"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Artes Marciales"},{"id":"14","name":"Madura"},{"id":"15","name":"Mecha"},{"id":"16","name":"Misterio"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psicológico"},{"id":"19","name":"Romance"},{"id":"20","name":"Vida Cotidiana"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Supernatural"},{"id":"29","name":"Tragedia"},{"id":"30","name":"Yaoi"},{"id":"31","name":"Yuri"},{"id":"32","name":"Deporte"},{"id":"33","name":"Thriller"},{"id":"34","name":"Vida Escolar"},{"id":"35","name":"Boys Love"},{"id":"36","name":"Girls Love"},{"id":"37","name":"Gore"},{"id":"38","name":"Hentai"},{"id":"39","name":"Magia"},{"id":"40","name":"Manwha"},{"id":"41","name":"Policial"},{"id":"42","name":"Realidad Virtual"},{"id":"43","name":"Super Poderes"},{"id":"44","name":"Suspense"},{"id":"45","name":"Supervivencia"},{"id":"46","name":"Parodia"},{"id":"47","name":"Demonios"},{"id":"48","name":"Escolar"}],"tags":[{"id":"freaking-romance","name":"Freaking Romance"},{"id":"love-lucky","name":"Love Lucky"},{"id":"lust-awakening","name":"Lust Awakening"},{"id":"despertar-de-la-lujuria","name":"Despertar de la lujuria"},{"id":"inazumaelevenaresnotenbin","name":"inazumaelevenaresnotenbin"},{"id":"heir-of-the-penguins","name":"Heir of the Penguins"},{"id":"amor","name":"amor"},{"id":"drama","name":"drama"},{"id":"mysteries","name":"mysteries"},{"id":"anal","name":"anal"},{"id":"bukkake","name":"bukkake"},{"id":"doble-penetracion","name":"doble penetracion"},{"id":"orgia","name":"orgia"},{"id":"blow-job","name":"blow job"},{"id":"big-breasts","name":"big breasts"},{"id":"incesto","name":"incesto"},{"id":"milf","name":"milf"},{"id":"prenadas","name":"preñadas"},{"id":"slave-sex","name":"slave sex"},{"id":"lolicon","name":"lolicon"},{"id":"nurse","name":"nurse"},{"id":"reality","name":"Reality"},{"id":"glitch","name":"Glitch"},{"id":"glitcher","name":"Glitcher"},{"id":"horror","name":"Horror"},{"id":"suspenso","name":"Suspenso"},{"id":"realidad","name":"Realidad"},{"id":"slider","name":"Slider"},{"id":"novela","name":"Novela"},{"id":"sobrenatural","name":"Sobrenatural"},{"id":"tragedia","name":"Tragedia"},{"id":"error","name":"Error"},{"id":"psicologico","name":"Psicologico"},{"id":"sufrimiento","name":"Sufrimiento"},{"id":"visual","name":"Visual"},{"id":"narrativo","name":"Narrativo"},{"id":"shotacon","name":"shotacon"},{"id":"paizuri","name":"paizuri"},{"id":"kemonomimi","name":"kemonomimi"},{"id":"mundo-paralelo","name":"mundo paralelo"},{"id":"coleccion-hentai","name":"coleccion hentai"},{"id":"adultos","name":"adultos"}]}""" -private const val MMRSOURCE_18 = """{"language":"es","name":"submanga","base_url":"https://submangas.net","supports_latest":false,"isNsfw":false,"item_url":"https://submangas.net/manga/","categories":[{"id":"1","name":"Accion"},{"id":"2","name":"Aventura"},{"id":"3","name":"Comedia"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasia"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historico"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Artes Marciales"},{"id":"14","name":"Madura"},{"id":"15","name":"Mecha"},{"id":"16","name":"Misterio"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psicológico"},{"id":"19","name":"Romance"},{"id":"20","name":"Vida Cotidiana"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Supernatural"},{"id":"29","name":"Tragedia"},{"id":"30","name":"Yaoi"},{"id":"31","name":"Yuri"},{"id":"32","name":"Deporte"},{"id":"33","name":"Thriller"},{"id":"34","name":"Vida Escolar"},{"id":"35","name":"Boys Love"},{"id":"36","name":"Girls Love"},{"id":"37","name":"Gore"},{"id":"38","name":"Hentai"},{"id":"39","name":"Magia"},{"id":"40","name":"Manwha"},{"id":"41","name":"Policial"},{"id":"42","name":"Realidad Virtual"},{"id":"43","name":"Super Poderes"},{"id":"44","name":"Suspense"},{"id":"45","name":"Supervivencia"},{"id":"46","name":"Parodia"},{"id":"47","name":"Demonios"},{"id":"48","name":"Escolar"}],"tags":"null"}""" -private const val MMRSOURCE_19 = """{"language":"es","name":"Mangadoor","base_url":"https://mangadoor.com","supports_latest":true,"isNsfw":false,"item_url":"https://mangadoor.com/manga/","categories":[{"id":"1","name":"Acción"},{"id":"2","name":"Aventura"},{"id":"3","name":"Comedia"},{"id":"4","name":"Drama"},{"id":"5","name":"Ecchi"},{"id":"6","name":"Fantasía"},{"id":"7","name":"Gender Bender"},{"id":"8","name":"Harem"},{"id":"9","name":"Histórico"},{"id":"10","name":"Horror"},{"id":"11","name":"Josei"},{"id":"12","name":"Artes Marciales"},{"id":"13","name":"Maduro"},{"id":"14","name":"Mecha"},{"id":"15","name":"Misterio"},{"id":"16","name":"One Shot"},{"id":"17","name":"Psicológico"},{"id":"18","name":"Romance"},{"id":"19","name":"Escolar"},{"id":"20","name":"Ciencia Ficción"},{"id":"21","name":"Seinen"},{"id":"22","name":"Shoujo"},{"id":"23","name":"Shoujo Ai"},{"id":"24","name":"Shounen"},{"id":"25","name":"Shounen Ai"},{"id":"26","name":"Recuentos de la vida"},{"id":"27","name":"Deportes"},{"id":"28","name":"Supernatural"},{"id":"29","name":"Tragedia"},{"id":"30","name":"Yaoi"},{"id":"31","name":"Yuri"},{"id":"32","name":"Demonios"},{"id":"33","name":"Juegos"},{"id":"34","name":"Policial"},{"id":"35","name":"Militar"},{"id":"36","name":"Thriller"},{"id":"37","name":"Autos"},{"id":"38","name":"Música"},{"id":"39","name":"Vampiros"},{"id":"40","name":"Magia"},{"id":"41","name":"Samurai"},{"id":"42","name":"Boys love"},{"id":"43","name":"Hentai"}],"tags":"null"}""" -private const val MMRSOURCE_20 = """{"language":"es","name":"Mangas.pw","base_url":"https://mangas.in","supports_latest":true,"isNsfw":false,"item_url":"https://mangas.in/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"Hentai"},{"id":"34","name":"Smut"}],"tags":"null"}""" -private const val MMRSOURCE_21 = """{"language":"es","name":"Tumangaonline.co","base_url":"http://tumangaonline.uno","supports_latest":true,"isNsfw":false,"item_url":"http://tumangaonline.life/manga/","categories":[{"id":"1","name":"Acción"},{"id":"2","name":"Aventura"},{"id":"3","name":"Comedia"},{"id":"4","name":"Drama"},{"id":"5","name":"Ecchi"},{"id":"6","name":"Fantasía"},{"id":"7","name":"Gender Bender"},{"id":"8","name":"Harem"},{"id":"9","name":"Histórico"},{"id":"10","name":"Horror"},{"id":"11","name":"Josei"},{"id":"12","name":"Artes Marciales"},{"id":"13","name":"Maduro"},{"id":"14","name":"Mecha"},{"id":"15","name":"Misterio"},{"id":"16","name":"One Shot"},{"id":"17","name":"Psicológico"},{"id":"18","name":"Romance"},{"id":"19","name":"Escolar"},{"id":"20","name":"Ciencia Ficción"},{"id":"21","name":"Seinen"},{"id":"22","name":"Shoujo"},{"id":"23","name":"Shoujo Ai"},{"id":"24","name":"Shounen"},{"id":"25","name":"Shounen Ai"},{"id":"26","name":"Recuentos de la vida"},{"id":"27","name":"Deportes"},{"id":"28","name":"Supernatural"},{"id":"29","name":"Tragedia"},{"id":"30","name":"Yaoi"},{"id":"31","name":"Yuri"},{"id":"32","name":"Demonios"},{"id":"33","name":"Juegos"},{"id":"34","name":"Policial"},{"id":"35","name":"Militar"},{"id":"36","name":"Thriller"},{"id":"37","name":"Autos"},{"id":"38","name":"Música"},{"id":"39","name":"Vampiros"},{"id":"40","name":"Magia"},{"id":"41","name":"Samurai"},{"id":"42","name":"Boys love"}],"tags":"null"}""" -private const val MMRSOURCE_22 = """{"language":"bg","name":"Utsukushii","base_url":"https://manga.utsukushii-bg.com","supports_latest":true,"isNsfw":false,"item_url":"https://manga.utsukushii-bg.com/manga/","categories":[{"id":"1","name":"Екшън"},{"id":"2","name":"Приключенски"},{"id":"3","name":"Комедия"},{"id":"4","name":"Драма"},{"id":"5","name":"Фентъзи"},{"id":"6","name":"Исторически"},{"id":"7","name":"Ужаси"},{"id":"8","name":"Джосей"},{"id":"9","name":"Бойни изкуства"},{"id":"10","name":"Меха"},{"id":"11","name":"Мистерия"},{"id":"12","name":"Самостоятелна/Пилотна глава"},{"id":"13","name":"Психологически"},{"id":"14","name":"Романтика"},{"id":"15","name":"Училищни"},{"id":"16","name":"Научна фантастика"},{"id":"17","name":"Сейнен"},{"id":"18","name":"Шоджо"},{"id":"19","name":"Реализъм"},{"id":"20","name":"Спорт"},{"id":"21","name":"Свръхестествено"},{"id":"22","name":"Трагедия"},{"id":"23","name":"Йокаи"},{"id":"24","name":"Паралелна вселена"},{"id":"25","name":"Супер сили"},{"id":"26","name":"Пародия"},{"id":"27","name":"Шонен"}],"tags":"null"}""" -private const val MMRSOURCE_23 = """{"language":"es","name":"Universo Yuri","base_url":"https://universoyuri.com","supports_latest":true,"isNsfw":false,"item_url":"https://universoyuri.com/manga/","categories":[{"id":"1","name":"Acción"},{"id":"2","name":"Aventura"},{"id":"3","name":"Comedia"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasía"},{"id":"8","name":"Harem"},{"id":"9","name":"Histórico"},{"id":"10","name":"Terror"},{"id":"11","name":"Mecha"},{"id":"12","name":"Misterio"},{"id":"13","name":"One Shot"},{"id":"14","name":"Psicológico"},{"id":"15","name":"Romance"},{"id":"16","name":"Escolar"},{"id":"17","name":"Ciencia ficción"},{"id":"18","name":"Vida cotidiana"},{"id":"19","name":"Deportes"},{"id":"20","name":"Sobrenatural"},{"id":"21","name":"Música"}],"tags":[{"id":"yuri","name":"yuri"},{"id":"sex-friends","name":"sex friends"},{"id":"webtoon","name":"Webtoon"},{"id":"adult-life","name":"Adult life"},{"id":"full-color","name":"Full color"},{"id":"classmate","name":"classmate"},{"id":"asesinos","name":"Asesinos"},{"id":"fantasia","name":"Fantasía"},{"id":"vida-escolar","name":"Vida escolar"},{"id":"incesto","name":"incesto"},{"id":"hentai","name":"hentai"},{"id":"precure-doujin","name":"PreCure Doujin"},{"id":"student-x-teacher","name":"Student x Teacher"},{"id":"romance","name":"romance"},{"id":"drama","name":"drama"},{"id":"comedia","name":"comedia"},{"id":"bang-dream","name":"BanG Dream!"},{"id":"kokoro-x-misaki","name":"Kokoro x Misaki"},{"id":"nsfw","name":"NSFW"},{"id":"fantasmas","name":"fantasmas"},{"id":"gl","name":"gl"},{"id":"doujinshi","name":"Doujinshi"},{"id":"hot","name":"hot"},{"id":"all-girls-school","name":"All-Girls School"},{"id":"military-academy","name":"Military Academy"},{"id":"rainy-devil-scans","name":"Rainy Devil Scans"},{"id":"bondage","name":"Bondage"},{"id":"yuri-hime","name":"Yuri Hime"},{"id":"one-shot","name":"one shot"},{"id":"5k-scanlation","name":"5K Scanlation"},{"id":"watashitachi-no-yuri","name":"WatashiTachi No Yuri"},{"id":"politica","name":"política"},{"id":"comida","name":"comida"},{"id":"cyborg","name":"cyborg"},{"id":"rai","name":"RAI"},{"id":"violencia-familiar","name":"violencia familiar"},{"id":"selene-yuri-projects","name":"Selene Yuri Projects"}]}""" -private const val MMRSOURCE_24 = """{"language":"pl","name":"Phoenix-Scans","base_url":"https://phoenix-scans.pl","supports_latest":true,"isNsfw":false,"item_url":"https://phoenix-scans.pl/manga/","categories":[{"id":"1","name":"Shounen"},{"id":"2","name":"Tragedia"},{"id":"3","name":"Szkolne życie"},{"id":"4","name":"Romans"},{"id":"5","name":"Zagadka"},{"id":"6","name":"Horror"},{"id":"7","name":"Dojrzałe"},{"id":"8","name":"Psychologiczne"},{"id":"9","name":"Przygodowe"},{"id":"10","name":"Akcja"},{"id":"11","name":"Komedia"},{"id":"12","name":"Zboczone"},{"id":"13","name":"Fantasy"},{"id":"14","name":"Harem"},{"id":"15","name":"Historyczne"},{"id":"16","name":"Manhua"},{"id":"17","name":"Manhwa"},{"id":"18","name":"Sztuki walki"},{"id":"19","name":"One shot"},{"id":"20","name":"Sci fi"},{"id":"21","name":"Seinen"},{"id":"22","name":"Shounen ai"},{"id":"23","name":"Spokojne życie"},{"id":"24","name":"Sport"},{"id":"25","name":"Nadprzyrodzone"},{"id":"26","name":"Webtoons"},{"id":"27","name":"Dramat"},{"id":"28","name":"Hentai"},{"id":"29","name":"Mecha"},{"id":"30","name":"Gender Bender"},{"id":"31","name":"Gry"},{"id":"32","name":"Yaoi"}],"tags":[{"id":"aktywne","name":"aktywne"},{"id":"zakonczone","name":"zakończone"},{"id":"porzucone","name":"porzucone"}]}""" -private const val MMRSOURCE_25 = """{"language":"ru","name":"Japit Comics","base_url":"https://j-comics.ru","supports_latest":true,"isNsfw":false,"item_url":"https://j-comics.ru/manga/","categories":[{"id":"1","name":"Боевик"},{"id":"2","name":"Приключения"},{"id":"3","name":"Комедия"},{"id":"4","name":"Додзинси"},{"id":"5","name":"Драма"},{"id":"6","name":"Этти"},{"id":"7","name":"Фэнтези"},{"id":"8","name":"Гендерная интрига"},{"id":"9","name":"Гарем"},{"id":"10","name":"История"},{"id":"11","name":"Ужасы"},{"id":"12","name":"Дзёсэй"},{"id":"13","name":"Боевые искусства"},{"id":"14","name":"Эротика"},{"id":"15","name":"Меха"},{"id":"16","name":"Мистика"},{"id":"17","name":"Ваншот"},{"id":"18","name":"Психология"},{"id":"19","name":"Романтика"},{"id":"20","name":"Школа"},{"id":"21","name":"Научная фантастика"},{"id":"22","name":"Сэйнэн"},{"id":"23","name":"Сёдзё"},{"id":"24","name":"Сёдзё-ай"},{"id":"25","name":"Сёнэн"},{"id":"26","name":"Сёнэн-ай"},{"id":"27","name":"Повседневность"},{"id":"28","name":"Спорт"},{"id":"29","name":"Сверхъест."},{"id":"30","name":"Трагедия"},{"id":"31","name":"Яой"},{"id":"32","name":"Юри"}],"tags":"null"}""" -private const val MMRSOURCE_26 = """{"language":"tr","name":"Puzzmos","base_url":"https://puzzmos.com","supports_latest":true,"isNsfw":false,"item_url":"https://puzzmos.com/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":"null"}""" -private const val MMRSOURCE_27 = """{"language":"fr","name":"Scan-1","base_url":"https://wwv.scan-1.com","supports_latest":true,"isNsfw":false,"item_url":"https://wwv.scan-1.com/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":"null"}""" -private const val MMRSOURCE_28 = """{"language":"fr","name":"Lelscan-VF","base_url":"https://www.lelscan-vf.com","supports_latest":true,"isNsfw":false,"item_url":"https://www.lelscan-vf.com/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":"null"}""" -private const val MMRSOURCE_29 = """{"language":"id","name":"MangaSusu","base_url":"https://www.mangasusu.site","supports_latest":true,"isNsfw":false,"item_url":"https://www.mangasusu.website/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"Adult"},{"id":"34","name":"Isekai"},{"id":"35","name":"Webtoons"}],"tags":"null"}""" -private const val MMRSOURCE_30 = """{"language":"id","name":"Komik Manga","base_url":"https://adm.komikmanga.com","supports_latest":true,"isNsfw":false,"item_url":"https://adm.komikmanga.com/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"Adult"},{"id":"34","name":"Isekai"}],"tags":"null"}""" -private const val MMRSOURCE_31 = """{"language":"ko","name":"Mangazuki Raws","base_url":"https://raws.mangazuki.co","supports_latest":false,"isNsfw":false,"item_url":"\u003c!doctype html\u003e\n\u003chtml lang\u003d\"en-US\"\u003e\n \u003chead\u003e \n \u003cmeta charset\u003d\"UTF-8\"\u003e \n \u003cmeta http-equiv\u003d\"Content-Type\" content\u003d\"text/html; charset\u003dUTF-8\"\u003e \n \u003cmeta http-equiv\u003d\"X-UA-Compatible\" content\u003d\"IE\u003dEdge,chrome\u003d1\"\u003e \n \u003cmeta name\u003d\"robots\" content\u003d\"noindex, nofollow\"\u003e \n \u003cmeta name\u003d\"viewport\" content\u003d\"width\u003ddevice-width,initial-scale\u003d1\"\u003e \n \u003cmeta http-equiv\u003d\"refresh\" content\u003d\"12\"\u003e \n \u003ctitle\u003eJust a moment...\u003c/title\u003e \n \u003cstyle type\u003d\"text/css\"\u003e\n html, body {width: 100%; height: 100%; margin: 0; padding: 0;}\n body {background-color: #ffffff; color: #000000; font-family:-apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, \"Helvetica Neue\",Arial, sans-serif; font-size: 16px; line-height: 1.7em;-webkit-font-smoothing: antialiased;}\n h1 { text-align: center; font-weight:700; margin: 16px 0; font-size: 32px; color:#000000; line-height: 1.25;}\n p {font-size: 20px; font-weight: 400; margin: 8px 0;}\n p, .attribution, {text-align: center;}\n #spinner {margin: 0 auto 30px auto; display: block;}\n .attribution {margin-top: 32px;}\n @keyframes fader { 0% {opacity: 0.2;} 50% {opacity: 1.0;} 100% {opacity: 0.2;} }\n @-webkit-keyframes fader { 0% {opacity: 0.2;} 50% {opacity: 1.0;} 100% {opacity: 0.2;} }\n #cf-bubbles \u003e .bubbles { animation: fader 1.6s infinite;}\n #cf-bubbles \u003e .bubbles:nth-child(2) { animation-delay: .2s;}\n #cf-bubbles \u003e .bubbles:nth-child(3) { animation-delay: .4s;}\n .bubbles { background-color: #f58220; width:20px; height: 20px; margin:2px; border-radius:100%; display:inline-block; }\n a { color: #2c7cb0; text-decoration: none; -moz-transition: color 0.15s ease; -o-transition: color 0.15s ease; -webkit-transition: color 0.15s ease; transition: color 0.15s ease; }\n a:hover{color: #f4a15d}\n .attribution{font-size: 16px; line-height: 1.5;}\n .ray_id{display: block; margin-top: 8px;}\n #cf-wrapper #challenge-form { padding-top:25px; padding-bottom:25px; }\n #cf-hcaptcha-container { text-align:center;}\n #cf-hcaptcha-container iframe { display: inline-block;}\n \u003c/style\u003e \n \u003cscript type\u003d\"text/javascript\"\u003e\n //\u003c![CDATA[\n (function(){\n \n window._cf_chl_opt\u003d{\n cvId: \"1\",\n cType: \"non-interactive\",\n cNounce: \"86182\",\n cRay: \"5c514b3e6a130977\",\n cHash: \"89537a2fdb18d0b\",\n cRq: {\n d: \"T8Fkun+Kwey8wwLFqapyWw1ZBZq7AnmwEpOY8i8LQBlhmTr4yT+OZHtyHsNhlLUboORGgZ8El04azck36rOXnkHvAzkycyH+AHq6g58uiN+5cJOXHeECpsuLfNhQLZRy6l65ss3Fo0xvR37pp2PxCIrfAsPKPxoMpWYU9oqIMhM12mzXnEAFdOLvNf8V9bXMYo0LRXVU3iZt2Skd1paSt2i1LtVa6Ok9gUh9IPuUhL/HfrMpvwWwn09V8uezf5ccFg7v1FOWW5PKho1y/ju/YZ1P/n23Bj0Z+9LHsv8glQT3YZhEimX/TeVaEF0rVQovx9O5Gq6vRpUNIPj7FsvuAs6n9IpnoHJA0kjEdPiRWx219Qs6SHkGcB1rhB/skYB9nAoEWONmMeUlUcUC/6/aRg\u003d\u003d\",\n t: \"MTU5NzgxMzA0OC4wNjYwMDA\u003d\",\n m: \"CZ1i2xTYUH2M20onddJkd0NK7Garn12U1/9O01BgCeY\u003d\",\n i1: \"T2En+tos/fcLVonBPQ+gvQ\u003d\u003d\",\n i2: \"O3LuD/53dY6yxH0aSKtGZQ\u003d\u003d\",\n }\n }\n window._cf_chl_enter \u003d function(){window._cf_chl_opt.p\u003d1};\n \n var a \u003d function() {try{return !!window.addEventListener} catch(e) {return !1} },\n b \u003d function(b, c) {a() ? document.addEventListener(\"DOMContentLoaded\", b, c) : document.attachEvent(\"onreadystatechange\", b)};\n b(function(){\n var cookiesEnabled\u003d(navigator.cookieEnabled)? true : false;\n var cookieSupportInfix\u003dcookiesEnabled?\u0027/nocookie\u0027:\u0027/cookie\u0027;\n var a \u003d document.getElementById(\u0027cf-content\u0027);a.style.display \u003d \u0027block\u0027;\n var isIE \u003d /(MSIE|Trident\\/|Edge\\/)/i.test(window.navigator.userAgent);\n var trkjs \u003d isIE ? new Image() : document.createElement(\u0027img\u0027);\n trkjs.setAttribute(\"src\", \"/cdn-cgi/images/trace/jschal/js\"+cookieSupportInfix+\"/transparent.gif?ray\u003d5c514b3e6a130977\");\n trkjs.id \u003d \"trk_jschal_js\";\n trkjs.setAttribute(\"alt\", \"\");\n document.body.appendChild(trkjs);\n \n document.body.appendChild(trkjs);\n var cpo \u003d document.createElement(\u0027script\u0027);\n cpo.type \u003d \u0027text/javascript\u0027;\n cpo.src \u003d \"/cdn-cgi/challenge-platform/orchestrate/jsch/v1\";\n var done \u003d false;\n cpo.onload \u003d cpo.onreadystatechange \u003d function() {\n if (!done \u0026\u0026 (!this.readyState || this.readyState \u003d\u003d\u003d \"loaded\" || this.readyState \u003d\u003d\u003d \"complete\")) {\n done \u003d true;\n cpo.onload \u003d cpo.onreadystatechange \u003d null;\n window._cf_chl_enter()\n }\n };\n document.getElementsByTagName(\u0027head\u0027)[0].appendChild(cpo);\n \n }, false);\n })();\n //]]\u003e\n\u003c/script\u003e \n \u003c/head\u003e \n \u003cbody\u003e \n \u003ctable width\u003d\"100%\" height\u003d\"100%\" cellpadding\u003d\"20\"\u003e \n \u003ctbody\u003e\n \u003ctr\u003e \n \u003ctd align\u003d\"center\" valign\u003d\"middle\"\u003e \n \u003cdiv class\u003d\"cf-browser-verification cf-im-under-attack\"\u003e \n \u003cnoscript\u003e \n \u003ch1 data-translate\u003d\"turn_on_js\" style\u003d\"color:#bd2426;\"\u003ePlease turn JavaScript on and reload the page.\u003c/h1\u003e \n \u003c/noscript\u003e \n \u003cdiv id\u003d\"cf-content\" style\u003d\"display:none\"\u003e \n \u003cdiv id\u003d\"cf-bubbles\"\u003e \n \u003cdiv class\u003d\"bubbles\"\u003e\u003c/div\u003e \n \u003cdiv class\u003d\"bubbles\"\u003e\u003c/div\u003e \n \u003cdiv class\u003d\"bubbles\"\u003e\u003c/div\u003e \n \u003c/div\u003e \n \u003ch1\u003e\u003cspan data-translate\u003d\"checking_browser\"\u003eChecking your browser before accessing\u003c/span\u003e mangazuki.co.\u003c/h1\u003e \n \u003cdiv id\u003d\"no-cookie-warning\" data-translate\u003d\"turn_on_cookies\" style\u003d\"display:none\"\u003e \n \u003cp data-translate\u003d\"turn_on_cookies\" style\u003d\"color:#bd2426;\"\u003ePlease enable Cookies and reload the page.\u003c/p\u003e \n \u003c/div\u003e \n \u003cp data-translate\u003d\"process_is_automatic\"\u003eThis process is automatic. Your browser will redirect to your requested content shortly.\u003c/p\u003e \n \u003cp data-translate\u003d\"allow_5_secs\"\u003ePlease allow up to 5 seconds…\u003c/p\u003e \n \u003c/div\u003e \n \u003cform class\u003d\"challenge-form\" id\u003d\"challenge-form\" action\u003d\"/?__cf_chl_jschl_tk__\u003dc1b2e17c066b32c6010241ded2bd051748685da5-1597813048-0-AXnNDOpTn2c8lrDsE5L58_ntbEFNSfjjmt9DxneXKcXi-uI7frOo_dG-uSLvShk46QTtVLeItXi7FtsUm0U98YaUZ1fT5XlT5HJG1f1qNtQ74kN7_ww9JE9v_XPOgAaTl91cTpu_8OApasIjZ28BYclRcGOPQxg2-M3Hsxw39UhfHLxmpyMT-IiIqq7rPrRsZ3N_rWkdZuZtTvoT-qNjHYL0AEYdyOwD3ojf4hie1cDMp6NPUQN7WYzYR9-dMUO05tY-jTAvvkiZJhfzQMn9kwA\" method\u003d\"POST\" enctype\u003d\"application/x-www-form-urlencoded\"\u003e \n \u003cinput type\u003d\"hidden\" name\u003d\"r\" value\u003d\"de96632b016d308fbc82bd78d909e202965c1452-1597813048-0-AYhf+g0aGAHs/w3FgBlpWNL1Mf2K44pZjNpDtrfhquygo6qUQhNUGGGwtZzg7arhDHE6q0NQMn/N09tHr4WsaKpfvkPLNtvtVgmDhO7UIm7WJ3fM2afebZDDfYAWL8pEaL21NO/GnSwVjlTJDwhvVvnmDB89HCNmgXZL2kH0E0dkEAgRNwmT4pRhi7fd82Sd94gJt86zk7WW+jZy7kuoboqLXjMlOb85JTpe9krb9bSFq4WmiygjYS9t7ENYAMZSRy+wTzy7yokI9cHOYB46vcgld+wE375fNHejO0VS3sQerzwmMWdvVQPZowdCl3q3MJqrqqG5X6J32xgBBMjV5PfgwY6vgwtrqs2CAluXsD490qDYX3gP8Tergo8UGQSXobgKSEImV7+XP12DT9Vu6MgN4ZZG9g1e9ENkMI3LUmH1u2c+C9Up0DX0rdJnDxcmKdWKOVUXeFccrHQSS8ethFxqHXqHQyAoo6RY0usoP45F/e9bHzO7RjjsVerfTbDMId0bxGxsKChpruiR1PO4eiE6Qrj55wVHzX1DWAswE0f2eOdj/hpRJmqT5B4srhYnCsYZ1wKO2ioH0jSCZk34HVPStTnc0FnF6uF96SIO2z6Vz+P6ZQrbrl/NeyC3Tf0XeN+Mf1L2AJaRtumVM8rONmqAZY7Zj6IulVsfEVELRdgtp8WJXTN1GadxFPESuLyY8da7+ceFz6S/uydl2p95e8E9ucs9a9jC1mEDEMZrLAWCocreuD6MGsxJHTAfu3aLG9WoFWyOpYrqDMGUg1yCBF2HVCe+SzX4pVZlNKOLWIdLrBMK70Sap4nMFnBR2eWNZCPHegRYM3EjUOvm43SmuN1P6d4qLq2d+t+tBUWb3UMYu/JvqbX1koJ1V+/TYVu8aP/6/nk37Xqn72rIVqG6XBcSGiFjY/8nbpwXh8FXHyFfxG8LSQ8FnU1eugsIIgJWheNv1Tbcy2jAeBxzXSzg7TS6aIryuUyMvcBaLuJ0vFjFSuFVM4PMscQNruB7XLlmPQZqzu8zH0SCpP0IMPqhQ27mlE+tFMzEZlkfWmj3xwIsX65Y9S4ayezA6icES5iQcO8hEzfC+KPB5uVS6e7YHGMOE1PUITTj8rgV+nsOMS02ski7U9NPfBy3aDY20DnEbQ\u003d\u003d\"\u003e \n \u003cinput type\u003d\"hidden\" value\u003d\"2645ec452983e031e72c29ee7885b9ba\" id\u003d\"jschl-vc\" name\u003d\"jschl_vc\"\u003e \n \u003c!-- \u003cinput type\u003d\"hidden\" value\u003d\"\" id\u003d\"jschl-vc\" name\u003d\"jschl_vc\"/\u003e --\u003e \n \u003cinput type\u003d\"hidden\" name\u003d\"pass\" value\u003d\"1597813052.066-6oTOgL2JK5\"\u003e \n \u003cinput type\u003d\"hidden\" id\u003d\"jschl-answer\" name\u003d\"jschl_answer\"\u003e \n \u003c/form\u003e \n \u003cdiv id\u003d\"trk_jschal_nojs\" style\u003d\"background-image:url(\u0027/cdn-cgi/images/trace/jschal/nojs/transparent.gif?ray\u003d5c514b3e6a130977\u0027)\"\u003e \n \u003c/div\u003e \n \u003c/div\u003e \n \u003cdiv class\u003d\"attribution\"\u003e\n DDoS protection by \n \u003ca href\u003d\"https://www.cloudflare.com/5xx-error-landing?utm_source\u003diuam\" target\u003d\"_blank\"\u003eCloudflare\u003c/a\u003e \n \u003cbr\u003e \n \u003cspan class\u003d\"ray_id\"\u003eRay ID: \u003ccode\u003e5c514b3e6a130977\u003c/code\u003e\u003c/span\u003e \n \u003c/div\u003e \u003c/td\u003e \n \u003c/tr\u003e \n \u003c/tbody\u003e\n \u003c/table\u003e \n \u003c/body\u003e\n\u003c/html\u003e/","categories":[],"tags":"null"}""" -private const val MMRSOURCE_32 = """{"language":"pt-BR","name":"Remangas","base_url":"https://remangas.top","supports_latest":true,"isNsfw":false,"item_url":"https://remangas.top/manga/","categories":[{"id":"1","name":"Ação"},{"id":"2","name":"Aventura"},{"id":"3","name":"Comédia"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasia"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Histórico"},{"id":"11","name":"Terror"},{"id":"12","name":"Josei"},{"id":"13","name":"Artes Marciais"},{"id":"14","name":"Adulto"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mistério"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psicológico"},{"id":"19","name":"Romance"},{"id":"20","name":"Vida escolar"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Esporte"},{"id":"29","name":"Sobrenatural"},{"id":"30","name":"Tragédia"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"Isekai"},{"id":"34","name":"Guerra"},{"id":"35","name":"Sobrevivência"},{"id":"36","name":"Romance?"}],"tags":[{"id":"seinen","name":"seinen"},{"id":"ecchi","name":"ecchi"},{"id":"harem","name":"harem"},{"id":"isekai","name":"isekai"},{"id":"guerra","name":"guerra"},{"id":"shounen","name":"shounen"},{"id":"18","name":"+18"},{"id":"adulto","name":"Adulto"},{"id":"fantasia","name":"Fantasia"},{"id":"romance","name":"Romance"},{"id":"vida-escolar","name":"Vida Escolar"},{"id":"acao","name":"Ação"},{"id":"misterio","name":"mistério"},{"id":"terror","name":"Terror"},{"id":"detetive","name":"Detetive"},{"id":"misterios","name":"Mistérios"},{"id":"incesto","name":"Incesto"},{"id":"comedia-romantica","name":"Comédia Romantica"},{"id":"alquimia","name":"Alquimia"},{"id":"manhua","name":"Manhua"},{"id":"colorido","name":"Colorido"},{"id":"antologia","name":"Antologia"},{"id":"dragoes","name":"Dragões"},{"id":"briga-de-rua","name":"Briga de Rua"},{"id":"anti-heroi","name":"Anti Herói"},{"id":"zoera","name":"Zoera"},{"id":"protagonista-overpower","name":"Protagonista Overpower"},{"id":"psicologico","name":"Psicológico"},{"id":"protagonista-badass","name":"Protagonista Badass"},{"id":"battleroyale","name":"Battleroyale"},{"id":"apocalispe-zumbi","name":"Apocalispe Zumbi"},{"id":"mc-nao-virjao","name":"Mc Não Virjão"},{"id":"escola-de-magia","name":"Escola de Magia"},{"id":"tensei","name":"Tensei"},{"id":"shota-badass","name":"Shota Badass"},{"id":"isekai-vai-e-volta","name":"Isekai Vai e Volta"},{"id":"gore","name":"gore"},{"id":"garota-monstro","name":"Garota Monstro"},{"id":"maid","name":"Maid"},{"id":"gal","name":"Gal"}]}""" -private const val MMRSOURCE_33 = """{"language":"pt-BR","name":"AnimaRegia","base_url":"https://animaregia.net","supports_latest":true,"isNsfw":false,"item_url":"http://animaregia.net/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":"null"}""" -private const val MMRSOURCE_34 = """{"language":"tr","name":"NoxSubs","base_url":"https://noxsubs.com","supports_latest":true,"isNsfw":false,"item_url":"https://noxsubs.com/manga/","categories":[{"id":"1","name":"Harem"},{"id":"2","name":"Mecha"},{"id":"3","name":"Seinen"},{"id":"4","name":"Shounen"},{"id":"5","name":"Slice of Life"},{"id":"6","name":"Trajedi"},{"id":"7","name":"Doğaüstü"},{"id":"8","name":"Spor"},{"id":"9","name":"Bilim-Kurgu"},{"id":"10","name":"Okul Hayatı"},{"id":"11","name":"Romantizm"},{"id":"12","name":"Dövüş Sanatları"},{"id":"13","name":"Psikolojik"},{"id":"14","name":"Gizem"},{"id":"15","name":"Korku"},{"id":"16","name":"Dram"},{"id":"17","name":"Aksiyon"},{"id":"18","name":"Komedi"},{"id":"19","name":"Macera"},{"id":"20","name":"Tek Atımlık"},{"id":"21","name":"Tarihi"},{"id":"22","name":"Fantezi"},{"id":"23","name":"Askeri"},{"id":"24","name":"Büyü"}],"tags":[{"id":"tag","name":"괴물아기"},{"id":"canavar-cocuk","name":"Canavar Çocuk"},{"id":"monster-child","name":"Monster Child"},{"id":"abyss-rage","name":"Abyss Rage"},{"id":"diamond-no-ace-act-ii","name":"Diamond no Ace Act II"},{"id":"diamond-no-ace","name":"Diamond no Ace"},{"id":"soloist-of-prison","name":"Soloist of Prison"},{"id":"reincarnation-no-kaben","name":"Reincarnation no Kaben"},{"id":"youjo-senki","name":"Youjo Senki"},{"id":"devil-of-rhine","name":"Devil of Rhine"},{"id":"saga-of-tanya-the-evil","name":"Saga of Tanya the Evil"},{"id":"rikudou","name":"Rikudou"},{"id":"rikudo","name":"Rikudo"},{"id":"mf-ghost","name":"MF Ghost"},{"id":"komi-san","name":"Komi-san"},{"id":"komi-san-wa-komyushou-desu","name":"Komi-san wa Komyushou Desu"},{"id":"die-dai","name":"Die Dai"},{"id":"pounding","name":"Pounding"},{"id":"panda","name":"Panda"},{"id":"agrikesici","name":"Ağrıkesici"},{"id":"intikam","name":"İntikam"},{"id":"onepiece","name":"#OnePiece"},{"id":"oneshot","name":"#OneShot"},{"id":"tanya","name":"#Tanya"},{"id":"senryuushoujo","name":"#SenryuuShoujo"},{"id":"gorgon","name":"#Gorgon"},{"id":"theblueland","name":"#TheBlueLand"},{"id":"reenkarnasyon","name":"Reenkarnasyon"},{"id":"onepieceacademy","name":"#OnePieceAcademy"},{"id":"ev-erkegi","name":"EV ERKEĞİ"},{"id":"onepieceboichi","name":"#OnePieceBoichi"},{"id":"warlord","name":"#Warlord"},{"id":"sheriffevans","name":"#SheriffEvans"},{"id":"goh","name":"#GOH"},{"id":"godofhighschool","name":"#GodofHighschool"},{"id":"serifevans","name":"#ŞerifEvans"},{"id":"shy","name":"#SHY"},{"id":"ponko","name":"#Ponko"}]}""" -private const val MMRSOURCE_35 = """{"language":"id","name":"MangaYu","base_url":"https://mangayu.com","supports_latest":true,"isNsfw":false,"item_url":"https://mangayu.com/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"Project"},{"id":"34","name":"Isekai"},{"id":"35","name":"Reincarnation"}],"tags":[{"id":"magic","name":"Magic"},{"id":"manhua","name":"Manhua"},{"id":"doujinshi","name":"Doujinshi"}]}""" -private const val MMRSOURCE_36 = """{"language":"tr","name":"MangaVadisi","base_url":"http://manga-v2.mangavadisi.org","supports_latest":true,"isNsfw":false,"item_url":"http://manga-v2.mangavadisi.org/manga/","categories":[{"id":"1","name":"Aksiyon"},{"id":"2","name":"Macera"},{"id":"3","name":"Komedi"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantastik"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Tarihi"},{"id":"11","name":"Korku"},{"id":"12","name":"Josei"},{"id":"13","name":"Dövüş Sanatları"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Gizem"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psikolojik"},{"id":"19","name":"Romantizm"},{"id":"20","name":"Okul Hayatı"},{"id":"21","name":"Bilim Kurgu"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Günlük Yaşam"},{"id":"28","name":"Spor"},{"id":"29","name":"Doğaüstü"},{"id":"30","name":"Trajedi"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":"null"}""" -private const val MMRSOURCE_37 = """{"language":"id","name":"MangaID","base_url":"https://mangaid.click","supports_latest":true,"isNsfw":false,"item_url":"https://mangaid.click/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"Psychological"},{"id":"18","name":"Romance"},{"id":"19","name":"School Life"},{"id":"20","name":"Sci-fi"},{"id":"21","name":"Seinen"},{"id":"22","name":"Shoujo"},{"id":"23","name":"Shoujo Ai"},{"id":"24","name":"Shounen"},{"id":"25","name":"Shounen Ai"},{"id":"26","name":"Slice of Life"},{"id":"27","name":"Sports"},{"id":"28","name":"Supernatural"},{"id":"29","name":"Tragedy"},{"id":"30","name":"Yaoi"},{"id":"31","name":"Yuri"},{"id":"32","name":"School"},{"id":"33","name":"Isekai"},{"id":"34","name":"Military"}],"tags":"null"}""" -private const val MMRSOURCE_38 = """{"language":"fr","name":"Jpmangas","base_url":"https://www.jpmangas.com","supports_latest":true,"isNsfw":false,"item_url":"https://www.jpmangas.com/lecture-en-ligne/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":"null"}""" -private const val MMRSOURCE_39 = """{"language":"fr","name":"Op-VF","base_url":"https://www.op-vf.com","supports_latest":true,"isNsfw":false,"item_url":"https://www.op-vf.com/manga/","categories":[],"tags":"null"}""" -private const val MMRSOURCE_40 = """{"language":"fr","name":"FR Scan","base_url":"https://www.frscan.me","supports_latest":true,"isNsfw":false,"item_url":"https://www.frscan.me/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"Vie Scolaire"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Tranche de vie"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedie"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"Autre"},{"id":"34","name":"BD Occidentale"},{"id":"35","name":"Webtoon"}],"tags":"null"}""" -private const val MMRSOURCE_41 = """{"language":"other","name":"HentaiShark","base_url":"https://www.hentaishark.com","supports_latest":true,"isNsfw":true,"item_url":"https://www.hentaishark.com/manga/","categories":[{"id":"1","name":"Doujinshi"},{"id":"2","name":"Manga"},{"id":"3","name":"Western"},{"id":"4","name":"non-h"},{"id":"5","name":"imageset"},{"id":"6","name":"artistcg"},{"id":"7","name":"misc"}],"tags":"null"}""" +private const val MMRSOURCE_1 = + """{"language":"ar","name":"مانجا اون لاين","base_url":"https://onma.me","supports_latest":false,"isNsfw":false,"item_url":"\u003c!doctype html\u003e\n\u003chtml lang\u003d\"en-US\"\u003e\n \u003chead\u003e \n \u003cmeta charset\u003d\"UTF-8\"\u003e \n \u003cmeta http-equiv\u003d\"Content-Type\" content\u003d\"text/html; charset\u003dUTF-8\"\u003e \n \u003cmeta http-equiv\u003d\"X-UA-Compatible\" content\u003d\"IE\u003dEdge,chrome\u003d1\"\u003e \n \u003cmeta name\u003d\"robots\" content\u003d\"noindex, nofollow\"\u003e \n \u003cmeta name\u003d\"viewport\" content\u003d\"width\u003ddevice-width,initial-scale\u003d1\"\u003e \n \u003cmeta http-equiv\u003d\"refresh\" content\u003d\"12\"\u003e \n \u003ctitle\u003eJust a moment...\u003c/title\u003e \n \u003cstyle type\u003d\"text/css\"\u003e\n html, body {width: 100%; height: 100%; margin: 0; padding: 0;}\n body {background-color: #ffffff; color: #000000; font-family:-apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, \"Helvetica Neue\",Arial, sans-serif; font-size: 16px; line-height: 1.7em;-webkit-font-smoothing: antialiased;}\n h1 { text-align: center; font-weight:700; margin: 16px 0; font-size: 32px; color:#000000; line-height: 1.25;}\n p {font-size: 20px; font-weight: 400; margin: 8px 0;}\n p, .attribution, {text-align: center;}\n #spinner {margin: 0 auto 30px auto; display: block;}\n .attribution {margin-top: 32px;}\n @keyframes fader { 0% {opacity: 0.2;} 50% {opacity: 1.0;} 100% {opacity: 0.2;} }\n @-webkit-keyframes fader { 0% {opacity: 0.2;} 50% {opacity: 1.0;} 100% {opacity: 0.2;} }\n #cf-bubbles \u003e .bubbles { animation: fader 1.6s infinite;}\n #cf-bubbles \u003e .bubbles:nth-child(2) { animation-delay: .2s;}\n #cf-bubbles \u003e .bubbles:nth-child(3) { animation-delay: .4s;}\n .bubbles { background-color: #f58220; width:20px; height: 20px; margin:2px; border-radius:100%; display:inline-block; }\n a { color: #2c7cb0; text-decoration: none; -moz-transition: color 0.15s ease; -o-transition: color 0.15s ease; -webkit-transition: color 0.15s ease; transition: color 0.15s ease; }\n a:hover{color: #f4a15d}\n .attribution{font-size: 16px; line-height: 1.5;}\n .ray_id{display: block; margin-top: 8px;}\n #cf-wrapper #challenge-form { padding-top:25px; padding-bottom:25px; }\n #cf-hcaptcha-container { text-align:center;}\n #cf-hcaptcha-container iframe { display: inline-block;}\n \u003c/style\u003e \n \u003cscript type\u003d\"text/javascript\"\u003e\n //\u003c![CDATA[\n (function(){\n \n window._cf_chl_opt\u003d{\n cvId: \"1\",\n cType: \"non-interactive\",\n cNounce: \"27266\",\n cRay: \"5c5148b2aa9a741d\",\n cHash: \"22934b696b71c0f\",\n cRq: {\n d: \"U/ooq0oekkdh8GFXZJ2ANrvSrTUVHsbYRD2fP0Izbj0qtKEl7svzbsEy+QVJqReUOR7QDeUokISlwC4SfgAlHnD71v6YVksnusY5mjyNFpMTJZdolqn6vAte6g4tsXLKBLUMh9M5+IOLGP7S+shnPA6lVXHunWPS29c6ihLCtSvf5lA9EVyaNne9Oh2TrsoarDNd9k0VY+HD3t5liMUvpr7XRafQd9oUdZmc1jeFUltLyTJse+WQsQQZO8lfBovEa9Ck4PU1hrj6tHTcNvfahTazhgnSAqYp7wkIpi3Qnt1XtLcqQ5BlBmlOTOp0vIa7AkgcO9FJ/ZhiXySKUyUfPz12wWfbk4eitAhaCb61moenJFj80TYvyR/6JtEnfuJU2jctNUOIQXKOit0wpjXjuQ\u003d\u003d\",\n t: \"MTU5NzgxMjk0My43OTIwMDA\u003d\",\n m: \"gmc6usNZgNNE0Ka7n7At58p1NKiHx7+HWAI6XbSGTF8\u003d\",\n i1: \"c7feL0KuhzPTaNVONVALtg\u003d\u003d\",\n i2: \"0o+QHTsC+62ZUfjhzEu1cA\u003d\u003d\",\n }\n }\n window._cf_chl_enter \u003d function(){window._cf_chl_opt.p\u003d1};\n \n var a \u003d function() {try{return !!window.addEventListener} catch(e) {return !1} },\n b \u003d function(b, c) {a() ? document.addEventListener(\"DOMContentLoaded\", b, c) : document.attachEvent(\"onreadystatechange\", b)};\n b(function(){\n var cookiesEnabled\u003d(navigator.cookieEnabled)? true : false;\n var cookieSupportInfix\u003dcookiesEnabled?\u0027/nocookie\u0027:\u0027/cookie\u0027;\n var a \u003d document.getElementById(\u0027cf-content\u0027);a.style.display \u003d \u0027block\u0027;\n var isIE \u003d /(MSIE|Trident\\/|Edge\\/)/i.test(window.navigator.userAgent);\n var trkjs \u003d isIE ? new Image() : document.createElement(\u0027img\u0027);\n trkjs.setAttribute(\"src\", \"/cdn-cgi/images/trace/jschal/js\"+cookieSupportInfix+\"/transparent.gif?ray\u003d5c5148b2aa9a741d\");\n trkjs.id \u003d \"trk_jschal_js\";\n trkjs.setAttribute(\"alt\", \"\");\n document.body.appendChild(trkjs);\n \n document.body.appendChild(trkjs);\n var cpo \u003d document.createElement(\u0027script\u0027);\n cpo.type \u003d \u0027text/javascript\u0027;\n cpo.src \u003d \"/cdn-cgi/challenge-platform/orchestrate/jsch/v1\";\n var done \u003d false;\n cpo.onload \u003d cpo.onreadystatechange \u003d function() {\n if (!done \u0026\u0026 (!this.readyState || this.readyState \u003d\u003d\u003d \"loaded\" || this.readyState \u003d\u003d\u003d \"complete\")) {\n done \u003d true;\n cpo.onload \u003d cpo.onreadystatechange \u003d null;\n window._cf_chl_enter()\n }\n };\n document.getElementsByTagName(\u0027head\u0027)[0].appendChild(cpo);\n \n }, false);\n })();\n //]]\u003e\n\u003c/script\u003e \n \u003c/head\u003e \n \u003cbody\u003e \n \u003ctable width\u003d\"100%\" height\u003d\"100%\" cellpadding\u003d\"20\"\u003e \n \u003ctbody\u003e\n \u003ctr\u003e \n \u003ctd align\u003d\"center\" valign\u003d\"middle\"\u003e \n \u003cdiv class\u003d\"cf-browser-verification cf-im-under-attack\"\u003e \n \u003cnoscript\u003e \n \u003ch1 data-translate\u003d\"turn_on_js\" style\u003d\"color:#bd2426;\"\u003ePlease turn JavaScript on and reload the page.\u003c/h1\u003e \n \u003c/noscript\u003e \n \u003cdiv id\u003d\"cf-content\" style\u003d\"display:none\"\u003e \n \u003cdiv id\u003d\"cf-bubbles\"\u003e \n \u003cdiv class\u003d\"bubbles\"\u003e\u003c/div\u003e \n \u003cdiv class\u003d\"bubbles\"\u003e\u003c/div\u003e \n \u003cdiv class\u003d\"bubbles\"\u003e\u003c/div\u003e \n \u003c/div\u003e \n \u003ch1\u003e\u003cspan data-translate\u003d\"checking_browser\"\u003eChecking your browser before accessing\u003c/span\u003e onma.me.\u003c/h1\u003e \n \u003cdiv id\u003d\"no-cookie-warning\" data-translate\u003d\"turn_on_cookies\" style\u003d\"display:none\"\u003e \n \u003cp data-translate\u003d\"turn_on_cookies\" style\u003d\"color:#bd2426;\"\u003ePlease enable Cookies and reload the page.\u003c/p\u003e \n \u003c/div\u003e \n \u003cp data-translate\u003d\"process_is_automatic\"\u003eThis process is automatic. Your browser will redirect to your requested content shortly.\u003c/p\u003e \n \u003cp data-translate\u003d\"allow_5_secs\"\u003ePlease allow up to 5 seconds…\u003c/p\u003e \n \u003c/div\u003e \n \u003cform class\u003d\"challenge-form\" id\u003d\"challenge-form\" action\u003d\"/?__cf_chl_jschl_tk__\u003d9a33cb5b4e88000caf6b2022e0a2766eec8928aa-1597812943-0-AZiYFPUiw2yy1MlWtwnsXm2ImZdKbLsh6mOicXy_9fTwGAH_yNpBN8pHF08dUTj8P2jxN_PE8DidQGP1LQuHsvhhTmXttMjM8Yem2nIN-bpRxRGiGw-sifmFqk4KXVwKwj-8FZcsd2Sc9QCodXWwd1rpxuMAjK49Cff3jYymd5wJ1W80lDLd-zyckXIziUWYZNdyreSwDYFXj7MnTlnPyIlLVeXJgcH9JWvDT-TiNhLFerDm8aWqlL2jRETxQwIwCz5EJtkYMBdLLJVGCknor7k\" method\u003d\"POST\" enctype\u003d\"application/x-www-form-urlencoded\"\u003e \n \u003cinput type\u003d\"hidden\" name\u003d\"r\" value\u003d\"120fd8478c139c87e289ca5af44af1253b0ffd53-1597812943-0-AdjP8FgktnrEFVeaQYhGAW+vEopepaW92IZmI7TS7z4GpFe2eQPHirZuMVpTzYb6rXflGaPVBndLhIS505VEga+vGt8KludTsYHwPWr3zNPMiD4BjaVEE4HXUxyJzvomdp58qdaOEvMSi0z9u/6i2m8KqMmiB/3cUIbon3av0ogE1ZtzcjglQ+pvrzLN3HGhey+b4oGMxz8Xn61syN5DOmgalSmkQgaKmeGfJq7BDms2dpqXfAggqqUvWpOy0yN+IGdn9q0f1/4QCk8EfRtou48veQhCMh7tqCW+nSaDXgi3laia/xgRbegl44LSr8orYQ988cgJV/IsMuavYnKpAFKJQY/aQQDUsBtq+4w3cFdiw1GS+vhlah2vFazUeukGIwBHLPF6R6n43eWsO3XLmCHi4Yt9emDOXoEPDWZaanidyTUObgkM6xTYHkhNgiIsw5Hj7YmJ6EMF0UdMHerbXjYOxjjshgmtAbDSIgaNiK9Q2SQ+Wyv2RlQjSDFiNZGCDfgYiLTcCYxg39Le6+R12utXCkwJZJA1kOs3OkrXt8JqGpM0wpcCTYvxOk7OjWYItkO7U82/EW44Ehk/WjCDjKwLeigsI/XUAvJkp36Bg8wr2T2yjKuU+DNC6Bi7Xj98G8UEcyKFlmKuyiGW7UaV9OXguRBBDR82Av13w3vVniOoKj54tMOPMwuOEh8JfynUqhN1GZtWNbBiE6uC3IgDYOqXJEWnEKSGM4AcQFus5uXoab8aix9BPJe4wcD/UmIGd2tt2KR+XZILWCBJdm/MWHjNBlsw/DdXkB54I1/U7Oox5OTs2EJiR0l8zhi5LHJVufhhcTZ0mRFp0gUvVunCoM1/tXq23V5XLhq5dxqoNXIxYyOskBvdxVO5WawPYeEmNyFGcBwILR5plWzJdTzsJ/uIzT3wr+VqAbYuKHvmSZZuzdR+YDHhByf9yxjHWtnJcuoRQj6awqu/fH7zsunVebKHGC5SPGjk5v3zmAspt3Byry65xA33eRdktm12LuuPtqVNmX3noeOWnzcR2EOYckXR8aU4o+XdTvUg1600OhIkJy8dbYbyf/L1MI1sMztNd1vkKCEJfHEotN2Ddx9bifiTWt7IjaHwcJyhVXtjnBmTyFfnB79sIKDv4ff1nuxkfQ\u003d\u003d\"\u003e \n \u003cinput type\u003d\"hidden\" value\u003d\"7d60f750de6bee022065b5e1f4fd8151\" id\u003d\"jschl-vc\" name\u003d\"jschl_vc\"\u003e \n \u003c!-- \u003cinput type\u003d\"hidden\" value\u003d\"\" id\u003d\"jschl-vc\" name\u003d\"jschl_vc\"/\u003e --\u003e \n \u003cinput type\u003d\"hidden\" name\u003d\"pass\" value\u003d\"1597812947.792-h+Bh1cSKzL\"\u003e \n \u003cinput type\u003d\"hidden\" id\u003d\"jschl-answer\" name\u003d\"jschl_answer\"\u003e \n \u003c/form\u003e \n \u003cdiv id\u003d\"trk_jschal_nojs\" style\u003d\"background-image:url(\u0027/cdn-cgi/images/trace/jschal/nojs/transparent.gif?ray\u003d5c5148b2aa9a741d\u0027)\"\u003e \n \u003c/div\u003e \n \u003c/div\u003e \u003ca href\u003d\"https://robinsonsdrlg.com/direct.php?tag\u003d7\"\u003e\u003cspan style\u003d\"display: none;\"\u003etable\u003c/span\u003e\u003c/a\u003e \n \u003cdiv class\u003d\"attribution\"\u003e\n DDoS protection by \n \u003ca href\u003d\"https://www.cloudflare.com/5xx-error-landing?utm_source\u003diuam\" target\u003d\"_blank\"\u003eCloudflare\u003c/a\u003e \n \u003cbr\u003e \n \u003cspan class\u003d\"ray_id\"\u003eRay ID: \u003ccode\u003e5c5148b2aa9a741d\u003c/code\u003e\u003c/span\u003e \n \u003c/div\u003e \u003c/td\u003e \n \u003c/tr\u003e \n \u003c/tbody\u003e\n \u003c/table\u003e \n \u003c/body\u003e\n\u003c/html\u003e/","categories":[],"tags":"null"}""" +private const val MMRSOURCE_2 = + """{"language":"en","name":"Read Comics Online","base_url":"https://readcomicsonline.ru","supports_latest":true,"isNsfw":false,"item_url":"https://readcomicsonline.ru/comic/","categories":[{"id":"1","name":"One Shots \u0026 TPBs"},{"id":"2","name":"DC Comics"},{"id":"3","name":"Marvel Comics"},{"id":"4","name":"Boom Studios"},{"id":"5","name":"Dynamite"},{"id":"6","name":"Rebellion"},{"id":"7","name":"Dark Horse"},{"id":"8","name":"IDW"},{"id":"9","name":"Archie"},{"id":"10","name":"Graphic India"},{"id":"11","name":"Darby Pop"},{"id":"12","name":"Oni Press"},{"id":"13","name":"Icon Comics"},{"id":"14","name":"United Plankton"},{"id":"15","name":"Udon"},{"id":"16","name":"Image Comics"},{"id":"17","name":"Valiant"},{"id":"18","name":"Vertigo"},{"id":"19","name":"Devils Due"},{"id":"20","name":"Aftershock Comics"},{"id":"21","name":"Antartic Press"},{"id":"22","name":"Action Lab"},{"id":"23","name":"American Mythology"},{"id":"24","name":"Zenescope"},{"id":"25","name":"Top Cow"},{"id":"26","name":"Hermes Press"},{"id":"27","name":"451"},{"id":"28","name":"Black Mask"},{"id":"29","name":"Chapterhouse Comics"},{"id":"30","name":"Red 5"},{"id":"31","name":"Heavy Metal"},{"id":"32","name":"Bongo"},{"id":"33","name":"Top Shelf"},{"id":"34","name":"Bubble"},{"id":"35","name":"Boundless"},{"id":"36","name":"Avatar Press"},{"id":"37","name":"Space Goat Productions"},{"id":"38","name":"BroadSword Comics"},{"id":"39","name":"AAM-Markosia"},{"id":"40","name":"Fantagraphics"},{"id":"41","name":"Aspen"},{"id":"42","name":"American Gothic Press"},{"id":"43","name":"Vault"},{"id":"44","name":"215 Ink"},{"id":"45","name":"Abstract Studio"},{"id":"46","name":"Albatross"},{"id":"47","name":"ARH Comix"},{"id":"48","name":"Legendary Comics"},{"id":"49","name":"Monkeybrain"},{"id":"50","name":"Joe Books"},{"id":"51","name":"MAD"},{"id":"52","name":"Comics Experience"},{"id":"53","name":"Alterna Comics"},{"id":"54","name":"Lion Forge"},{"id":"55","name":"Benitez"},{"id":"56","name":"Storm King"},{"id":"57","name":"Sucker"},{"id":"58","name":"Amryl Entertainment"},{"id":"59","name":"Ahoy Comics"},{"id":"60","name":"Mad Cave"},{"id":"61","name":"Coffin Comics"},{"id":"62","name":"Magnetic Press"},{"id":"63","name":"Ablaze"},{"id":"64","name":"Europe Comics"},{"id":"65","name":"Humanoids"},{"id":"66","name":"TKO"},{"id":"67","name":"Soleil"},{"id":"68","name":"SAF Comics"},{"id":"69","name":"Scholastic"},{"id":"70","name":"Upshot"},{"id":"71","name":"Stranger Comics"},{"id":"72","name":"Inverse"},{"id":"73","name":"Virus"}],"tags":"null"}""" +private const val MMRSOURCE_3 = + """{"language":"en","name":"Biamam Scans","base_url":"https://biamam.com","supports_latest":true,"isNsfw":false,"item_url":"http://biamam.com/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"4-Koma"},{"id":"34","name":"Cooking"},{"id":"35","name":"Isekai"}],"tags":"null"}""" +private const val MMRSOURCE_4 = + """{"language":"en","name":"Fallen Angels","base_url":"https://manga.fascans.com","supports_latest":true,"isNsfw":false,"item_url":"https://manga.fascans.com/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"4-Koma"},{"id":"34","name":"Cooking"}],"tags":"null"}""" +private const val MMRSOURCE_5 = + """{"language":"en","name":"White Cloud Pavilion","base_url":"https://www.whitecloudpavilion.com/manga/free","supports_latest":true,"isNsfw":false,"item_url":"https://www.whitecloudpavilion.com/manga/free/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":"null"}""" +private const val MMRSOURCE_6 = + """{"language":"fr","name":"Scan FR","base_url":"https://www.scan-fr.co","supports_latest":true,"isNsfw":false,"item_url":"https://www.scan-fr.cc/manga/","categories":[{"id":"1","name":"Comedy"},{"id":"2","name":"Doujinshi"},{"id":"3","name":"Drama"},{"id":"4","name":"Ecchi"},{"id":"5","name":"Fantasy"},{"id":"6","name":"Gender Bender"},{"id":"7","name":"Josei"},{"id":"8","name":"Mature"},{"id":"9","name":"Mecha"},{"id":"10","name":"Mystery"},{"id":"11","name":"One Shot"},{"id":"12","name":"Psychological"},{"id":"13","name":"Romance"},{"id":"14","name":"School Life"},{"id":"15","name":"Sci-fi"},{"id":"16","name":"Seinen"},{"id":"17","name":"Shoujo"},{"id":"18","name":"Shoujo Ai"},{"id":"19","name":"Shounen"},{"id":"20","name":"Shounen Ai"},{"id":"21","name":"Slice of Life"},{"id":"22","name":"Sports"},{"id":"23","name":"Supernatural"},{"id":"24","name":"Tragedy"},{"id":"25","name":"Yaoi"},{"id":"26","name":"Yuri"},{"id":"27","name":"Comics"},{"id":"28","name":"Autre"},{"id":"29","name":"BD Occidentale"},{"id":"30","name":"Manhwa"},{"id":"31","name":"Action"},{"id":"32","name":"Aventure"}],"tags":"null"}""" +private const val MMRSOURCE_7 = + """{"language":"fr","name":"Scan VF","base_url":"https://www.scan-vf.net","supports_latest":true,"isNsfw":false,"item_url":"https://www.scan-vf.net/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":"null"}""" +private const val MMRSOURCE_8 = + """{"language":"fr","name":"Scan OP","base_url":"https://scan-op.com","supports_latest":true,"isNsfw":false,"item_url":"http://scan-op.net/manga/","categories":[{"id":"1","name":"Comedy"},{"id":"2","name":"Doujinshi"},{"id":"3","name":"Drama"},{"id":"4","name":"Ecchi"},{"id":"5","name":"Fantasy"},{"id":"6","name":"Gender Bender"},{"id":"7","name":"Josei"},{"id":"8","name":"Mature"},{"id":"9","name":"Mecha"},{"id":"10","name":"Mystery"},{"id":"11","name":"One Shot"},{"id":"12","name":"Psychological"},{"id":"13","name":"Romance"},{"id":"14","name":"School Life"},{"id":"15","name":"Sci-fi"},{"id":"16","name":"Seinen"},{"id":"17","name":"Shoujo"},{"id":"18","name":"Shoujo Ai"},{"id":"19","name":"Shounen"},{"id":"20","name":"Shounen Ai"},{"id":"21","name":"Slice of Life"},{"id":"22","name":"Sports"},{"id":"23","name":"Supernatural"},{"id":"24","name":"Tragedy"},{"id":"25","name":"Yaoi"},{"id":"26","name":"Yuri"},{"id":"27","name":"Comics"},{"id":"28","name":"Autre"}],"tags":"null"}""" +private const val MMRSOURCE_9 = + """{"language":"id","name":"Komikid","base_url":"https://www.komikid.com","supports_latest":true,"isNsfw":false,"item_url":"https://www.komikid.com/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Fantasy"},{"id":"7","name":"Gender Bender"},{"id":"8","name":"Historical"},{"id":"9","name":"Horror"},{"id":"10","name":"Josei"},{"id":"11","name":"Martial Arts"},{"id":"12","name":"Mature"},{"id":"13","name":"Mecha"},{"id":"14","name":"Mystery"},{"id":"15","name":"One Shot"},{"id":"16","name":"Psychological"},{"id":"17","name":"Romance"},{"id":"18","name":"School Life"},{"id":"19","name":"Sci-fi"},{"id":"20","name":"Seinen"},{"id":"21","name":"Shoujo"},{"id":"22","name":"Shoujo Ai"},{"id":"23","name":"Shounen"},{"id":"24","name":"Shounen Ai"},{"id":"25","name":"Slice of Life"},{"id":"26","name":"Sports"},{"id":"27","name":"Supernatural"},{"id":"28","name":"Tragedy"},{"id":"29","name":"Yaoi"},{"id":"30","name":"Yuri"}],"tags":"null"}""" +private const val MMRSOURCE_10 = + """{"language":"pl","name":"ToraScans","base_url":"http://torascans.pl","supports_latest":true,"isNsfw":false,"item_url":"http://torascans.pl/manga/","categories":[{"id":"1","name":"Akcja"},{"id":"2","name":"Przygodowe"},{"id":"3","name":"Komedia"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Dramat"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Zamiana płci"},{"id":"9","name":"Harem"},{"id":"10","name":"Historyczne"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Sztuki walki"},{"id":"14","name":"Dla dorosłych"},{"id":"15","name":"Mecha"},{"id":"16","name":"Tajemnica"},{"id":"17","name":"Psychologiczne"},{"id":"18","name":"Romans"},{"id":"19","name":"Szkolne życie"},{"id":"20","name":"S-F"},{"id":"21","name":"Seinen"},{"id":"22","name":"Shoujo"},{"id":"23","name":"Shoujo Ai"},{"id":"24","name":"Shounen"},{"id":"25","name":"Shounen Ai"},{"id":"26","name":"Okruchy życia"},{"id":"27","name":"Sportowe"},{"id":"28","name":"Supermoce"},{"id":"29","name":"Tragedia"},{"id":"30","name":"Yaoi"},{"id":"31","name":"Yuri"},{"id":"32","name":"Smut"},{"id":"33","name":"Isekai"}],"tags":[{"id":"akcja","name":"Akcja"},{"id":"doujinshi","name":"Doujinshi"},{"id":"dramat","name":"Dramat"},{"id":"fantasy","name":"Fantasy"},{"id":"harem","name":"Harem"},{"id":"historyczne","name":"Historyczne"},{"id":"horror","name":"Horror"},{"id":"isekai","name":"Isekai"},{"id":"josei","name":"Josei"},{"id":"komedia","name":"Komedia"},{"id":"okruchy-zycia","name":"Okruchy życia"},{"id":"przygodowe","name":"Przygodowe"},{"id":"psychologiczne","name":"Psychologiczne"},{"id":"romans","name":"Romans"},{"id":"s-f","name":"S-F"},{"id":"seinen","name":"Seinen"},{"id":"shoujo-ai","name":"Shoujo Ai"},{"id":"shoujou","name":"Shoujou"},{"id":"shounen","name":"Shounen"},{"id":"smut","name":"Smut"},{"id":"sportowe","name":"Sportowe"},{"id":"supermoce","name":"Supermoce"},{"id":"szkolne-zycie","name":"Szkolne życie"},{"id":"sztuki-walki","name":"Sztuki walki"},{"id":"tajemnica","name":"Tajemnica"},{"id":"tragedia","name":"Tragedia"},{"id":"yaoi","name":"Yaoi"},{"id":"yuri","name":"Yuri"},{"id":"zamiana-pci","name":"Zamiana płci"}]}""" +private const val MMRSOURCE_11 = + """{"language":"pt-BR","name":"Comic Space","base_url":"https://www.comicspace.com.br","supports_latest":false,"isNsfw":false,"item_url":"https://acomic.space/manga/","categories":[],"tags":"null"}""" +private const val MMRSOURCE_12 = + """{"language":"pt-BR","name":"Mangás Yuri","base_url":"https://mangasyuri.net","supports_latest":true,"isNsfw":false,"item_url":"https://mangasyuri.net/manga/","categories":[{"id":"1","name":"Ação"},{"id":"2","name":"Aventura"},{"id":"3","name":"Comédia"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasia"},{"id":"8","name":"Gênero Trocado"},{"id":"9","name":"Harém"},{"id":"10","name":"Histórico"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Artes Marciais"},{"id":"14","name":"Maduro"},{"id":"15","name":"Robô"},{"id":"16","name":"Mistério"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psicológico"},{"id":"19","name":"Romance"},{"id":"20","name":"Vida Escolar"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Cotidiano"},{"id":"26","name":"Esportes"},{"id":"27","name":"Sobrenatural"},{"id":"28","name":"Tragédia"},{"id":"29","name":"Yuri"},{"id":"30","name":"Adulto"},{"id":"31","name":"Shounen"}],"tags":"null"}""" +private const val MMRSOURCE_13 = + """{"language":"pl","name":"Dracaena","base_url":"https://dracaena.webd.pl/czytnik","supports_latest":true,"isNsfw":false,"item_url":"https://dracaena.webd.pl/czytnik/manga/","categories":[{"id":"1","name":"Dramat"},{"id":"2","name":"Fantasy"},{"id":"3","name":"Historyczny"},{"id":"4","name":"Komedia"},{"id":"5","name":"Okruchy Życia"},{"id":"6","name":"Romans"},{"id":"7","name":"Shoujo"},{"id":"8","name":"Shounen-ai"},{"id":"9","name":"Sport"},{"id":"10","name":"Tragedia"},{"id":"11","name":"Yaoi"},{"id":"12","name":"Szkolne Życie"},{"id":"13","name":"Nadprzyrodzone moce"},{"id":"14","name":"Psychologiczne"},{"id":"15","name":"Science Fiction"},{"id":"16","name":"Josei"},{"id":"17","name":"Akcja"}],"tags":"null"}""" +private const val MMRSOURCE_14 = + """{"language":"pl","name":"Nikushima","base_url":"http://azbivo.webd.pro","supports_latest":true,"isNsfw":false,"item_url":"http://azbivo.webd.pro/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shounen"},{"id":"25","name":"Slice of Life"},{"id":"26","name":"Sports"},{"id":"27","name":"Supernatural"},{"id":"28","name":"Tragedy"},{"id":"29","name":"Isekai"}],"tags":"null"}""" +private const val MMRSOURCE_15 = + """{"language":"tr","name":"MangaHanta","base_url":"http://mangahanta.com","supports_latest":true,"isNsfw":false,"item_url":"http://mangahanta.com/manga/","categories":[{"id":"1","name":"Aksiyon"},{"id":"2","name":"Macera"},{"id":"3","name":"Komedi"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantezi"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Tarihi"},{"id":"11","name":"Korku"},{"id":"12","name":"Josei"},{"id":"13","name":"Dövüş Sanatları"},{"id":"14","name":"Yetişkin"},{"id":"15","name":"Mecha"},{"id":"16","name":"Gizem"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psikolojik"},{"id":"19","name":"Romantizm"},{"id":"20","name":"Okul Hayatı"},{"id":"21","name":"Bilim-Kurgu"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Hayattan Bir Parça"},{"id":"28","name":"Spor"},{"id":"29","name":"Doğaüstü"},{"id":"30","name":"Trajedi"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"Vampir"},{"id":"34","name":"Webtoon"}],"tags":[{"id":"tag","name":"-ヒトガタナ-"},{"id":"amber","name":"Amber"},{"id":"amber-manga","name":"Amber manga"},{"id":"amber-oku","name":"Amber oku"},{"id":"amber-turkce-oku","name":"Amber Türkçe Oku"},{"id":"amber-yuno","name":"Amber Yuno"},{"id":"back-stage","name":"Back Stage"},{"id":"ballroom-e-youkoso","name":"Ballroom e Youkoso"},{"id":"beauty-game","name":"Beauty Game"},{"id":"beauty-game-oku","name":"Beauty Game Oku"},{"id":"boku-wa-mari-no-naka","name":"Boku Wa Mari No Naka"},{"id":"god-eater-kyuuseishu-no-kikan","name":"God Eater - Kyuuseishu no Kikan"},{"id":"god-eater-the-spiral-fate","name":"God Eater - The Spiral Fate"},{"id":"happiness","name":"Happiness"},{"id":"happiness-manga-oku","name":"happiness manga oku"},{"id":"happiness-turkce-oku","name":"happiness türkçe oku"},{"id":"hitogatana","name":"Hitogatana"},{"id":"im-in-mari-im-inside-mari","name":"ぼくは麻理のなか I\u0027m in Mari I\u0027m Inside Mari"},{"id":"itsuwaribito-utsuho","name":"Itsuwaribito Utsuho"},{"id":"kaguya-sama-wa-kokurasetai","name":"Kaguya-sama wa Kokurasetai"},{"id":"les-memoires-de-vanitas","name":"Les Mémoires de Vanitas"},{"id":"mahouka-koukou-no-rettousei-tsuioku-hen","name":"Mahouka Koukou no Rettousei - Tsuioku Hen"},{"id":"manga-oku","name":"manga oku"},{"id":"maou-na-ore-to-fushihime-no-yubiwa","name":"Maou na Ore to Fushihime no Yubiwa"},{"id":"may-i-shake-your-hand","name":"May I shake your hand"},{"id":"may-i-shake-your-hand-oku","name":"may I shake your hand oku"},{"id":"may-i-shake-your-hand-turkce-oku","name":"May I Shake Your Hand türkçe oku"},{"id":"memoir-of-vanitas","name":"Memoir of Vanitas"},{"id":"mutluluk","name":"Mutluluk"},{"id":"nanatsu-no-taizai","name":"Nanatsu No Taizai"},{"id":"nanatsu-no-taizai-turkce-oku","name":"Nanatsu no taizai Türkçe oku"},{"id":"oshimi-shuzo","name":"OSHIMI Shuzo"},{"id":"sousei-manga-oku","name":"sousei manga oku"},{"id":"sousei-no-onmyouji","name":"Sousei no Onmyouji"},{"id":"sousei-no-onmyouji-manga-oku","name":"Sousei no onmyouji manga oku"},{"id":"sousei-no-onmyouji-turkce-oku","name":"sousei no onmyouji türkçe oku"},{"id":"the-case-study-of-vanitas","name":"The Case Study of Vanitas"},{"id":"the-seven-deadly-sins","name":"The Seven Deadly Sins"},{"id":"vanitas-no-carte","name":"Vanitas no Carte"},{"id":"vanitas-no-shuki","name":"Vanitas no Shuki"},{"id":"yedi-olumcul-gunah","name":"Yedi Ölümcül Günah"}]}""" +private const val MMRSOURCE_16 = + """{"language":"vi","name":"Fallen Angels Scans","base_url":"https://truyen.fascans.com","supports_latest":true,"isNsfw":false,"item_url":"https://truyen.fascans.com/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":"null"}""" +private const val MMRSOURCE_17 = + """{"language":"es","name":"LeoManga","base_url":"https://leomanga.me","supports_latest":false,"isNsfw":false,"item_url":"https://leomanga.me/manga/","categories":[{"id":"1","name":"Accion"},{"id":"2","name":"Aventura"},{"id":"3","name":"Comedia"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasia"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historico"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Artes Marciales"},{"id":"14","name":"Madura"},{"id":"15","name":"Mecha"},{"id":"16","name":"Misterio"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psicológico"},{"id":"19","name":"Romance"},{"id":"20","name":"Vida Cotidiana"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Supernatural"},{"id":"29","name":"Tragedia"},{"id":"30","name":"Yaoi"},{"id":"31","name":"Yuri"},{"id":"32","name":"Deporte"},{"id":"33","name":"Thriller"},{"id":"34","name":"Vida Escolar"},{"id":"35","name":"Boys Love"},{"id":"36","name":"Girls Love"},{"id":"37","name":"Gore"},{"id":"38","name":"Hentai"},{"id":"39","name":"Magia"},{"id":"40","name":"Manwha"},{"id":"41","name":"Policial"},{"id":"42","name":"Realidad Virtual"},{"id":"43","name":"Super Poderes"},{"id":"44","name":"Suspense"},{"id":"45","name":"Supervivencia"},{"id":"46","name":"Parodia"},{"id":"47","name":"Demonios"},{"id":"48","name":"Escolar"}],"tags":[{"id":"freaking-romance","name":"Freaking Romance"},{"id":"love-lucky","name":"Love Lucky"},{"id":"lust-awakening","name":"Lust Awakening"},{"id":"despertar-de-la-lujuria","name":"Despertar de la lujuria"},{"id":"inazumaelevenaresnotenbin","name":"inazumaelevenaresnotenbin"},{"id":"heir-of-the-penguins","name":"Heir of the Penguins"},{"id":"amor","name":"amor"},{"id":"drama","name":"drama"},{"id":"mysteries","name":"mysteries"},{"id":"anal","name":"anal"},{"id":"bukkake","name":"bukkake"},{"id":"doble-penetracion","name":"doble penetracion"},{"id":"orgia","name":"orgia"},{"id":"blow-job","name":"blow job"},{"id":"big-breasts","name":"big breasts"},{"id":"incesto","name":"incesto"},{"id":"milf","name":"milf"},{"id":"prenadas","name":"preñadas"},{"id":"slave-sex","name":"slave sex"},{"id":"lolicon","name":"lolicon"},{"id":"nurse","name":"nurse"},{"id":"reality","name":"Reality"},{"id":"glitch","name":"Glitch"},{"id":"glitcher","name":"Glitcher"},{"id":"horror","name":"Horror"},{"id":"suspenso","name":"Suspenso"},{"id":"realidad","name":"Realidad"},{"id":"slider","name":"Slider"},{"id":"novela","name":"Novela"},{"id":"sobrenatural","name":"Sobrenatural"},{"id":"tragedia","name":"Tragedia"},{"id":"error","name":"Error"},{"id":"psicologico","name":"Psicologico"},{"id":"sufrimiento","name":"Sufrimiento"},{"id":"visual","name":"Visual"},{"id":"narrativo","name":"Narrativo"},{"id":"shotacon","name":"shotacon"},{"id":"paizuri","name":"paizuri"},{"id":"kemonomimi","name":"kemonomimi"},{"id":"mundo-paralelo","name":"mundo paralelo"},{"id":"coleccion-hentai","name":"coleccion hentai"},{"id":"adultos","name":"adultos"}]}""" +private const val MMRSOURCE_18 = + """{"language":"es","name":"submanga","base_url":"https://submangas.net","supports_latest":false,"isNsfw":false,"item_url":"https://submangas.net/manga/","categories":[{"id":"1","name":"Accion"},{"id":"2","name":"Aventura"},{"id":"3","name":"Comedia"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasia"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historico"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Artes Marciales"},{"id":"14","name":"Madura"},{"id":"15","name":"Mecha"},{"id":"16","name":"Misterio"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psicológico"},{"id":"19","name":"Romance"},{"id":"20","name":"Vida Cotidiana"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Supernatural"},{"id":"29","name":"Tragedia"},{"id":"30","name":"Yaoi"},{"id":"31","name":"Yuri"},{"id":"32","name":"Deporte"},{"id":"33","name":"Thriller"},{"id":"34","name":"Vida Escolar"},{"id":"35","name":"Boys Love"},{"id":"36","name":"Girls Love"},{"id":"37","name":"Gore"},{"id":"38","name":"Hentai"},{"id":"39","name":"Magia"},{"id":"40","name":"Manwha"},{"id":"41","name":"Policial"},{"id":"42","name":"Realidad Virtual"},{"id":"43","name":"Super Poderes"},{"id":"44","name":"Suspense"},{"id":"45","name":"Supervivencia"},{"id":"46","name":"Parodia"},{"id":"47","name":"Demonios"},{"id":"48","name":"Escolar"}],"tags":"null"}""" +private const val MMRSOURCE_19 = + """{"language":"es","name":"Mangadoor","base_url":"https://mangadoor.com","supports_latest":true,"isNsfw":false,"item_url":"https://mangadoor.com/manga/","categories":[{"id":"1","name":"Acción"},{"id":"2","name":"Aventura"},{"id":"3","name":"Comedia"},{"id":"4","name":"Drama"},{"id":"5","name":"Ecchi"},{"id":"6","name":"Fantasía"},{"id":"7","name":"Gender Bender"},{"id":"8","name":"Harem"},{"id":"9","name":"Histórico"},{"id":"10","name":"Horror"},{"id":"11","name":"Josei"},{"id":"12","name":"Artes Marciales"},{"id":"13","name":"Maduro"},{"id":"14","name":"Mecha"},{"id":"15","name":"Misterio"},{"id":"16","name":"One Shot"},{"id":"17","name":"Psicológico"},{"id":"18","name":"Romance"},{"id":"19","name":"Escolar"},{"id":"20","name":"Ciencia Ficción"},{"id":"21","name":"Seinen"},{"id":"22","name":"Shoujo"},{"id":"23","name":"Shoujo Ai"},{"id":"24","name":"Shounen"},{"id":"25","name":"Shounen Ai"},{"id":"26","name":"Recuentos de la vida"},{"id":"27","name":"Deportes"},{"id":"28","name":"Supernatural"},{"id":"29","name":"Tragedia"},{"id":"30","name":"Yaoi"},{"id":"31","name":"Yuri"},{"id":"32","name":"Demonios"},{"id":"33","name":"Juegos"},{"id":"34","name":"Policial"},{"id":"35","name":"Militar"},{"id":"36","name":"Thriller"},{"id":"37","name":"Autos"},{"id":"38","name":"Música"},{"id":"39","name":"Vampiros"},{"id":"40","name":"Magia"},{"id":"41","name":"Samurai"},{"id":"42","name":"Boys love"},{"id":"43","name":"Hentai"}],"tags":"null"}""" +private const val MMRSOURCE_20 = + """{"language":"es","name":"Mangas.pw","base_url":"https://mangas.in","supports_latest":true,"isNsfw":false,"item_url":"https://mangas.in/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"Hentai"},{"id":"34","name":"Smut"}],"tags":"null"}""" +private const val MMRSOURCE_21 = + """{"language":"es","name":"Tumangaonline.co","base_url":"http://tumangaonline.uno","supports_latest":true,"isNsfw":false,"item_url":"http://tumangaonline.life/manga/","categories":[{"id":"1","name":"Acción"},{"id":"2","name":"Aventura"},{"id":"3","name":"Comedia"},{"id":"4","name":"Drama"},{"id":"5","name":"Ecchi"},{"id":"6","name":"Fantasía"},{"id":"7","name":"Gender Bender"},{"id":"8","name":"Harem"},{"id":"9","name":"Histórico"},{"id":"10","name":"Horror"},{"id":"11","name":"Josei"},{"id":"12","name":"Artes Marciales"},{"id":"13","name":"Maduro"},{"id":"14","name":"Mecha"},{"id":"15","name":"Misterio"},{"id":"16","name":"One Shot"},{"id":"17","name":"Psicológico"},{"id":"18","name":"Romance"},{"id":"19","name":"Escolar"},{"id":"20","name":"Ciencia Ficción"},{"id":"21","name":"Seinen"},{"id":"22","name":"Shoujo"},{"id":"23","name":"Shoujo Ai"},{"id":"24","name":"Shounen"},{"id":"25","name":"Shounen Ai"},{"id":"26","name":"Recuentos de la vida"},{"id":"27","name":"Deportes"},{"id":"28","name":"Supernatural"},{"id":"29","name":"Tragedia"},{"id":"30","name":"Yaoi"},{"id":"31","name":"Yuri"},{"id":"32","name":"Demonios"},{"id":"33","name":"Juegos"},{"id":"34","name":"Policial"},{"id":"35","name":"Militar"},{"id":"36","name":"Thriller"},{"id":"37","name":"Autos"},{"id":"38","name":"Música"},{"id":"39","name":"Vampiros"},{"id":"40","name":"Magia"},{"id":"41","name":"Samurai"},{"id":"42","name":"Boys love"}],"tags":"null"}""" +private const val MMRSOURCE_22 = + """{"language":"bg","name":"Utsukushii","base_url":"https://manga.utsukushii-bg.com","supports_latest":true,"isNsfw":false,"item_url":"https://manga.utsukushii-bg.com/manga/","categories":[{"id":"1","name":"Екшън"},{"id":"2","name":"Приключенски"},{"id":"3","name":"Комедия"},{"id":"4","name":"Драма"},{"id":"5","name":"Фентъзи"},{"id":"6","name":"Исторически"},{"id":"7","name":"Ужаси"},{"id":"8","name":"Джосей"},{"id":"9","name":"Бойни изкуства"},{"id":"10","name":"Меха"},{"id":"11","name":"Мистерия"},{"id":"12","name":"Самостоятелна/Пилотна глава"},{"id":"13","name":"Психологически"},{"id":"14","name":"Романтика"},{"id":"15","name":"Училищни"},{"id":"16","name":"Научна фантастика"},{"id":"17","name":"Сейнен"},{"id":"18","name":"Шоджо"},{"id":"19","name":"Реализъм"},{"id":"20","name":"Спорт"},{"id":"21","name":"Свръхестествено"},{"id":"22","name":"Трагедия"},{"id":"23","name":"Йокаи"},{"id":"24","name":"Паралелна вселена"},{"id":"25","name":"Супер сили"},{"id":"26","name":"Пародия"},{"id":"27","name":"Шонен"}],"tags":"null"}""" +private const val MMRSOURCE_23 = + """{"language":"es","name":"Universo Yuri","base_url":"https://universoyuri.com","supports_latest":true,"isNsfw":false,"item_url":"https://universoyuri.com/manga/","categories":[{"id":"1","name":"Acción"},{"id":"2","name":"Aventura"},{"id":"3","name":"Comedia"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasía"},{"id":"8","name":"Harem"},{"id":"9","name":"Histórico"},{"id":"10","name":"Terror"},{"id":"11","name":"Mecha"},{"id":"12","name":"Misterio"},{"id":"13","name":"One Shot"},{"id":"14","name":"Psicológico"},{"id":"15","name":"Romance"},{"id":"16","name":"Escolar"},{"id":"17","name":"Ciencia ficción"},{"id":"18","name":"Vida cotidiana"},{"id":"19","name":"Deportes"},{"id":"20","name":"Sobrenatural"},{"id":"21","name":"Música"}],"tags":[{"id":"yuri","name":"yuri"},{"id":"sex-friends","name":"sex friends"},{"id":"webtoon","name":"Webtoon"},{"id":"adult-life","name":"Adult life"},{"id":"full-color","name":"Full color"},{"id":"classmate","name":"classmate"},{"id":"asesinos","name":"Asesinos"},{"id":"fantasia","name":"Fantasía"},{"id":"vida-escolar","name":"Vida escolar"},{"id":"incesto","name":"incesto"},{"id":"hentai","name":"hentai"},{"id":"precure-doujin","name":"PreCure Doujin"},{"id":"student-x-teacher","name":"Student x Teacher"},{"id":"romance","name":"romance"},{"id":"drama","name":"drama"},{"id":"comedia","name":"comedia"},{"id":"bang-dream","name":"BanG Dream!"},{"id":"kokoro-x-misaki","name":"Kokoro x Misaki"},{"id":"nsfw","name":"NSFW"},{"id":"fantasmas","name":"fantasmas"},{"id":"gl","name":"gl"},{"id":"doujinshi","name":"Doujinshi"},{"id":"hot","name":"hot"},{"id":"all-girls-school","name":"All-Girls School"},{"id":"military-academy","name":"Military Academy"},{"id":"rainy-devil-scans","name":"Rainy Devil Scans"},{"id":"bondage","name":"Bondage"},{"id":"yuri-hime","name":"Yuri Hime"},{"id":"one-shot","name":"one shot"},{"id":"5k-scanlation","name":"5K Scanlation"},{"id":"watashitachi-no-yuri","name":"WatashiTachi No Yuri"},{"id":"politica","name":"política"},{"id":"comida","name":"comida"},{"id":"cyborg","name":"cyborg"},{"id":"rai","name":"RAI"},{"id":"violencia-familiar","name":"violencia familiar"},{"id":"selene-yuri-projects","name":"Selene Yuri Projects"}]}""" +private const val MMRSOURCE_24 = + """{"language":"pl","name":"Phoenix-Scans","base_url":"https://phoenix-scans.pl","supports_latest":true,"isNsfw":false,"item_url":"https://phoenix-scans.pl/manga/","categories":[{"id":"1","name":"Shounen"},{"id":"2","name":"Tragedia"},{"id":"3","name":"Szkolne życie"},{"id":"4","name":"Romans"},{"id":"5","name":"Zagadka"},{"id":"6","name":"Horror"},{"id":"7","name":"Dojrzałe"},{"id":"8","name":"Psychologiczne"},{"id":"9","name":"Przygodowe"},{"id":"10","name":"Akcja"},{"id":"11","name":"Komedia"},{"id":"12","name":"Zboczone"},{"id":"13","name":"Fantasy"},{"id":"14","name":"Harem"},{"id":"15","name":"Historyczne"},{"id":"16","name":"Manhua"},{"id":"17","name":"Manhwa"},{"id":"18","name":"Sztuki walki"},{"id":"19","name":"One shot"},{"id":"20","name":"Sci fi"},{"id":"21","name":"Seinen"},{"id":"22","name":"Shounen ai"},{"id":"23","name":"Spokojne życie"},{"id":"24","name":"Sport"},{"id":"25","name":"Nadprzyrodzone"},{"id":"26","name":"Webtoons"},{"id":"27","name":"Dramat"},{"id":"28","name":"Hentai"},{"id":"29","name":"Mecha"},{"id":"30","name":"Gender Bender"},{"id":"31","name":"Gry"},{"id":"32","name":"Yaoi"}],"tags":[{"id":"aktywne","name":"aktywne"},{"id":"zakonczone","name":"zakończone"},{"id":"porzucone","name":"porzucone"}]}""" +private const val MMRSOURCE_25 = + """{"language":"ru","name":"Japit Comics","base_url":"https://j-comics.ru","supports_latest":true,"isNsfw":false,"item_url":"https://j-comics.ru/manga/","categories":[{"id":"1","name":"Боевик"},{"id":"2","name":"Приключения"},{"id":"3","name":"Комедия"},{"id":"4","name":"Додзинси"},{"id":"5","name":"Драма"},{"id":"6","name":"Этти"},{"id":"7","name":"Фэнтези"},{"id":"8","name":"Гендерная интрига"},{"id":"9","name":"Гарем"},{"id":"10","name":"История"},{"id":"11","name":"Ужасы"},{"id":"12","name":"Дзёсэй"},{"id":"13","name":"Боевые искусства"},{"id":"14","name":"Эротика"},{"id":"15","name":"Меха"},{"id":"16","name":"Мистика"},{"id":"17","name":"Ваншот"},{"id":"18","name":"Психология"},{"id":"19","name":"Романтика"},{"id":"20","name":"Школа"},{"id":"21","name":"Научная фантастика"},{"id":"22","name":"Сэйнэн"},{"id":"23","name":"Сёдзё"},{"id":"24","name":"Сёдзё-ай"},{"id":"25","name":"Сёнэн"},{"id":"26","name":"Сёнэн-ай"},{"id":"27","name":"Повседневность"},{"id":"28","name":"Спорт"},{"id":"29","name":"Сверхъест."},{"id":"30","name":"Трагедия"},{"id":"31","name":"Яой"},{"id":"32","name":"Юри"}],"tags":"null"}""" +private const val MMRSOURCE_26 = + """{"language":"tr","name":"Puzzmos","base_url":"https://puzzmos.com","supports_latest":true,"isNsfw":false,"item_url":"https://puzzmos.com/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":"null"}""" +private const val MMRSOURCE_27 = + """{"language":"fr","name":"Scan-1","base_url":"https://wwv.scan-1.com","supports_latest":true,"isNsfw":false,"item_url":"https://wwv.scan-1.com/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":"null"}""" +private const val MMRSOURCE_28 = + """{"language":"fr","name":"Lelscan-VF","base_url":"https://www.lelscan-vf.com","supports_latest":true,"isNsfw":false,"item_url":"https://www.lelscan-vf.com/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":"null"}""" +private const val MMRSOURCE_29 = + """{"language":"id","name":"MangaSusu","base_url":"https://www.mangasusu.site","supports_latest":true,"isNsfw":false,"item_url":"https://www.mangasusu.website/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"Adult"},{"id":"34","name":"Isekai"},{"id":"35","name":"Webtoons"}],"tags":"null"}""" +private const val MMRSOURCE_30 = + """{"language":"id","name":"Komik Manga","base_url":"https://adm.komikmanga.com","supports_latest":true,"isNsfw":false,"item_url":"https://adm.komikmanga.com/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"Adult"},{"id":"34","name":"Isekai"}],"tags":"null"}""" +private const val MMRSOURCE_31 = + """{"language":"ko","name":"Mangazuki Raws","base_url":"https://raws.mangazuki.co","supports_latest":false,"isNsfw":false,"item_url":"\u003c!doctype html\u003e\n\u003chtml lang\u003d\"en-US\"\u003e\n \u003chead\u003e \n \u003cmeta charset\u003d\"UTF-8\"\u003e \n \u003cmeta http-equiv\u003d\"Content-Type\" content\u003d\"text/html; charset\u003dUTF-8\"\u003e \n \u003cmeta http-equiv\u003d\"X-UA-Compatible\" content\u003d\"IE\u003dEdge,chrome\u003d1\"\u003e \n \u003cmeta name\u003d\"robots\" content\u003d\"noindex, nofollow\"\u003e \n \u003cmeta name\u003d\"viewport\" content\u003d\"width\u003ddevice-width,initial-scale\u003d1\"\u003e \n \u003cmeta http-equiv\u003d\"refresh\" content\u003d\"12\"\u003e \n \u003ctitle\u003eJust a moment...\u003c/title\u003e \n \u003cstyle type\u003d\"text/css\"\u003e\n html, body {width: 100%; height: 100%; margin: 0; padding: 0;}\n body {background-color: #ffffff; color: #000000; font-family:-apple-system, system-ui, BlinkMacSystemFont, \"Segoe UI\", Roboto, Oxygen, Ubuntu, \"Helvetica Neue\",Arial, sans-serif; font-size: 16px; line-height: 1.7em;-webkit-font-smoothing: antialiased;}\n h1 { text-align: center; font-weight:700; margin: 16px 0; font-size: 32px; color:#000000; line-height: 1.25;}\n p {font-size: 20px; font-weight: 400; margin: 8px 0;}\n p, .attribution, {text-align: center;}\n #spinner {margin: 0 auto 30px auto; display: block;}\n .attribution {margin-top: 32px;}\n @keyframes fader { 0% {opacity: 0.2;} 50% {opacity: 1.0;} 100% {opacity: 0.2;} }\n @-webkit-keyframes fader { 0% {opacity: 0.2;} 50% {opacity: 1.0;} 100% {opacity: 0.2;} }\n #cf-bubbles \u003e .bubbles { animation: fader 1.6s infinite;}\n #cf-bubbles \u003e .bubbles:nth-child(2) { animation-delay: .2s;}\n #cf-bubbles \u003e .bubbles:nth-child(3) { animation-delay: .4s;}\n .bubbles { background-color: #f58220; width:20px; height: 20px; margin:2px; border-radius:100%; display:inline-block; }\n a { color: #2c7cb0; text-decoration: none; -moz-transition: color 0.15s ease; -o-transition: color 0.15s ease; -webkit-transition: color 0.15s ease; transition: color 0.15s ease; }\n a:hover{color: #f4a15d}\n .attribution{font-size: 16px; line-height: 1.5;}\n .ray_id{display: block; margin-top: 8px;}\n #cf-wrapper #challenge-form { padding-top:25px; padding-bottom:25px; }\n #cf-hcaptcha-container { text-align:center;}\n #cf-hcaptcha-container iframe { display: inline-block;}\n \u003c/style\u003e \n \u003cscript type\u003d\"text/javascript\"\u003e\n //\u003c![CDATA[\n (function(){\n \n window._cf_chl_opt\u003d{\n cvId: \"1\",\n cType: \"non-interactive\",\n cNounce: \"86182\",\n cRay: \"5c514b3e6a130977\",\n cHash: \"89537a2fdb18d0b\",\n cRq: {\n d: \"T8Fkun+Kwey8wwLFqapyWw1ZBZq7AnmwEpOY8i8LQBlhmTr4yT+OZHtyHsNhlLUboORGgZ8El04azck36rOXnkHvAzkycyH+AHq6g58uiN+5cJOXHeECpsuLfNhQLZRy6l65ss3Fo0xvR37pp2PxCIrfAsPKPxoMpWYU9oqIMhM12mzXnEAFdOLvNf8V9bXMYo0LRXVU3iZt2Skd1paSt2i1LtVa6Ok9gUh9IPuUhL/HfrMpvwWwn09V8uezf5ccFg7v1FOWW5PKho1y/ju/YZ1P/n23Bj0Z+9LHsv8glQT3YZhEimX/TeVaEF0rVQovx9O5Gq6vRpUNIPj7FsvuAs6n9IpnoHJA0kjEdPiRWx219Qs6SHkGcB1rhB/skYB9nAoEWONmMeUlUcUC/6/aRg\u003d\u003d\",\n t: \"MTU5NzgxMzA0OC4wNjYwMDA\u003d\",\n m: \"CZ1i2xTYUH2M20onddJkd0NK7Garn12U1/9O01BgCeY\u003d\",\n i1: \"T2En+tos/fcLVonBPQ+gvQ\u003d\u003d\",\n i2: \"O3LuD/53dY6yxH0aSKtGZQ\u003d\u003d\",\n }\n }\n window._cf_chl_enter \u003d function(){window._cf_chl_opt.p\u003d1};\n \n var a \u003d function() {try{return !!window.addEventListener} catch(e) {return !1} },\n b \u003d function(b, c) {a() ? document.addEventListener(\"DOMContentLoaded\", b, c) : document.attachEvent(\"onreadystatechange\", b)};\n b(function(){\n var cookiesEnabled\u003d(navigator.cookieEnabled)? true : false;\n var cookieSupportInfix\u003dcookiesEnabled?\u0027/nocookie\u0027:\u0027/cookie\u0027;\n var a \u003d document.getElementById(\u0027cf-content\u0027);a.style.display \u003d \u0027block\u0027;\n var isIE \u003d /(MSIE|Trident\\/|Edge\\/)/i.test(window.navigator.userAgent);\n var trkjs \u003d isIE ? new Image() : document.createElement(\u0027img\u0027);\n trkjs.setAttribute(\"src\", \"/cdn-cgi/images/trace/jschal/js\"+cookieSupportInfix+\"/transparent.gif?ray\u003d5c514b3e6a130977\");\n trkjs.id \u003d \"trk_jschal_js\";\n trkjs.setAttribute(\"alt\", \"\");\n document.body.appendChild(trkjs);\n \n document.body.appendChild(trkjs);\n var cpo \u003d document.createElement(\u0027script\u0027);\n cpo.type \u003d \u0027text/javascript\u0027;\n cpo.src \u003d \"/cdn-cgi/challenge-platform/orchestrate/jsch/v1\";\n var done \u003d false;\n cpo.onload \u003d cpo.onreadystatechange \u003d function() {\n if (!done \u0026\u0026 (!this.readyState || this.readyState \u003d\u003d\u003d \"loaded\" || this.readyState \u003d\u003d\u003d \"complete\")) {\n done \u003d true;\n cpo.onload \u003d cpo.onreadystatechange \u003d null;\n window._cf_chl_enter()\n }\n };\n document.getElementsByTagName(\u0027head\u0027)[0].appendChild(cpo);\n \n }, false);\n })();\n //]]\u003e\n\u003c/script\u003e \n \u003c/head\u003e \n \u003cbody\u003e \n \u003ctable width\u003d\"100%\" height\u003d\"100%\" cellpadding\u003d\"20\"\u003e \n \u003ctbody\u003e\n \u003ctr\u003e \n \u003ctd align\u003d\"center\" valign\u003d\"middle\"\u003e \n \u003cdiv class\u003d\"cf-browser-verification cf-im-under-attack\"\u003e \n \u003cnoscript\u003e \n \u003ch1 data-translate\u003d\"turn_on_js\" style\u003d\"color:#bd2426;\"\u003ePlease turn JavaScript on and reload the page.\u003c/h1\u003e \n \u003c/noscript\u003e \n \u003cdiv id\u003d\"cf-content\" style\u003d\"display:none\"\u003e \n \u003cdiv id\u003d\"cf-bubbles\"\u003e \n \u003cdiv class\u003d\"bubbles\"\u003e\u003c/div\u003e \n \u003cdiv class\u003d\"bubbles\"\u003e\u003c/div\u003e \n \u003cdiv class\u003d\"bubbles\"\u003e\u003c/div\u003e \n \u003c/div\u003e \n \u003ch1\u003e\u003cspan data-translate\u003d\"checking_browser\"\u003eChecking your browser before accessing\u003c/span\u003e mangazuki.co.\u003c/h1\u003e \n \u003cdiv id\u003d\"no-cookie-warning\" data-translate\u003d\"turn_on_cookies\" style\u003d\"display:none\"\u003e \n \u003cp data-translate\u003d\"turn_on_cookies\" style\u003d\"color:#bd2426;\"\u003ePlease enable Cookies and reload the page.\u003c/p\u003e \n \u003c/div\u003e \n \u003cp data-translate\u003d\"process_is_automatic\"\u003eThis process is automatic. Your browser will redirect to your requested content shortly.\u003c/p\u003e \n \u003cp data-translate\u003d\"allow_5_secs\"\u003ePlease allow up to 5 seconds…\u003c/p\u003e \n \u003c/div\u003e \n \u003cform class\u003d\"challenge-form\" id\u003d\"challenge-form\" action\u003d\"/?__cf_chl_jschl_tk__\u003dc1b2e17c066b32c6010241ded2bd051748685da5-1597813048-0-AXnNDOpTn2c8lrDsE5L58_ntbEFNSfjjmt9DxneXKcXi-uI7frOo_dG-uSLvShk46QTtVLeItXi7FtsUm0U98YaUZ1fT5XlT5HJG1f1qNtQ74kN7_ww9JE9v_XPOgAaTl91cTpu_8OApasIjZ28BYclRcGOPQxg2-M3Hsxw39UhfHLxmpyMT-IiIqq7rPrRsZ3N_rWkdZuZtTvoT-qNjHYL0AEYdyOwD3ojf4hie1cDMp6NPUQN7WYzYR9-dMUO05tY-jTAvvkiZJhfzQMn9kwA\" method\u003d\"POST\" enctype\u003d\"application/x-www-form-urlencoded\"\u003e \n \u003cinput type\u003d\"hidden\" name\u003d\"r\" value\u003d\"de96632b016d308fbc82bd78d909e202965c1452-1597813048-0-AYhf+g0aGAHs/w3FgBlpWNL1Mf2K44pZjNpDtrfhquygo6qUQhNUGGGwtZzg7arhDHE6q0NQMn/N09tHr4WsaKpfvkPLNtvtVgmDhO7UIm7WJ3fM2afebZDDfYAWL8pEaL21NO/GnSwVjlTJDwhvVvnmDB89HCNmgXZL2kH0E0dkEAgRNwmT4pRhi7fd82Sd94gJt86zk7WW+jZy7kuoboqLXjMlOb85JTpe9krb9bSFq4WmiygjYS9t7ENYAMZSRy+wTzy7yokI9cHOYB46vcgld+wE375fNHejO0VS3sQerzwmMWdvVQPZowdCl3q3MJqrqqG5X6J32xgBBMjV5PfgwY6vgwtrqs2CAluXsD490qDYX3gP8Tergo8UGQSXobgKSEImV7+XP12DT9Vu6MgN4ZZG9g1e9ENkMI3LUmH1u2c+C9Up0DX0rdJnDxcmKdWKOVUXeFccrHQSS8ethFxqHXqHQyAoo6RY0usoP45F/e9bHzO7RjjsVerfTbDMId0bxGxsKChpruiR1PO4eiE6Qrj55wVHzX1DWAswE0f2eOdj/hpRJmqT5B4srhYnCsYZ1wKO2ioH0jSCZk34HVPStTnc0FnF6uF96SIO2z6Vz+P6ZQrbrl/NeyC3Tf0XeN+Mf1L2AJaRtumVM8rONmqAZY7Zj6IulVsfEVELRdgtp8WJXTN1GadxFPESuLyY8da7+ceFz6S/uydl2p95e8E9ucs9a9jC1mEDEMZrLAWCocreuD6MGsxJHTAfu3aLG9WoFWyOpYrqDMGUg1yCBF2HVCe+SzX4pVZlNKOLWIdLrBMK70Sap4nMFnBR2eWNZCPHegRYM3EjUOvm43SmuN1P6d4qLq2d+t+tBUWb3UMYu/JvqbX1koJ1V+/TYVu8aP/6/nk37Xqn72rIVqG6XBcSGiFjY/8nbpwXh8FXHyFfxG8LSQ8FnU1eugsIIgJWheNv1Tbcy2jAeBxzXSzg7TS6aIryuUyMvcBaLuJ0vFjFSuFVM4PMscQNruB7XLlmPQZqzu8zH0SCpP0IMPqhQ27mlE+tFMzEZlkfWmj3xwIsX65Y9S4ayezA6icES5iQcO8hEzfC+KPB5uVS6e7YHGMOE1PUITTj8rgV+nsOMS02ski7U9NPfBy3aDY20DnEbQ\u003d\u003d\"\u003e \n \u003cinput type\u003d\"hidden\" value\u003d\"2645ec452983e031e72c29ee7885b9ba\" id\u003d\"jschl-vc\" name\u003d\"jschl_vc\"\u003e \n \u003c!-- \u003cinput type\u003d\"hidden\" value\u003d\"\" id\u003d\"jschl-vc\" name\u003d\"jschl_vc\"/\u003e --\u003e \n \u003cinput type\u003d\"hidden\" name\u003d\"pass\" value\u003d\"1597813052.066-6oTOgL2JK5\"\u003e \n \u003cinput type\u003d\"hidden\" id\u003d\"jschl-answer\" name\u003d\"jschl_answer\"\u003e \n \u003c/form\u003e \n \u003cdiv id\u003d\"trk_jschal_nojs\" style\u003d\"background-image:url(\u0027/cdn-cgi/images/trace/jschal/nojs/transparent.gif?ray\u003d5c514b3e6a130977\u0027)\"\u003e \n \u003c/div\u003e \n \u003c/div\u003e \n \u003cdiv class\u003d\"attribution\"\u003e\n DDoS protection by \n \u003ca href\u003d\"https://www.cloudflare.com/5xx-error-landing?utm_source\u003diuam\" target\u003d\"_blank\"\u003eCloudflare\u003c/a\u003e \n \u003cbr\u003e \n \u003cspan class\u003d\"ray_id\"\u003eRay ID: \u003ccode\u003e5c514b3e6a130977\u003c/code\u003e\u003c/span\u003e \n \u003c/div\u003e \u003c/td\u003e \n \u003c/tr\u003e \n \u003c/tbody\u003e\n \u003c/table\u003e \n \u003c/body\u003e\n\u003c/html\u003e/","categories":[],"tags":"null"}""" +private const val MMRSOURCE_32 = + """{"language":"pt-BR","name":"Remangas","base_url":"https://remangas.top","supports_latest":true,"isNsfw":false,"item_url":"https://remangas.top/manga/","categories":[{"id":"1","name":"Ação"},{"id":"2","name":"Aventura"},{"id":"3","name":"Comédia"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasia"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Histórico"},{"id":"11","name":"Terror"},{"id":"12","name":"Josei"},{"id":"13","name":"Artes Marciais"},{"id":"14","name":"Adulto"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mistério"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psicológico"},{"id":"19","name":"Romance"},{"id":"20","name":"Vida escolar"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Esporte"},{"id":"29","name":"Sobrenatural"},{"id":"30","name":"Tragédia"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"Isekai"},{"id":"34","name":"Guerra"},{"id":"35","name":"Sobrevivência"},{"id":"36","name":"Romance?"}],"tags":[{"id":"seinen","name":"seinen"},{"id":"ecchi","name":"ecchi"},{"id":"harem","name":"harem"},{"id":"isekai","name":"isekai"},{"id":"guerra","name":"guerra"},{"id":"shounen","name":"shounen"},{"id":"18","name":"+18"},{"id":"adulto","name":"Adulto"},{"id":"fantasia","name":"Fantasia"},{"id":"romance","name":"Romance"},{"id":"vida-escolar","name":"Vida Escolar"},{"id":"acao","name":"Ação"},{"id":"misterio","name":"mistério"},{"id":"terror","name":"Terror"},{"id":"detetive","name":"Detetive"},{"id":"misterios","name":"Mistérios"},{"id":"incesto","name":"Incesto"},{"id":"comedia-romantica","name":"Comédia Romantica"},{"id":"alquimia","name":"Alquimia"},{"id":"manhua","name":"Manhua"},{"id":"colorido","name":"Colorido"},{"id":"antologia","name":"Antologia"},{"id":"dragoes","name":"Dragões"},{"id":"briga-de-rua","name":"Briga de Rua"},{"id":"anti-heroi","name":"Anti Herói"},{"id":"zoera","name":"Zoera"},{"id":"protagonista-overpower","name":"Protagonista Overpower"},{"id":"psicologico","name":"Psicológico"},{"id":"protagonista-badass","name":"Protagonista Badass"},{"id":"battleroyale","name":"Battleroyale"},{"id":"apocalispe-zumbi","name":"Apocalispe Zumbi"},{"id":"mc-nao-virjao","name":"Mc Não Virjão"},{"id":"escola-de-magia","name":"Escola de Magia"},{"id":"tensei","name":"Tensei"},{"id":"shota-badass","name":"Shota Badass"},{"id":"isekai-vai-e-volta","name":"Isekai Vai e Volta"},{"id":"gore","name":"gore"},{"id":"garota-monstro","name":"Garota Monstro"},{"id":"maid","name":"Maid"},{"id":"gal","name":"Gal"}]}""" +private const val MMRSOURCE_33 = + """{"language":"pt-BR","name":"AnimaRegia","base_url":"https://animaregia.net","supports_latest":true,"isNsfw":false,"item_url":"http://animaregia.net/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":"null"}""" +private const val MMRSOURCE_34 = + """{"language":"tr","name":"NoxSubs","base_url":"https://noxsubs.com","supports_latest":true,"isNsfw":false,"item_url":"https://noxsubs.com/manga/","categories":[{"id":"1","name":"Harem"},{"id":"2","name":"Mecha"},{"id":"3","name":"Seinen"},{"id":"4","name":"Shounen"},{"id":"5","name":"Slice of Life"},{"id":"6","name":"Trajedi"},{"id":"7","name":"Doğaüstü"},{"id":"8","name":"Spor"},{"id":"9","name":"Bilim-Kurgu"},{"id":"10","name":"Okul Hayatı"},{"id":"11","name":"Romantizm"},{"id":"12","name":"Dövüş Sanatları"},{"id":"13","name":"Psikolojik"},{"id":"14","name":"Gizem"},{"id":"15","name":"Korku"},{"id":"16","name":"Dram"},{"id":"17","name":"Aksiyon"},{"id":"18","name":"Komedi"},{"id":"19","name":"Macera"},{"id":"20","name":"Tek Atımlık"},{"id":"21","name":"Tarihi"},{"id":"22","name":"Fantezi"},{"id":"23","name":"Askeri"},{"id":"24","name":"Büyü"}],"tags":[{"id":"tag","name":"괴물아기"},{"id":"canavar-cocuk","name":"Canavar Çocuk"},{"id":"monster-child","name":"Monster Child"},{"id":"abyss-rage","name":"Abyss Rage"},{"id":"diamond-no-ace-act-ii","name":"Diamond no Ace Act II"},{"id":"diamond-no-ace","name":"Diamond no Ace"},{"id":"soloist-of-prison","name":"Soloist of Prison"},{"id":"reincarnation-no-kaben","name":"Reincarnation no Kaben"},{"id":"youjo-senki","name":"Youjo Senki"},{"id":"devil-of-rhine","name":"Devil of Rhine"},{"id":"saga-of-tanya-the-evil","name":"Saga of Tanya the Evil"},{"id":"rikudou","name":"Rikudou"},{"id":"rikudo","name":"Rikudo"},{"id":"mf-ghost","name":"MF Ghost"},{"id":"komi-san","name":"Komi-san"},{"id":"komi-san-wa-komyushou-desu","name":"Komi-san wa Komyushou Desu"},{"id":"die-dai","name":"Die Dai"},{"id":"pounding","name":"Pounding"},{"id":"panda","name":"Panda"},{"id":"agrikesici","name":"Ağrıkesici"},{"id":"intikam","name":"İntikam"},{"id":"onepiece","name":"#OnePiece"},{"id":"oneshot","name":"#OneShot"},{"id":"tanya","name":"#Tanya"},{"id":"senryuushoujo","name":"#SenryuuShoujo"},{"id":"gorgon","name":"#Gorgon"},{"id":"theblueland","name":"#TheBlueLand"},{"id":"reenkarnasyon","name":"Reenkarnasyon"},{"id":"onepieceacademy","name":"#OnePieceAcademy"},{"id":"ev-erkegi","name":"EV ERKEĞİ"},{"id":"onepieceboichi","name":"#OnePieceBoichi"},{"id":"warlord","name":"#Warlord"},{"id":"sheriffevans","name":"#SheriffEvans"},{"id":"goh","name":"#GOH"},{"id":"godofhighschool","name":"#GodofHighschool"},{"id":"serifevans","name":"#ŞerifEvans"},{"id":"shy","name":"#SHY"},{"id":"ponko","name":"#Ponko"}]}""" +private const val MMRSOURCE_35 = + """{"language":"id","name":"MangaYu","base_url":"https://mangayu.com","supports_latest":true,"isNsfw":false,"item_url":"https://mangayu.com/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"Project"},{"id":"34","name":"Isekai"},{"id":"35","name":"Reincarnation"}],"tags":[{"id":"magic","name":"Magic"},{"id":"manhua","name":"Manhua"},{"id":"doujinshi","name":"Doujinshi"}]}""" +private const val MMRSOURCE_36 = + """{"language":"tr","name":"MangaVadisi","base_url":"http://manga-v2.mangavadisi.org","supports_latest":true,"isNsfw":false,"item_url":"http://manga-v2.mangavadisi.org/manga/","categories":[{"id":"1","name":"Aksiyon"},{"id":"2","name":"Macera"},{"id":"3","name":"Komedi"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantastik"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Tarihi"},{"id":"11","name":"Korku"},{"id":"12","name":"Josei"},{"id":"13","name":"Dövüş Sanatları"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Gizem"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psikolojik"},{"id":"19","name":"Romantizm"},{"id":"20","name":"Okul Hayatı"},{"id":"21","name":"Bilim Kurgu"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Günlük Yaşam"},{"id":"28","name":"Spor"},{"id":"29","name":"Doğaüstü"},{"id":"30","name":"Trajedi"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":"null"}""" +private const val MMRSOURCE_37 = + """{"language":"id","name":"MangaID","base_url":"https://mangaid.click","supports_latest":true,"isNsfw":false,"item_url":"https://mangaid.click/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"Psychological"},{"id":"18","name":"Romance"},{"id":"19","name":"School Life"},{"id":"20","name":"Sci-fi"},{"id":"21","name":"Seinen"},{"id":"22","name":"Shoujo"},{"id":"23","name":"Shoujo Ai"},{"id":"24","name":"Shounen"},{"id":"25","name":"Shounen Ai"},{"id":"26","name":"Slice of Life"},{"id":"27","name":"Sports"},{"id":"28","name":"Supernatural"},{"id":"29","name":"Tragedy"},{"id":"30","name":"Yaoi"},{"id":"31","name":"Yuri"},{"id":"32","name":"School"},{"id":"33","name":"Isekai"},{"id":"34","name":"Military"}],"tags":"null"}""" +private const val MMRSOURCE_38 = + """{"language":"fr","name":"Jpmangas","base_url":"https://www.jpmangas.com","supports_latest":true,"isNsfw":false,"item_url":"https://www.jpmangas.com/lecture-en-ligne/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"School Life"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Slice of Life"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedy"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"}],"tags":"null"}""" +private const val MMRSOURCE_39 = + """{"language":"fr","name":"Op-VF","base_url":"https://www.op-vf.com","supports_latest":true,"isNsfw":false,"item_url":"https://www.op-vf.com/manga/","categories":[],"tags":"null"}""" +private const val MMRSOURCE_40 = + """{"language":"fr","name":"FR Scan","base_url":"https://www.frscan.me","supports_latest":true,"isNsfw":false,"item_url":"https://www.frscan.me/manga/","categories":[{"id":"1","name":"Action"},{"id":"2","name":"Adventure"},{"id":"3","name":"Comedy"},{"id":"4","name":"Doujinshi"},{"id":"5","name":"Drama"},{"id":"6","name":"Ecchi"},{"id":"7","name":"Fantasy"},{"id":"8","name":"Gender Bender"},{"id":"9","name":"Harem"},{"id":"10","name":"Historical"},{"id":"11","name":"Horror"},{"id":"12","name":"Josei"},{"id":"13","name":"Martial Arts"},{"id":"14","name":"Mature"},{"id":"15","name":"Mecha"},{"id":"16","name":"Mystery"},{"id":"17","name":"One Shot"},{"id":"18","name":"Psychological"},{"id":"19","name":"Romance"},{"id":"20","name":"Vie Scolaire"},{"id":"21","name":"Sci-fi"},{"id":"22","name":"Seinen"},{"id":"23","name":"Shoujo"},{"id":"24","name":"Shoujo Ai"},{"id":"25","name":"Shounen"},{"id":"26","name":"Shounen Ai"},{"id":"27","name":"Tranche de vie"},{"id":"28","name":"Sports"},{"id":"29","name":"Supernatural"},{"id":"30","name":"Tragedie"},{"id":"31","name":"Yaoi"},{"id":"32","name":"Yuri"},{"id":"33","name":"Autre"},{"id":"34","name":"BD Occidentale"},{"id":"35","name":"Webtoon"}],"tags":"null"}""" +private const val MMRSOURCE_41 = + """{"language":"other","name":"HentaiShark","base_url":"https://www.hentaishark.com","supports_latest":true,"isNsfw":true,"item_url":"https://www.hentaishark.com/manga/","categories":[{"id":"1","name":"Doujinshi"},{"id":"2","name":"Manga"},{"id":"3","name":"Western"},{"id":"4","name":"non-h"},{"id":"5","name":"imageset"},{"id":"6","name":"artistcg"},{"id":"7","name":"misc"}],"tags":"null"}""" val SOURCES: List get() = listOf(MMRSOURCE_1, MMRSOURCE_2, MMRSOURCE_3, MMRSOURCE_4, MMRSOURCE_5, MMRSOURCE_6, MMRSOURCE_7, MMRSOURCE_8, MMRSOURCE_9, MMRSOURCE_10, MMRSOURCE_11, MMRSOURCE_12, MMRSOURCE_13, MMRSOURCE_14, MMRSOURCE_15, MMRSOURCE_16, MMRSOURCE_17, MMRSOURCE_18, MMRSOURCE_19, MMRSOURCE_20, MMRSOURCE_21, MMRSOURCE_22, MMRSOURCE_23, MMRSOURCE_24, MMRSOURCE_25, MMRSOURCE_26, MMRSOURCE_27, MMRSOURCE_28, MMRSOURCE_29, MMRSOURCE_30, MMRSOURCE_31, MMRSOURCE_32, MMRSOURCE_33, MMRSOURCE_34, MMRSOURCE_35, MMRSOURCE_36, MMRSOURCE_37, MMRSOURCE_38, MMRSOURCE_39, MMRSOURCE_40, MMRSOURCE_41) diff --git a/src/all/wpmangastream/src/eu/kanade/tachiyomi/extension/all/wpmangastream/WPMangaStream.kt b/src/all/wpmangastream/src/eu/kanade/tachiyomi/extension/all/wpmangastream/WPMangaStream.kt index da543c986..2c0b2e9d3 100644 --- a/src/all/wpmangastream/src/eu/kanade/tachiyomi/extension/all/wpmangastream/WPMangaStream.kt +++ b/src/all/wpmangastream/src/eu/kanade/tachiyomi/extension/all/wpmangastream/WPMangaStream.kt @@ -251,7 +251,6 @@ abstract class WPMangaStream( val imageList = JSONArray(imageListRegex.find(docString)!!.destructured.toList()[0]) - for (i in 0 until imageList.length()) { pages.add(Page(i, "", imageList.getString(i))) } diff --git a/src/en/mangadoom/src/eu/kanade/tachiyomi/extension/en/mangadoom/MangaDoom.kt b/src/en/mangadoom/src/eu/kanade/tachiyomi/extension/en/mangadoom/MangaDoom.kt index bfdea86f2..023dcf0cc 100644 --- a/src/en/mangadoom/src/eu/kanade/tachiyomi/extension/en/mangadoom/MangaDoom.kt +++ b/src/en/mangadoom/src/eu/kanade/tachiyomi/extension/en/mangadoom/MangaDoom.kt @@ -10,9 +10,6 @@ import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.online.HttpSource import eu.kanade.tachiyomi.util.asJsoup -import java.io.IOException -import java.nio.charset.Charset -import java.util.Calendar import okhttp3.CacheControl import okhttp3.Call import okhttp3.Callback @@ -25,6 +22,9 @@ import org.jsoup.nodes.Document import org.jsoup.nodes.Element import org.jsoup.nodes.Node import org.jsoup.nodes.TextNode +import java.io.IOException +import java.nio.charset.Charset +import java.util.Calendar class MangaDoom : HttpSource() { @@ -43,9 +43,12 @@ class MangaDoom : HttpSource() { override fun popularMangaParse(response: Response): MangasPage { val document = response.asJsoup() - return MangasPage(document.select(popularMangaSelector).map { - mangaFromMangaListElement(it) - }, paginationHasNext(document)) + return MangasPage( + document.select(popularMangaSelector).map { + mangaFromMangaListElement(it) + }, + paginationHasNext(document) + ) } // latest @@ -71,8 +74,10 @@ class MangaDoom : HttpSource() { val mangaUpdates = document.select("div.manga_updates > dl > div.manga-cover > a") - return MangasPage(mangaUpdates.map { mangaFromMangaTitleElement(it) }, - paginationHasNext(document)) + return MangasPage( + mangaUpdates.map { mangaFromMangaTitleElement(it) }, + paginationHasNext(document) + ) } /** @@ -110,8 +115,10 @@ class MangaDoom : HttpSource() { this.artist = dlElement.select("dt:containsOwn(Artist:) + dd > a") .first()?.ownText().takeIf { it != "-" } - this.status = when (dlElement.select("dt:containsOwn(Status:) + dd") - .first().ownText()) { + this.status = when ( + dlElement.select("dt:containsOwn(Status:) + dd") + .first().ownText() + ) { "Ongoing" -> SManga.ONGOING "Completed" -> SManga.COMPLETED else -> SManga.UNKNOWN @@ -348,8 +355,11 @@ class MangaDoom : HttpSource() { } } - return POST(baseUrl + underlyingSearchMangaPath, - searchHeaders, requestBodyBuilder.build()) + return POST( + baseUrl + underlyingSearchMangaPath, + searchHeaders, + requestBodyBuilder.build() + ) } private val searchResultSelector = "div.row" @@ -357,9 +367,12 @@ class MangaDoom : HttpSource() { override fun searchMangaParse(response: Response): MangasPage { val document = response.asJsoup() - return MangasPage(document.select(searchResultSelector).map { - mangaFromMangaListElement(it) - }, false) + return MangasPage( + document.select(searchResultSelector).map { + mangaFromMangaListElement(it) + }, + false + ) } // filters @@ -373,13 +386,17 @@ class MangaDoom : HttpSource() { genreManager.getGenreGroupFilterOrPlaceholder() ) - private class TypeFilter : FormBodySelectFilter("Type", "type", + private class TypeFilter : FormBodySelectFilter( + "Type", + "type", arrayOf( Pair("japanese", "Japanese Manga"), Pair("korean", "Korean Manhwa"), Pair("chinese", "Chinese Manhua"), Pair("all", "All") - ), 3) + ), + 3 + ) private class AuthorTextFilter : Filter.Text("Author"), FormBodyFilter { override fun addToFormParameters(formParameters: MutableMap) { @@ -393,12 +410,16 @@ class MangaDoom : HttpSource() { } } - private class StatusFilter : FormBodySelectFilter("Status", "status", + private class StatusFilter : FormBodySelectFilter( + "Status", + "status", arrayOf( Pair("ongoing", "Ongoing"), Pair("completed", "Completed"), Pair("both", "Both") - ), 2) + ), + 2 + ) /** * GenreFilter aren't hard coded into this extension, instead it relies on asynchronous-fetching @@ -439,8 +460,10 @@ class MangaDoom : HttpSource() { * timestamp with the current time */ private fun contentUpToDate(compareTimestamp: Long?): Boolean = - (compareTimestamp != null && - (System.currentTimeMillis() - compareTimestamp < 15 * 60 * 1000)) + ( + compareTimestamp != null && + (System.currentTimeMillis() - compareTimestamp < 15 * 60 * 1000) + ) /** * Used to generate a GenreGroupFilter from cached Pair objects or (if the cached pairs are @@ -448,9 +471,11 @@ class MangaDoom : HttpSource() { */ private fun callForGenreGroup(): GenreGroupFilter? { fun genreContentListToGenreGroup(genreFiltersContent: List>) = - GenreGroupFilter(genreFiltersContent.map { singleGenreContent -> - GenreFilter(singleGenreContent.first, singleGenreContent.second) - }) + GenreGroupFilter( + genreFiltersContent.map { singleGenreContent -> + GenreFilter(singleGenreContent.first, singleGenreContent.second) + } + ) val genreGroupFromVar = genreFiltersContent?.let { genreList -> genreContentListToGenreGroup(genreList) @@ -477,30 +502,43 @@ class MangaDoom : HttpSource() { val document = genreResponse.asJsoup() return document.select("ul.manga-cat > li").map { - Pair(it.select("span.fa").first().attr("data-id"), - it.ownText()) + Pair( + it.select("span.fa").first().attr("data-id"), + it.ownText() + ) } - } + } val genreResponse = client - .newCall(GET(url = baseUrl + advancedSearchPagePath, - cache = CacheControl.FORCE_CACHE)).execute() + .newCall( + GET( + url = baseUrl + advancedSearchPagePath, + cache = CacheControl.FORCE_CACHE + ) + ).execute() return if (genreResponse.code() == 200 && - contentUpToDate(genreResponse.receivedResponseAtMillis())) { - responseToGenreFilterContentPair(genreResponse) + contentUpToDate(genreResponse.receivedResponseAtMillis()) + ) { + responseToGenreFilterContentPair(genreResponse) } else { - client.newCall(GET(url = baseUrl + advancedSearchPagePath, - cache = CacheControl.FORCE_NETWORK)).enqueue(object : Callback { - override fun onFailure(call: Call, e: IOException) { - throw e - } + client.newCall( + GET( + url = baseUrl + advancedSearchPagePath, + cache = CacheControl.FORCE_NETWORK + ) + ).enqueue( + object : Callback { + override fun onFailure(call: Call, e: IOException) { + throw e + } - override fun onResponse(call: Call, response: Response) { - genreFilterContentFrom = response.receivedResponseAtMillis() - genreFiltersContent = responseToGenreFilterContentPair(response) + override fun onResponse(call: Call, response: Response) { + genreFilterContentFrom = response.receivedResponseAtMillis() + genreFiltersContent = responseToGenreFilterContentPair(response) + } } - }) + ) null } } @@ -515,11 +553,15 @@ class MangaDoom : HttpSource() { val vals: Array>, defaultValue: Int = 0 ) : - Filter.Select(displayName, - vals.map { it.second }.toTypedArray(), defaultValue), FormBodyFilter { - override fun addToFormParameters(formParameters: MutableMap) { - formParameters[payloadParam] = vals[state].first - } + Filter.Select( + displayName, + vals.map { it.second }.toTypedArray(), + defaultValue + ), + FormBodyFilter { + override fun addToFormParameters(formParameters: MutableMap) { + formParameters[payloadParam] = vals[state].first + } } /** @@ -547,5 +589,5 @@ class MangaDoom : HttpSource() { this.setUrlWithoutDomain(mangaTitleElement.attr("href")) this.thumbnail_url = mangaTitleElement.select("img").first() .attr("src") - } + } } diff --git a/src/en/schlockmercenary/src/eu/kanade/tachiyomi/extension/en/schlockmercenary/Schlockmercenary.kt b/src/en/schlockmercenary/src/eu/kanade/tachiyomi/extension/en/schlockmercenary/Schlockmercenary.kt index ec0e37ecf..69723371c 100644 --- a/src/en/schlockmercenary/src/eu/kanade/tachiyomi/extension/en/schlockmercenary/Schlockmercenary.kt +++ b/src/en/schlockmercenary/src/eu/kanade/tachiyomi/extension/en/schlockmercenary/Schlockmercenary.kt @@ -9,17 +9,17 @@ import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.util.asJsoup +import okhttp3.Request +import okhttp3.Response +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import rx.Observable import java.lang.UnsupportedOperationException import java.text.SimpleDateFormat import java.util.Calendar import java.util.Date import java.util.GregorianCalendar import java.util.Locale -import okhttp3.Request -import okhttp3.Response -import org.jsoup.nodes.Document -import org.jsoup.nodes.Element -import rx.Observable class Schlockmercenary : ParsedHttpSource() { @@ -41,8 +41,12 @@ class Schlockmercenary : ParsedHttpSource() { override fun popularMangaFromElement(element: Element): SManga { val book = element.select("h4 > a").first() - val thumb = (baseUrl + (element.select("img").first()?.attr("src") - ?: defaultThumbnailUrl)).substringBefore("?") + val thumb = ( + baseUrl + ( + element.select("img").first()?.attr("src") + ?: defaultThumbnailUrl + ) + ).substringBefore("?") return SManga.create().apply { url = book.attr("href") title = book.text() diff --git a/src/fr/japscan/src/eu/kanade/tachiyomi/extension/fr/japscan/Japscan.kt b/src/fr/japscan/src/eu/kanade/tachiyomi/extension/fr/japscan/Japscan.kt index 3e886f7c5..85f35c752 100644 --- a/src/fr/japscan/src/eu/kanade/tachiyomi/extension/fr/japscan/Japscan.kt +++ b/src/fr/japscan/src/eu/kanade/tachiyomi/extension/fr/japscan/Japscan.kt @@ -35,6 +35,16 @@ import eu.kanade.tachiyomi.source.model.SChapter import eu.kanade.tachiyomi.source.model.SManga import eu.kanade.tachiyomi.source.online.ParsedHttpSource import eu.kanade.tachiyomi.util.asJsoup +import okhttp3.FormBody +import okhttp3.MediaType +import okhttp3.OkHttpClient +import okhttp3.Request +import okhttp3.Response +import okhttp3.ResponseBody +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import uy.kohesive.injekt.Injekt +import uy.kohesive.injekt.api.get import java.io.ByteArrayInputStream import java.io.ByteArrayOutputStream import java.text.ParseException @@ -52,17 +62,6 @@ import kotlin.collections.map import kotlin.collections.mapIndexed import kotlin.collections.mutableListOf import kotlin.collections.toTypedArray -import okhttp3.FormBody -import okhttp3.MediaType -import okhttp3.OkHttpClient -import okhttp3.Request -import okhttp3.Response -import okhttp3.ResponseBody -import org.apache.commons.lang3.StringUtils -import org.jsoup.nodes.Document -import org.jsoup.nodes.Element -import uy.kohesive.injekt.Injekt -import uy.kohesive.injekt.api.get class Japscan : ConfigurableSource, ParsedHttpSource() { diff --git a/src/fr/mangakawaii/src/eu/kanade/tachiyomi/extension/fr/mangakawaii/MangaKawaii.kt b/src/fr/mangakawaii/src/eu/kanade/tachiyomi/extension/fr/mangakawaii/MangaKawaii.kt index b111ad4f4..2bd890a56 100644 --- a/src/fr/mangakawaii/src/eu/kanade/tachiyomi/extension/fr/mangakawaii/MangaKawaii.kt +++ b/src/fr/mangakawaii/src/eu/kanade/tachiyomi/extension/fr/mangakawaii/MangaKawaii.kt @@ -37,7 +37,6 @@ class MangaKawaii : ParsedHttpSource() { override fun latestUpdatesNextPageSelector(): String? = null override fun searchMangaNextPageSelector() = "no selector" - override fun popularMangaRequest(page: Int) = GET("$baseUrl/liste-manga/filterMangaList?page=$page&sortBy=views&asc=false", headersBuilder().add("X-Requested-With", "XMLHttpRequest").build()) override fun latestUpdatesRequest(page: Int) = GET(baseUrl, headers) @@ -112,5 +111,4 @@ class MangaKawaii : ParsedHttpSource() { } override fun pageListParse(document: Document): List = throw Exception("Not used") override fun imageUrlParse(document: Document): String = throw Exception("Not used") - }