From 28f13ce61347aa94fa584dbb427e6d4d4ac5b310 Mon Sep 17 00:00:00 2001 From: senjou69 <92781710+senjou69@users.noreply.github.com> Date: Wed, 20 Oct 2021 14:40:32 -0100 Subject: [PATCH] add genoanime (#140) --- src/en/genoanime/AndroidManifest.xml | 2 + src/en/genoanime/build.gradle | 12 ++ .../genoanime/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 5018 bytes .../genoanime/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 3076 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 5150 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 5427 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 5770 bytes src/en/genoanime/res/web_hi_res_512.png | Bin 0 -> 9745 bytes .../animeextension/en/genoanime/GenoAnime.kt | 154 ++++++++++++++++++ 9 files changed, 168 insertions(+) create mode 100644 src/en/genoanime/AndroidManifest.xml create mode 100644 src/en/genoanime/build.gradle create mode 100644 src/en/genoanime/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/en/genoanime/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/en/genoanime/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/en/genoanime/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/en/genoanime/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/en/genoanime/res/web_hi_res_512.png create mode 100644 src/en/genoanime/src/eu/kanade/tachiyomi/animeextension/en/genoanime/GenoAnime.kt diff --git a/src/en/genoanime/AndroidManifest.xml b/src/en/genoanime/AndroidManifest.xml new file mode 100644 index 000000000..8b54e3957 --- /dev/null +++ b/src/en/genoanime/AndroidManifest.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/src/en/genoanime/build.gradle b/src/en/genoanime/build.gradle new file mode 100644 index 000000000..b3ebab679 --- /dev/null +++ b/src/en/genoanime/build.gradle @@ -0,0 +1,12 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +ext { + extName = 'GenoAnime' + pkgNameSuffix = 'en.genoanime' + extClass = '.GenoAnime' + extVersionCode = 1 + libVersion = '12' +} + +apply from: "$rootDir/common.gradle" diff --git a/src/en/genoanime/res/mipmap-hdpi/ic_launcher.png b/src/en/genoanime/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..a4176ae2137ec08ce481ebe1a248e41b90b011d7 GIT binary patch literal 5018 zcmV;L6J_j)P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!~g&e!~vBn4jTXf6E8_bK~#8N?ObVW z9Orp{W_D)pT`sxH`w%IKIxSh2Vpq0POID;r4iX=5dL(vW6g64|C{XlIP#_3U1OEYSc)9mk}X?Obx;z;L(BW#Yi4$)&-?AtmSs`2m*lcF z`cT8!on!a=o_XKrec$iN#& z8bQ(eR;=6iC1~+RXhjDDXHP=&nF!V-;Sb07+E>1Eb+Kv$HEi06!1_C22V-z^v(R-N ziPlc+c;xF?fA7OEgOT!;tBa}=q>%_C5JKy|FH`Ct7~n-hJ%lycE?_HeC{y> zXi1vB`c}jiMEYNDzHnV|^k z*WU`0mf{4$v>qPh=CBzyi7EOF9^-4>fLGU!u7i)EnOe1)s479hcpbX-JcK-5%b{zz zJm$hvn`r=vh=!oagPMk%8G+fh1sw+-Ek!gQTMbl~pxOosa~BG_pOln3tjV6KYHQNN z&dnOOb?fjO9y|(k-XDd-G$2yf$SAiuf?ZXDqD@`!#ZxM3dE`aN(a4V9E26bYM{Nvf zuJh0sEkGwp;%dQIE#l3cv?7|=Dxj(axq%4WNRm2JvL3_dAw^OWAs02=8|1)G7i(z^ zz|>3hiEH^xKX;{js*S1U&e?`L@$R~`jveY+VyY`x7qGh0F}nJ*WAKA)G%BIkJlyNl{X)gj+U; zuZtwd;srXd5o_}d`r9Yn#qyb1MUo+=K?pH9n`9J4l0=XRkBso&Y{o+-OA>jg=(+H@ z@@jQZHG%{>JLF2(O^s#4QlOWNd)f_ad`iP>(C}!v8 zFnRejtMmqhJ2u183|O84ml?J}*9&AvF?8xRSaZ{Gi>nvG1Xb0bYcV(6kC`*aU``LI z2qtFivN>KbikfYE5U#C3}j-@~X`w*h*n31%{hoEyMo(I{Jxj4zg&V^WuDybPmT4$-KGs}}}v<=4+( z?9A)1r${v7!XY#GeriBeiZDn(jD=hTHbSsA*tUT!6z&SqlV_4<(Uz zd7ZCRa@gDqVT+k{)S5xKFa{(V)#nwRBCN?VOr1W8kyn0zbng||7D;kh(5(rr>>KIlFl-25CpkR+}UmYpE6ngHEt!~Q=&JBbOmZ>GgC z(PKDw*m1`u2`s#Vjh*m!?SvIg@h%-rNe!vEi|k|;InPufU!!Fd%@AyV1iF<&`jvk} z`pp*+jwN8$HX*j=7SyzND_s(o^Hv~dT2_K2OZG<-=(y)WMNTNy0%vLn{V)6w>65Rr zL)+oWYL41w1e&{HM^bPY)@9JFwNXcs1dR>nknut&isSRR8;GKy`4Mm}^dEhO+p`!y ze;h&Tnvd=pXk3E?U3hNrBJ2zk%Vn_4LK z&6nY$JJfIcH0*};$QeNtd_j_9C`lI0>F(4J@B@<>A7=70!%EF5PfbG>Jn*{7Q?Fv` z!du8sk0br|uaFxXL~_GUL`YIi*DZ>q{KW9GYSOahL4imNop*l`UHczlXI!LTJ%lq) zej7vQPpSr6GZV;<^;3x5^5`LN;$EyLsM!by_!&VRHMOQHH-tGg)uX~cqZ?f}6i+JA zpT{^e@zYOy1NPMmh}5@X^Y8x!>No8wpIsg-n+0uT_-^^kqqLkT29G?2OV9rR1!{xq z*y_BHWJHsw?Y<3;Kcqssz^{8q#5A#5;NA2=?MFgEWjJ|tB z6|n-ZNa8aynC&}@#D-l6BpMJ+HDmVT+pzOl^)Qx-C0mfpct#pK5Z`qlbdoc5?hW)j z_s_^r4!=i^z_ALLIQu%h@qXweOX!h=(9~VT0~RZKj~ft+GV!R@5HV~-{Y7P2a;@B< zhvF&#TnmRpj9xg2bBF!`*6ai#o!d}<`+dy2;xxXcJIInh!RHU6ao2u?8#-XK^Ov6f zE(+6QA0THQ4n@@NKLwL6q|rP~etXc%Q*b?HDPlbVzlJUAHMBB4>uS}|)?At@5aHv?Gn`Nx$x_a6CAO!l2$ zP$VT^dFQF`(=}{S6*Q(aY}gV*swGSjFU@WkY*9^A!?s(3Sl?wJCM)q2c{#=e3t>ZzN`EX>lN35xQ@WUv~PGa!HD=5y4A-4WDM4H#CdHtne zNd$$N=Sb)_D4c6YVT^`58BYlbylEpFhF2 zt8c-EJ@=Q-RECNPGMTg`HvJA= z#DSGQzo_*H!fhKVI&H9JF%-32}@o5TNNBKl$sF)y~$)3SnLoXK4fATkr&V0%W`e^$`6vMKBN-`jdyy2?s zS^6$6CykNuX`xJ=ae(Zy~yUd_+wKmCR(iW%$62P;Fx1W9!8 z(GuioS-I?@vk$SRP9(S9&61&HJwiY@Vjvo2ej^v~n6esmHOUZz;fZjFR%Dir3#oFy zO_C{O>be_(1lieH7Or`fEM7bKugaH?fr<&*c-H|$5=j(ubE-j$VatIpA((8I;d#~h z5Ny;i$MKUdmu{w_7q@G*MPA8}bg;aBN_5MjILq+ILK-v=y})vWdK9M)C7R!NvyZ#h zv0{R(aD7Qb@-uw5I6?VXv#Q`_Ih}lI$mcL2WCQr-eYX;hWLa?eNpq70R#9YC0W468 zBoXYU1hH(9>1`$l>RP4;^SC*!A4bIld3+MmWFIx?W)Q7Nc675Qu0!4zQ1=L(5xQ0^ zB0~H=IkHKE-tPqIkaAkwkc7yOi~@Kcp~ljrP!+2b8Mr2ATFmmUN5usB?3`+Jagp_d zqE+=9Z-c?C+huQEu@<&FkqRLkraqL7Z~hZxFO4b<#?yjW!A6teQdV8QS1YeES{Ni! zFI$|Cg{Sk!^qA|P(djq@}w4ndg^Q( zO~7Pf8V-;we*1iL)mb)vUW4SgIG?0Rp%4kuN(Hd)6yPxlWcXC?7X-=is6W%AX-p3f zln;tQeY|n&iV1S^88}SmCFQSQ)2-G)F9>#8QUcKsfuH2anoQwUj)^Xm2q6*Nq)~FE zY;sJN>50Irt7r}G@I`peO~#)2d1g39qxCC7WGrePCD;AvsF)yE=C$U=)L3(B^X&`% z*^-Rv$L+wv>nZ*OL%uSFC7kSFSWJXiVfW`f!5kmC5<;-&@^Jv+EhOs$@dBV*+cp>f;Y zYA9kM^gRC~xI;bg)78XXM#enkt&*Dw=J)Rr#%ty>9(u|vUISJJ-p~c~9R6uZXcy3u za9tzfJNDCsbxgebYvdOhqgo6V6C{`$y^2XT!edd`c*j9R8rsTdK8)<>0MbW(R$83t z+8CcGVsgqWO%M|E-JMVAigc~PArC_%MJA&*+|fSt{_;PR^(+MWi^fP>Hv&y-VU4FT zaqdkxHm$6a4oa3(<(k@p>Y9v7beE`r$!SaW%H-c_qx z9a@Vk1sbhFv`1>L;c*wkSE)0(JVKc+>imWp`fn?iSMk2bwr~_Zf zR7-*jwx(9t52Y>iotuSC67At$ocYnWFn;DW6bsoKyB5g_*EXR0fv+Lay%Sn~4kv%| zZ4{=Nr!C-$9~Da`NE+Z|rcguE_SbhH(Y2LgJdWJN$cNW9i-pi#M7IhfeQFxWWpPy~ z_%S)^Vr;a)h*iM!;52fhBgpj}NAKY$G5pS}C|bE2k}iy%q;`s|mX1;TL5 zNNN0rE|~8>g9}GrM0Rpm{iV>2;A6IF1S1Hh+Hl9$zpv)#hF<#xPCxk_^}P!b`f;#q z1PSUkehS3w?S3W(tX`JZ6C_Z;1E@yUaagJpFwfedGurcYT=_rrhA z{U(H%)y@rGz}TBFV(8Q{%#IJkWw9$FDhcP!AQOcCP?*JMX%Xm#d+tZD`%~~m5+r>J z!*3qOl^32sW@?hT(+arqN-pAzHgzJk^-gSh@K2$$Ly{r6Q)%?QbrjB(w{hj2*I1m( z6K4|`;glQlrI4Z;MY4k=ciruK5bEBIn(kfj#p~7FzRR-X$_xL3i${O{-g20gz={$i z1LWcs4b2T`r;x@s?S@g?0>`!$88VlqF(okblVDANfwRXkJ7;0*U7t~dU3RDrT1^9d zx=;NNF*0aoPYhz>#7j8yUx!qpDq($D_3b*WC_w^oIm7TVq$d$?S*w--uiN!$ScwjV zYU&USM|l;khfztwxpdWU`c;S)&B|xz;4;s$2G21fo=~F#(`n{Wb2BRv9k0iV6LdXf zj5=1Eg6ofu!N(1mQ*N7=2h|kSH1JG3+dg(xdehvsiSBD;00B?r0@Z kb%Oq{VM)d6Cm+E70Oxt;s%v>VfdBvi07*qoM6N<$f{`I~G5`Po literal 0 HcmV?d00001 diff --git a/src/en/genoanime/res/mipmap-mdpi/ic_launcher.png b/src/en/genoanime/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..b3e1accc91129598210929c196e84d20d407f7e1 GIT binary patch literal 3076 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 S7ujk60000C<5dm#lHWh(n`#sS18 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 literal 0 HcmV?d00001 diff --git a/src/en/genoanime/res/mipmap-xxhdpi/ic_launcher.png b/src/en/genoanime/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..2b924625b8c49902858ed144d9ba4bb4ca1c6aee GIT binary patch literal 5427 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 Ytt)p~4C?Iv37s^0aAR1F)`Q6Z0d##3Hvj+t literal 0 HcmV?d00001 diff --git a/src/en/genoanime/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/genoanime/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..60a77f93768ceb001ced9822d6226a4e8ffaddd5 GIT binary patch literal 5770 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 literal 0 HcmV?d00001 diff --git a/src/en/genoanime/res/web_hi_res_512.png b/src/en/genoanime/res/web_hi_res_512.png new file mode 100644 index 0000000000000000000000000000000000000000..27900cdb7795f346e7aaf89a723b496d23a6a2a4 GIT binary patch literal 9745 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 literal 0 HcmV?d00001 diff --git a/src/en/genoanime/src/eu/kanade/tachiyomi/animeextension/en/genoanime/GenoAnime.kt b/src/en/genoanime/src/eu/kanade/tachiyomi/animeextension/en/genoanime/GenoAnime.kt new file mode 100644 index 000000000..8f196e1e0 --- /dev/null +++ b/src/en/genoanime/src/eu/kanade/tachiyomi/animeextension/en/genoanime/GenoAnime.kt @@ -0,0 +1,154 @@ +package eu.kanade.tachiyomi.animeextension.en.genoanime + +import android.util.Log +import eu.kanade.tachiyomi.animesource.model.AnimeFilterList +import eu.kanade.tachiyomi.animesource.model.SAnime +import eu.kanade.tachiyomi.animesource.model.SEpisode +import eu.kanade.tachiyomi.animesource.model.Video +import eu.kanade.tachiyomi.animesource.online.ParsedAnimeHttpSource +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.POST +import okhttp3.FormBody +import okhttp3.Headers +import okhttp3.OkHttpClient +import okhttp3.Request +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import java.lang.Exception + +class GenoAnime : ParsedAnimeHttpSource() { + + override val name = "Genoanime" + override val baseUrl = "https://www.genoanime.com" + override val lang = "en" + override val supportsLatest = true + override val client: OkHttpClient = network.cloudflareClient + + private val weserv = "https://images.weserv.nl/?w=400&q=60&url=" + + // Popular Anime + override fun popularAnimeRequest(page: Int): Request = GET("$baseUrl/browse?sort=top_rated&page=$page") + override fun popularAnimeSelector(): String = "div.trending__product div.col-lg-10 div.row" + override fun popularAnimeNextPageSelector(): String = "div.text-center a i.fa.fa-angle-double-right" + override fun popularAnimeFromElement(element: Element): SAnime { + val anime = SAnime.create() + val tempurl = "$baseUrl/" + element.select("div.product__item a").attr("href").removePrefix("./") + anime.setUrlWithoutDomain(tempurl) + anime.title = element.select("div.product__item__text h5 a:nth-of-type(2)").first().text() + val thumburl = element.select("div.product__item__pic").attr("data-setbg").removePrefix("./") + anime.thumbnail_url = "$weserv$baseUrl/$thumburl" + return anime + } + + // Latest Anime + override fun latestUpdatesRequest(page: Int): Request = GET("$baseUrl/browse?sort=latest&page=$page", headers) + override fun latestUpdatesSelector(): String = popularAnimeSelector() + override fun latestUpdatesNextPageSelector(): String = popularAnimeNextPageSelector() + override fun latestUpdatesFromElement(element: Element): SAnime = popularAnimeFromElement(element) + + // Search Anime + override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request { + val formBody = FormBody.Builder() + .add("anime", query) + .build() + val newHeaders = headersBuilder() + .set("Content-Length", formBody.contentLength().toString()) + .set("Content-Type", formBody.contentType().toString()) + .build() + return POST("$baseUrl/data/searchdata.php", newHeaders, formBody) + } + override fun searchAnimeSelector(): String = "div.col-lg-3" + override fun searchAnimeNextPageSelector(): String = "div.text-center.product__pagination a.search-page i.fa.fa-angle-double-right" + override fun searchAnimeFromElement(element: Element): SAnime { + val anime = SAnime.create() + val tempurl = "$baseUrl/" + element.select("a").attr("href").removePrefix("./") + val thumburl = element.select("div.product__item div.product__item__pic.set-bg").attr("data-setbg").removePrefix("./") + anime.setUrlWithoutDomain(tempurl) + anime.title = element.select("div.product__item__text h5 a:nth-of-type(2)").text() + anime.thumbnail_url = "$weserv$baseUrl/$thumburl" + return anime + } + + // Episode + override fun episodeListSelector() = "div.anime__details__episodes div.tab-pane a" + override fun episodeFromElement(element: Element): SEpisode { + val episode = SEpisode.create() + episode.setUrlWithoutDomain(element.attr("href")) + episode.name = element.select("a").text() + val episodeNumberString = element.text().removePrefix("Ep ") + episode.episode_number = episodeNumberString.toFloat() + episode.date_upload = System.currentTimeMillis() + return episode + } + + // Video + override fun videoUrlParse(document: Document): String = throw Exception("Not used.") + override fun videoListSelector() = "section.details.spad div.container div.row:nth-of-type(1) div.col-lg-12:nth-of-type(1)" + override fun videoFromElement(element: Element): Video { + val baaseurl = element.select("iframe#iframeplayer").attr("src") + if (baaseurl.contains("https://genoanime.com/doodplayer.php")) { + val baseurl = videoidgrab(element.select("iframe#iframeplayer").attr("src")) + Log.d(name, "Dood True: $baseurl") + val a = doodUrlParse(baseurl) + Log.d(name, "Dood parsed: $a") + return Video( + baseurl, + "Doodstream", + a, + null, + Headers.headersOf("Referer", baseurl) + ) + } else return try { + Log.d(name, "Dood False: " + element.select("video source").attr("src")) + Video( + element.select("video source").attr("src"), + "Unknown quality", + element.select("video source").attr("src"), + null, + Headers.headersOf("Referer", baseUrl), + ) + } catch (e: Exception) { + throw Exception("Doodstream mirror unavailable.") + } + } + + // Anime window + override fun animeDetailsParse(document: Document): SAnime { + val anime = SAnime.create() + val thumburl = document.select("div.anime__details__pic").attr("data-setbg").removePrefix("./") + anime.thumbnail_url = "$baseUrl/$thumburl" + anime.title = document.select("div.anime__details__title h3").text() + anime.genre = document.select("div.col-lg-6.col-md-6:nth-of-type(1) ul li:nth-of-type(3)").joinToString(", ") { it.text() } + anime.description = document.select("div.anime__details__title span").text() + document.select("div.col-lg-6.col-md-6:nth-of-type(2) ul li:nth-of-type(2)").text()?.also { statusText -> + when { + statusText.contains("Ongoing", true) -> anime.status = SAnime.ONGOING + statusText.contains("Completed", true) -> anime.status = SAnime.COMPLETED + else -> anime.status = SAnime.UNKNOWN + } + } + return anime + } + + // Custom Fun + private fun doodUrlParse(url: String): String? { + val response = client.newCall(GET(url.replace("/e/", "/d/"))).execute() + val content = response.body!!.string() + val md5 = content.substringAfter("/download/").substringBefore("\"") + val tmpdl = "https://dood.ws/download/$md5" + val token = client.newCall( + GET( + tmpdl, + Headers.headersOf("referer", url.replace("/e/", "/d/")) + ) + ).execute().body!!.string().substringAfter("window.open('").substringBefore("\'") + return token + } + + private fun videoidgrab(url: String): String { + val uwrl = "https://goload.one/streaming.php?id=" + url.substringAfter("&vidid=") + val response = client.newCall(GET(uwrl)).execute() + val content = response.body!!.string() + return "https://dood" + content.substringAfter("dood").substringBefore("\"") + } +}