From 0f3f79eebd4f3e19b9d45a730e2aeec6e3dd33e1 Mon Sep 17 00:00:00 2001 From: Josef Christian Halim Date: Sat, 1 Feb 2020 23:06:38 +0700 Subject: [PATCH] Add extension for LANraragi (#1383) * Add extension for LANraragi LANraragi project page: https://github.com/Difegue/LANraragi * Drop tag exclusion support and improve tag search perfomance a bit * LANraragi: API fixes as of 0.6.7 Image routing was 404ing in Mojolicious due to preceding / resulting in //api/page Manga parsing was failing with "no fun mode" due to wrong URL parameter for key * Update to newer API * Fix strange bug on last page * Increment version code * Reset increment back to 1 & Instantiate Gson once only Co-authored-by: RePod --- src/all/lanraragi/build.gradle | 21 ++ .../lanraragi/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3330 bytes .../lanraragi/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1888 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4504 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 8108 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 12341 bytes src/all/lanraragi/res/web_hi_res_512.png | Bin 0 -> 60688 bytes .../extension/all/lanraragi/LANraragi.kt | 257 ++++++++++++++++++ .../extension/all/lanraragi/model/Archive.kt | 8 + .../all/lanraragi/model/ArchivePage.kt | 5 + .../lanraragi/model/ArchiveSearchResult.kt | 8 + 11 files changed, 299 insertions(+) create mode 100644 src/all/lanraragi/build.gradle create mode 100644 src/all/lanraragi/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/all/lanraragi/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/all/lanraragi/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/all/lanraragi/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/all/lanraragi/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/all/lanraragi/res/web_hi_res_512.png create mode 100644 src/all/lanraragi/src/eu/kanade/tachiyomi/extension/all/lanraragi/LANraragi.kt create mode 100644 src/all/lanraragi/src/eu/kanade/tachiyomi/extension/all/lanraragi/model/Archive.kt create mode 100644 src/all/lanraragi/src/eu/kanade/tachiyomi/extension/all/lanraragi/model/ArchivePage.kt create mode 100644 src/all/lanraragi/src/eu/kanade/tachiyomi/extension/all/lanraragi/model/ArchiveSearchResult.kt diff --git a/src/all/lanraragi/build.gradle b/src/all/lanraragi/build.gradle new file mode 100644 index 000000000..25a6f2a75 --- /dev/null +++ b/src/all/lanraragi/build.gradle @@ -0,0 +1,21 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +ext { + appName = 'Tachiyomi: LANraragi' + pkgNameSuffix = 'all.lanraragi' + extClass = '.LANraragi' + extVersionCode = 1 + libVersion = '1.2' +} + +dependencies { + compileOnly project(':preference-stub') + + compileOnly 'com.github.inorichi.injekt:injekt-core:65b0440' + + compileOnly 'com.google.code.gson:gson:2.8.2' + compileOnly 'com.github.salomonbrys.kotson:kotson:2.5.0' +} + +apply from: "$rootDir/common.gradle" diff --git a/src/all/lanraragi/res/mipmap-hdpi/ic_launcher.png b/src/all/lanraragi/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..fd5da26451c7db21c266493ad17235836109f37c GIT binary patch literal 3330 zcmV+d4gKTgP5rBq5;B#23}B%4^a%1rMLkS1Of^o zhz4a<5U8RM5kZk13N4haEV9G2efgbun%nEN(@t$WV|tUD=`8n~@BHuoobx~D`=%Z# zK5|6BQ;bi}2owY4hatrP6$6yNAX3brVg?lggMRwyr*ci3Hf`(icw*Ai(<|ifD~tT< zt2b}n+?|w^w5d^}Mwk4}#;=PVIdY^%baeDA5ozP`cq)oWn7=`T{C#gmM#hEo^z>~9 z4<7t?qehKVL?k1-Ip+vaLPA32R;^ksE>WUHryw^vpy{QhrES@`abx%P?c1jY0+1&q zC8cjfM8qtQ#}gjV41)ZkjEs!S$;rusqoSggiAb8S>E^_su+-GlvEkw2uZl>CAh$Kp z>7}1OeR@JfM8pIUxsg|ZN}oM@c6^m8RsI|3w}--YCr_T7TC--&|B1+zyaH6_%$YOe zt5&T#Iur~IbdD)0Dbpe&Bgct|&y1FnieTq^)vJ#R^vgrxy5q->$Jef18wQ0I zKp7cXGp{}Oc(UG8_w&5ol#m0+fZ)+iuh%QruV0t+^mHj*y0o4EV<(^l3RK7d)Zb?Z!EV2uIf4$e+s z@*1pz8X(+*4E4z;pU8+2BjnbtTT-!NMVT;Rf^_K6L0!z4V{Qd2V2t}PVE!=x0S>Np z?b^Gh$iB*TXfmkJdsXmEx#fRh{d$tyT~Ur;g#H!}7lCMHU&R;}d5 zjT;gk9xh*f^_4_MMrL6ThWlboZeonT&jb}fZmok$?bxwHI(F=+v4?;>cI;T$vuBTH zFMx8gCqIHPJD`FFAOi>H@b}rXXJy;AZJMFFckeDYZ{Cy_UU)&Dqk(GGswGc6@r3m2 z*H7-c>n@)G+8;Y|^L~*7Gl>;|pK0fI4{05EITEERz#PMlD|N4fCw%P-5} z!-w^;ef#$E#v57U#%B`96Yf-!6u zG-!}~`|Y=ywwpC;CQm>8v<7DaGfbH|bEf?K^Utzy;X=(=WVnkLFUqgK{;Gldn{U3+ zG6Y7w`|i7Xy)*R(3R00W2!PNz`}XaVr=EIBnepI*4@zuotlW9$opSr_w`*+SAd3M4 zaR(4B%TdJx%%)A7WYVNb>UskQ4wU!be_ubBUltV^Ko)z*R8-^7JoAhK1UnFeum~}T zTam3SjoTx@{PN2$vTD^Tb<4eb_o|TO=-C;Eqwsq@P1&UIGtoG=mkE)B#m@z}X{PIf$h`#~I>a&n#5CPZ# zN=iyn4dg!DuTjb0fB*d|9C@V8!8otI_L?kTzB~(q{!swAUCbAg5Q>v0Pu3VkhO?M- z<;oS+OP_uAS?B}gY-Nz02)55Z|GXq8Cufq!36Aq`Tx!LN6;iWi%}n>wt5?^4G|e_dr>};Zzu;Y<06BrdmC!ld=?_2rP>viq zqH{wGA_}{7>7p5F>C&ZIc2GW$zMTi-(U2cGa-@O;K)hzztaIni3Iu`@;h2(=q5>1J z&{Gt<2vNpx>Z6?cLeWljjyvwSBeR0HjOG-f07L(X zn}Y;^QPrwd(<0XtdQQ!@0t3i7$?4OlYm=P=4a40d)4(FDw*bl6Nn|0AthRCEMqLN9 z)eJsEc0yeP^gZ|7qw8H(y<@D^cz{8jM!S}qgxi_he*N{=^3X#MWwvY!y_#o|FosFK z{r211rmzDy;V!Z&fuSg28eqImz=kcj2C;;=1*=fS?kvY^1Yv4676xNtV$_XL=T!c< z>AH36G^XLE0Ly#;Y4z&W^2j5PXeP|5UMo-r*_t^3u@d3yz{Ow^jEatqmU;8$Y2j&^ zjkv;l820hUAM2xKDjN^>pr&cV5|7L!Pn|lYVDTNi&W)HjaiYdSqyo=vp)tEaU0?v& zsswk=36L+H<1`o-ff-RzQPQ_>UyU;;X1a`Tz4ex|$X_YKcK{mh3@}vp4H`61ceAz% zSr7*KtN05Ipf}%qGh4}Fph0z5Ko6QAPA~>An7DZHVqpwolRNd>a~r2#y?Uz58H?p+ zi*INp;vXv|Apww^O~i<}xH#2BPU-^?!gAcWaakCYT{+UDM-PdQk5_$U4L3fEYtfPg zAY#zN4?i4y49d>MU;zN(jsRpUrhJ}Ceg6FU3Xq#Y?s&v=Sn|$0?_{<+h%bOlR_xlf zs|J1x(m@l0a1Vd+r+oSH+E4D*t(!6k_aZ2ho>|FQzka<>b?x?DVizq}>jwc2^%^>e zaVT}@Lf&`ZeMJ|fEzJ|8N!i2%RB}!M7J%M+?>)WCxCT`|8tR81e$W7mY{<^7oN>rH ziUeRfjDSUEgF%3Wv_Kcpge%fCk3qNxZb8`qJ209%NS1RSxY*RGQ>A(H=6a`>ELoyE z$uN{G1Tzqf>?(8DYEIyK_wFsPzy7**7Xh4QBmy;A4e(fBL&Y<$0aPSH(N-RC6PQGM z12*6)P@Lz^7{X-lz4u;iy;8rSvRNB5F^Rae4kRKHAxPb3tFdMzS&RUUp5j1lBPKc7 zlE-_vuyeCjp##JhTHgm+V;Deja`#cUFoaUV9e9a705y2jxX$OF zf3ASK^%N-{-Gk6XsoQoLO90OHN09&o?XAAT-B7j86VXRWzzPH_8+-=p0}RbBYAoB{ zV!OsHw%Ir^leA4tv8Ee9AP!jwU_8cfp150Xx6BlnP;>@OCs5pdH&~PvEHCpq3YumZ z^f#lN1~~y|ECUL#X}+=Aioj$ur)4pVGd7NMG11?ip#lfUNqYmz+939bkruR>yc-x} zj}vq&Wf%jX40t|+(Y7Ve#xhW>wc!sK`>sL($XyyZ8D)k#0dj7{bZ)?OmlPJ`oR7}3 z#kt!x&`nl_4v;TK8DMtzbGu94z%aLSb{%c3yfVfetn&>}wQAKy<(95FiA1+?W?**N z#my%7^S@(%5OX?l;zYndW+{`HnD}Z`RMZ%c$CJ11>;9|`lJ_$*GSUtmIy9+a!-f+B z`L$2!goK0vEnBvn78Vv(DM)PkTc_dmdarEQu;D+QI(1qiB7d!uNC-K6V_2_Vz3Ros z$Ip$9j&Ad}&MZg%Ebfn7Ai4Ha2$k>eahNCpfd}G>%3m?_2lH_#M!fFZ{EIrdy@G;cE`;yDl>vUl%gNt=Z9U|YLG~qNG5+HM8wvp@Q~^?%CL-+R!=-$> zl@r;#8fu@<>vh4xDBHc2?Z2XMPc&2wEi}N30rCTNF+jxt<#IcK`qY literal 0 HcmV?d00001 diff --git a/src/all/lanraragi/res/mipmap-mdpi/ic_launcher.png b/src/all/lanraragi/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d6c4ff69b8efc117f9b290669cf9dadd08eb95f8 GIT binary patch literal 1888 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 { + val id = getId(response) + + val uri = getApiUriBuilder("/api/extract") + uri.appendQueryParameter("id", id) + + return listOf( + SChapter.create().apply { + val uriBuild = uri.build() + + url = "${uriBuild.encodedPath}?${uriBuild.encodedQuery}" + chapter_number = 1F + name = "Chapter" + }) + } + + override fun pageListParse(response: Response): List { + val archivePage = gson.fromJson(response.body()!!.string()) + + return archivePage.pages.mapIndexed { index, url -> + val uri = Uri.parse("${baseUrl}${url.trimStart('.')}") + Page(index, uri.toString(), uri.toString(), uri) + } + } + + override fun imageUrlParse(response: Response) = throw UnsupportedOperationException("imageUrlParse is unused") + + override fun popularMangaRequest(page: Int): Request { + return searchMangaRequest(page, "", FilterList()) + } + + override fun popularMangaParse(response: Response): MangasPage { + return searchMangaParse(response) + } + + override fun latestUpdatesRequest(page: Int): Request { + return searchMangaRequest(page, "", FilterList()) + } + + override fun latestUpdatesParse(response: Response): MangasPage { + return searchMangaParse(response) + } + + private var lastResultCount: Int = 100 + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val uri = getApiUriBuilder("/api/search") + uri.appendQueryParameter("start", ((page - 1) * lastResultCount).toString()) + + if (query.isNotEmpty()) { + uri.appendQueryParameter("filter", query) + } + + return GET(uri.toString()) + } + + override fun searchMangaParse(response: Response): MangasPage { + val jsonResult = gson.fromJson(response.body()!!.string()) + val currentStart = getStart(response) + + lastResultCount = jsonResult.data.size + + return MangasPage( + jsonResult.data.map { + SManga.create().apply { + url = "/reader?id=${it.arcid}" + title = it.title + thumbnail_url = getThumbnailUri(it.arcid) + genre = it.tags + artist = getArtist(it.tags) + author = artist + } + }, currentStart + jsonResult.data.size < jsonResult.recordsFiltered) + } + + // Preferences + private val preferences: SharedPreferences by lazy { + Injekt.get().getSharedPreferences("source_$id", 0x0000) + } + + override fun setupPreferenceScreen(screen: PreferenceScreen) { + val hostnamePref = EditTextPreference(screen.context).apply { + key = "Hostname" + title = "Hostname" + text = baseUrl + summary = baseUrl + dialogTitle = "Hostname" + + setOnPreferenceChangeListener { _, newValue -> + var hostname = newValue as String + if (!hostname.startsWith("http://") && !hostname.startsWith("https://")) { + hostname = "http://$hostname" + } + + this.apply { + text = hostname + summary = hostname + } + + preferences.edit().putString("hostname", hostname).commit() + } + } + + val apiKeyPref = EditTextPreference(screen.context).apply { + key = "API Key" + title = "API Key" + text = apiKey + summary = apiKey + dialogTitle = "API Key" + + setOnPreferenceChangeListener { _, newValue -> + val apiKey = newValue as String + + this.apply { + text = apiKey + summary = apiKey + } + + preferences.edit().putString("apiKey", newValue).commit() + } + } + + screen.addPreference(hostnamePref) + screen.addPreference(apiKeyPref) + } + + override fun setupPreferenceScreen(screen: androidx.preference.PreferenceScreen) { + val hostnamePref = androidx.preference.EditTextPreference(screen.context).apply { + key = "Hostname" + title = "Hostname" + text = baseUrl + summary = baseUrl + dialogTitle = "Hostname" + + setOnPreferenceChangeListener { _, newValue -> + var hostname = newValue as String + if (!hostname.startsWith("http://") && !hostname.startsWith("https://")) { + hostname = "http://$hostname" + } + + this.apply { + text = hostname + summary = hostname + } + + preferences.edit().putString("hostname", hostname).commit() + } + } + + val apiKeyPref = androidx.preference.EditTextPreference(screen.context).apply { + key = "API Key" + title = "API Key" + text = apiKey + summary = apiKey + dialogTitle = "API Key" + + setOnPreferenceChangeListener { _, newValue -> + val apiKey = newValue as String + + this.apply { + text = apiKey + summary = apiKey + } + + preferences.edit().putString("apiKey", newValue).commit() + } + } + + screen.addPreference(hostnamePref) + screen.addPreference(apiKeyPref) + } + + // Helper + private fun getApiUriBuilder(path: String): Uri.Builder { + val uri = Uri.parse("$baseUrl$path").buildUpon() + if (apiKey.isNotEmpty()) { + uri.appendQueryParameter("key", apiKey) + } + + return uri + } + + private fun getThumbnailUri(id: String): String { + val uri = getApiUriBuilder("/api/thumbnail") + uri.appendQueryParameter("id", id) + + return uri.toString() + } + + private fun getTopResponse(response: Response): Response { + return if (response.priorResponse() == null) response else getTopResponse(response.priorResponse()!!) + } + + private fun getId(response: Response): String { + return getTopResponse(response).request().url().queryParameter("id").toString() + } + + private fun getStart(response: Response): Int { + return getTopResponse(response).request().url().queryParameter("start")!!.toInt() + } + + private fun getArtist(tags: String): String { + tags.split(',').forEach { + if (it.contains(':')) { + val temp = it.trim().split(':') + + if (temp[0].equals("artist", true)) return temp[1] + } + } + + return "N/A" + } +} diff --git a/src/all/lanraragi/src/eu/kanade/tachiyomi/extension/all/lanraragi/model/Archive.kt b/src/all/lanraragi/src/eu/kanade/tachiyomi/extension/all/lanraragi/model/Archive.kt new file mode 100644 index 000000000..4e507ba0e --- /dev/null +++ b/src/all/lanraragi/src/eu/kanade/tachiyomi/extension/all/lanraragi/model/Archive.kt @@ -0,0 +1,8 @@ +package eu.kanade.tachiyomi.extension.all.lanraragi.model + +data class Archive( + val arcid: String, + val isnew: String, + val tags: String, + val title: String +) diff --git a/src/all/lanraragi/src/eu/kanade/tachiyomi/extension/all/lanraragi/model/ArchivePage.kt b/src/all/lanraragi/src/eu/kanade/tachiyomi/extension/all/lanraragi/model/ArchivePage.kt new file mode 100644 index 000000000..b620ca4e1 --- /dev/null +++ b/src/all/lanraragi/src/eu/kanade/tachiyomi/extension/all/lanraragi/model/ArchivePage.kt @@ -0,0 +1,5 @@ +package eu.kanade.tachiyomi.extension.all.lanraragi.model + +data class ArchivePage( + val pages: List +) diff --git a/src/all/lanraragi/src/eu/kanade/tachiyomi/extension/all/lanraragi/model/ArchiveSearchResult.kt b/src/all/lanraragi/src/eu/kanade/tachiyomi/extension/all/lanraragi/model/ArchiveSearchResult.kt new file mode 100644 index 000000000..c9046f18f --- /dev/null +++ b/src/all/lanraragi/src/eu/kanade/tachiyomi/extension/all/lanraragi/model/ArchiveSearchResult.kt @@ -0,0 +1,8 @@ +package eu.kanade.tachiyomi.extension.all.lanraragi.model + +data class ArchiveSearchResult( + val data: List, + val draw: Int, + val recordsFiltered: Int, + val recordsTotal: Int +)