add Idol. gravureprincess .date (#1093)

add IdolGravureprincessDate
This commit is contained in:
AwkwardPeak7 2024-02-07 16:00:16 +05:00 committed by GitHub
parent e784cc06b3
commit fcb9d870a5
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.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 eu.kanade.tachiyomi.network.GET
import eu.kanade.tachiyomi.source.model.Filter
@ -22,13 +23,12 @@ import uy.kohesive.injekt.injectLazy
import java.text.SimpleDateFormat
import java.util.Locale
class MicMicIdol : HttpSource() {
override val name = "MIC MIC IDOL"
override val baseUrl = "https://www.micmicidol.club"
override val lang = "ja"
@SuppressLint("ObsoleteSdkInt")
abstract class GravureBlogger(
override val name: String,
override val baseUrl: String,
override val lang: String,
) : HttpSource() {
override val supportsLatest = false
@ -139,26 +139,29 @@ class MicMicIdol : HttpSource() {
override fun imageUrlParse(response: Response) = throw UnsupportedOperationException()
// filter name and list of values
protected open val labelFilters = mapOf<String, List<String>>()
class LabelFilter(name: String, labels: List<Label>) : Filter.Group<Label>(name, labels)
class Label(name: String) : Filter.CheckBox(name)
override fun getFilterList(): FilterList {
val types = getTypes()
val japanMagazines = getJapanMagazines()
val japanFashion = getJapanFashion()
val filters = mutableListOf<Filter<*>>()
val filters = mutableListOf<Filter<*>>(
LabelFilter("Type", types.map { Label(it) }),
LabelFilter("Japan Magazine", japanMagazines.map { Label(it) }),
LabelFilter("Japan Fashion", japanFashion.map { Label(it) }),
).apply {
if (categories.isEmpty()) {
add(0, Filter.Header("Press 'Reset' to show extra filters"))
add(1, Filter.Separator())
return@apply
}
labelFilters.forEach { (name, filter) ->
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
.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)

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