add Idol. gravureprincess .date (#1093)

add IdolGravureprincessDate
This commit is contained in:
AwkwardPeak7 2024-02-07 16:00:16 +05:00 committed by Draff
parent c8c4110a55
commit 48c71e342d
17 changed files with 223 additions and 91 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

View File

@ -0,0 +1,96 @@
package eu.kanade.tachiyomi.extension.ja.idolgravureprincessdate
import eu.kanade.tachiyomi.multisrc.gravureblogger.GravureBlogger
class IdolGravureprincessDate : GravureBlogger(
"Idol. gravureprincess .date",
"https://idol.gravureprincess.date",
"ja",
) {
override val labelFilters = buildMap {
put("Idol", getIdols())
put("Magazines", getMagazine())
}
private fun getIdols() = listOf(
"Nogizaka46",
"AKB48",
"NMB48",
"Keyakizaka46",
"HKT48",
"SKE48",
"NGT48",
"SUPER☆GiRLS",
"Morning Musume",
"Dempagumi.inc",
"Angerme",
"Juice=Juice",
"NijiCon-虹コン",
"Houkago Princess",
"Magical Punchline",
"Idoling!!!",
"Rev. from DVL",
"Link STAR`s",
"LADYBABY",
"℃-ute",
"Country Girls",
"Up Up Girls (Kakko Kari)",
"Yumemiru Adolescence",
"Shiritsu Ebisu Chugaku",
"Tenkoushoujo Kagekidan",
"Drop",
"Steam Girls",
"Kamen Joshi's",
"LinQ",
"Doll☆Element",
"TrySail",
"Akihabara Backstage Pass",
"Palet",
"Passport☆",
"Ange☆Reve",
"BiSH",
"Ciao Bella Cinquetti",
"Gekidanherbest",
"Haraeki Stage Ace",
"Ru:Run",
"SDN48",
)
private fun getMagazine() = listOf(
"FLASH",
"Weekly Playboy",
"FRIDAY Magazine",
"Young Jump",
"Young Magazine",
"BLT",
"ENTAME",
"EX-Taishu",
"SPA! Magazine",
"Young Gangan",
"UTB",
"Young Animal",
"Young Champion",
"Big Comic Spirtis",
"Shonen Magazine",
"BUBKA",
"BOMB",
"Shonen Champion",
"Manga Action",
"Weekly Shonen Sunday",
"Photobooks",
"BRODY",
"Hustle Press",
"ANAN Magazine",
"SMART Magazine",
"Young Sunday",
"Gravure The Television",
"CD&DL My Girl",
"Daily LoGiRL",
"Shukan Taishu",
"Girls! Magazine",
"Soccer Game King",
"Weekly Georgia",
"Sunday Magazine",
"Mery Magazine",
)
}

View File

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

View File

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 1.8 KiB

View File

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View File

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 6.6 KiB

View File

Before

Width:  |  Height:  |  Size: 9.1 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB

View File

@ -0,0 +1,62 @@
package eu.kanade.tachiyomi.extension.ja.micmicidol
import eu.kanade.tachiyomi.multisrc.gravureblogger.GravureBlogger
class MicMicIdol : GravureBlogger("MIC MIC IDOL", "https://www.micmicidol.club", "ja") {
override val labelFilters = buildMap {
put("Type", getTypes())
put("Japan Magazine", getJapanMagazines())
put("Japan Fashion", getJapanFashion())
}
private fun getJapanMagazines() = listOf(
"cyzo",
"EnTame",
"EX大衆",
"Friday",
"Flash",
"Shonen Magazine",
"Shonen Sunday",
"Weekly Shonen Champion",
"Weekly Big Comic Spirits",
"Weekly Jitsuwa",
"Weekly Playboy",
"Weekly SPA!",
"Young Animal",
"Young Champion",
"Young Gangan",
"Young Jump",
"Young Magazine",
)
private fun getJapanFashion() = listOf(
"andGIRL",
"aR",
"Baila",
"Biteki",
"CanCam",
"Classy",
"ELLE Japan",
"Ginger",
"JJ",
"Maquia",
"Mina",
"MORE",
"Non-no",
"Oggi",
"Ray",
"Scawaii",
"Steady",
"ViVi",
"VoCE",
"With",
)
private fun getTypes() = listOf(
"- Cover",
"- Japan Magazine",
"- Japan Fashion Magazine",
"- Japan Idol Photobook",
"- Asia Idol",
)
}

View File

@ -1,4 +1,4 @@
package eu.kanade.tachiyomi.extension.ja.micmicidol package eu.kanade.tachiyomi.multisrc.gravureblogger
import kotlinx.serialization.SerialName import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable

View File

@ -1,5 +1,6 @@
package eu.kanade.tachiyomi.extension.ja.micmicidol package eu.kanade.tachiyomi.multisrc.gravureblogger
import android.annotation.SuppressLint
import android.os.Build import android.os.Build
import eu.kanade.tachiyomi.network.GET import eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.Filter import eu.kanade.tachiyomi.source.model.Filter
@ -22,13 +23,12 @@ import uy.kohesive.injekt.injectLazy
import java.text.SimpleDateFormat import java.text.SimpleDateFormat
import java.util.Locale import java.util.Locale
class MicMicIdol : HttpSource() { @SuppressLint("ObsoleteSdkInt")
abstract class GravureBlogger(
override val name = "MIC MIC IDOL" override val name: String,
override val baseUrl: String,
override val baseUrl = "https://www.micmicidol.club" override val lang: String,
) : HttpSource() {
override val lang = "ja"
override val supportsLatest = false override val supportsLatest = false
@ -139,26 +139,29 @@ class MicMicIdol : HttpSource() {
override fun imageUrlParse(response: Response) = throw UnsupportedOperationException() override fun imageUrlParse(response: Response) = throw UnsupportedOperationException()
override fun getFilterList(): FilterList { // filter name and list of values
val types = getTypes() protected open val labelFilters = mapOf<String, List<String>>()
val japanMagazines = getJapanMagazines()
val japanFashion = getJapanFashion()
val filters = mutableListOf<Filter<*>>( class LabelFilter(name: String, labels: List<Label>) : Filter.Group<Label>(name, labels)
LabelFilter("Type", types.map { Label(it) }),
LabelFilter("Japan Magazine", japanMagazines.map { Label(it) }), class Label(name: String) : Filter.CheckBox(name)
LabelFilter("Japan Fashion", japanFashion.map { Label(it) }),
).apply { override fun getFilterList(): FilterList {
if (categories.isEmpty()) { val filters = mutableListOf<Filter<*>>()
add(0, Filter.Header("Press 'Reset' to show extra filters"))
add(1, Filter.Separator()) labelFilters.forEach { (name, filter) ->
return@apply filters.add(LabelFilter(name, filter.map(::Label)))
} }
if (categories.isEmpty()) {
filters.add(0, Filter.Header("Press 'Reset' to show extra filters"))
filters.add(1, Filter.Separator())
} else {
val existing = labelFilters.values.flatten()
val others = categories val others = categories
.filterNot { types.contains(it) || japanMagazines.contains(it) || japanFashion.contains(it) } .filterNot { existing.contains(it) }
add(LabelFilter("Other", others.map { Label(it) })) filters.add(LabelFilter("Other", others.map(::Label)))
} }
return FilterList(filters) return FilterList(filters)

View File

@ -0,0 +1,38 @@
package eu.kanade.tachiyomi.multisrc.gravureblogger
import generator.ThemeSourceData.SingleLang
import generator.ThemeSourceGenerator
class GravureBloggerGenerator : ThemeSourceGenerator {
override val themePkg = "gravureblogger"
override val themeClass = "GravureBlogger"
override val baseVersionCode = 1
override val sources = listOf(
SingleLang(
name = "Idol. gravureprincess .date",
baseUrl = "https://idol.gravureprincess.date",
lang = "ja",
isNsfw = true,
className = "IdolGravureprincessDate",
),
SingleLang(
name = "MIC MIC IDOL",
baseUrl = "https://www.micmicidol.club",
lang = "ja",
isNsfw = true,
className = "MicMicIdol",
overrideVersionCode = 1,
),
)
companion object {
@JvmStatic
fun main(args: Array<String>) {
GravureBloggerGenerator().createAll()
}
}
}

View File

@ -1,8 +0,0 @@
ext {
extName = "MIC MIC IDOL"
extClass = ".MicMicIdol"
extVersionCode = 1
isNsfw = true
}
apply from: "$rootDir/common.gradle"

View File

@ -1,59 +0,0 @@
package eu.kanade.tachiyomi.extension.ja.micmicidol
import eu.kanade.tachiyomi.source.model.Filter
class LabelFilter(name: String, labels: List<Label>) : Filter.Group<Label>(name, labels)
class Label(name: String) : Filter.CheckBox(name)
// copy([...$0.querySelectorAll("li a[href]")].filter(e => e.getAttribute("href") != "#").map((e) => `"${decodeURIComponent(e.getAttribute("href").replace("/search/label/", "").replace("?max-results=50", ""))}",`).join("\n"))
fun getJapanMagazines() = listOf(
"cyzo",
"EnTame",
"EX大衆",
"Friday",
"Flash",
"Shonen Magazine",
"Shonen Sunday",
"Weekly Shonen Champion",
"Weekly Big Comic Spirits",
"Weekly Jitsuwa",
"Weekly Playboy",
"Weekly SPA!",
"Young Animal",
"Young Champion",
"Young Gangan",
"Young Jump",
"Young Magazine",
)
fun getJapanFashion() = listOf(
"andGIRL",
"aR",
"Baila",
"Biteki",
"CanCam",
"Classy",
"ELLE Japan",
"Ginger",
"JJ",
"Maquia",
"Mina",
"MORE",
"Non-no",
"Oggi",
"Ray",
"Scawaii",
"Steady",
"ViVi",
"VoCE",
"With",
)
fun getTypes() = listOf(
"- Cover",
"- Japan Magazine",
"- Japan Fashion Magazine",
"- Japan Idol Photobook",
"- Asia Idol",
)