diff --git a/.run/MadThemeGenerator.run.xml b/.run/MadThemeGenerator.run.xml new file mode 100644 index 000000000..fd0dfd218 --- /dev/null +++ b/.run/MadThemeGenerator.run.xml @@ -0,0 +1,17 @@ + + + + + \ No newline at end of file diff --git a/multisrc/overrides/madtheme/beehentai/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/beehentai/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..6eea5518b Binary files /dev/null and b/multisrc/overrides/madtheme/beehentai/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/beehentai/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/beehentai/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..c5428c91e Binary files /dev/null and b/multisrc/overrides/madtheme/beehentai/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/beehentai/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/beehentai/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..ea104a5a6 Binary files /dev/null and b/multisrc/overrides/madtheme/beehentai/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/beehentai/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/beehentai/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..e07380f6a Binary files /dev/null and b/multisrc/overrides/madtheme/beehentai/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/beehentai/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/beehentai/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..9b95163a7 Binary files /dev/null and b/multisrc/overrides/madtheme/beehentai/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/beehentai/res/web_hi_res_512.png b/multisrc/overrides/madtheme/beehentai/res/web_hi_res_512.png new file mode 100644 index 000000000..93c217d1a Binary files /dev/null and b/multisrc/overrides/madtheme/beehentai/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madtheme/boxmanhwa/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/boxmanhwa/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..381a8320c Binary files /dev/null and b/multisrc/overrides/madtheme/boxmanhwa/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/boxmanhwa/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/boxmanhwa/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..de15a6520 Binary files /dev/null and b/multisrc/overrides/madtheme/boxmanhwa/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/boxmanhwa/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/boxmanhwa/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..039c04756 Binary files /dev/null and b/multisrc/overrides/madtheme/boxmanhwa/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/boxmanhwa/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/boxmanhwa/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..aa784fb0c Binary files /dev/null and b/multisrc/overrides/madtheme/boxmanhwa/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/boxmanhwa/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/boxmanhwa/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..68e662aea Binary files /dev/null and b/multisrc/overrides/madtheme/boxmanhwa/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/boxmanhwa/res/web_hi_res_512.png b/multisrc/overrides/madtheme/boxmanhwa/res/web_hi_res_512.png new file mode 100644 index 000000000..0cdf02433 Binary files /dev/null and b/multisrc/overrides/madtheme/boxmanhwa/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madtheme/default/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/default/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..91747e9cc Binary files /dev/null and b/multisrc/overrides/madtheme/default/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/default/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/default/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..b811309fd Binary files /dev/null and b/multisrc/overrides/madtheme/default/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/default/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/default/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..65f36430a Binary files /dev/null and b/multisrc/overrides/madtheme/default/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/default/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/default/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..5453c2977 Binary files /dev/null and b/multisrc/overrides/madtheme/default/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/default/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/default/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..f376815f2 Binary files /dev/null and b/multisrc/overrides/madtheme/default/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/default/res/web_hi_res_512.png b/multisrc/overrides/madtheme/default/res/web_hi_res_512.png new file mode 100644 index 000000000..c8139cd08 Binary files /dev/null and b/multisrc/overrides/madtheme/default/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madtheme/mangabuddy/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangabuddy/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..f425a066e Binary files /dev/null and b/multisrc/overrides/madtheme/mangabuddy/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangabuddy/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangabuddy/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..d3bd09d19 Binary files /dev/null and b/multisrc/overrides/madtheme/mangabuddy/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangabuddy/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangabuddy/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..d0bc864ae Binary files /dev/null and b/multisrc/overrides/madtheme/mangabuddy/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangabuddy/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangabuddy/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..74f00e84c Binary files /dev/null and b/multisrc/overrides/madtheme/mangabuddy/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangabuddy/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangabuddy/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..e396ca6b8 Binary files /dev/null and b/multisrc/overrides/madtheme/mangabuddy/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangabuddy/res/web_hi_res_512.png b/multisrc/overrides/madtheme/mangabuddy/res/web_hi_res_512.png new file mode 100644 index 000000000..d852390cd Binary files /dev/null and b/multisrc/overrides/madtheme/mangabuddy/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madtheme/mangacute/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangacute/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..b2b6d5581 Binary files /dev/null and b/multisrc/overrides/madtheme/mangacute/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangacute/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangacute/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..1cba96283 Binary files /dev/null and b/multisrc/overrides/madtheme/mangacute/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangacute/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangacute/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..d339c34d1 Binary files /dev/null and b/multisrc/overrides/madtheme/mangacute/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangacute/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangacute/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..555abb3dc Binary files /dev/null and b/multisrc/overrides/madtheme/mangacute/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangacute/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangacute/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..4ed375e83 Binary files /dev/null and b/multisrc/overrides/madtheme/mangacute/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangacute/res/web_hi_res_512.png b/multisrc/overrides/madtheme/mangacute/res/web_hi_res_512.png new file mode 100644 index 000000000..5b958b009 Binary files /dev/null and b/multisrc/overrides/madtheme/mangacute/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madtheme/mangafab/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangafab/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..85fa9712a Binary files /dev/null and b/multisrc/overrides/madtheme/mangafab/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangafab/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangafab/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..2e42ba196 Binary files /dev/null and b/multisrc/overrides/madtheme/mangafab/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangafab/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangafab/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..099c0a8f5 Binary files /dev/null and b/multisrc/overrides/madtheme/mangafab/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangafab/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangafab/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..cbcdb472e Binary files /dev/null and b/multisrc/overrides/madtheme/mangafab/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangafab/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangafab/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..6e22f6075 Binary files /dev/null and b/multisrc/overrides/madtheme/mangafab/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangafab/res/web_hi_res_512.png b/multisrc/overrides/madtheme/mangafab/res/web_hi_res_512.png new file mode 100644 index 000000000..42c294af2 Binary files /dev/null and b/multisrc/overrides/madtheme/mangafab/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madtheme/mangaforest/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangaforest/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..79b9e6069 Binary files /dev/null and b/multisrc/overrides/madtheme/mangaforest/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangaforest/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangaforest/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..12ef94846 Binary files /dev/null and b/multisrc/overrides/madtheme/mangaforest/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangaforest/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangaforest/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..236b496cf Binary files /dev/null and b/multisrc/overrides/madtheme/mangaforest/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangaforest/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangaforest/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..355b34385 Binary files /dev/null and b/multisrc/overrides/madtheme/mangaforest/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangaforest/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangaforest/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..5e4331fa1 Binary files /dev/null and b/multisrc/overrides/madtheme/mangaforest/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangaforest/res/web_hi_res_512.png b/multisrc/overrides/madtheme/mangaforest/res/web_hi_res_512.png new file mode 100644 index 000000000..c1983c8d5 Binary files /dev/null and b/multisrc/overrides/madtheme/mangaforest/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madtheme/mangamad/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangamad/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..91747e9cc Binary files /dev/null and b/multisrc/overrides/madtheme/mangamad/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangamad/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangamad/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..b811309fd Binary files /dev/null and b/multisrc/overrides/madtheme/mangamad/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangamad/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangamad/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..65f36430a Binary files /dev/null and b/multisrc/overrides/madtheme/mangamad/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangamad/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangamad/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..5453c2977 Binary files /dev/null and b/multisrc/overrides/madtheme/mangamad/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangamad/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangamad/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..f376815f2 Binary files /dev/null and b/multisrc/overrides/madtheme/mangamad/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangamad/res/web_hi_res_512.png b/multisrc/overrides/madtheme/mangamad/res/web_hi_res_512.png new file mode 100644 index 000000000..c8139cd08 Binary files /dev/null and b/multisrc/overrides/madtheme/mangamad/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madtheme/mangamax/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangamax/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..4962affa8 Binary files /dev/null and b/multisrc/overrides/madtheme/mangamax/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangamax/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangamax/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..81358004c Binary files /dev/null and b/multisrc/overrides/madtheme/mangamax/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangamax/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangamax/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..8734c96d8 Binary files /dev/null and b/multisrc/overrides/madtheme/mangamax/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangamax/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangamax/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..91b5e9cec Binary files /dev/null and b/multisrc/overrides/madtheme/mangamax/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangamax/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangamax/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..15d3b4bda Binary files /dev/null and b/multisrc/overrides/madtheme/mangamax/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangamax/res/web_hi_res_512.png b/multisrc/overrides/madtheme/mangamax/res/web_hi_res_512.png new file mode 100644 index 000000000..d147c8e37 Binary files /dev/null and b/multisrc/overrides/madtheme/mangamax/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madtheme/mangasaga/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangasaga/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..a9d3fb20c Binary files /dev/null and b/multisrc/overrides/madtheme/mangasaga/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangasaga/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangasaga/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..0d4ea975c Binary files /dev/null and b/multisrc/overrides/madtheme/mangasaga/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangasaga/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangasaga/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..a098b0358 Binary files /dev/null and b/multisrc/overrides/madtheme/mangasaga/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangasaga/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangasaga/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..95ea1904b Binary files /dev/null and b/multisrc/overrides/madtheme/mangasaga/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangasaga/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangasaga/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..97e4d49f8 Binary files /dev/null and b/multisrc/overrides/madtheme/mangasaga/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangasaga/res/web_hi_res_512.png b/multisrc/overrides/madtheme/mangasaga/res/web_hi_res_512.png new file mode 100644 index 000000000..6b140482c Binary files /dev/null and b/multisrc/overrides/madtheme/mangasaga/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madtheme/mangaspin/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangaspin/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..42f0ee9b7 Binary files /dev/null and b/multisrc/overrides/madtheme/mangaspin/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangaspin/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangaspin/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..f63cda37f Binary files /dev/null and b/multisrc/overrides/madtheme/mangaspin/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangaspin/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangaspin/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..a8941032c Binary files /dev/null and b/multisrc/overrides/madtheme/mangaspin/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangaspin/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangaspin/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..0cb2a8417 Binary files /dev/null and b/multisrc/overrides/madtheme/mangaspin/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangaspin/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangaspin/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..0678c3b3c Binary files /dev/null and b/multisrc/overrides/madtheme/mangaspin/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangaspin/res/web_hi_res_512.png b/multisrc/overrides/madtheme/mangaspin/res/web_hi_res_512.png new file mode 100644 index 000000000..0bfd7d4e1 Binary files /dev/null and b/multisrc/overrides/madtheme/mangaspin/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madtheme/mangaxyz/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangaxyz/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..8a8e68b20 Binary files /dev/null and b/multisrc/overrides/madtheme/mangaxyz/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangaxyz/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangaxyz/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..81f750c3c Binary files /dev/null and b/multisrc/overrides/madtheme/mangaxyz/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangaxyz/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangaxyz/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..d40a022e2 Binary files /dev/null and b/multisrc/overrides/madtheme/mangaxyz/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangaxyz/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangaxyz/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..f889240e1 Binary files /dev/null and b/multisrc/overrides/madtheme/mangaxyz/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangaxyz/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/mangaxyz/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..9e1bf8544 Binary files /dev/null and b/multisrc/overrides/madtheme/mangaxyz/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/mangaxyz/res/web_hi_res_512.png b/multisrc/overrides/madtheme/mangaxyz/res/web_hi_res_512.png new file mode 100644 index 000000000..63e7235fb Binary files /dev/null and b/multisrc/overrides/madtheme/mangaxyz/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madtheme/manhuanow/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/manhuanow/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..dea85565a Binary files /dev/null and b/multisrc/overrides/madtheme/manhuanow/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/manhuanow/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/manhuanow/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..022e6f1a2 Binary files /dev/null and b/multisrc/overrides/madtheme/manhuanow/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/manhuanow/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/manhuanow/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..92832f485 Binary files /dev/null and b/multisrc/overrides/madtheme/manhuanow/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/manhuanow/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/manhuanow/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..1b1f8ee8f Binary files /dev/null and b/multisrc/overrides/madtheme/manhuanow/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/manhuanow/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/manhuanow/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..c202e339b Binary files /dev/null and b/multisrc/overrides/madtheme/manhuanow/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/manhuanow/res/web_hi_res_512.png b/multisrc/overrides/madtheme/manhuanow/res/web_hi_res_512.png new file mode 100644 index 000000000..5ee515214 Binary files /dev/null and b/multisrc/overrides/madtheme/manhuanow/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madtheme/manhuasite/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/manhuasite/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..dea85565a Binary files /dev/null and b/multisrc/overrides/madtheme/manhuasite/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/manhuasite/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/manhuasite/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..022e6f1a2 Binary files /dev/null and b/multisrc/overrides/madtheme/manhuasite/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/manhuasite/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/manhuasite/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..92832f485 Binary files /dev/null and b/multisrc/overrides/madtheme/manhuasite/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/manhuasite/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/manhuasite/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..1b1f8ee8f Binary files /dev/null and b/multisrc/overrides/madtheme/manhuasite/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/manhuasite/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/manhuasite/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..c202e339b Binary files /dev/null and b/multisrc/overrides/madtheme/manhuasite/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/manhuasite/res/web_hi_res_512.png b/multisrc/overrides/madtheme/manhuasite/res/web_hi_res_512.png new file mode 100644 index 000000000..5ee515214 Binary files /dev/null and b/multisrc/overrides/madtheme/manhuasite/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madtheme/tooniclub/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/tooniclub/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..6eea5518b Binary files /dev/null and b/multisrc/overrides/madtheme/tooniclub/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/tooniclub/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/tooniclub/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..c5428c91e Binary files /dev/null and b/multisrc/overrides/madtheme/tooniclub/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/tooniclub/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/tooniclub/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..ea104a5a6 Binary files /dev/null and b/multisrc/overrides/madtheme/tooniclub/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/tooniclub/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/tooniclub/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..e07380f6a Binary files /dev/null and b/multisrc/overrides/madtheme/tooniclub/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/tooniclub/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/tooniclub/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..9b95163a7 Binary files /dev/null and b/multisrc/overrides/madtheme/tooniclub/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/tooniclub/res/web_hi_res_512.png b/multisrc/overrides/madtheme/tooniclub/res/web_hi_res_512.png new file mode 100644 index 000000000..93c217d1a Binary files /dev/null and b/multisrc/overrides/madtheme/tooniclub/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madtheme/toonifab/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/toonifab/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..6eea5518b Binary files /dev/null and b/multisrc/overrides/madtheme/toonifab/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/toonifab/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/toonifab/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..c5428c91e Binary files /dev/null and b/multisrc/overrides/madtheme/toonifab/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/toonifab/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/toonifab/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..ea104a5a6 Binary files /dev/null and b/multisrc/overrides/madtheme/toonifab/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/toonifab/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/toonifab/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..e07380f6a Binary files /dev/null and b/multisrc/overrides/madtheme/toonifab/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/toonifab/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/toonifab/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..9b95163a7 Binary files /dev/null and b/multisrc/overrides/madtheme/toonifab/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/toonifab/res/web_hi_res_512.png b/multisrc/overrides/madtheme/toonifab/res/web_hi_res_512.png new file mode 100644 index 000000000..93c217d1a Binary files /dev/null and b/multisrc/overrides/madtheme/toonifab/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madtheme/toonilyme/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/toonilyme/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..6eea5518b Binary files /dev/null and b/multisrc/overrides/madtheme/toonilyme/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/toonilyme/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/toonilyme/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..c5428c91e Binary files /dev/null and b/multisrc/overrides/madtheme/toonilyme/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/toonilyme/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/toonilyme/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..ea104a5a6 Binary files /dev/null and b/multisrc/overrides/madtheme/toonilyme/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/toonilyme/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/toonilyme/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..e07380f6a Binary files /dev/null and b/multisrc/overrides/madtheme/toonilyme/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/toonilyme/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/toonilyme/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..9b95163a7 Binary files /dev/null and b/multisrc/overrides/madtheme/toonilyme/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/toonilyme/res/web_hi_res_512.png b/multisrc/overrides/madtheme/toonilyme/res/web_hi_res_512.png new file mode 100644 index 000000000..93c217d1a Binary files /dev/null and b/multisrc/overrides/madtheme/toonilyme/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madtheme/toonitube/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/toonitube/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..6eea5518b Binary files /dev/null and b/multisrc/overrides/madtheme/toonitube/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/toonitube/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/toonitube/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..c5428c91e Binary files /dev/null and b/multisrc/overrides/madtheme/toonitube/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/toonitube/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/toonitube/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..ea104a5a6 Binary files /dev/null and b/multisrc/overrides/madtheme/toonitube/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/toonitube/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/toonitube/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..e07380f6a Binary files /dev/null and b/multisrc/overrides/madtheme/toonitube/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/toonitube/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/toonitube/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..9b95163a7 Binary files /dev/null and b/multisrc/overrides/madtheme/toonitube/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/toonitube/res/web_hi_res_512.png b/multisrc/overrides/madtheme/toonitube/res/web_hi_res_512.png new file mode 100644 index 000000000..93c217d1a Binary files /dev/null and b/multisrc/overrides/madtheme/toonitube/res/web_hi_res_512.png differ diff --git a/multisrc/overrides/madtheme/truemanga/res/mipmap-hdpi/ic_launcher.png b/multisrc/overrides/madtheme/truemanga/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 000000000..38566e2c8 Binary files /dev/null and b/multisrc/overrides/madtheme/truemanga/res/mipmap-hdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/truemanga/res/mipmap-mdpi/ic_launcher.png b/multisrc/overrides/madtheme/truemanga/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 000000000..a3d3a13a7 Binary files /dev/null and b/multisrc/overrides/madtheme/truemanga/res/mipmap-mdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/truemanga/res/mipmap-xhdpi/ic_launcher.png b/multisrc/overrides/madtheme/truemanga/res/mipmap-xhdpi/ic_launcher.png new file mode 100644 index 000000000..7a381784d Binary files /dev/null and b/multisrc/overrides/madtheme/truemanga/res/mipmap-xhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/truemanga/res/mipmap-xxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/truemanga/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 000000000..6e33b5f2a Binary files /dev/null and b/multisrc/overrides/madtheme/truemanga/res/mipmap-xxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/truemanga/res/mipmap-xxxhdpi/ic_launcher.png b/multisrc/overrides/madtheme/truemanga/res/mipmap-xxxhdpi/ic_launcher.png new file mode 100644 index 000000000..6a76f3ac9 Binary files /dev/null and b/multisrc/overrides/madtheme/truemanga/res/mipmap-xxxhdpi/ic_launcher.png differ diff --git a/multisrc/overrides/madtheme/truemanga/res/web_hi_res_512.png b/multisrc/overrides/madtheme/truemanga/res/web_hi_res_512.png new file mode 100644 index 000000000..6b3bf9dd1 Binary files /dev/null and b/multisrc/overrides/madtheme/truemanga/res/web_hi_res_512.png differ diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madtheme/MadTheme.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madtheme/MadTheme.kt new file mode 100644 index 000000000..b477f6ee5 --- /dev/null +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madtheme/MadTheme.kt @@ -0,0 +1,298 @@ +package eu.kanade.tachiyomi.multisrc.madtheme + +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.MangasPage +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 eu.kanade.tachiyomi.util.asJsoup +import kotlinx.serialization.decodeFromString +import kotlinx.serialization.json.Json +import okhttp3.Headers +import okhttp3.HttpUrl.Companion.toHttpUrl +import okhttp3.Request +import okhttp3.Response +import org.jsoup.nodes.Document +import org.jsoup.nodes.Element +import uy.kohesive.injekt.injectLazy +import java.text.ParseException +import java.text.SimpleDateFormat +import java.util.Calendar +import java.util.Locale + +abstract class MadTheme( + override val name: String, + override val baseUrl: String, + override val lang: String, + private val dateFormat: SimpleDateFormat = SimpleDateFormat("MMM dd, yyy", Locale.US) +) : ParsedHttpSource() { + + override val supportsLatest = true + + override fun headersBuilder() = Headers.Builder().apply { + add("Referer", "$baseUrl/") + add("User-Agent", "Tachiyomi " + System.getProperty("http.agent")) + } + + private val json: Json by injectLazy() + + // Popular + override fun popularMangaRequest(page: Int): Request = + searchMangaRequest(page, "", FilterList(OrderFilter(0))) + + override fun popularMangaParse(response: Response): MangasPage = + searchMangaParse(response) + + override fun popularMangaSelector(): String = + searchMangaSelector() + + override fun popularMangaFromElement(element: Element): SManga = + searchMangaFromElement(element) + + override fun popularMangaNextPageSelector(): String? = + searchMangaNextPageSelector() + + // Latest + override fun latestUpdatesRequest(page: Int): Request = + searchMangaRequest(page, "", FilterList(OrderFilter(1))) + + override fun latestUpdatesParse(response: Response): MangasPage = + searchMangaParse(response) + + override fun latestUpdatesSelector(): String = + searchMangaSelector() + + override fun latestUpdatesFromElement(element: Element): SManga = + searchMangaFromElement(element) + + override fun latestUpdatesNextPageSelector(): String? = + searchMangaNextPageSelector() + + // Search + override fun searchMangaRequest(page: Int, query: String, filters: FilterList): Request { + val url = "$baseUrl/search".toHttpUrl().newBuilder() + .addQueryParameter("q", query) + + filters.forEach { filter -> + when (filter) { + is GenreFilter -> { + filter.state + .filter { it.state } + .let { list -> + if (list.isNotEmpty()) { + list.forEach { genre -> url.addQueryParameter("genre[]", genre.id) } + } + } + } + is StatusFilter -> { + url.addQueryParameter("status", filter.toUriPart()) + } + is OrderFilter -> { + url.addQueryParameter("sort", filter.toUriPart()) + } + else -> {} + } + } + + return GET(url.toString(), headers) + } + + override fun searchMangaSelector(): String = ".book-detailed-item" + + override fun searchMangaFromElement(element: Element): SManga = SManga.create().apply { + setUrlWithoutDomain(element.select("a").first()!!.attr("abs:href")) + title = element.select("a").first()!!.attr("title") + description = element.select(".summary").first()?.text() + genre = element.select(".genres > *").joinToString { it.text() } + thumbnail_url = element.select("img").first()!!.attr("abs:data-src") + } + + override fun searchMangaNextPageSelector(): String? = ".paginator [rel=next]" + + // Details + override fun mangaDetailsParse(document: Document): SManga = SManga.create().apply { + title = document.select(".detail h1").first()!!.text() + author = document.select(".detail .meta > p > strong:contains(Authors) ~ a").joinToString { it.text().trim(',', ' ') } + genre = document.select(".detail .meta > p > strong:contains(Genres) ~ a").joinToString { it.text().trim(',', ' ') } + thumbnail_url = document.select("#cover img").first()!!.attr("abs:data-src") + + val altNames = document.select(".detail h2").first()?.text() + ?.split(',', ';') + ?.mapNotNull { it.trim().takeIf { it != title } } + ?: listOf() + + description = document.select(".summary .content").first()?.text() + + (altNames.takeIf { it.isNotEmpty() }?.let { "\n\nAlt name(s): ${it.joinToString()}" } ?: "") + + val statusText = document.select(".detail .meta > p > strong:contains(Status) ~ a").first()!!.text() + status = when (statusText.toLowerCase(Locale.US)) { + "ongoing" -> SManga.ONGOING + "completed" -> SManga.COMPLETED + else -> SManga.UNKNOWN + } + } + + // Chapters + override fun chapterListRequest(manga: SManga): Request = + GET("$baseUrl/api/manga${manga.url}/chapters?source=detail", headers) + + override fun searchMangaParse(response: Response): MangasPage { + if (genresList == null) { + genresList = parseGenres(response.asJsoup(response.peekBody(Long.MAX_VALUE).string())) + } + return super.searchMangaParse(response) + } + + override fun chapterListSelector(): String = "#chapter-list > li" + + override fun chapterFromElement(element: Element): SChapter = SChapter.create().apply { + setUrlWithoutDomain(element.select("a").first()!!.attr("abs:href")) + name = element.select(".chapter-title").first()!!.text() + date_upload = parseChapterDate(element.select(".chapter-update").first()?.text()) + chapter_number = name.substringAfterLast(' ').toFloatOrNull() ?: -1f + } + + // Pages + override fun pageListParse(document: Document): List { + val html = document.html()!! + + if (!html.contains("var mainServer = \"")) { + // No fancy CDN + return document.select("#chapter-images img").mapIndexed { index, element -> + Page(index, "", element.attr("abs:data-src")) + } + } + + val scheme = baseUrl.toHttpUrl().scheme + "://" + + val mainCdn = html + .substringAfter("var mainServer = \"") + .substringBefore("\"") + + val mainCdnHttp = (scheme + mainCdn).toHttpUrl() + CDN_URL = scheme + mainCdnHttp.host + CDN_PATH = mainCdnHttp.encodedPath + + val chImages = html + .substringAfter("var chapImages = '") + .substringBefore("'") + .split(',') + + if (html.contains("var multiServers = true")) { + val altCDNs = json.decodeFromString>( + html + .substringAfter("var imageServers = ") + .substringBefore("\n") + ) + CDN_URL_ALT = altCDNs.mapNotNull { + val url = scheme + it + if (!(CDN_URL!!).contains(url)) url else null + } + } + + val allCDN = listOf(CDN_URL) + CDN_URL_ALT + return chImages.mapIndexed { index, img -> + Page(index, "", allCDN.random() + CDN_PATH + img) + } + } + + // Image + override fun imageUrlParse(document: Document): String = + throw UnsupportedOperationException("Not used.") + + // Date logic lifted from Madara + private fun parseChapterDate(date: String?): Long { + date ?: return 0 + + fun SimpleDateFormat.tryParse(string: String): Long { + return try { + parse(string)?.time ?: 0 + } catch (_: ParseException) { + 0 + } + } + + return when { + "ago".endsWith(date) -> { + parseRelativeDate(date) + } + else -> dateFormat.tryParse(date) + } + } + + private fun parseRelativeDate(date: String): Long { + val number = Regex("""(\d+)""").find(date)?.value?.toIntOrNull() ?: return 0 + val cal = Calendar.getInstance() + + return when { + date.contains("day") -> cal.apply { add(Calendar.DAY_OF_MONTH, -number) }.timeInMillis + date.contains("hour") -> cal.apply { add(Calendar.HOUR, -number) }.timeInMillis + date.contains("minute") -> cal.apply { add(Calendar.MINUTE, -number) }.timeInMillis + date.contains("second") -> cal.apply { add(Calendar.SECOND, -number) }.timeInMillis + else -> 0 + } + } + + // Dynamic genres + private fun parseGenres(document: Document): List? { + return document.select(".checkbox-group.genres").first()?.select("label")?.map { + Genre(it.select(".radio__label").first()!!.text(), it.select("input").`val`()) + } + } + + // Filters + override fun getFilterList() = FilterList( + GenreFilter(getGenreList()), + StatusFilter(), + OrderFilter(), + ) + + private class GenreFilter(genres: List) : Filter.Group("Genres", genres) + private class Genre(name: String, val id: String) : Filter.CheckBox(name) + private var genresList: List? = null + private fun getGenreList(): List { + // Filters are fetched immediately once an extension loads + // We're only able to get filters after a loading the manga directory, and resetting + // the filters is the only thing that seems to reinflate the view + return genresList ?: listOf(Genre("Press reset to attempt to fetch genres", "")) + } + + class StatusFilter : UriPartFilter( + "Status", + arrayOf( + Pair("All", "all"), + Pair("Ongoing", "ongoing"), + Pair("Completed", "completed"), + ) + ) + + class OrderFilter(state: Int = 0) : UriPartFilter( + "Order By", + arrayOf( + Pair("Views", "views"), + Pair("Updated", "updated_at"), + Pair("Created", "created_at"), + Pair("Name A-Z", "name"), + Pair("Rating", "rating"), + ), + state + ) + + open class UriPartFilter( + displayName: String, + private val vals: Array>, + state: Int = 0 + ) : + Filter.Select(displayName, vals.map { it.first }.toTypedArray(), state) { + fun toUriPart() = vals[state].second + } + + companion object { + private var CDN_URL: String? = null + private var CDN_URL_ALT: List = listOf() + private var CDN_PATH: String? = null + } +} diff --git a/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madtheme/MadThemeGenerator.kt b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madtheme/MadThemeGenerator.kt new file mode 100644 index 000000000..8b65b6c01 --- /dev/null +++ b/multisrc/src/main/java/eu/kanade/tachiyomi/multisrc/madtheme/MadThemeGenerator.kt @@ -0,0 +1,41 @@ +package eu.kanade.tachiyomi.multisrc.madtheme + +import generator.ThemeSourceData.SingleLang +import generator.ThemeSourceGenerator + +class MadThemeGenerator : ThemeSourceGenerator { + + override val themePkg = "madtheme" + + override val themeClass = "MadTheme" + + override val baseVersionCode: Int = 1 + + override val sources = listOf( + SingleLang("BeeHentai", "https://beehentai.com", "en", isNsfw = true), + SingleLang("BoxManhwa", "https://boxmanhwa.com", "en", isNsfw = true), + SingleLang("MangaBuddy", "https://mangabuddy.com", "en", isNsfw = true), + SingleLang("MangaCute", "https://mangacute.com", "en", isNsfw = true), + SingleLang("MangaFab", "https://mangafab.com", "en", isNsfw = true), + SingleLang("MangaForest", "https://mangaforest.com", "en", isNsfw = true), + SingleLang("MangaMad", "https://mangamad.com", "en", isNsfw = true), + SingleLang("MangaMax", "https://mangamax.net", "en", isNsfw = true), + SingleLang("MangaSaga", "https://mangasaga.com", "en", isNsfw = true), + SingleLang("MangaSpin", "https://mangaspin.com", "en", isNsfw = true), + SingleLang("MangaXYZ", "https://mangaxyz.com", "en", isNsfw = true), + SingleLang("ManhuaNow", "https://manhuanow.com", "en", isNsfw = true), + SingleLang("ManhuaSite", "https://manhuasite.com", "en", isNsfw = true), + SingleLang("TooniClub", "https://tooniclub.com", "en", isNsfw = true), + SingleLang("TooniFab", "https://toonifab.com", "en", isNsfw = true), + SingleLang("Toonily.me", "https://toonily.me", "en", isNsfw = true, className = "ToonilyMe"), + SingleLang("TooniTube", "https://toonitube.com", "en", isNsfw = true), + SingleLang("TrueManga", "https://truemanga.com", "en", isNsfw = true), + ) + + companion object { + @JvmStatic + fun main(args: Array) { + MadThemeGenerator().createAll() + } + } +}