From 8b8eb09f2875f43a748a2bce8ca998391174d4ee Mon Sep 17 00:00:00 2001 From: Micael Valentim Date: Fri, 25 Jan 2019 08:02:48 -0300 Subject: [PATCH] Added NANI? Scans (#741) Added NANI? Scans --- src/all/foolslide/build.gradle | 2 +- .../en/foolslide/FoolSlideFactory.kt | 3 - src/en/naniscans/build.gradle | 12 ++ .../naniscans/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3762 bytes .../naniscans/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2979 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4489 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 6008 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 7520 bytes src/en/naniscans/res/web_hi_res_512.png | Bin 0 -> 15477 bytes .../extension/en/naniscans/NaniScans.kt | 138 ++++++++++++++++++ 10 files changed, 151 insertions(+), 4 deletions(-) create mode 100644 src/en/naniscans/build.gradle create mode 100644 src/en/naniscans/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/en/naniscans/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/en/naniscans/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/en/naniscans/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/en/naniscans/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/en/naniscans/res/web_hi_res_512.png create mode 100644 src/en/naniscans/src/eu/kanade/tachiyomi/extension/en/naniscans/NaniScans.kt diff --git a/src/all/foolslide/build.gradle b/src/all/foolslide/build.gradle index ac804d2f7..ffb80e8f0 100644 --- a/src/all/foolslide/build.gradle +++ b/src/all/foolslide/build.gradle @@ -5,7 +5,7 @@ ext { appName = 'Tachiyomi: FoolSlide' pkgNameSuffix = "all.foolslide" extClass = '.FoolSlideFactory' - extVersionCode = 11 + extVersionCode = 12 libVersion = '1.2' } diff --git a/src/all/foolslide/src/eu/kanade/tachiyomi/extension/en/foolslide/FoolSlideFactory.kt b/src/all/foolslide/src/eu/kanade/tachiyomi/extension/en/foolslide/FoolSlideFactory.kt index 593fb46d7..b6ad8e06a 100644 --- a/src/all/foolslide/src/eu/kanade/tachiyomi/extension/en/foolslide/FoolSlideFactory.kt +++ b/src/all/foolslide/src/eu/kanade/tachiyomi/extension/en/foolslide/FoolSlideFactory.kt @@ -48,7 +48,6 @@ fun getAllFoolSlide(): List { Russification(), NieznaniReader(), EvilFlowers(), - NaniScans(), AkaiYuhiMunTeam(), LupiTeam() ) @@ -174,8 +173,6 @@ class NieznaniReader : FoolSlide("Nieznani", "http://reader.nieznani.mynindo.pl" class EvilFlowers : FoolSlide("Evil Flowers", "http://reader.evilflowers.com", "en") -class NaniScans : FoolSlide("NANI? SCANS", "https://reader.naniscans.xyz", "en") - class AkaiYuhiMunTeam : FoolSlide("AkaiYuhiMun team", "https://akaiyuhimun.ru", "ru", "/manga") class LupiTeam : FoolSlide("LupiTeam", "https://lupiteam.ml", "it", "/reader") { diff --git a/src/en/naniscans/build.gradle b/src/en/naniscans/build.gradle new file mode 100644 index 000000000..26acd9ccf --- /dev/null +++ b/src/en/naniscans/build.gradle @@ -0,0 +1,12 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +ext { + appName = 'Tachiyomi: NANI? Scans' + pkgNameSuffix = 'en.naniscans' + extClass = '.NaniScans' + extVersionCode = 1 + libVersion = '1.2' +} + +apply from: "$rootDir/common.gradle" diff --git a/src/en/naniscans/res/mipmap-hdpi/ic_launcher.png b/src/en/naniscans/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..b01a210c8f7e4dd31d64b3ce3bd43b5f5592b6ba GIT binary patch literal 3762 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 KQSKi8(|-ZBy7E^5 literal 0 HcmV?d00001 diff --git a/src/en/naniscans/res/mipmap-mdpi/ic_launcher.png b/src/en/naniscans/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..22a1672d5f58c9a6eb0241d4cfba2f837b9bf75d GIT binary patch literal 2979 zcmbVO3piBk8fM6?kcuv-X*w>+nwd4jj9Ew+TO%TI=tQhpv&>9pX3d@%#!!lGDyfdP zO1etXmdvi5l(wA``&8(nBwb{0>58&lBF-A&sq@r6J$s&K&HDfEf4}#;{@=4U2QBtB zHkx6irKM%eS;!8?-&DKJ zZ%l>~oyiOU0i9?>CW{O*s4SY3Bauc0nG`CM0@4902vHdjokbk^k#K7=UJMk>{%*t; zzH=uD6bdOsp(vF~vXV~5WPA$9VzDSx8ihs!a0DP%NfdAbAd$}*WniOnL?)CfgqVb= zVT8F@oWh-id-^d1v2=`9A|FW;o-j%RETw>CswSjiAP*VCN#kUqVdFf6f{IWvDpAOB zEI5Xh3NQsG7hqqZ9y|Wb0G`@_fH50i^hGQlGa*;_#N%O%B;<=|d5B7iQi4%A7AHec zpLpEOIhtsskhctl6__jp!$hNn3L15p=|K;23BISVft zKywPA(ILho~@7?|bEg;_Ab1nE40hdR*!7nn%{cpz>bM(H5z>^!O;C==qh5ElJy9?jj}qRzv=x*auES6;iLF)rI0l7P&8xcV`(V= zTeab{Pe#@#9G`=l<=6nmH)A6lmEhDed_Y5KFX;H(kL0jDLj)=HjmrvGgqrJjL}91W zcWaFULh_`Zja*==A<^OAyI2!w)l-N&X3TQ>*;8k|{-jm3*=~olGi_Iz<#b zDZQ9~t+Z(2nW4PARW{iM{#e^%>rH3&@NE~L6hy772Y%1YpF`ET{jauZv0!TxyMGbD zi(TRy9ka-~>g+T*=g5bfuUM%Cd$z-|qR8G^DrMk_kbNZIwqkf(bouS-gr_%OciC-Rd zvt(08Luf;4QYFykFt{xebQrj%q|S@Iz;P*?{DaBrEx#7GTIQ!+?%?_KE7eM`*6kI{ zJ1`@eJW%Cirk%4<|E+cb&}Fmgu&2sQKI!$;`sy>KDJ#rsx(dA>e5mXT)@_{m#OiUr zz%|6GVoH{>ZcT{+U*>o{Dp>a_WN(-LF!xSYV?S%fOP8vHowr|o2v@sj>i%+TNnaXq z$(5d!SIbk@C~|a?m+f#(?V2q~(lPIhbA6iKa;^0d^jZPtQ%z$upS-XiVSLX%wX)(?Eb zJCQHWZFdOku|P7+QXae`&FbA}Q1IBIxhso2Im^($a_R;9wzQs(qVSa5bW_u4okwQ8 ztQJuH$9(^}jt5hgJlEw;p5G>rPLK5oQR!K?#> zb!j&P-|*fhlx-f`>h|POp*T=2Hl6eg+h}0>EUkB?F7v6Ki|6kq96}sex2=KUNmz4I z@W9?{tND?R9}rsWmRmIuYT1vcd)#)y}0Gvxj<3-NiOQ}E=5?8`OoG{uljzePJ17n>!Pz-?dRg> zvZC<13*oj8dMLfWGID=Q%>li#Z8zLe`9Na^mA7`m3B5$+^Zu6JsO`T!eldILhU2H7 z*|!*`hfa8u>anYlv3ZMESfNHfKn;v>OF8l4{=xN0l-x20aUFB~Jj5}n=&))$u-IO; zAfcMvmVG6xd5YEEiyoIv2>q5_+WV#$Ei_*p8FpB#cG+MyV4JkYySwU!p_Qo4&e1F^ z%BY~81DlcC?K2UNX7;<-!SiKvn2Be++Pd}fwm&JiHZCCRp;BJ_)53t{}HkKhKk!QTxa)_O3$rthXH)eC;#lD_=1k&xP*v_HU{ZWHa)fA z*g6~`lmy+$&)99?y|MDoWlfo<46lmS;c*pet9QnO>F<+c8oWGPC+;+SLoyIg++5=- zww-118ynnxu{2RIsbofAbYA`e_Xl3_rvslTpK?R{l)a(8*7G`(n$_h%a0TP)8qzci t^`N6VeSG4Jf*;vyPVDJgHl*CQU3-FU*D+qsd40`iG{n2go ziAbSzaioh}3zb`kkbYm?o^$@sIlupTetVwpzMs$M{d&LN*Ux*;vvePCcO`{Y3Lp?j z$aA2}J|yZ>0+I^ZSG@d)IBK#FS14;Yk}uMGl8k2A>u`~cDh0*xJINu{%c z8J2=54uA%MY#js~DlLM+hXyl3nJhcl`|CGhP$u0D=8q$xNE{*~jOnqH%h$1F@S;1j}gvb0n}VzK=)oq zF9&`Ah@LJ^WI_Jh6G>S=`{}hf9H=)T{Zey(rA$p3^!5IdRIhN&>=el@*?6B2#ws<_ zjGh^5>x`ub2|jzatP9XoFTF3)ZlDx-rhBfEZrdFOKJ8m`rC7Un&CQX(cP~cr6FSEl zq!L34;{O0PyiWU<3;8)OKc0A5J~lo+Xgc)Z%(%kpH#1TJb7>{6J7!lDA}1&hv?@?C z$CT?8EF`v@)k*N+FOYzAQTM87^NXlTBkp^+UKXOLD?V^P>y5{DAcdx z)A_;(|6I8sl?`6`V@ipdbFx)cee>n&UUb);kZrB|LBV2;9e~=%ad}Z!dVnv>KlU9Zu0{G(k+|d#(nLra0&pB`MEs zP9R)HRTHqO#ddF7bolUG57 z8-?6a2yc&)u4GWRqCYrK;>oLkLIX#<|N6lm{l2>GwH=Zj%3Bn*l_Nh`3~aeOb3Elk z`oON%2^{_sOE%UZWX!Zy0c8+|XbPLv&0N%i-Zawv1H1#|CV5_hn3bE9_q@>|r9}*R z2=Ck87uekfkA_fCJ#N-o9h3KxGl&JlZRVLyN4npn^A;cr56t>vU7#jG^TJaVT6gAoLPCgDWSrl#&}EVYjUX8A!q!G52kU}RJTnPj|>z^5h=Y@^|?WLg&}FS z@iU+o($8LH%@V;CpVjZnL`wc)G-{=tJ8ea^o>`LP=%CgFP`FeraAI$S-axfhA!MQ2 z!6S4YLD9pgC&5jUkS-!>Yvh8R$4I%?!nU)4i4J%}(;WC~qcmH1?F<55y3I^eVu!3g z^z&WWH~ikLkP!Ren|VSjd|mV60pZQVwD4+;KJES)Fo#q9V&6vm_A%t4kH0KJ0^`D@ zZd7_=B?Q?krfbVVN{!J+<2S@B&Y!%zpT{Y^d$;kE@<;w91DoH-^sb{J(20a?AzQ)D zox+Ft!Q$A00o;|9EszKe4rc1E2XXzNLa~T_AyZ*BoVetaSrb>N zU(yt;+z-m96ViLGmxEkU#se4aMc8ul2-~T;sRNHD%|#LR6cfiy%4LDX=bm%z#5Rr- zleCy*-nHMNqM)i;x&cql;I^(}ZhI5>hj-_qWxbHUIK64E@Tpv1uo;IcRfGB9JetU^ z*>;a4Xu{r9j7ZrrYHt;_dmfU!^5=6V!Fk@((Vg5ih6Uz{noeb>h|wqKYVVh=n?-kG zYy`uZyGuYV?&YosqHhan4k?AN?7iJY7S>nChjne&s)+q;bdK<96s1vU9F7RrX?A*$ z0QE|;A8+Y=YrLvRA~n{)hRPjkkp6tasyC&ffZ_5hSr|}C30zTG-%EIQ!SuQGrnGd> zr?t0bvWrIFSQ|P9KGi6xK|?63<$GOI4oX!(?|F9|0k?^E-*Fh}{{ymHb9FUc|@AJzr(2Z37?OB5bk^AQH@$KoJYGm?; zG}!C(@mBm*?jpOXJ<&Yad}kSVv9c{;riWJml7zhcch}w-+ku}+FKR}+N5d*rL~r-4JZ|T)E>$eL z6)Cd&wL$E6J+SeFi2cU5j@^fXZv=JgOle}x@WhffTI#s(jQBUREAr)vsgZ{=7YxXQwDz*B=gbf85a$AmL z)OyO$D!1f<;w9?a`}_U$U6&@`W+R2n!_!yW%-f+ZSq35~LgaHxgIT(IPh^Kc7UuC3 zaZWdobRYH1dZ4_x{%VM^nW(+sW1OKmvowVbjV*zQK;6ISF(YJP;lqPSFJZK%28kOn zlyr@@C=-NE7ecpByCDD4Ees5-WCn=PJX$k zO=*xK$-p~XPtA?1nI4Uek$6PCsXJ^Lp0F5|eO0@r;_TRNe&dCu^F^-r<$W?gZ5JBn zP2ap?VIn1K`clzZL#0xj9ns(o+UovHxe0!{|NK$LUW(RAl}j56h@OJma2NL^m#hJ^Zg}@&K%VRA#w7|qseNcqg!Gm zthNSGY&db=dGCE91#>k8UWNVo&DSdIlmkyxt%aW$pKcA`yeWH?lFi=m@97asy%~W!{zh^$ z7G}tA!8bgqIvyNbZ0mgI*MQB%r`zIiUS{A(XWyrJ`3I_$nrno07_aDx(oA1@N}bLb zr3KkF>eZwfA8wOf?o-#27^5I#KZ#=%%(~wfuBs-BYS(fq zY@Qlkk)~+lqq}PaG;wP%{Ss&Z#p~|fo$zePxamapb7%a!8Ba^MAcKb%j`i>AJQOLb ze%e(+Ja=LI>=SbXBcj;P?0DZsgWSD4IbGmHcoGI7yn`7`PO0qaF4esnKiqjnAJQ`% zh%u;@|CGv;QBVOaz;_jnO}u3LHJvR}X0mf2$vGqOt)hvY?IYc%bihT@DEYQ1?8mN2 z+hJ_jju6djOB1k%NP}6X&^Igp&Daa6wqcaD+S~~oz_j7uaoE_||Ot|jb_uWVz+Y>ooka5uM ziUD>c4HEqnVz6F({NkF4orAY+b#uuXu+IrQHRa2*)(?6sP^P9Il`qsySWP{&bMT3O ztUI9Gq(4KdF*MirkI!gvP%sR?3Pt<dV?v{%-Zdim>mjtk-)-EMS2f`ja> z=j+Al(7PJvP6#@#*bKlO&HJk(dEIZF39rLV?4+1GH#(O!e!|xZyV9S%(i0uH6GE?c zC~k4}6UrC~t{gh1V!NalT;S0n*HtZ(8~sA7@9FxIjPL-{$MzJ}=j*GjY}_i+?mUD) zfi78XmYW`0vyv=b?9M)w?-ewlL+`BUHhj{&cJ*&gHbEr{DEaCWX9H8mEf2Qqho_yL zg|QMtVTW#}89%mnWc0pFOE|boYZ!*@$;pz1scX=$lP}y9o`l-xds@0!6SSIHbSv&E z_tqSh=V_-#3}4j8v}Ro_))|D5wuOd@Eswi(n9EJ>FVuL I;Y`{6AA%H1a{vGU literal 0 HcmV?d00001 diff --git a/src/en/naniscans/res/mipmap-xxhdpi/ic_launcher.png b/src/en/naniscans/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..7f24d292e8d4c63dfcec02789e820bbe0a5ce0fe GIT binary patch literal 6008 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 literal 0 HcmV?d00001 diff --git a/src/en/naniscans/res/mipmap-xxxhdpi/ic_launcher.png b/src/en/naniscans/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..623561e0b9de920afbc813bf60b179c3dd5f6dd4 GIT binary patch literal 7520 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 aIQ-c*)G9{w2s-)?)XMCX=>rqb%l`u*o8CD9 literal 0 HcmV?d00001 diff --git a/src/en/naniscans/res/web_hi_res_512.png b/src/en/naniscans/res/web_hi_res_512.png new file mode 100644 index 0000000000000000000000000000000000000000..bca8cfc14d7ed80ac8b8c82b72542acf760cd462 GIT binary patch literal 15477 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 R--9QC@p1EGh5Goo{|52dJ=p*N literal 0 HcmV?d00001 diff --git a/src/en/naniscans/src/eu/kanade/tachiyomi/extension/en/naniscans/NaniScans.kt b/src/en/naniscans/src/eu/kanade/tachiyomi/extension/en/naniscans/NaniScans.kt new file mode 100644 index 000000000..ec82a308b --- /dev/null +++ b/src/en/naniscans/src/eu/kanade/tachiyomi/extension/en/naniscans/NaniScans.kt @@ -0,0 +1,138 @@ +package eu.kanade.tachiyomi.extension.en.naniscans + +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.asObservableSuccess +import eu.kanade.tachiyomi.source.model.* +import eu.kanade.tachiyomi.source.online.ParsedHttpSource +import eu.kanade.tachiyomi.util.asJsoup +import okhttp3.Response +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import rx.Observable +import java.text.SimpleDateFormat + +class NaniScans : ParsedHttpSource() { + override val baseUrl = "https://naniscans.xyz" + override val lang = "en" + override val name = "NANI? Scans" + override val supportsLatest = true + + private val projects = "$baseUrl/projects" + + override fun chapterFromElement(element: Element) = SChapter.create().apply { + val chapterLink = element.select("div.col-8.text-truncate.d-inline-flex.flex-nowrap > a:nth-child(2)") + setUrlWithoutDomain("${chapterLink.attr("href")}?mode=Manga") + this.name = chapterLink.text().trim() + this.date_upload = SimpleDateFormat("dd/MM/yyyy").parse(element.select("div.col-4.text-truncate > span").text().trim()).time + } + + override fun chapterListSelector() = "#chapter_list > div" + + override fun fetchSearchManga(page: Int, query: String, filters: FilterList): Observable { + return client.newCall(searchMangaRequest(page, query, filters)).asObservableSuccess().map { + searchMangaParse(it, query) + } + } + + override fun imageUrlParse(document: Document) = throw UnsupportedOperationException("Not used") + + override fun latestUpdatesFromElement(element: Element) = throw UnsupportedOperationException("Not used") + + override fun latestUpdatesNextPageSelector() = null + + override fun latestUpdatesParse(response: Response): MangasPage { + val updates = response.asJsoup().select(latestUpdatesSelector()) + val series = mutableMapOf() + + updates.forEach { + SManga.create().run { + setUrlWithoutDomain(it.attr("href")) + title = it.text().trim() + + series.put(title, this) + } + } + + return MangasPage(series.values.toList(), false) + } + + override fun latestUpdatesRequest(page: Int) = GET(baseUrl) + + override fun latestUpdatesSelector() = "body > div.container.mt-3 > div > div.col-lg-8 > div > div > div > div > div.pt-0.pb-1.mb-1.border-bottom.border-secondary.d-flex.align-items-center.flex-nowrap > a" + + override fun mangaDetailsParse(document: Document) = SManga.create().apply { + val element = document.select("body > div.container.mt-3 > div:nth-child(2) > div") + author = element.select("span:nth-child(3)").text().trim() + artist = element.select("span:nth-child(6)").text().trim() + description = element.select("span:nth-child(9)").text().trim() + thumbnail_url = "$baseUrl${document.select("#manga_page").attr("src")}" + status = parseStatus(element.select("span:nth-child(12)").text().trim()) + } + + override fun pageListParse(document: Document): List { + val docString = document.toString() + val pages = mutableListOf() + val imageUrls = docString.substringAfter("const pages = [", "").substringBefore("];", "").split(",").map { it.replace("\"", "") } + + imageUrls.forEach { + pages.add(Page(pages.size, "", "$baseUrl${it.trim()}")) + } + + return pages + } + + override fun popularMangaFromElement(element: Element) = throw UnsupportedOperationException("Not used") + + override fun popularMangaNextPageSelector() = null + + override fun popularMangaParse(response: Response): MangasPage { + val updates = response.asJsoup().select(popularMangaSelector()) + val series = mutableListOf() + + updates.forEach { + SManga.create().run { + setUrlWithoutDomain(it.attr("href")) + title = it.text().trim() + + series.add(this) + } + } + + return MangasPage(series, false) + } + + override fun popularMangaRequest(page: Int) = GET(projects) + + override fun popularMangaSelector() = "body > div.container.mt-3 > div > div.col-lg-8 > div > div > div > div > div > div > h6 > a" + + override fun searchMangaFromElement(element: Element) = throw UnsupportedOperationException("Not used") + + override fun searchMangaNextPageSelector() = null + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList) = popularMangaRequest(page) + + override fun searchMangaSelector() = popularMangaSelector() + + private fun parseStatus(status: String) = when { + status.contains("Ongoing") -> SManga.ONGOING + status.contains("Completed") -> SManga.COMPLETED + else -> SManga.UNKNOWN + } + + private fun searchMangaParse(response: Response, query: String): MangasPage { + val updates = response.asJsoup().select(popularMangaSelector()) + val series = mutableListOf() + + updates.forEach { + SManga.create().run { + setUrlWithoutDomain(it.attr("href")) + title = it.text().trim() + + if (title.contains(query, true)) + series.add(this) + } + } + + return MangasPage(series, false) + } +}