From a84ba8974302da692a9ca04fbdb64194e6cd8b65 Mon Sep 17 00:00:00 2001 From: Yusuf Bhaskara Adji Date: Sat, 17 Jun 2023 21:02:00 +0700 Subject: [PATCH] Add new source "Frelein Books" (#16708) * Add frelein books add new source from books.frelein.my.id * Update src/all/freleinbooks/src/eu/kanade/tachiyomi/extension/all/freleinbooks/FreleinBooks.kt Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com> * Update src/all/freleinbooks/src/eu/kanade/tachiyomi/extension/all/freleinbooks/FreleinBooks.kt Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com> --------- Co-authored-by: Alessandro Jean <14254807+alessandrojean@users.noreply.github.com> --- src/all/freleinbooks/AndroidManifest.xml | 2 + src/all/freleinbooks/build.gradle | 12 + .../res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 2298 bytes .../res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1244 bytes .../res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 2971 bytes .../res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 5925 bytes .../res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 8361 bytes src/all/freleinbooks/res/web_hi_res_512.png | Bin 0 -> 41074 bytes .../all/freleinbooks/FreleinBooks.kt | 271 ++++++++++++++++++ 9 files changed, 285 insertions(+) create mode 100644 src/all/freleinbooks/AndroidManifest.xml create mode 100644 src/all/freleinbooks/build.gradle create mode 100644 src/all/freleinbooks/res/mipmap-hdpi/ic_launcher.png create mode 100644 src/all/freleinbooks/res/mipmap-mdpi/ic_launcher.png create mode 100644 src/all/freleinbooks/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src/all/freleinbooks/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src/all/freleinbooks/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src/all/freleinbooks/res/web_hi_res_512.png create mode 100644 src/all/freleinbooks/src/eu/kanade/tachiyomi/extension/all/freleinbooks/FreleinBooks.kt diff --git a/src/all/freleinbooks/AndroidManifest.xml b/src/all/freleinbooks/AndroidManifest.xml new file mode 100644 index 000000000..b4571bfa8 --- /dev/null +++ b/src/all/freleinbooks/AndroidManifest.xml @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/src/all/freleinbooks/build.gradle b/src/all/freleinbooks/build.gradle new file mode 100644 index 000000000..de6902261 --- /dev/null +++ b/src/all/freleinbooks/build.gradle @@ -0,0 +1,12 @@ +apply plugin: 'com.android.application' +apply plugin: 'kotlin-android' + +ext { + extName = 'Frelein Books' + pkgNameSuffix = 'all.freleinbooks' + extClass = '.FreleinBooks' + extVersionCode = 1 + isNsfw = false +} + +apply from: "$rootDir/common.gradle" diff --git a/src/all/freleinbooks/res/mipmap-hdpi/ic_launcher.png b/src/all/freleinbooks/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ba71baf3510fd7cdea5c933f030f63645a523fb6 GIT binary patch literal 2298 zcmVPx-v`IukRCr$PoNZ_u_Z`Q-_oRoD{2i*aYSu!p8waZ(Cl z5Jq4xnrtgLFj!x#>`ez_HS|T3?oE~kMwpY5y~$oS*=&tkDT9$WWo2MTSzyFLE4rfaiHn)vG%AfLtz@QC0P`Teog~eCW`j z2LN)FhFcAgaQ*uA=&VR1AW3t)o)TK+8UORE(#8NpWl>uvIO z#+%FKQg`p(Jr#?^CIM_%ol_1FnUQyCY3Z$SIQ-TQFspLBa?8uh@3gkIz5`(0N=20b z1r`<--i|~fXYAaKdOc=waq-<4e`JXqbFwQnkTR2xN5nPaSqCkn$oVG(140R+AL zmJ7z30ebVJB`l;%Gxm}RRRB{sPW!eFC0Q{0YCDj~|J{L&JRd-3vuI02H3hVwDTqcEZ4mIi zXZ@hbSecP|^tQTJ+DSaep~=rNwUAprJH3LNw=+;x72n?L!`MIods^(7+0y}}0=t_9 zHqdXxyv#Q|?u{S&{YR|jPDwMmFJiTL7?f(wZ>5)`cr^_;-vi`37TvV{m% z7l5p4Fry-0i_&hX;R1P^UD% zIU3MUjXubtuq<0zs9OjgCko5dth zheLj?zr%x<_W2n|f_Uc7%bNf>(g!g>sba&7e96lP{kE!VDn%N-9D2eMlM^{)E3+Et z@ZiNhKU!omK?x7O%;EIqrGjrFC6a=i3FvY$%#%7goAV}fsM`i%Y#^Lm3WB6+*;nHXg0{q zD(b;YeR;F$Y7ya=^272cx=K zwMvjRIR7_*Qfs-g(TYszm4h;x{5<+19%fd?t!@>>d{C2sV}mj(DJXANS`uh7tAS|V zA)C#r5+F*1bSLdNAEcX@9=@vq+GJLRJV%8dt(yHj_O?j{pJUEz%nEWepi|_73}K#} zbU6jFeoj1%nb}f@Oi7>~twOTE;F!(IN?68MLs9w7tq^Q4CR%|g-w7| zU}T?D6*O7QgJ>Ot%;N{o$@rGmlh)g$=1!nqTfKZxh8?pqn;27&4w@8H4}hr5`0fE8 z^8@`+FBTtW*}ByyrUpB;ECzOaFuK=|wgw(uAqjqu&9qxf6yNw$F;OIVqfQ6Z7UXbj zFo;NyM|W6amHN5q6mFI@*eRbOm5HoKZSd)EES87LblGV4;zI?$`pbiorCd_bF{e6d zlKR*Ht(E7ia*5|yKSy7;GW!$Dx!ZZjL2qwp7c7ZlP6hP4kN?Zcf;=1n83oL&%CdqW`eIdKy<s4BkPP;qvu z)T}D5yKe=IL4H=(Wc?tgCW^YPe13le|46R0X8U^9-XjSWS37JuF1_CYbcaNIeUI09 znY3{pq@v|V3UbtGH*QsU*~3{Wb*!Ox>b7OEczpk_U3TcdH{K`x*wH^l|y0@|M4 zx(ad?^b{2|H#hgoSS=gu|uD@77QIyP`J9qwl{`~pB#pCfi8XQ_) zvHXI8YEO7mLE{BL%ApUzu~+0c*Cy$eq>Scs$nVgD)?ew11@tLW1fv%p=tFSo`FlL{ zwG;wE&+gG@TVG9~L(-vCQ=D^kQyiJ@XABEZ<%hi!Cj3NiiVLU;UKfxHXnPj;KVE8S Ul*kUvDgXcg07*qoM6N<$f}q4>I{*Lx literal 0 HcmV?d00001 diff --git a/src/all/freleinbooks/res/mipmap-mdpi/ic_launcher.png b/src/all/freleinbooks/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..87f734066da641cc1fc22e39502ef1146fbc95d0 GIT binary patch literal 1244 zcmV<21S9*2P)Px(mPtfGRA@u(na^+AWEjW4wiCa^PACm@RRoMq+S;&K3_ZPQi`YkPn} z08J_qf-9nvkQn2_t;ss7g{7qdLBTb8$i;stgSu;cmcrn2|!rhktFH= zdthO88zqCvvV9#CXXlr;Vr?}SaDLzQSxuGj#ajbNJsW}4WnFMA0H3YovAbsjxW&7L zcYNO^o<$_gOli27QW0k|h7*yF&OH`@Pgim%?peO#55PP;;Z zYXLu8O=2LX_(B{T!0w){?u|1HrxJ<{N3s^MG;eFEIce=yJF(b|4k8C`Olr739{*1sAn^;U1>_yei}WE61P%~Y z099!uKx@)k77&X{`10)mp0K&1*(9F+Q*@NT0lGCXy3Z5|vr`(*rx>)TgxkN^2}@v# z47{6;;oNle&;%h^Z28Q^E@I5->fXo{p2dLWW-#p7O9QSTK&&6aekm`Jsco~=;*D>`H!%#v&W;xFRD2eX|0+4M~A+qqb z*W$i?;IESDX?YTV?o<>-qmG;R^SmSr52SnD$Ue?Cs?f}&hUp3KDkQ3nJLb9NUuHa^ z6Yc<309p(6JcNX`cd8~H z@47|=L4jfrPJwGvf1o+BO@c1 zB9Vv|CP=MTt88v=uFlQPeZ97}_6UIC*5i3fNhKM;pmRd$Uzmd-`^T|59W7N_cVYc@ zHR*lY>!uf-6^D7z))Add(yOgq9&uYXOrGXvp8$mIi+=$heaBCH-vM0!0000yb*e8%6mPrslvW+{$}^x+G0(?x+I zK*mL`C`*By3Y^nJ;mBAGBu3hJ$toi{k-a$a5XF|xzpNvtg*Jh(X~RS`v}>l~44Nko zq0xl0=Upay`kQa-Ba-K5^5;4_&hu2}I-Gs2m1*G$?Tx3ZJEtQmJ0oAk6Y;MEiI&Yj zD*|*OmNPIxkRa$)ie^q#nkrI|I0Un7I~f4;nS%rujh^3@{N7-Ptb7+z+43uAk~cRH z7V?xz!|ruX9t^UX0nSJAZ!)xCj~t{IAnfMqYHuoDwEV#ca0N>3ewg8S zjs)c$fels=Tk&E|5&TmPWYbqo#Lt=`^P4B6kCY%oTII;c_x zsO_y7t&Y735=UM@ceeCS#mL1@t~Zl@n4G~6Nk^Wm7BO%2yIuFX5N4oAK>Fc;-s<$l zUUN7yj<#e(vK= z+9~?VwjGD}in<6N7fZHuilpcRlEv|oN+Z|t{KF9x7uhLi@FPhF$9zj-1C;>av|2x8=H}>7`D8HdtbY%8 z;A^t9KOiMU{p?#^9LqDMU@rguY$-~p3+^Ld>i8HeV%yRDZKobA#Fqy0XP#cLPs>X$ z%vD6|bw2=IZgE?Q7*2dVPqis}9v6eNm4~wtx99V^-Uk~sDPOS=V5lC5O{Y$mx7sTg z6Q!$e?~ZpU^+{nZM__9n&Xj~6a1x9H+Z@Y>1ffx;llQK`%W^En_!Kqn=9*G$p%G7l zo|Va~QW`f9cdxwiPp7iT?LL<2AB6J*@vRXozi^(ce!0&5k7y-o6FM8fmNBbl*uZsq z8KwmiHG`Wg{&n~;c=ZSdkci`O zXV-0VN?*B-_ZyyCXUu_~C5GV;}0o zZR@+1*WrTdp_4a&&$-O_t+k$U*j}4&U!np=?!Eq73C|x{nL!QQ)Yl3Qe;PDawy9!seJwBbl0^oi_+F9{$=?AWHFXBM@}a@GZcybE=w5Zi-94ATsm ziXa#3j2dDs$eq@i)ph9+e4 zpi`G6@t5Yw6|pydhIArT zs?fcbM765h5w=)j#R=LEUWp*JsrxPKoAWY z`)VT4k&gbm5IM6aNUY!|f>6&ygxiQl@YmYLw|w=TG0B*s2Et5JCC#U}3=18X(Hg^Z zQKPj5v=Xp4x8a;UWB?1Xjew5d$Q>^CGV>`Vg@rf9fV=hk#56 zYW>WSScgb6${o<8Cd0#~0$rT_tq|VQFVyO-;PAWAk^TMPV>(@~6Qev;&8x5do0ELi zGFFD8#XalkE$BUDOPy=Wl-#m-X3ASc9(%FI)=C&cFd=|6&^1l&F%$SpEH^(7>~!+}qG5(j9)4MSk~<2h)BjQLs|fsc-X4F7h4e zh~UDuJ8_Y|9R0QWB<6YO*Zd||BTF{Y9|-HgKAKXo!3U+H%OyJS6F0jq)Yh?))|*US z^kkJyPKCo5lZb5z|5nzbZy$pmq?)TKfD;c(CwcT4{U6KT2PF4vXW`OXm9K7{H*1*) zU0GdS{p-&KCI`p1NVN`sZ|_Z%v9WPsgTlRG>WBXRg;Cc=wE~>TV~XavUrWq~&sEmg z**Crm$<0jFn~m7^;H}Tw+uKEZyy$R+efUYGq#({&ti!1v&m0pIV;#_DXY%uoXZ_c; z---f5U%vHUqTf=~4jULb-4eU@FW_{}8C0$FgoTB@d8rz@Z{23+<0NG@Gp-b$lN}dF zmx9M%oKDv}Ep&$LEgHX%fE%ycPskX>zL++Y&@*rPYhx;RsXtAl{qbB&or_$)aZ<@7 z8WI0U>h9gU?-bnUBH}Sny*_9L{pcXJWHQh zKD6Kb-JcGW=N!*t3o5in*O|L_`hKvB2dKayia=A1W5b=nlfK$l-=i!q3}JS^PsSS% zd9xB>PfcU^qDUMK5E$EZ*~>E*XlKF3fW~|bHWSd2rAbUSRt0x+5_1po9Bpks%1=t} z29H3<(M)^R3|~qCt=WO4KHCD4!Y*4rY3=) IYCA;#7q0h`lmGw# literal 0 HcmV?d00001 diff --git a/src/all/freleinbooks/res/mipmap-xxhdpi/ic_launcher.png b/src/all/freleinbooks/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..ca781e6e663e0fbaed675c040e48965913250cf6 GIT binary patch literal 5925 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 D=Uhq4 literal 0 HcmV?d00001 diff --git a/src/all/freleinbooks/res/web_hi_res_512.png b/src/all/freleinbooks/res/web_hi_res_512.png new file mode 100644 index 0000000000000000000000000000000000000000..302b4f9c1335ab3d3cfc755362b40db459f1f486 GIT binary patch literal 41074 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

*bMCOX%EedcmSpq82&fVTkhbB5?W$lR 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 A00000 literal 0 HcmV?d00001 diff --git a/src/all/freleinbooks/src/eu/kanade/tachiyomi/extension/all/freleinbooks/FreleinBooks.kt b/src/all/freleinbooks/src/eu/kanade/tachiyomi/extension/all/freleinbooks/FreleinBooks.kt new file mode 100644 index 000000000..1559a2d88 --- /dev/null +++ b/src/all/freleinbooks/src/eu/kanade/tachiyomi/extension/all/freleinbooks/FreleinBooks.kt @@ -0,0 +1,271 @@ +package eu.kanade.tachiyomi.extension.all.freleinbooks + +import eu.kanade.tachiyomi.network.GET +import eu.kanade.tachiyomi.source.model.Filter +import eu.kanade.tachiyomi.source.model.FilterList +import eu.kanade.tachiyomi.source.model.Page +import eu.kanade.tachiyomi.source.model.SChapter +import eu.kanade.tachiyomi.source.model.SManga +import eu.kanade.tachiyomi.source.online.ParsedHttpSource +import okhttp3.Request +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import java.text.SimpleDateFormat +import java.util.Calendar +import java.util.Locale + +class FreleinBooks() : ParsedHttpSource() { + override val baseUrl = "https://books.frelein.my.id" + override val lang = "all" + override val name = "Frelein Books" + override val supportsLatest = true + + override fun headersBuilder() = super.headersBuilder() + .add("Referer", "$baseUrl/") + + private val Element.imgSrc: String + get() = attr("data-lazy-src") + .ifEmpty { attr("data-src") } + .ifEmpty { attr("src") } + + // Latest + override fun latestUpdatesFromElement(element: Element): SManga { + val manga = SManga.create() + manga.thumbnail_url = element.selectFirst("img")!!.imgSrc + manga.title = element.select(".postTitle").text() + manga.setUrlWithoutDomain(element.select(".postTitle > a").attr("abs:href")) + return manga + } + + override fun latestUpdatesNextPageSelector() = ".olderLink" + override fun latestUpdatesRequest(page: Int): Request { + return if (page == 1) { + GET(baseUrl) + } else { + val dateParam = page * 7 * 2 + // Calendar set to the current date + val calendar: Calendar = Calendar.getInstance() + // rollback 14 days + calendar.add(Calendar.DAY_OF_YEAR, -dateParam) + val formatter = SimpleDateFormat("yyyy-MM-dd", Locale.US) + // now the date is 14 days back + GET("$baseUrl/search?updated-max=${formatter.format(calendar.time)}T12:38:00%2B07:00&max-results=12&start=12&by-date=false") + } + } + + override fun latestUpdatesSelector() = ".blogPosts > article" + + // Popular + override fun popularMangaFromElement(element: Element): SManga { + val manga = SManga.create() + manga.thumbnail_url = element.selectFirst("img")!!.imgSrc + manga.title = element.select("h3").text() + manga.setUrlWithoutDomain(element.select("h3 > a").attr("abs:href")) + return manga + } + + override fun popularMangaNextPageSelector(): String? = null + override fun popularMangaRequest(page: Int) = latestUpdatesRequest(page) + override fun popularMangaSelector() = ".itemPopulars article" + + // Search + override fun searchMangaFromElement(element: Element) = latestUpdatesFromElement(element) + override fun searchMangaNextPageSelector() = latestUpdatesNextPageSelector() + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val filterList = if (filters.isEmpty()) getFilterList() else filters + val tagFilter = filterList.findInstance()!! + val groupFilter = filterList.findInstance()!! + val magazineFilter = filterList.findInstance()!! + val fashionMagazineFilter = filterList.findInstance()!! + return when { + query.isEmpty() && groupFilter.state != 0 -> GET("$baseUrl/search/label/${groupFilter.toUriPart()}") + query.isEmpty() && magazineFilter.state != 0 -> GET("$baseUrl/search/label/${magazineFilter.toUriPart()}") + query.isEmpty() && fashionMagazineFilter.state != 0 -> GET("$baseUrl/search/label/${fashionMagazineFilter.toUriPart()}") + query.isEmpty() && tagFilter.state.isNotEmpty() -> GET("$baseUrl/search/label/${tagFilter.state}") + query.isNotEmpty() -> GET("$baseUrl/search?q=$query") + else -> latestUpdatesRequest(page) + } + } + + override fun searchMangaSelector() = latestUpdatesSelector() + + // Details + override fun mangaDetailsParse(document: Document): SManga { + val manga = SManga.create() + manga.title = document.select(".postTitle").text() + manga.description = "Read ${document.select(".postTitle").text()} \n \nNote: If you encounters error when opening the magazine, please press the WebView button then leave a comment on our web so we can update it soon." + manga.genre = document.select(".labelLink > a") + .joinToString(", ") { it.text() } + manga.status = SManga.COMPLETED + return manga + } + + override fun chapterFromElement(element: Element): SChapter { + val chapter = SChapter.create() + chapter.setUrlWithoutDomain(element.select("link[rel=\"canonical\"]").attr("href")) + chapter.name = "Gallery" + chapter.date_upload = getDate(element.select("link[rel=\"canonical\"]").attr("href")) + return chapter + } + + override fun chapterListSelector() = "html" + + // Pages + override fun pageListParse(document: Document): List { + val pages = mutableListOf() + document.select("noscript").remove() + document.select(".gallerybox a > img").forEachIndexed { i, it -> + // format new img/b/ + if (it.imgSrc.contains("img/b/")) { + if (it.imgSrc.contains("/w768-rw/")) { + val itUrl = it.imgSrc.replace("/w768-rw/", "/s0/") + pages.add(Page(i, itUrl, itUrl)) + } + if (it.imgSrc.contains("/w480-rw/")) { + val itUrl = it.imgSrc.replace("/w480-rw/", "/s0/") + pages.add(Page(i, itUrl, itUrl)) + } + } + // format new img/b/ + else { + if (it.imgSrc.contains("=w768-rw")) { + val itUrl = it.imgSrc.replace("=w768-rw", "") + pages.add(Page(i, itUrl, itUrl)) + } else if (it.imgSrc.contains("=w480-rw")) { + val itUrl = it.imgSrc.replace("=w480-rw", "") + pages.add(Page(i, itUrl, itUrl)) + } else { + val itUrl = it.imgSrc + pages.add(Page(i, itUrl, itUrl)) + } + } + } + return pages + } + + override fun imageUrlParse(document: Document): String = + throw UnsupportedOperationException("Not used") + + // Filters + + override fun getFilterList(): FilterList = FilterList( + Filter.Header("NOTE: Only one filter will be applied!"), + Filter.Separator(), + GroupFilter(), + MagazineFilter(), + FashionMagazineFilter(), + TagFilter(), + ) + + open class UriPartFilter( + displayName: String, + private val valuePair: Array>, + ) : Filter.Select(displayName, valuePair.map { it.first }.toTypedArray()) { + fun toUriPart() = valuePair[state].second + } + + class MagazineFilter : UriPartFilter( + "Magazine", + arrayOf( + Pair("Any", ""), + Pair("B.L.T.", "B.L.T."), + Pair("BIG ONE GIRLS", "BIG ONE GIRLS"), + Pair("BOMB!", "BOMB!"), + Pair("BRODY", "BRODY"), + Pair("BUBKA", "BUBKA"), + Pair("ENTAME", "ENTAME"), + Pair("EX Taishu", "EX Taishu"), + Pair("FINEBOYS", "FINEBOYS"), + Pair("FLASH", "FLASH"), + Pair("Fine", "Fine"), + Pair("Friday", "Friday"), + Pair("HINA_SATSU", "HINA_SATSU"), + Pair("IDOL AND READ", "IDOL AND READ"), + Pair("Kadokawa Scene 07", "Kadokawa Scene 07"), + Pair("Monthly Basketball", "Monthly Basketball"), + Pair("Monthly Young Magazine", "Monthly Young Magazine"), + Pair("NOGI_SATSU", "NOGI_SATSU"), + Pair("Nylon Japan", "Nylon Japan"), + Pair("Platinum FLASH", "Platinum FLASH"), + Pair("Shonen Magazine", "Shonen Magazine"), + Pair("Shukan Post", "Shukan Post"), + Pair("TOKYO NEWS MOOK", "TOKYO NEWS MOOK"), + Pair("TV LIFE,Tarzan", "TV LIFE,Tarzan"), + Pair("Tokyo Calendar", "Tokyo Calendar"), + Pair("Top Yell NEO", "Top Yell NEO"), + Pair("UTB", "UTB"), + Pair("Weekly Playboy", "Weekly Playboy"), + Pair("Weekly SPA", "Weekly SPA"), + Pair("Weekly SPA!", "Weekly SPA!"), + Pair("Weekly Shonen Champion", "Weekly Shonen Champion"), + Pair("Weekly Shonen Magazine", "Weekly Shonen Magazine"), + Pair("Weekly Shonen Sunday", "Weekly Shonen Sunday"), + Pair("Weekly Shounen Magazine", "Weekly Shounen Magazine"), + Pair("Weekly The Television Plus", "Weekly The Television Plus"), + Pair("Weekly Zero Jump", "Weekly Zero Jump"), + Pair("Yanmaga Web", "Yanmaga Web"), + Pair("Young Animal", "Young Animal"), + Pair("Young Champion", "Young Champion"), + Pair("Young Gangan", "Young Gangan"), + Pair("Young Jump", "Young Jump"), + Pair("Young Magazine", "Young Magazine"), + Pair("blt graph.", "blt graph."), + Pair("mini", "mini"), + ), + ) + + class FashionMagazineFilter : UriPartFilter( + "Fashion Magazine", + arrayOf( + Pair("Any", ""), + Pair("BAILA", "BAILA"), + Pair("Biteki", "Biteki"), + Pair("CLASSY", "CLASSY"), + Pair("CanCam", "CanCam"), + Pair("JJ", "JJ"), + Pair("LARME", "LARME"), + Pair("MARQUEE", "MARQUEE"), + Pair("Maquia", "Maquia"), + Pair("Men's non-no", "Men's non-no"), + Pair("More", "More"), + Pair("Oggi", "Oggi"), + Pair("Ray", "Ray"), + Pair("Seventeen", "Seventeen"), + Pair("Sweet", "Sweet"), + Pair("VOCE", "VOCE"), + Pair("ViVi", "ViVi"), + Pair("With", "With"), + Pair("aR", "aR"), + Pair("anan", "anan"), + Pair("bis", "bis"), + Pair("non-no", "non-no"), + ), + ) + + class GroupFilter : UriPartFilter( + "Group", + arrayOf( + Pair("Any", ""), + Pair("Hinatazaka46", "Hinatazaka46"), + Pair("Nogizaka46", "Nogizaka46"), + Pair("Sakurazaka46", "Sakurazaka46"), + Pair("Keyakizaka46", "Keyakizaka46"), + ), + ) + + class TagFilter : Filter.Text("Tag") + + private inline fun Iterable<*>.findInstance() = find { it is T } as? T + + private fun getDate(str: String): Long { + val regex = "[0-9]{4}\\/[0-9]{2}\\/[0-9]{2}".toRegex() + val match = regex.find(str) + return runCatching { DATE_FORMAT.parse(match!!.value)?.time }.getOrNull() ?: 0L + } + + companion object { + private val DATE_FORMAT by lazy { + SimpleDateFormat("yyyy/MM/dd", Locale.US) + } + } +}