| 
		 After Width: | Height: | Size: 3.1 KiB  | 
| 
		 After Width: | Height: | Size: 1.6 KiB  | 
| 
		 After Width: | Height: | Size: 3.4 KiB  | 
| 
		 After Width: | Height: | Size: 6.3 KiB  | 
| 
		 After Width: | Height: | Size: 8.6 KiB  | 
@ -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",
 | 
			
		||||
    )
 | 
			
		||||
}
 | 
			
		||||
| 
		 Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 3.0 KiB  | 
| 
		 Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 1.8 KiB  | 
| 
		 Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 3.9 KiB  | 
| 
		 Before Width: | Height: | Size: 6.6 KiB After Width: | Height: | Size: 6.6 KiB  | 
| 
		 Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.1 KiB  | 
@ -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",
 | 
			
		||||
    )
 | 
			
		||||
}
 | 
			
		||||
@ -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
 | 
			
		||||
@ -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)
 | 
			
		||||
@ -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()
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
@ -1,8 +0,0 @@
 | 
			
		||||
ext {
 | 
			
		||||
    extName = "MIC MIC IDOL"
 | 
			
		||||
    extClass = ".MicMicIdol"
 | 
			
		||||
    extVersionCode = 1
 | 
			
		||||
    isNsfw = true
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
apply from: "$rootDir/common.gradle"
 | 
			
		||||
@ -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",
 | 
			
		||||
)
 | 
			
		||||