diff --git a/multisrc/overrides/madara/dragontranslation/src/DragonTranslation.kt b/multisrc/overrides/madara/dragontranslation/src/DragonTranslation.kt deleted file mode 100644 index e9b9563d5..000000000 --- a/multisrc/overrides/madara/dragontranslation/src/DragonTranslation.kt +++ /dev/null @@ -1,25 +0,0 @@ -package eu.kanade.tachiyomi.extension.es.dragontranslation - -import eu.kanade.tachiyomi.multisrc.madara.Madara -import eu.kanade.tachiyomi.source.model.SChapter -import org.jsoup.nodes.Element - -class DragonTranslation : Madara("DragonTranslation", "https://dragontranslation.com", "es") { - override fun chapterFromElement(element: Element): SChapter { - val chapter = SChapter.create() - - with(element) { - select(chapterUrlSelector).first()?.let { urlElement -> - chapter.url = urlElement.attr("abs:href").let { - it.substringBefore("?style=paged") + if (!it.endsWith(chapterUrlSuffix)) chapterUrlSuffix else "" - } - chapter.name = urlElement.text().split(" ").dropLast(3).joinToString(" ") - } - chapter.date_upload = select("img").firstOrNull()?.attr("alt")?.let { parseRelativeDate(it) } - ?: select("span a").firstOrNull()?.attr("title")?.let { parseRelativeDate(it) } - ?: parseChapterDate(select("span.chapter-release-date i").firstOrNull()?.text()) - } - - return chapter - } -} diff --git a/multisrc/overrides/madara/dragontranslation/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madara/dragontranslationnet/res/mipmap-hdpi/ic_launcher.png similarity index 100% rename from multisrc/overrides/madara/dragontranslation/res/mipmap-hdpi/ic_launcher.png rename to multisrc/overrides/madara/dragontranslationnet/res/mipmap-hdpi/ic_launcher.png diff --git a/multisrc/overrides/madara/dragontranslation/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madara/dragontranslationnet/res/mipmap-mdpi/ic_launcher.png similarity index 100% rename from multisrc/overrides/madara/dragontranslation/res/mipmap-mdpi/ic_launcher.png rename to multisrc/overrides/madara/dragontranslationnet/res/mipmap-mdpi/ic_launcher.png diff --git a/multisrc/overrides/madara/dragontranslation/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madara/dragontranslationnet/res/mipmap-xhdpi/ic_launcher.png similarity index 100% rename from multisrc/overrides/madara/dragontranslation/res/mipmap-xhdpi/ic_launcher.png rename to multisrc/overrides/madara/dragontranslationnet/res/mipmap-xhdpi/ic_launcher.png diff --git a/multisrc/overrides/madara/dragontranslation/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madara/dragontranslationnet/res/mipmap-xxhdpi/ic_launcher.png similarity index 100% rename from multisrc/overrides/madara/dragontranslation/res/mipmap-xxhdpi/ic_launcher.png rename to multisrc/overrides/madara/dragontranslationnet/res/mipmap-xxhdpi/ic_launcher.png diff --git a/multisrc/overrides/madara/dragontranslation/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madara/dragontranslationnet/res/mipmap-xxxhdpi/ic_launcher.png similarity index 100% rename from multisrc/overrides/madara/dragontranslation/res/mipmap-xxxhdpi/ic_launcher.png rename to multisrc/overrides/madara/dragontranslationnet/res/mipmap-xxxhdpi/ic_launcher.png diff --git a/multisrc/overrides/madara/dragontranslation/res/web_hi_res_512.png b/multisrc/overrides/madara/dragontranslationnet/res/web_hi_res_512.png similarity index 100% rename from multisrc/overrides/madara/dragontranslation/res/web_hi_res_512.png rename to multisrc/overrides/madara/dragontranslationnet/res/web_hi_res_512.png diff --git a/multisrc/overrides/madara/dragontranslationnet/src/DragonTranslationNet.kt b/multisrc/overrides/madara/dragontranslationnet/src/DragonTranslationNet.kt new file mode 100644 index 000000000..1b6896667 --- /dev/null +++ b/multisrc/overrides/madara/dragontranslationnet/src/DragonTranslationNet.kt @@ -0,0 +1,90 @@ +package eu.kanade.tachiyomi.extension.es.dragontranslationnet + +import eu.kanade.tachiyomi.multisrc.madara.Madara +import eu.kanade.tachiyomi.network.GET +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.model.SManga +import eu.kanade.tachiyomi.util.asJsoup +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Request +import okhttp3.Response +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element + +class DragonTranslationNet : Madara("DragonTranslation.net", "https://dragontranslation.net", "es") { + + override fun popularMangaRequest(page: Int): Request { + return GET("$baseUrl/mangas?page=$page", headers) + } + + override fun popularMangaSelector() = "div:has(> div.series-card)" + + override fun popularMangaNextPageSelector() = "li.page-item a[rel=next]" + + override fun popularMangaFromElement(element: Element) = SManga.create().apply { + setUrlWithoutDomain(element.select("div.series-box a").attr("href")) + thumbnail_url = element.select("img.thumb-img").attr("abs:src") + title = element.select(".series-title").text() + } + + override fun latestUpdatesRequest(page: Int): Request { + return GET(baseUrl, headers) + } + + override fun latestUpdatesParse(response: Response): MangasPage { + val document = response.asJsoup() + val latestMangaContainer = document.selectFirst("div.d-flex:has(div.series-card)") + val mangaList = latestMangaContainer!!.select("> div").map { element -> + SManga.create().apply { + setUrlWithoutDomain(element.select("div.series-box a").attr("href")) + title = element.select(".series-title").text() + thumbnail_url = element.select("img.thumb-img").attr("abs:src") + } + } + return MangasPage(mangaList, false) + } + + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val url = baseUrl.toHttpUrl().newBuilder() + .addPathSegment("mangas") + .addQueryParameter("buscar", query) + .addQueryParameter("page", page.toString()) + + return GET(url.build(), headers) + } + + override fun searchMangaSelector() = popularMangaSelector() + + override fun searchMangaFromElement(element: Element) = popularMangaFromElement(element) + + override fun searchMangaNextPageSelector() = popularMangaNextPageSelector() + + override fun getFilterList() = FilterList(emptyList()) + + override fun chapterFromElement(element: Element): SChapter { + val chapter = SChapter.create() + + with(element) { + select(chapterUrlSelector).first()?.let { urlElement -> + chapter.url = urlElement.attr("abs:href") + chapter.name = urlElement.select("p.chapter-manhwa-title").text() + chapter.date_upload = parseChapterDate(select("span.chapter-release-date").text()) + } + } + + return chapter + } + + override fun pageListParse(document: Document): List { + return document.select("div#chapter_imgs img").mapIndexed { index, element -> + Page( + index, + document.location(), + element.attr("abs:src"), + ) + } + } +} diff --git a/multisrc/overrides/mangathemesia/dragontranslation/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/mangathemesia/dragontranslation/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..144f3530d Binary files /dev/null and b/multisrc/overrides/mangathemesia/dragontranslation/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/mangathemesia/dragontranslation/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/mangathemesia/dragontranslation/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..d30f74496 Binary files /dev/null and b/multisrc/overrides/mangathemesia/dragontranslation/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/mangathemesia/dragontranslation/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/mangathemesia/dragontranslation/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..7e25b185a Binary files /dev/null and b/multisrc/overrides/mangathemesia/dragontranslation/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/mangathemesia/dragontranslation/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/mangathemesia/dragontranslation/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..70a89d460 Binary files /dev/null and b/multisrc/overrides/mangathemesia/dragontranslation/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/mangathemesia/dragontranslation/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/mangathemesia/dragontranslation/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..d4ec8796b Binary files /dev/null and b/multisrc/overrides/mangathemesia/dragontranslation/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/mangathemesia/dragontranslation/res/web_hi_res_512.png b/multisrc/overrides/mangathemesia/dragontranslation/res/web_hi_res_512.png new file mode 100644 index 000000000..b39ae07d2 Binary files /dev/null and b/multisrc/overrides/mangathemesia/dragontranslation/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/mangathemesia/dragontranslation/src/DragonTranslation.kt b/multisrc/overrides/mangathemesia/dragontranslation/src/DragonTranslation.kt new file mode 100644 index 000000000..1f8042737 --- /dev/null +++ b/multisrc/overrides/mangathemesia/dragontranslation/src/DragonTranslation.kt @@ -0,0 +1,13 @@ +package eu.kanade.tachiyomi.extension.es.dragontranslation + +import eu.kanade.tachiyomi.multisrc.mangathemesia.MangaThemesia +import java.text.SimpleDateFormat +import java.util.Locale + +class DragonTranslation : MangaThemesia( + "DragonTranslation", + "https://dragontranslation.com", + "es", + mangaUrlDirectory = "/manga", + dateFormat = SimpleDateFormat("MMMM dd, yyyy", Locale("en")), +) diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/Madara.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/Madara.kt index f1d2e4bcc..8e6346db8 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/Madara.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/Madara.kt @@ -822,6 +822,9 @@ abstract class Madara( WordSet("ago", "atrás", "önce", "قبل").endsWith(date) -> { parseRelativeDate(date) } + WordSet("hace").startsWith(date) -> { + parseRelativeDate(date) + } date.contains(Regex("""\d(st|nd|rd|th)""")) -> { // Clean date (e.g. 5th December 2019 to 5 December 2019) before parsing it date.split(" ").map { @@ -848,9 +851,9 @@ abstract class Madara( WordSet("jam", "saat", "heure", "hora", "hour", "ชั่วโมง", "giờ", "ore", "ساعة", "小时").anyWordIn(date) -> cal.apply { add(Calendar.HOUR, -number) }.timeInMillis WordSet("menit", "dakika", "min", "minute", "minuto", "นาที", "دقائق").anyWordIn(date) -> cal.apply { add(Calendar.MINUTE, -number) }.timeInMillis WordSet("detik", "segundo", "second", "วินาที").anyWordIn(date) -> cal.apply { add(Calendar.SECOND, -number) }.timeInMillis - WordSet("week").anyWordIn(date) -> cal.apply { add(Calendar.DAY_OF_MONTH, -number * 7) }.timeInMillis - WordSet("month").anyWordIn(date) -> cal.apply { add(Calendar.MONTH, -number) }.timeInMillis - WordSet("year").anyWordIn(date) -> cal.apply { add(Calendar.YEAR, -number) }.timeInMillis + WordSet("week", "semana").anyWordIn(date) -> cal.apply { add(Calendar.DAY_OF_MONTH, -number * 7) }.timeInMillis + WordSet("month", "mes").anyWordIn(date) -> cal.apply { add(Calendar.MONTH, -number) }.timeInMillis + WordSet("year", "año").anyWordIn(date) -> cal.apply { add(Calendar.YEAR, -number) }.timeInMillis else -> 0 } } diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt index 1eef7f4fd..f3f972d79 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madara/MadaraGenerator.kt @@ -82,7 +82,7 @@ class MadaraGenerator : ThemeSourceGenerator { SingleLang("Disaster Scans", "https://disasterscans.com", "en", overrideVersionCode = 2), SingleLang("DokkoManga", "https://dokkomanga.xyz", "es"), SingleLang("DoujinHentai", "https://doujinhentai.net", "es", isNsfw = true, overrideVersionCode = 1), - SingleLang("DragonTranslation", "https://dragontranslation.com", "es", isNsfw = true, overrideVersionCode = 4), + SingleLang("DragonTranslation.net", "https://dragontranslation.net", "es", isNsfw = true, className = "DragonTranslationNet"), SingleLang("Drake Scans", "https://drakescans.com", "en", overrideVersionCode = 3), SingleLang("Dream Manga", "https://www.swarmmanga.com", "en", overrideVersionCode = 3), SingleLang("Drope Scan", "https://dropescan.com", "pt-BR", overrideVersionCode = 4), diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangathemesia/MangaThemesiaGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangathemesia/MangaThemesiaGenerator.kt index 9cee0f332..0c30bda43 100644 --- a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangathemesia/MangaThemesiaGenerator.kt +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/mangathemesia/MangaThemesiaGenerator.kt @@ -31,6 +31,7 @@ class MangaThemesiaGenerator : ThemeSourceGenerator { SingleLang("CosmicScans.id", "https://cosmicscans.id", "id", overrideVersionCode = 1, className = "CosmicScansID"), SingleLang("Diskus Scan", "https://diskusscan.com", "pt-BR", overrideVersionCode = 7), SingleLang("Dojing.net", "https://dojing.net", "id", isNsfw = true, className = "DojingNet"), + SingleLang("DragonTranslation", "https://dragontranslation.com", "es", isNsfw = true, overrideVersionCode = 9), SingleLang("DuniaKomik.id", "https://duniakomik.id", "id", className = "DuniaKomikId"), SingleLang("FlameScans.fr", "https://flamescans.fr", "fr", className = "FlameScansFR"), SingleLang("Franxx Mangás", "https://franxxmangas.net", "pt-BR", className = "FranxxMangas", isNsfw = true),