diff --git a/src/en/mayotune/build.gradle b/src/all/mayotune/build.gradle similarity index 50% rename from src/en/mayotune/build.gradle rename to src/all/mayotune/build.gradle index 56b568d56..9f62ece6f 100644 --- a/src/en/mayotune/build.gradle +++ b/src/all/mayotune/build.gradle @@ -1,8 +1,7 @@ ext { extName = 'MayoTune' - extClass = '.MayoTune' - extVersionCode = 2 - baseUrl = 'https://mayotune.xyz' + extClass = '.MayoTuneFactory' + extVersionCode = 1 isNsfw = false } diff --git a/src/en/mayotune/res/mipmap-hdpi/ic_launcher.png b/src/all/mayotune/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from src/en/mayotune/res/mipmap-hdpi/ic_launcher.png rename to src/all/mayotune/res/mipmap-hdpi/ic_launcher.png diff --git a/src/en/mayotune/res/mipmap-mdpi/ic_launcher.png b/src/all/mayotune/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from src/en/mayotune/res/mipmap-mdpi/ic_launcher.png rename to src/all/mayotune/res/mipmap-mdpi/ic_launcher.png diff --git a/src/en/mayotune/res/mipmap-xhdpi/ic_launcher.png b/src/all/mayotune/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from src/en/mayotune/res/mipmap-xhdpi/ic_launcher.png rename to src/all/mayotune/res/mipmap-xhdpi/ic_launcher.png diff --git a/src/en/mayotune/res/mipmap-xxhdpi/ic_launcher.png b/src/all/mayotune/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from src/en/mayotune/res/mipmap-xxhdpi/ic_launcher.png rename to src/all/mayotune/res/mipmap-xxhdpi/ic_launcher.png diff --git a/src/en/mayotune/res/mipmap-xxxhdpi/ic_launcher.png b/src/all/mayotune/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from src/en/mayotune/res/mipmap-xxxhdpi/ic_launcher.png rename to src/all/mayotune/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/src/en/mayotune/src/eu/kanade/tachiyomi/extension/en/mayotune/ChapterDto.kt b/src/all/mayotune/src/eu/kanade/tachiyomi/extension/all/mayotune/ChapterDto.kt similarity index 73% rename from src/en/mayotune/src/eu/kanade/tachiyomi/extension/en/mayotune/ChapterDto.kt rename to src/all/mayotune/src/eu/kanade/tachiyomi/extension/all/mayotune/ChapterDto.kt index ffe2b87f9..6f8c58293 100644 --- a/src/en/mayotune/src/eu/kanade/tachiyomi/extension/en/mayotune/ChapterDto.kt +++ b/src/all/mayotune/src/eu/kanade/tachiyomi/extension/all/mayotune/ChapterDto.kt @@ -1,4 +1,4 @@ -package eu.kanade.tachiyomi.extension.en.mayotune +package eu.kanade.tachiyomi.extension.all.mayotune import keiyoushi.utils.tryParse import kotlinx.serialization.Contextual @@ -15,10 +15,10 @@ data class ChapterDto( val date: String, ) { @Contextual - private val sdf = SimpleDateFormat("yyyy-MM-dd", Locale.US) + private val sdf = SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'", Locale.US) - fun getChapterURL(): String = - "/api/chapters?id=$id&number=${this.getNumberStr()}" + fun getChapterURL(chapterEndpoint: String): String = + "/api/$chapterEndpoint/chapters?id=$id&number=${this.getNumberStr()}" fun getNumberStr(): String = if (this.number % 1 == 0f) { this.number.toInt().toString() diff --git a/src/en/mayotune/src/eu/kanade/tachiyomi/extension/en/mayotune/MayoTune.kt b/src/all/mayotune/src/eu/kanade/tachiyomi/extension/all/mayotune/MayoTune.kt similarity index 87% rename from src/en/mayotune/src/eu/kanade/tachiyomi/extension/en/mayotune/MayoTune.kt rename to src/all/mayotune/src/eu/kanade/tachiyomi/extension/all/mayotune/MayoTune.kt index c8730f7df..e6da6f879 100644 --- a/src/en/mayotune/src/eu/kanade/tachiyomi/extension/en/mayotune/MayoTune.kt +++ b/src/all/mayotune/src/eu/kanade/tachiyomi/extension/all/mayotune/MayoTune.kt @@ -1,4 +1,4 @@ -package eu.kanade.tachiyomi.extension.en.mayotune +package eu.kanade.tachiyomi.extension.all.mayotune import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.source.model.FilterList @@ -14,14 +14,22 @@ import okhttp3.Request import okhttp3.Response import rx.Observable -class MayoTune() : HttpSource() { +class MayoTune( + override val lang: String, + private val chapterEndpoint: String, +) : HttpSource() { override val name: String = "MayoTune" override val baseUrl: String = "https://mayotune.xyz" - override val lang: String = "en" override val versionId: Int = 1 + private val names = mapOf( + "en" to "Tune In to the Midnight Heart", + "ja" to "真夜中ハートチューン", + "all" to "Mayonaka Heart Tune", + ) + private val source = SManga.create().apply { - title = "Mayonaka Heart Tune" + title = names[lang] ?: names["all"]!! url = "/" thumbnail_url = "$baseUrl/img/cover.jpg" author = "Masakuni Igarashi" @@ -54,7 +62,7 @@ class MayoTune() : HttpSource() { ): Observable { val mangas = mutableListOf() - if (source.title.lowercase().contains(query.lowercase()) || + if (names.any { it.value.lowercase().contains(query.lowercase()) } || source.author?.lowercase()?.contains(query.lowercase()) == true ) { mangas.add(source) @@ -71,12 +79,12 @@ class MayoTune() : HttpSource() { // Get Override override fun chapterListRequest(manga: SManga): Request { - return GET("$baseUrl/api/chapters", headers) + return GET("$baseUrl/api/$chapterEndpoint/chapters", headers) } override fun getChapterUrl(chapter: SChapter): String { val id = (baseUrl + chapter.url).toHttpUrl().queryParameter("id") - return "$baseUrl/chapter/$id" + return "$baseUrl/$chapterEndpoint/chapter/$id" } // Details @@ -110,7 +118,7 @@ class MayoTune() : HttpSource() { val chapters = response.parseAs>() return chapters.sortedByDescending { it.number }.map { chapter -> SChapter.create().apply { - url = chapter.getChapterURL() + url = chapter.getChapterURL(chapterEndpoint) name = chapter.getChapterTitle() chapter_number = chapter.number date_upload = chapter.getDateTimestamp() diff --git a/src/all/mayotune/src/eu/kanade/tachiyomi/extension/all/mayotune/MayoTuneFactory.kt b/src/all/mayotune/src/eu/kanade/tachiyomi/extension/all/mayotune/MayoTuneFactory.kt new file mode 100644 index 000000000..5054bf87c --- /dev/null +++ b/src/all/mayotune/src/eu/kanade/tachiyomi/extension/all/mayotune/MayoTuneFactory.kt @@ -0,0 +1,11 @@ +package eu.kanade.tachiyomi.extension.all.mayotune + +import eu.kanade.tachiyomi.source.Source +import eu.kanade.tachiyomi.source.SourceFactory + +class MayoTuneFactory : SourceFactory { + override fun createSources(): List = listOf( + MayoTune("en", ""), + MayoTune("ja", "raw"), + ) +}