Update sites for FMReader, Foolslide, and Genkan ()

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
src/all
fmreader
build.gradle
src/eu/kanade/tachiyomi/extension/all/fmreader
foolslide
build.gradle
src/eu/kanade/tachiyomi/extension/all/foolslide
genkan
build.gradle
src/eu/kanade/tachiyomi/extension/all/genkan

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

@ -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()

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

@ -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

@ -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")

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

@ -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()) {