Foolslide - remove 3 sources, improve thumbnails (#2586)
Foolslide - remove 3 sources, improve thumbnails
This commit is contained in:
parent
4ab84071c3
commit
59538ef38e
|
@ -5,7 +5,7 @@ ext {
|
||||||
appName = 'Tachiyomi: FoolSlide (multiple sources)'
|
appName = 'Tachiyomi: FoolSlide (multiple sources)'
|
||||||
pkgNameSuffix = 'all.foolslide'
|
pkgNameSuffix = 'all.foolslide'
|
||||||
extClass = '.FoolSlideFactory'
|
extClass = '.FoolSlideFactory'
|
||||||
extVersionCode = 36
|
extVersionCode = 37
|
||||||
libVersion = '1.2'
|
libVersion = '1.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -110,7 +110,14 @@ abstract class FoolSlide(
|
||||||
override fun mangaDetailsRequest(manga: SManga) = allowAdult(super.mangaDetailsRequest(manga))
|
override fun mangaDetailsRequest(manga: SManga) = allowAdult(super.mangaDetailsRequest(manga))
|
||||||
|
|
||||||
open val mangaDetailsInfoSelector = "div.info"
|
open val mangaDetailsInfoSelector = "div.info"
|
||||||
open val mangaDetailsThumbnailSelector = "div.thumbnail img"
|
|
||||||
|
// if there's no image on the details page, get the first page of the first chapter
|
||||||
|
fun getDetailsThumbnail(document: Document, urlSelector: String = chapterUrlSelector): String? {
|
||||||
|
return document.select("div.thumbnail img").firstOrNull()?.attr("abs:src") ?:
|
||||||
|
document.select(chapterListSelector()).last().select(urlSelector).attr("abs:href")
|
||||||
|
.let { url -> client.newCall(allowAdult(GET(url, headers))).execute() }
|
||||||
|
.let { response -> pageListParse(response).first().imageUrl }
|
||||||
|
}
|
||||||
|
|
||||||
override fun mangaDetailsParse(document: Document): SManga {
|
override fun mangaDetailsParse(document: Document): SManga {
|
||||||
val infoElement = document.select(mangaDetailsInfoSelector).first().text()
|
val infoElement = document.select(mangaDetailsInfoSelector).first().text()
|
||||||
|
@ -119,7 +126,7 @@ abstract class FoolSlide(
|
||||||
manga.author = infoElement.substringAfter("Author:").substringBefore("Artist:")
|
manga.author = infoElement.substringAfter("Author:").substringBefore("Artist:")
|
||||||
manga.artist = infoElement.substringAfter("Artist:").substringBefore("Synopsis:")
|
manga.artist = infoElement.substringAfter("Artist:").substringBefore("Synopsis:")
|
||||||
manga.description = infoElement.substringAfter("Synopsis:")
|
manga.description = infoElement.substringAfter("Synopsis:")
|
||||||
manga.thumbnail_url = document.select(mangaDetailsThumbnailSelector).first()?.absUrl("src")
|
manga.thumbnail_url = getDetailsThumbnail(document)
|
||||||
|
|
||||||
return manga
|
return manga
|
||||||
}
|
}
|
||||||
|
|
|
@ -8,7 +8,6 @@ import eu.kanade.tachiyomi.source.Source
|
||||||
import eu.kanade.tachiyomi.source.SourceFactory
|
import eu.kanade.tachiyomi.source.SourceFactory
|
||||||
import eu.kanade.tachiyomi.source.model.Page
|
import eu.kanade.tachiyomi.source.model.Page
|
||||||
import eu.kanade.tachiyomi.source.model.SManga
|
import eu.kanade.tachiyomi.source.model.SManga
|
||||||
import eu.kanade.tachiyomi.util.asJsoup
|
|
||||||
import okhttp3.Request
|
import okhttp3.Request
|
||||||
import org.jsoup.nodes.Document
|
import org.jsoup.nodes.Document
|
||||||
|
|
||||||
|
@ -22,8 +21,6 @@ class FoolSlideFactory : SourceFactory {
|
||||||
IskultripScans(),
|
IskultripScans(),
|
||||||
AnataNoMotokare(),
|
AnataNoMotokare(),
|
||||||
DeathTollScans(),
|
DeathTollScans(),
|
||||||
DKThias(),
|
|
||||||
WorldThree(),
|
|
||||||
DokiFansubs(),
|
DokiFansubs(),
|
||||||
YuriIsm(),
|
YuriIsm(),
|
||||||
AjiaNoScantrad(),
|
AjiaNoScantrad(),
|
||||||
|
@ -33,7 +30,6 @@ class FoolSlideFactory : SourceFactory {
|
||||||
Lilyreader(),
|
Lilyreader(),
|
||||||
Russification(),
|
Russification(),
|
||||||
EvilFlowers(),
|
EvilFlowers(),
|
||||||
AkaiYuhiMunTeam(),
|
|
||||||
LupiTeam(),
|
LupiTeam(),
|
||||||
HentaiCafe(),
|
HentaiCafe(),
|
||||||
TheCatScans(),
|
TheCatScans(),
|
||||||
|
@ -66,7 +62,15 @@ class TheCatScans : FoolSlide("The Cat Scans", "https://reader2.thecatscans.com/
|
||||||
|
|
||||||
class SenseScans : FoolSlide("Sense-Scans", "http://sensescans.com", "en", "/reader")
|
class SenseScans : FoolSlide("Sense-Scans", "http://sensescans.com", "en", "/reader")
|
||||||
|
|
||||||
class KireiCake : FoolSlide("Kirei Cake", "https://reader.kireicake.com", "en")
|
class KireiCake : FoolSlide("Kirei Cake", "https://reader.kireicake.com", "en") {
|
||||||
|
override fun mangaDetailsParse(document: Document): SManga {
|
||||||
|
return SManga.create().apply {
|
||||||
|
description = document.select("$mangaDetailsInfoSelector li:has(b:contains(description))")
|
||||||
|
.first()?.ownText()?.substringAfter(":")
|
||||||
|
thumbnail_url = getDetailsThumbnail(document)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class SilentSky : FoolSlide("Silent Sky", "https://reader.silentsky-scans.net", "en")
|
class SilentSky : FoolSlide("Silent Sky", "https://reader.silentsky-scans.net", "en")
|
||||||
|
|
||||||
|
@ -82,14 +86,6 @@ class AnataNoMotokare : FoolSlide("Anata no Motokare", "https://motokare.xyz", "
|
||||||
|
|
||||||
class DeathTollScans : FoolSlide("Death Toll Scans", "https://reader.deathtollscans.net", "en")
|
class DeathTollScans : FoolSlide("Death Toll Scans", "https://reader.deathtollscans.net", "en")
|
||||||
|
|
||||||
class DKThias : FoolSlide("DKThias Scanlations", "http://reader.dkthias.com", "en", "/reader") {
|
|
||||||
override fun popularMangaRequest(page: Int): Request {
|
|
||||||
return GET("$baseUrl$urlModifier/list/$page/", headers)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
class WorldThree : FoolSlide("World Three", "http://www.slide.world-three.org", "en")
|
|
||||||
|
|
||||||
class DokiFansubs : FoolSlide("Doki Fansubs", "https://kobato.hologfx.com", "en", "/reader")
|
class DokiFansubs : FoolSlide("Doki Fansubs", "https://kobato.hologfx.com", "en", "/reader")
|
||||||
|
|
||||||
class YuriIsm : FoolSlide("Yuri-ism", "https://www.yuri-ism.net", "en", "/slide")
|
class YuriIsm : FoolSlide("Yuri-ism", "https://www.yuri-ism.net", "en", "/slide")
|
||||||
|
@ -108,8 +104,6 @@ class Russification : FoolSlide("Русификация", "https://rusmanga.ru",
|
||||||
|
|
||||||
class EvilFlowers : FoolSlide("Evil Flowers", "http://reader.evilflowers.com", "en")
|
class EvilFlowers : FoolSlide("Evil Flowers", "http://reader.evilflowers.com", "en")
|
||||||
|
|
||||||
class AkaiYuhiMunTeam : FoolSlide("AkaiYuhiMun team", "https://akaiyuhimun.ru", "ru", "/manga")
|
|
||||||
|
|
||||||
class LupiTeam : FoolSlide("LupiTeam", "https://lupiteam.net", "it", "/reader") {
|
class LupiTeam : FoolSlide("LupiTeam", "https://lupiteam.net", "it", "/reader") {
|
||||||
override fun mangaDetailsParse(document: Document): SManga {
|
override fun mangaDetailsParse(document: Document): SManga {
|
||||||
val infoElement = document.select(mangaDetailsInfoSelector).first().text()
|
val infoElement = document.select(mangaDetailsInfoSelector).first().text()
|
||||||
|
@ -125,7 +119,7 @@ class LupiTeam : FoolSlide("LupiTeam", "https://lupiteam.net", "it", "/reader")
|
||||||
else -> SManga.UNKNOWN
|
else -> SManga.UNKNOWN
|
||||||
}
|
}
|
||||||
manga.description = infoElement.substringAfter("Trama: ")
|
manga.description = infoElement.substringAfter("Trama: ")
|
||||||
manga.thumbnail_url = document.select(mangaDetailsThumbnailSelector).first()?.absUrl("src")
|
manga.thumbnail_url = getDetailsThumbnail(document)
|
||||||
|
|
||||||
return manga
|
return manga
|
||||||
}
|
}
|
||||||
|
@ -143,9 +137,7 @@ class BaixarHentai : FoolSlide("Baixar Hentai", "https://leitura.baixarhentai.ne
|
||||||
override fun mangaDetailsParse(document: Document): SManga {
|
override fun mangaDetailsParse(document: Document): SManga {
|
||||||
return SManga.create().apply {
|
return SManga.create().apply {
|
||||||
title = document.select("h1.title").text()
|
title = document.select("h1.title").text()
|
||||||
thumbnail_url = document.select("div.thumbnail img").firstOrNull()?.attr("abs:src") ?:
|
thumbnail_url = getDetailsThumbnail(document, "div.title a")
|
||||||
client.newCall(GET(document.select("div.title a").last().attr("abs:href"), headers)).execute().asJsoup()
|
|
||||||
.let { pageListParse(it).firstOrNull()?.imageUrl }
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue