Update sites for FMReader, Foolslide, and Genkan (#3230)

This commit is contained in:
TacoTheDank 2020-05-20 00:50:40 -04:00 committed by GitHub
parent d121387761
commit 10d51de70a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 15 additions and 61 deletions

View File

@ -5,7 +5,7 @@ ext {
appName = 'Tachiyomi: FMReader (multiple aggregators)'
pkgNameSuffix = 'all.fmreader'
extClass = '.FMReaderFactory'
extVersionCode = 13
extVersionCode = 14
libVersion = '1.2'
}

View File

@ -24,11 +24,8 @@ import rx.Observable
class FMReaderFactory : SourceFactory {
override fun createSources(): List<Source> = listOf(
LHTranslation(),
MangaHato(),
ManhwaScan(),
MangaTiki(),
KissLove(),
MangaBone(),
YoloManga(),
ReadComicOnlineOrg(),
HanaScan(),
RawLH(),
@ -38,7 +35,6 @@ class FMReaderFactory : SourceFactory {
Comicastle(),
Manhwa18Net(),
Manhwa18NetRaw(),
MangaBorn(),
SayTruyen(),
EpikManga(),
ManhuaScan()
@ -50,15 +46,8 @@ class FMReaderFactory : SourceFactory {
class LHTranslation : FMReader("LHTranslation", "https://lhtranslation.net", "en")
class MangaHato : FMReader("MangaHato", "https://mangahato.com", "ja")
class ManhwaScan : FMReader("ManhwaScan", "https://manhwascan.com", "en") {
override fun getImgAttr(element: Element?): String? = element?.attr("abs:src")
}
class MangaTiki : FMReader("MangaTiki", "https://mangatiki.com", "ja")
class KissLove : FMReader("KissLove", "https://kisslove.net", "ja")
class MangaBone : FMReader("MangaBone", "https://mangabone.com", "en")
class YoloManga : FMReader("Yolo Manga", "https://yolomanga.ca", "es") {
override fun chapterListSelector() = "div#tab-chapper ~ div#tab-chapper table tr"
}
class ReadComicOnlineOrg : FMReader("ReadComicOnline.org", "https://readcomiconline.org", "en") {
override val client: OkHttpClient = network.cloudflareClient.newBuilder()
@ -263,45 +252,6 @@ class Manhwa18NetRaw : FMReader("Manhwa18.net Raw", "https://manhwa18.net", "ko"
override fun getFilterList() = FilterList(super.getFilterList().filterNot { it == GenreList(getGenreList()) })
}
class MangaBorn : FMReader("MangaBorn", "https://hellxlight.com", "en") {
override val requestPath = "manga_list"
override val popularSort = "type=topview"
override fun popularMangaNextPageSelector() = "div.page-number a.select + a:not(.go-p-end)"
override fun popularMangaSelector() = "div.story-item"
override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request {
return GET("$baseUrl/search/${query.replace(" ", "_")}?page=$page", headers)
}
override fun searchMangaParse(response: Response): MangasPage {
return response.asJsoup().let { document ->
val mangas = document.select(searchMangaSelector()).map { searchMangaFromElement(it) }
MangasPage(mangas, document.select(searchMangaNextPageSelector()).isNotEmpty())
}
}
override fun searchMangaFromElement(element: Element): SManga {
return SManga.create().apply {
element.select("h2 a").let {
setUrlWithoutDomain(it.attr("href"))
title = it.text()
}
thumbnail_url = element.select("img").attr("abs:src")
}
}
override fun mangaDetailsParse(document: Document): SManga {
return SManga.create().apply {
document.select("div.story_content").let { info ->
author = info.select("span:contains(Author) + a").text()
genre = info.select("span:contains(Genres) + a").joinToString { it.text() }
status = parseStatus(info.select("span:contains(Status) + a").text())
thumbnail_url = info.select("img.avatar").attr("abs:src")
description = info.select("div#story_discription > p").text()
}
}
}
override fun chapterListSelector() = "div.chapter_list li"
override val pageListImageSelector = "div.panel-read-story img"
override fun getFilterList() = FilterList()
}
class SayTruyen : FMReader("Say Truyen", "https://saytruyen.com", "vi") {
override fun mangaDetailsParse(document: Document): SManga {
val info = document.select("div.row").first()

View File

@ -5,7 +5,7 @@ ext {
appName = 'Tachiyomi: FoolSlide (multiple sources)'
pkgNameSuffix = 'all.foolslide'
extClass = '.FoolSlideFactory'
extVersionCode = 47
extVersionCode = 48
libVersion = '1.2'
}

View File

@ -107,7 +107,7 @@ class Mangatellers : FoolSlide("Mangatellers", "http://www.mangatellers.gr", "en
}
}
class IskultripScans : FoolSlide("Iskultrip Scans", "http://www.maryfaye.net", "en", "/reader")
class IskultripScans : FoolSlide("Iskultrip Scans", "https://maryfaye.net", "en", "/reader")
class AnataNoMotokare : FoolSlide("Anata no Motokare", "https://motokare.xyz", "en", "/reader")
@ -117,7 +117,7 @@ class DokiFansubs : FoolSlide("Doki Fansubs", "https://kobato.hologfx.com", "en"
class YuriIsm : FoolSlide("Yuri-ism", "https://www.yuri-ism.net", "en", "/slide")
class AjiaNoScantrad : FoolSlide("Ajia no Scantrad", "https://ajianoscantrad.fr", "fr", "/reader")
class AjiaNoScantrad : FoolSlide("Ajia no Scantrad", "https://www.ajianoscantrad.fr", "fr", "/reader")
class OneTimeScans : FoolSlide("One Time Scans", "https://reader.otscans.com", "en")
@ -129,7 +129,7 @@ class Lilyreader : FoolSlide("Lilyreader", "https://manga.smuglo.li", "en")
class Russification : FoolSlide("Русификация", "https://rusmanga.ru", "ru")
class EvilFlowers : FoolSlide("Evil Flowers", "http://reader.evilflowers.com", "en")
class EvilFlowers : FoolSlide("Evil Flowers", "https://reader.evilflowers.com", "en")
class LupiTeam : FoolSlide("LupiTeam", "https://lupiteam.net", "it", "/reader") {
override fun mangaDetailsParse(document: Document): SManga {
@ -156,11 +156,11 @@ class ZandynoFansub : FoolSlide("Zandy no Fansub", "https://zandynofansub.aishit
class HelveticaScans : FoolSlide("Helvetica Scans", "https://helveticascans.com", "en", "/r")
class KirishimaFansub : FoolSlide("Kirishima Fansub", "https://kirishimafansub.net", "es", "/lector")
class KirishimaFansub : FoolSlide("Kirishima Fansub", "https://www.kirishimafansub.net", "es", "/lector")
class PowerMangaIT : FoolSlide("PowerManga", "https://reader.powermanga.org", "it", "")
class BaixarHentai : FoolSlide("Baixar Hentai", "https://leitura.baixarhentai.net", "pt-BR") {
class BaixarHentai : FoolSlide("Baixar Hentai", "https://baixarhentai.net", "pt-BR", "/listona") {
// Hardcode the id because the language wasn't specific.
override val id: Long = 8908032188831949972

View File

@ -177,16 +177,20 @@ class HentaiCafe : FoolSlide("Hentai Cafe", "https://hentai.cafe", "en", "/manga
Tag("osananajimi", "Osananajimi"),
Tag("paizuri", "Paizuri"),
Tag("pettanko", "Pettanko"),
Tag("ponytail", "Ponytail"),
Tag("pubic-hair", "Pubic Hair"),
Tag("rape", "Rape"),
Tag("schoolgirl", "Schoolgirl"),
Tag("sex-toys", "Sex toys"),
Tag("shota", "Shota"),
Tag("socks", "Socks"),
Tag("squirting", "Squirting"),
Tag("stocking", "Stocking"),
Tag("stockings", "Stockings"),
Tag("swimsuit", "Swimsuit"),
Tag("teacher", "Teacher"),
Tag("tsundere", "Tsundere"),
Tag("twintails", "Twintails"),
Tag("uncensored", "Uncensored"),
Tag("vanilla", "Vanilla"),
Tag("x-ray", "X-Ray")

View File

@ -5,7 +5,7 @@ ext {
appName = 'Tachiyomi: Genkan (multiple sources)'
pkgNameSuffix = 'all.genkan'
extClass = '.GenkanFactory'
extVersionCode = 19
extVersionCode = 20
libVersion = '1.2'
}

View File

@ -203,7 +203,7 @@ abstract class GenkanOriginal(
/* call another function if there's more pages to search
not doing it this way can lead to a false "no results found"
if no matches are found on the first page but there are matcheszz
if no matches are found on the first page but there are matches
on subsequent pages */
nextPageSelectorElement = document.select(searchMangaNextPageSelector())
while (nextPageSelectorElement.hasText()) {