From 819108ff03c2ce3d7cc794711f91a66ee2bb9d3f Mon Sep 17 00:00:00 2001 From: kasperskier <95685115+kasperskier@users.noreply.github.com> Date: Sat, 14 May 2022 02:53:02 +0800 Subject: [PATCH] Terra Historicus source (#11842) * Terra Historicus source * Terra Historicus: use English for extension name --- src/zh/terrahistoricus/AndroidManifest.xml | 2 + src/zh/terrahistoricus/build.gradle | 12 +++ .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 3908 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 2201 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 5196 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 9559 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 12524 bytes src/zh/terrahistoricus/res/web_hi_res_512.png | Bin 0 -> 46940 bytes .../zh/terrahistoricus/TerraHistoricus.kt | 63 ++++++++++++ .../zh/terrahistoricus/TerraHistoricusDto.kt | 93 ++++++++++++++++++ 10 files changed, 170 insertions(+) create mode 100644 src/zh/terrahistoricus/AndroidManifest.xml create mode 100644 src/zh/terrahistoricus/build.gradle create mode 100644 src/zh/terrahistoricus/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/zh/terrahistoricus/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/zh/terrahistoricus/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/zh/terrahistoricus/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/zh/terrahistoricus/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/zh/terrahistoricus/res/web_hi_res_512.png create mode 100644 src/zh/terrahistoricus/src/eu/kanade/tachiyomi/extension/zh/terrahistoricus/TerraHistoricus.kt create mode 100644 src/zh/terrahistoricus/src/eu/kanade/tachiyomi/extension/zh/terrahistoricus/TerraHistoricusDto.kt diff --git a/src/zh/terrahistoricus/AndroidManifest.xml b/src/zh/terrahistoricus/AndroidManifest.xml new file mode 100644 index 000000000..30deb7f79 --- /dev/null +++ b/src/zh/terrahistoricus/AndroidManifest.xml @@ -0,0 +1,2 @@ + + diff --git a/src/zh/terrahistoricus/build.gradle b/src/zh/terrahistoricus/build.gradle new file mode 100644 index 000000000..13b0dd776 --- /dev/null +++ b/src/zh/terrahistoricus/build.gradle @@ -0,0 +1,12 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' +apply plugin: 'kotlinx-serialization' + +ext { + extName = 'Terra Historicus' + pkgNameSuffix = 'zh.terrahistoricus' + extClass = '.TerraHistoricus' + extVersionCode = 1 +} + +apply from: "$rootDir/common.gradle" diff --git a/src/zh/terrahistoricus/res/mipmap-hdpi/ic_launcher.png b/src/zh/terrahistoricus/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..2327339be692e3d18071b090b6adc08f3e5668df GIT binary patch literal 3908 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 bw!Q7&ke<{1PekMT00000NkvXXu0mjf-!nXG literal 0 HcmV?d00001 diff --git a/src/zh/terrahistoricus/res/mipmap-xhdpi/ic_launcher.png b/src/zh/terrahistoricus/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..7cbda0126d471d408c0e509d3b6a50461c74f614 GIT binary patch literal 5196 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 literal 0 HcmV?d00001 diff --git a/src/zh/terrahistoricus/res/mipmap-xxxhdpi/ic_launcher.png b/src/zh/terrahistoricus/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..3bd9c2bd3032a875c0b39c1a8965ab24795cd853 GIT binary patch literal 12524 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 SHTf?Fp!VRYa?yRW!2bv62x`Fq literal 0 HcmV?d00001 diff --git a/src/zh/terrahistoricus/res/web_hi_res_512.png b/src/zh/terrahistoricus/res/web_hi_res_512.png new file mode 100644 index 0000000000000000000000000000000000000000..8540a8891d8f494626b7474b766f2f8528950a20 GIT binary patch literal 46940 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 OU39bzHH+09!u}5jD+&An literal 0 HcmV?d00001 diff --git a/src/zh/terrahistoricus/src/eu/kanade/tachiyomi/extension/zh/terrahistoricus/TerraHistoricus.kt b/src/zh/terrahistoricus/src/eu/kanade/tachiyomi/extension/zh/terrahistoricus/TerraHistoricus.kt new file mode 100644 index 000000000..bf2f8aebe --- /dev/null +++ b/src/zh/terrahistoricus/src/eu/kanade/tachiyomi/extension/zh/terrahistoricus/TerraHistoricus.kt @@ -0,0 +1,63 @@ +package eu.kanade.tachiyomi.extension.zh.terrahistoricus + +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.network.asObservableSuccess +import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.model.MangasPage +import eu.kanade.tachiyomi.source.model.Page +import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.online.HttpSource +import kotlinx.serialization.decodeFromString +import kotlinx.serialization.json.Json +import okhttp3.Response +import rx.Observable +import uy.kohesive.injekt.injectLazy + +class TerraHistoricus : HttpSource() { + override val name = "泰拉记事社" + override val lang = "zh" + override val baseUrl = "https://terra-historicus.hypergryph.com" + override val supportsLatest = true + + private val json: Json by injectLazy() + + override fun popularMangaRequest(page: Int) = GET("$baseUrl/api/comic") + + override fun popularMangaParse(response: Response) = MangasPage( + json.decodeFromString>>(response.body!!.string()).data.map(THComic::toSManga), + false + ) + + override fun latestUpdatesRequest(page: Int) = GET("$baseUrl/api/recentUpdate") + + override fun latestUpdatesParse(response: Response) = MangasPage( + json.decodeFromString>>(response.body!!.string()).data.map(THRecentUpdate::toSManga), + false + ) + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList) = + throw UnsupportedOperationException("没有搜索功能") + + override fun searchMangaParse(response: Response) = throw UnsupportedOperationException("没有搜索功能") + + override fun mangaDetailsParse(response: Response) = + json.decodeFromString>(response.body!!.string()).data.toSManga() + + override fun chapterListParse(response: Response) = + json.decodeFromString>(response.body!!.string()).data.toSChapterList().orEmpty() + + override fun fetchPageList(chapter: SChapter): Observable> { + return client.newCall(pageListRequest(chapter)) + .asObservableSuccess() + .map { response -> + (0 until json.decodeFromString>(response.body!!.string()).data.pageInfos!!.size).map { + Page(it, "$baseUrl${chapter.url}/page?pageNum=${it + 1}") + } + } + } + + override fun pageListParse(response: Response) = throw UnsupportedOperationException("Not used.") + + override fun imageUrlParse(response: Response) = + json.decodeFromString>(response.body!!.string()).data.url +} diff --git a/src/zh/terrahistoricus/src/eu/kanade/tachiyomi/extension/zh/terrahistoricus/TerraHistoricusDto.kt b/src/zh/terrahistoricus/src/eu/kanade/tachiyomi/extension/zh/terrahistoricus/TerraHistoricusDto.kt new file mode 100644 index 000000000..85be93a25 --- /dev/null +++ b/src/zh/terrahistoricus/src/eu/kanade/tachiyomi/extension/zh/terrahistoricus/TerraHistoricusDto.kt @@ -0,0 +1,93 @@ +package eu.kanade.tachiyomi.extension.zh.terrahistoricus + +import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.model.SManga +import kotlinx.serialization.Serializable + +@Serializable +data class THResult(val code: Int, val msg: String, val data: T) + +@Serializable +data class THComic( + val cid: String, +// val type: Int, + val cover: String, + val title: String, + val subtitle: String, + val authors: List, + val keywords: List? = null, + val introduction: String? = null, +// val direction: String? = null, + val episodes: List? = null, + val updateTime: Long? = null, // timestamp in seconds +) { + private fun getDescription(): String? { + var result = "" + if (subtitle.isNotEmpty()) result += "「$subtitle」" + if (introduction != null) result += introduction + return result.ifEmpty { null } + } + + fun toSManga() = SManga.create().apply { + url = "/api/comic/$cid" + title = this@THComic.title + author = authors.joinToString("、") + thumbnail_url = cover + description = getDescription() + genre = keywords?.joinToString(",")?.replace(",", ", ") + } + + fun toSChapterList() = episodes?.map { episode -> + SChapter.create().apply { + url = "/api/comic/$cid/episode/${episode.cid!!}" + try { + chapter_number = episode.shortTitle?.toFloat() ?: chapter_number + name = episode.title + } catch (e: NumberFormatException) { + name = "${episode.shortTitle} ${episode.title}" + } + date_upload = (updateTime ?: 0L) * 1000 + } + } +} + +@Serializable +data class THRecentUpdate( + val coverUrl: String, + val comicCid: String, + val title: String, +// val subtitle: String, +// val episodeCid: String, +// val episodeType: Int, +// val episodeShortTitle: String, +// val updateTime: Long +) { + fun toSManga() = SManga.create().apply { + url = "/api/comic/$comicCid" + title = this@THRecentUpdate.title + thumbnail_url = coverUrl + } +} + +@Serializable +data class THEpisode( + val cid: String? = null, +// val type: Int, + val shortTitle: String?, + val title: String, // 作品信息中 +// val likes: Int? = null, + val pageInfos: List? = null, // 章节详情中 +) + +@Serializable +data class THPageInfo( +// val width: Int, +// val height: Int, + val doublePage: Boolean, +) + +@Serializable +data class THPage( +// val pageNum: Int, + val url: String, +)