From c9651735f5aa7e61f0fedc3926722d11b6b986df Mon Sep 17 00:00:00 2001 From: Alessandro Jean Date: Tue, 17 Aug 2021 22:17:58 -0300 Subject: [PATCH] Remove TM extension. (#8609) --- src/pt/tsukimangas/AndroidManifest.xml | 27 - src/pt/tsukimangas/build.gradle | 19 - .../res/mipmap-hdpi/ic_launcher.png | Bin 2881 -> 0 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 1656 -> 0 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 3961 -> 0 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 7380 -> 0 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 10747 -> 0 bytes src/pt/tsukimangas/res/web_hi_res_512.png | Bin 53439 -> 0 bytes .../extension/pt/tsukimangas/TsukiMangas.kt | 478 ------------------ .../pt/tsukimangas/TsukiMangasDto.kt | 78 --- .../pt/tsukimangas/TsukiMangasUrlActivity.kt | 37 -- 11 files changed, 639 deletions(-) delete mode 100644 src/pt/tsukimangas/AndroidManifest.xml delete mode 100644 src/pt/tsukimangas/build.gradle delete mode 100644 src/pt/tsukimangas/res/mipmap-hdpi/ic_launcher.png delete mode 100644 src/pt/tsukimangas/res/mipmap-mdpi/ic_launcher.png delete mode 100644 src/pt/tsukimangas/res/mipmap-xhdpi/ic_launcher.png delete mode 100644 src/pt/tsukimangas/res/mipmap-xxhdpi/ic_launcher.png delete mode 100644 src/pt/tsukimangas/res/mipmap-xxxhdpi/ic_launcher.png delete mode 100644 src/pt/tsukimangas/res/web_hi_res_512.png delete mode 100644 src/pt/tsukimangas/src/eu/kanade/tachiyomi/extension/pt/tsukimangas/TsukiMangas.kt delete mode 100644 src/pt/tsukimangas/src/eu/kanade/tachiyomi/extension/pt/tsukimangas/TsukiMangasDto.kt delete mode 100644 src/pt/tsukimangas/src/eu/kanade/tachiyomi/extension/pt/tsukimangas/TsukiMangasUrlActivity.kt diff --git a/src/pt/tsukimangas/AndroidManifest.xml b/src/pt/tsukimangas/AndroidManifest.xml deleted file mode 100644 index a7be94fb4..000000000 --- a/src/pt/tsukimangas/AndroidManifest.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/pt/tsukimangas/build.gradle b/src/pt/tsukimangas/build.gradle deleted file mode 100644 index 15d291a6b..000000000 --- a/src/pt/tsukimangas/build.gradle +++ /dev/null @@ -1,19 +0,0 @@ -apply plugin: 'com.android.application' -apply plugin: 'kotlin-android' -apply plugin: 'kotlinx-serialization' - -ext { - extName = 'Tsuki Mangás' - pkgNameSuffix = 'pt.tsukimangas' - extClass = '.TsukiMangas' - extVersionCode = 27 - libVersion = '1.2' - containsNsfw = true -} - -dependencies { - implementation project(':lib-ratelimit') -} - -apply from: "$rootDir/common.gradle" - diff --git a/src/pt/tsukimangas/res/mipmap-hdpi/ic_launcher.png b/src/pt/tsukimangas/res/mipmap-hdpi/ic_launcher.png deleted file mode 100644 index 6f76b7f4da68ae295882600178a68b5aca4ded8c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2881 zcmV-H3%>M;P)$-{Zj3RBCTj^c)QAML4^nhy{DWh{l4wzzHf?4^a+Ju_7w! zAt!c4>``-Km)K%7wwT>Lp7%2OO*S+0zB9A&r$=5`TsQBO_p{Hpz3)34gYsreAf}v; zJ%MsS5`~llDhK4viIgiSiV7mk{}-TP0DMWC%7C@>^z@WqFxa`EprA=86pG_nL!prA z$*n%uJ3BqjtiS9UR@dTjnx+-R#l>a${r-PtWo6}ZD0Y-&fPAf5wW?WIShzbcFRyhl z7)%17=_d?_|M(JA-t#!UpILvEbGYqeIF3L*rKF_XNJvN+lAWFX3P8{bk{uweVZ(;i zd_Ld4+}zy17zg(&19Ac|5D1*rG;Lr`PR?5^CD{RrO-oA~l%Jo!F&qw8HeNUqmdZ`Z z)Z^xyc4|~PpQdRa6B83BOtFGgloSb4 z_6^6x#2`LC9tjBvs8Xd0l9Q8BP*8w7ckbZFj~`~=xRnx0eEw4aB_}6m`h30;fb5jy z#O!=NADT65hW72-qh-sMXxz9l>eQ(Nzu%8dn>Jzn`t|t!{d=+dlMUE|O5H2S2uKD- z6^^E9Xxg+XrcRxT4jnq6YSpT!P@w{-Bwpk3_H5yVWi2l+4?TPK#I0MmOr5jpfSoEXYJjXv%D@?_-a zGaV`EgX|#uQh@AK#5`y2+_|F0GRu_B%*sgdeulAl z0|cPdjG~!|F$-oS^3twcxq@!px``P@+5A(qq8qDu*Trf=LV|J>W5vF5oOLs zG+EYXP7*+;eTyKu2NWM4uRPsRt5z+vY12kbmvUu-jfLyDapS-_X{zGHi4(}l$wAGU zHO2A{U(1&-NA23ROIao}YC7!8moF<#;Oi$)HOZ(b$O@2|n&!=$CkDh!n5tp9ar*RW z+`oTctanwfULEb)wG(P#K}w*94<8mP;zWIuCQV9Bk8tsjrgrJlB>_p*lw?YZ_%^&L zh$d#2_;K-%B?9x8vuDp@WvB6@xL^a)&*SiO36@u~z>LerwT zFfzS(@uFA-GiS~Ok7XZb&`c3()Tm*4DVpq({TbVZ#RO*s%kzUUApl|C$q6 zWdcZ6Y7h{84*_v5XVt1zCDye#aZghrARQbB#VEzXmS$!K$ZUFqzKf=|ZrwWJzpU2o z&A{1MfqMnT#l=aZ7|mqBfB|AR1_2pOjDyqxEn2jw1Rz~OR)FlxnpyU_bLYghxEjJG zBf`^nzuKiFQT0J)fXqxR5|GivjDYm=!DwOx#DQjJW?K3nD_FeFjT<+_i=du7c_N}H z0|W1q|1$5A0Q06GS*fA>pu2bPDw|le0O@APe`#)vj!ZI{kaB)$$&w}5w{M^2p6(*> zKMxRZkl~tg*XyWd%a)b!K};DqJ;^l7SC~) znGcec8mzn-#W-ck)r<=lE{JeWpF}^w8jUwhN1UFXj^@pqi%gpDsX9H1xiK-bK{H}9 zwcwrr-iJc-rXX1q(*Y4c@7}#d`M?^C+gzAMGxR4WCW1>sR1Bd!dh|$`0jF1~Fh(Ut zIcD2-8ysYVSYSc))Sb(w^rAksYghW7AiK5j=jb_Dj9zA+gnC`P@&s5>CUvvOjMS{M4`-)7O z(SsQ;vu3J;kXVGWfaS4N3pXavnGzby3SDW0!!m@X=d|(Mj9!~JZx(wS8S))AZ-8V` zjON3FlL}!Tq=#~6*)NU!{=950a)&4 zpLC_z*x0{@LZP()%%2;GxEt93o%$q)gLTvWlh5ay5ex?Z0pN?%=f&bGRH#rt7!3X$ zK)PMJFT1l}5R87ymjR3fz;!Aq=%L_dSU4Z-ErL`>)3lBN8Um1Rn^%4C-{HWb)x7|~ ze*pX&!1E$Fe4y9#2L_}+EC7JNv_R#=7ri%sR3}=uU$*C=LI{H9#O<_H65qS}VFCSC zxf|SH^dg+!`8PcD-|Qd|u1)df>8B}lNV?K~XE?>KvFMG`51hzMtZW7U8=SoykmO4$ f2UHHon;ribAX8}H9{#&Q00000NkvXXu0mjf#DHxa diff --git a/src/pt/tsukimangas/res/mipmap-mdpi/ic_launcher.png b/src/pt/tsukimangas/res/mipmap-mdpi/ic_launcher.png deleted file mode 100644 index 1ecc240e9c507e151a583d29f23bd18735f0345e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1656 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 Tpvnee00000NkvXXu0mjf)PhG< diff --git a/src/pt/tsukimangas/res/mipmap-xxhdpi/ic_launcher.png b/src/pt/tsukimangas/res/mipmap-xxhdpi/ic_launcher.png deleted file mode 100644 index 6dd850a9de44d6eda8627764a8bdbb06ecb62c53..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7380 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 diff --git a/src/pt/tsukimangas/res/mipmap-xxxhdpi/ic_launcher.png b/src/pt/tsukimangas/res/mipmap-xxxhdpi/ic_launcher.png deleted file mode 100644 index cc9dc086a609fab3493929c8f50c969ee2db3da2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 10747 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 diff --git a/src/pt/tsukimangas/res/web_hi_res_512.png b/src/pt/tsukimangas/res/web_hi_res_512.png deleted file mode 100644 index 8f5f3f51d6920e2690f04cb273229bd8d9829d90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 53439 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.body!!.string()) - - val popularMangas = result.data.map(::popularMangaItemParse) - - val hasNextPage = result.page < result.lastPage - - return MangasPage(popularMangas, hasNextPage) - } - - private fun popularMangaItemParse(manga: TsukiMangaDto) = SManga.create().apply { - val poster = manga.poster?.substringBefore("?") - - title = manga.title + (if (manga.format == NOVEL_FORMAT_ID) " (Novel)" else "") - thumbnail_url = baseUrl + (if (poster.isNullOrEmpty()) EMPTY_COVER else "/imgs/$poster") - url = "/obra/${manga.id}/${manga.url}" - } - - override fun latestUpdatesRequest(page: Int): Request { - return GET("$baseUrl/api/v2/home/lastests?page=$page", headers) - } - - override fun latestUpdatesParse(response: Response): MangasPage { - val result = json.decodeFromString(response.body!!.string()) - - val latestMangas = result.data.map(::latestMangaItemParse) - - val hasNextPage = result.page < result.lastPage - - return MangasPage(latestMangas, hasNextPage) - } - - private fun latestMangaItemParse(manga: TsukiMangaDto) = SManga.create().apply { - val poster = manga.poster?.substringBefore("?") - - title = manga.title + (if (manga.format == NOVEL_FORMAT_ID) " (Novel)" else "") - thumbnail_url = baseUrl + (if (poster.isNullOrEmpty()) EMPTY_COVER else "/imgs/$poster") - url = "/obra/${manga.id}/${manga.url}" - } - - override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { - if (query.startsWith(PREFIX_ID_SEARCH) && query.matches(ID_SEARCH_PATTERN)) { - return mangaDetailsApiRequest(query.removePrefix(PREFIX_ID_SEARCH)) - } - - val newHeaders = headersBuilder() - .set("Referer", "$baseUrl/lista-completa") - .build() - - val url = "$baseUrl/api/v2/mangas?page=$page".toHttpUrlOrNull()!!.newBuilder() - url.addQueryParameter("title", query) - - // Some filters have to follow an order in the URL. - filters.filterIsInstance().firstOrNull()?.state - ?.filter { it.state } - ?.forEach { url.addQueryParameter("genres[]", it.name) } - - filters.filterIsInstance().firstOrNull() - ?.let { - if (it.state == Filter.TriState.STATE_INCLUDE) { - url.addQueryParameter("adult_content", "1") - } else if (it.state == Filter.TriState.STATE_EXCLUDE) { - url.addQueryParameter("adult_content", "false") - } - - return@let null - } - - filters.filterIsInstance().firstOrNull() - ?.let { filter -> - if (filter.state!!.index == 0) { - url.addQueryParameter("filter", if (filter.state!!.ascending) "1" else "0") - } else { - url.addQueryParameter("filter", if (filter.state!!.ascending) "3" else "2") - } - } - - filters.forEach { filter -> - when (filter) { - is DemographyFilter -> { - if (filter.state > 0) { - url.addQueryParameter("demography", filter.state.toString()) - } - } - - is FormatFilter -> { - if (filter.state > 0) { - url.addQueryParameter("format", filter.state.toString()) - } - } - - is StatusFilter -> { - if (filter.state > 0) { - url.addQueryParameter("status", (filter.state - 1).toString()) - } - } - } - } - - return GET(url.toString(), newHeaders) - } - - override fun searchMangaParse(response: Response): MangasPage { - if (response.request.url.toString().contains("/mangas/")) { - val manga = mangaDetailsParse(response) - - return MangasPage(listOf(manga), hasNextPage = false) - } - - val result = json.decodeFromString(response.body!!.string()) - - val searchResults = result.data.map(::searchMangaItemParse) - - val hasNextPage = result.page < result.lastPage - - return MangasPage(searchResults, hasNextPage) - } - - private fun searchMangaItemParse(manga: TsukiMangaDto) = SManga.create().apply { - val poster = manga.poster?.substringBefore("?") - - title = manga.title + (if (manga.format == NOVEL_FORMAT_ID) " (Novel)" else "") - thumbnail_url = baseUrl + (if (poster.isNullOrEmpty()) EMPTY_COVER else "/imgs/$poster") - url = "/obra/${manga.id}/${manga.url}" - } - - // Workaround to allow "Open in browser" use the real URL. - override fun fetchMangaDetails(manga: SManga): Observable { - return client.newCall(mangaDetailsApiRequest(manga.url)) - .asObservableSuccess() - .map { response -> - mangaDetailsParse(response).apply { initialized = true } - } - } - - private fun mangaDetailsApiRequest(mangaUrl: String): Request { - val mangaId = mangaUrl.substringAfter("obra/").substringBefore("/") - - return GET("$baseUrl/api/v2/mangas/$mangaId", headers) - } - - override fun mangaDetailsRequest(manga: SManga): Request { - val newHeaders = headersBuilder() - .removeAll("Accept") - .build() - - return GET(baseUrl + manga.url, newHeaders) - } - - override fun mangaDetailsParse(response: Response): SManga = SManga.create().apply { - val mangaDto = json.decodeFromString(response.body!!.string()) - val poster = mangaDto.poster?.substringBefore("?") - - title = mangaDto.title + (if (mangaDto.format == NOVEL_FORMAT_ID) " (Novel)" else "") - thumbnail_url = baseUrl + (if (poster.isNullOrEmpty()) EMPTY_COVER else "/imgs/$poster") - description = mangaDto.synopsis.orEmpty() - status = mangaDto.status.orEmpty().toStatus() - author = mangaDto.author.orEmpty() - artist = mangaDto.artist.orEmpty() - genre = mangaDto.genres.joinToString { it.genre } - url = "/obra/${mangaDto.id}/${mangaDto.url}" - } - - override fun chapterListRequest(manga: SManga): Request { - val mangaId = manga.url.substringAfter("obra/").substringBefore("/") - - val newHeaders = headersBuilder() - .set("Referer", baseUrl + manga.url) - .build() - - return GET("$baseUrl/api/v2/chapters/$mangaId/all", newHeaders) - } - - override fun chapterListParse(response: Response): List { - val mangaUrl = response.request.header("Referer")!!.substringAfter(baseUrl) - - return json - .decodeFromString>(response.body!!.string()) - .flatMap { chapterListItemParse(it, mangaUrl) } - .reversed() - } - - private fun chapterListItemParse(chapter: TsukiChapterDto, mangaUrl: String): List { - val mangaId = mangaUrl.substringAfter("obra/").substringBefore("/") - val mangaSlug = mangaUrl.substringAfterLast("/") - - return chapter.versions.map { version -> - SChapter.create().apply { - name = "Cap. " + chapter.number + - (if (!chapter.title.isNullOrEmpty()) " - " + chapter.title else "") - chapter_number = chapter.number.toFloatOrNull() ?: -1f - scanlator = version.scans - .sortedBy { it.scan.name } - .joinToString { it.scan.name } - date_upload = version.createdAt.substringBefore(" ").toDate() - url = "/leitor/$mangaId/${version.id}/$mangaSlug/${chapter.number}" - } - } - } - - override fun pageListRequest(chapter: SChapter): Request { - val newHeaders = headersBuilder() - .set("Referer", baseUrl + chapter.url) - .build() - - val mangaId = chapter.url - .substringAfter("leitor/") - .substringBefore("/") - val versionId = chapter.url - .substringAfter("$mangaId/") - .substringBefore("/") - - return GET("$baseUrl/api/v2/chapter/versions/$versionId", newHeaders) - } - - override fun pageListParse(response: Response): List { - val result = json.decodeFromString(response.body!!.string()) - - return result.pages.mapIndexed { i, page -> - val cdnUrl = "https://cdn${page.server}.tsukimangas.com" - Page(i, "$baseUrl/", cdnUrl + page.url) - } - } - - override fun fetchImageUrl(page: Page): Observable = Observable.just(page.imageUrl!!) - - override fun imageUrlParse(response: Response): String = "" - - override fun imageRequest(page: Page): Request { - val newHeaders = headersBuilder() - .set("Accept", ACCEPT_IMAGE) - .set("Accept-Language", ACCEPT_LANGUAGE) - .set("Referer", page.url) - .build() - - return GET(page.imageUrl!!, newHeaders) - } - - private fun tsukiAuthIntercept(chain: Interceptor.Chain): Response { - val response = chain.proceed(chain.request()) - - // API returns 403, 429 or 1020 when the extension is getting blocked. - if (BLOCKING_CODES.contains(response.code)) { - response.close() - throw IOException(UA_DISABLED_MESSAGE) - } - - return response - } - - private class Genre(name: String) : Filter.CheckBox(name) - - private class DemographyFilter(demographies: List) : Filter.Select("Demografia", demographies.toTypedArray()) - - private class FormatFilter(types: List) : Filter.Select("Formato", types.toTypedArray()) - - private class StatusFilter(statusList: List) : Filter.Select("Status", statusList.toTypedArray()) - - private class AdultFilter : Filter.TriState("Conteúdo adulto", STATE_EXCLUDE) - - private class SortByFilter : Filter.Sort("Ordenar por", arrayOf("Visualizações", "Nota"), Selection(0, false)) - - private class GenreFilter(genres: List) : Filter.Group("Gêneros", genres) - - override fun getFilterList(): FilterList = FilterList( - DemographyFilter(getDemographiesList()), - FormatFilter(getSerieFormats()), - StatusFilter(getStatusList()), - AdultFilter(), - SortByFilter(), - GenreFilter(getGenreList()), - ) - - private fun getDemographiesList(): List = listOf( - "Todas", - "Shounen", - "Shoujo", - "Seinen", - "Josei" - ) - - private fun getSerieFormats(): List = listOf( - "Todos", - "Mangá", - "Manhwa", - "Manhua", - "Novel" - ) - - private fun getStatusList(): List = listOf( - "Todos", - "Ativo", - "Completo", - "Cancelado", - "Hiato" - ) - - // [...document.querySelectorAll(".multiselect:first-of-type .multiselect__element span span")] - // .map(i => `Genre("${i.innerHTML}")`).join(",\n") - private fun getGenreList(): List = listOf( - Genre("4-Koma"), - Genre("Adaptação"), - Genre("Aliens"), - Genre("Animais"), - Genre("Antologia"), - Genre("Artes Marciais"), - Genre("Aventura"), - Genre("Ação"), - Genre("Colorido por fã"), - Genre("Comédia"), - Genre("Crime"), - Genre("Cross-dressing"), - Genre("Deliquentes"), - Genre("Demônios"), - Genre("Doujinshi"), - Genre("Drama"), - Genre("Ecchi"), - Genre("Esportes"), - Genre("Fantasia"), - Genre("Fantasmas"), - Genre("Filosófico"), - Genre("Gals"), - Genre("Ganhador de Prêmio"), - Genre("Garotas Monstro"), - Genre("Garotas Mágicas"), - Genre("Gastronomia"), - Genre("Gore"), - Genre("Harém"), - Genre("Harém Reverso"), - Genre("Hentai"), - Genre("Histórico"), - Genre("Horror"), - Genre("Incesto"), - Genre("Isekai"), - Genre("Jogos Tradicionais"), - Genre("Lolis"), - Genre("Long Strip"), - Genre("Mafia"), - Genre("Magia"), - Genre("Mecha"), - Genre("Medicina"), - Genre("Militar"), - Genre("Mistério"), - Genre("Monstros"), - Genre("Música"), - Genre("Ninjas"), - Genre("Obscenidade"), - Genre("Oficialmente Colorido"), - Genre("One-shot"), - Genre("Policial"), - Genre("Psicológico"), - Genre("Pós-apocalíptico"), - Genre("Realidade Virtual"), - Genre("Reencarnação"), - Genre("Romance"), - Genre("Samurais"), - Genre("Sci-Fi"), - Genre("Shotas"), - Genre("Shoujo Ai"), - Genre("Shounen Ai"), - Genre("Slice of Life"), - Genre("Sobrenatural"), - Genre("Sobrevivência"), - Genre("Super Herói"), - Genre("Thriller"), - Genre("Todo Colorido"), - Genre("Trabalho de Escritório"), - Genre("Tragédia"), - Genre("Troca de Gênero"), - Genre("Vampiros"), - Genre("Viagem no Tempo"), - Genre("Vida Escolar"), - Genre("Violência Sexual"), - Genre("Vídeo Games"), - Genre("Webcomic"), - Genre("Wuxia"), - Genre("Yaoi"), - Genre("Yuri"), - Genre("Zumbis") - ) - - private fun String.toDate(): Long { - return try { - DATE_FORMATTER.parse(this)?.time ?: 0L - } catch (e: ParseException) { - 0L - } - } - - private fun String.toStatus() = when { - contains("Ativo") -> SManga.ONGOING - contains("Completo") -> SManga.COMPLETED - else -> SManga.UNKNOWN - } - - companion object { - private const val ACCEPT = "application/json, text/plain, */*" - private const val ACCEPT_IMAGE = "image/avif,image/webp,image/apng,image/*,*/*;q=0.8" - private const val ACCEPT_LANGUAGE = "pt-BR,pt;q=0.9,en-US;q=0.8,en;q=0.7,es;q=0.6,gl;q=0.5" - // By request of site owner. Detailed at Issue #4912 (in Portuguese). - // private val USER_AGENT = "Tachiyomi " + System.getProperty("http.agent")!! - - // private val CDN_1_URL = "https://cdn1.tsukimangas.com".toHttpUrl() - // private val CDN_2_URL = "https://cdn2.tsukimangas.com".toHttpUrl() - - private val BLOCKING_CODES = arrayOf(403, 429, 1020) - - private const val UA_DISABLED_MESSAGE = "O site está bloqueando o Tachiyomi. " + - "Aguarde com que eles parem de bloquear ou migre para outras fontes." - - private const val EMPTY_COVER = "/ext/errorcapa.jpg" - - private const val NOVEL_FORMAT_ID = 4 - - private val DATE_FORMATTER by lazy { SimpleDateFormat("yyyy-MM-dd", Locale.ENGLISH) } - - const val PREFIX_ID_SEARCH = "id:" - private val ID_SEARCH_PATTERN = "^id:(\\d+)$".toRegex() - } -} diff --git a/src/pt/tsukimangas/src/eu/kanade/tachiyomi/extension/pt/tsukimangas/TsukiMangasDto.kt b/src/pt/tsukimangas/src/eu/kanade/tachiyomi/extension/pt/tsukimangas/TsukiMangasDto.kt deleted file mode 100644 index 835714461..000000000 --- a/src/pt/tsukimangas/src/eu/kanade/tachiyomi/extension/pt/tsukimangas/TsukiMangasDto.kt +++ /dev/null @@ -1,78 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.tsukimangas - -import kotlinx.serialization.SerialName -import kotlinx.serialization.Serializable - -@Serializable -data class TsukiAuthRequestDto( - val username: String, - val password: String -) - -@Serializable -data class TsukiAuthResultDto( - val token: String? = null -) - -@Serializable -data class TsukiPaginatedDto( - val data: List = emptyList(), - val lastPage: Int, - val page: Int, - val perPage: Int, - val total: Int -) - -@Serializable -data class TsukiMangaDto( - val artist: String? = "", - val author: String? = "", - val format: Int? = 1, - val genres: List = emptyList(), - val id: Int, - val poster: String? = "", - val status: String? = "", - val synopsis: String? = "", - val title: String, - val url: String -) - -@Serializable -data class TsukiGenreDto( - val genre: String -) - -@Serializable -data class TsukiChapterDto( - val number: String, - val title: String? = "", - val versions: List = emptyList() -) - -@Serializable -data class TsukiChapterVersionDto( - @SerialName("created_at") val createdAt: String, - val id: Int, - val scans: List = emptyList() -) - -@Serializable -data class TsukiScanlatorDto( - val scan: TsukiScanlatorDetailDto -) - -@Serializable -data class TsukiScanlatorDetailDto( - val name: String -) - -@Serializable -data class TsukiReaderDto( - val pages: List = emptyList() -) - -@Serializable -data class TsukiPageDto( - val server: Int, - val url: String -) diff --git a/src/pt/tsukimangas/src/eu/kanade/tachiyomi/extension/pt/tsukimangas/TsukiMangasUrlActivity.kt b/src/pt/tsukimangas/src/eu/kanade/tachiyomi/extension/pt/tsukimangas/TsukiMangasUrlActivity.kt deleted file mode 100644 index 247742f62..000000000 --- a/src/pt/tsukimangas/src/eu/kanade/tachiyomi/extension/pt/tsukimangas/TsukiMangasUrlActivity.kt +++ /dev/null @@ -1,37 +0,0 @@ -package eu.kanade.tachiyomi.extension.pt.tsukimangas - -import android.app.Activity -import android.content.ActivityNotFoundException -import android.content.Intent -import android.os.Bundle -import android.util.Log -import kotlin.system.exitProcess - -class TsukiMangasUrlActivity : Activity() { - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - - val pathSegments = intent?.data?.pathSegments - if (pathSegments != null && pathSegments.size > 1) { - val titleId = pathSegments[1] - - val mainIntent = Intent().apply { - action = "eu.kanade.tachiyomi.SEARCH" - putExtra("query", TsukiMangas.PREFIX_ID_SEARCH + titleId) - putExtra("filter", packageName) - } - - try { - startActivity(mainIntent) - } catch (e: ActivityNotFoundException) { - Log.e("TsukiMangasUrlActivity", e.toString()) - } - } else { - Log.e("TsukiMangasUrlActivity", "Could not parse URI from intent $intent") - } - - finish() - exitProcess(0) - } -}