q))giXPvCoVc~tvM^ld(u~qWKx#8%nF?+g)>Y`@9sGB|8=QdTz${p
za)yP=yrw(j&!@T8-iva7TVl%ocYr-#0;
zMsvV31D!p#5xQsABR_B*H9GggXN;b3;U(F1S6*4owsB#@GT@odyRfW>DtA!yQgh##Lqvzl|5%ROj@7$(w|o|Zw%P*43NCY+r4yWlBxZrfB{ThN|>Q3
zXI$n(DUv?4VypoQ`2rF*n4^(|df+#`!RZUp;6KiWgGaT3kz38YAz;HZAWn1X46@}k
zS6!H+0*RQRKeYh%$zYi!Fhc_{3z`51z&oP@5G6y^P4XU%zp*
zV8b&YFO(!nHc0bgn3o_seLx86iHx?WD
z(>KpL=d_|Cc=?6+MqDbI}k7+SF5888N903a>NP8N^}3OOVZc^C*>!rsF%
z!xV|p1Rx!AOa=f=bTndg6h=CJV$;u`*6`8|p#{gB0bly&wFcJ%u2V7tRt!Il*`f5C
zB%c11C0PRo!0f0r77a$IX)Q3$IR%pv70767-HD&w4AMvZ+c(~eu@5X9QwDtX`p>E@
zjltq#J>B-1Yp(RF=3fbon(KNxcR^qHr-;vO_*wIN
zH++Z_J|J+vGvMm0|56rfNpr?ao>JHSizC%P-jiV|MV!C$)0bDh?i)0MoL0>_J#fp-
zy38Ct4W+%mmkF@{1aN_g8BL8Le#HPGk_mLmaKzvQFymwG8Ap<*LK9AIc*!xd1P8
z9VPyml1T#mfG`?LDD6zf#^%T{ff_&tp&iW8ZaI9oUk=X+R6jD4JpgdOG2rUIe?L*x
zz2vOA?p_>8_c2c1t2@QW^;9z73i8GkU;c2_`xoJBUwWH-@7h1B%?9P~1d^QV7HLBe
zEP>f%gy#_?
z44mSLk&^}Em5(jlFAVtGPrp@aUOu-NRIZ-tX6;aCea$D8x)`cZ`ZF!3|MWSp|E8_A;d5$kvF+>Ed?2{)s~-qw
z!~Eo}jr6jXpT4Q-#pnCdZy<|B1Ui=9l4vqsNO?vglK5CO1EJAmkaZ?!WCDqAks4B&
zFFJCK4v4HmUuBPrbc*aasdMBngU^2DZ;6=v=)h5%$ilT(y-jTnN2ksQ!&l7vy%+fT
z>Q*VW{2J)tNmjzDtFVa6V2JA-Md|(oW@3lJZXB)8@O1eoU&Y&eH42<^1Ud~s
z*gmpa*l?N;-vL1(&4}-XPeBugouoW~B4v|gLwyvS7~yQGL)b>7AN4JmV+J>n$dwv-
zTr^6g{?CIvdP_fb{;ij~>BFD=Mow@5{I7p_pAt9NQfj~6PNJO`J>x~yqK6MhT?0au
z)EZv=TQj=*L~pcrK@awMGFVo{paUZD!B`@WiX~73HKTjAmeV-MRLOhPRqtpu?=5-JjZJf6-KNJmS|Ak8ELnoNYrlBUQ!EoF&1_+Zfb3FZpM
zM^IIAg$z0H%Hg9z8C(kUcm~YpFC=F-e)U}n_cqOX!{2Lp$;Az4u=v?8e5$&8_(1tM
zYH;-z-z_ILR?j*vY`>-@d!FqM@7bc$t^=p3N;eQ)pA!`}Af51c3L?sab0J8$aZ4xOHvxB$>(LaHSA@Nz77#@8n`3aCx%;Qtyks?Tn(rN*H0v#~#Qwsph
z6^sL>58+%~&m?vjP!16w^p1yrdSRsF*EQVHbG77;b|iaPsN?f$di00LXI|5E`)Ahm
z@a!2ceF{Qp+OZ=7?C|KobzgY1UaVygKY3>G$Np&N)7{}+o1ARbF`wO``fEg-K73r*
z9G4#KF{R(gKqUvpB!DQS7#T!U!$-=a4sL;9kYwdTip}E&)Y*sKN%SGFfn3aLfQPyR
zG+Mwlu%1glFpD@B`|xVxJ@9!FR1oZeQbvfAnw?Qu+da(Py+vW-tA#*k+ahN;ivxLa
zSu1-od*gEK|L5CRgYQ1;;=}(uYIX7>hqLCe70j6AZdp2cR(juj`DIV^#r%AN~vRq0snu)w^rJqi{0P>nlpk*
zhH?CChcHkR`_xE_@JSVp8M2CiXyvz5JlKL+4-1Z%0YTmkBN;s+$OmWXY!rd;-ACPU`RnfU!Qw9i
z?D)t)CB4ml+WT!U?H}i4iDRD2@UXP~)*%|nN3dXHbs{Cx^aUD;#053ON<7g3$D`mp
zhKSW1lzcN6>eL3yAj|BDDXL1lC$48Ti)+%Skk~^yerR8YO&LKzNi#^Kxw2?7aJD0(
zPX{W&=eW1K8c+!`CnWuL^`e1GeyCZaS!I^MV!>Gl#SXCQ@R7
zWWWdqC*mAq(=kO9{F_KA!7z}0Y(LDA0{H?9G&4vBOzu}mqI29d6YRYS6Q+>)LkfZ?
zUDpV_X)MEb7sBhV4?NFx(7@{B#eIIGrgq06`8Jwje+>s
zAPGpchbEE`Bsz%(VMA1hHcBoug9J3ho*q{b%@B`RF_4mPh|l?W-}WVPJnDw{)jet%
z(X7F~wh!;IU)7fyX%HQ(2{f9?v4=p6=Lf>PBG!n8P7I5|88gyfw;96fhYvv>&jdw!
zikHW;PM$i{0P_ZlgtLdW#D~@z!clq?N->dU$ufZ@5%-BCHjxBkNlA}^L(D~-NdMFr
zgIv?Di_(}nT$}w^tj5ta8m4kC_T#wex!9L&(__cu6-#IebAzai8<8X@*JS-Kb+F3e
z!Ds*a9pdEif>Y!tI7L=N*r~_r$-CH`l`?a1w384d8VR0(;Kq#L9!r{)9BnxSh?wzl
z1Ca~@vLAepyvFn%ds9hT*U_~>jjpkjh0
z1c_)4j(aicF_}UH;Zq>5Vb#pN5&Dt=L}PZi2HGdmU#(-;GV20Kd}@gaRoRCABtA9H
zFc)>}(9QhVBkSzP7YYXud>YZmo(=v0G;knEw2^2WYlvU1
zWzjOi*md>;lAzXHQJbu0u}W8#inY!TZ>wEsZ7+aXmyi0J0>Sb|493
zh)2SsK8*(uzgla0AI5i}ZU{@P)-)!K?I>AK$rRp0o6(qRPIDF_t}U81AsF}OD`Y@Z
z=jACunXbzbW9GvHUlpNK%5iYIe9y@66GR4bgA-}5(6$+@`WzsoxHgh_2;_ZZvmv=G
zE%PiMU>Yhk_o}nL(XefE>zb97|*RP;w34H@*pI7=U);lyS|y8sVyNa!&lQm={Wy
zWu&Ft8c6;t-z!f8Rz5rk$}DuGoWr7?Dis)jjnesA2W&Pzg;Zxgd^PuQY1=1^V0j2M
zriPNwv1Eir*6$0a`kMq0*EC@?WnC<8Od95<+2K9*VPCFC(`guhlGoFw%@W`EJ786Z
z=~3{3E|@SE=(6#(kG&H&)&^K{{qWUKy-$2_+%1gSxn^_I#OKBgRCNpHvbt~jRo9jo
zheD%8=yQOnVfibN^Rhop2~EpHx^ZOs5-asaqgbNOl0@eiYl4hMu|(bM6@TpfleNsA
zT=>HlqM^EL2Coe;`})C6W962413q8|3{c}wreP{`2yTXDg@yqYnm1s)25{rkCTe=j
zG}?I&U_>?USD~Gk*CwYRfl*pCeOLn7*N$VvmHyVOKuqzyX8n&UoXvVWnYOx((u*FFyD(onZP^r8(ez;KBDM^=kaD
zL=wsN=Xemym?#pCXy?Rz?uCL&W>5>r1j~FghW&VL>tn*xbSYeGw1W*E>~Uz1xfZ}|
z>j&662bmy}Flne#!wpm$Gt$74Xb;ETRA}DI@)|H4-aogumSoJ-CuvOcd5c3~^_i=whMAk`Ipt&a6zEgX$
zzGz|&S@H`aWe8_HR~DRLZGaWl51=!$ZmA&{FyD>CW|UFc=@%f@u1*dKY2oK`N`%RU
z#Q^<)<{I~Gv}4Cu0$AH@kZl!_4(PWQwBv|ei)&W1fm8WN`s
zNwT`6SxxdhGJWnPEasXZHH*k=&S~528n!--_TItBxk*^=Cp7y>v4=S2p0GFUD=q5S
z57HYW9F<@g4Z(PljMtX<23bcWUT9V13a%0LHNx6^PJz+3qRh%15imI)ktGeW^VaX$g}6G>-KlY3Tt*|E=+?fX61wHnA$5BrJ90RC1W
z_f#c;=4=&m9!5$7YzSvBQ+US0Nf3?pOXYEAYXZ!&egMsLM4x^5niLXHnvIYFCac8e
z_}G9_W4^(NGyyU9u$#;7d-`(g9bNg!j-LErM_;~w`#^rUV
z`@DvX(5I>vIC(tNbV010gwfYQ`~{CtnSwm4xF29x;Q8jf0)
z9<oEPV!
z$uST4FgeU_DaeZ4`e^7iZ(8wZuS~t#zE5AXw$BN1+I2&&gDflbUig~*P`hkw4}tcD
ziG8?cA1{xTIH@Z&w;_#aROb6Lr1-;*Tv#*#Nt
zd(3HxZ=@U7M4FD$a;~!NPpzY?w*#PFBNjr-dujRQp(POCwr1W
z+OYY#-w?mvl3G+pq=B&}xWIZQECt$!b>>MbnSt|R?lO1Myma@(66|~GEC0mMX)S;m
z*AJN!6=~`2FG_beBr7R%U7EDsJoLiG%tJ3ApSkqmt-+8`g|gV1m*X~XmHGKC;?!C)
zbZXL;n(T+e+XY74zAAG2lE~hkBfTL^1sH^b!Hi+rYVZ%!h
zDuFO8!}Q#_TFPz91sJd79uR(|tV>_R@dh)}nAriF+!MAr~X1Ba(0X(J-Jd+5mR?Ob+(KzsYzNNWarJ=O%8
zGt5oNo|qboXtxY7N3v}k$MFaNQeWC5Uv_tu+`f{_on4V7v<*}ZGQ+(Du$G}jwHcYk
z9v7OkU_cEFAki_U6{sGVF#wvkXIKZ!r;ucYJIG6aSMD{aFKY(w_OKvxYQtRnKS$`h
z47*<-ImTgu#y%3Ux$5DULR*!pBW^8VUJ@A&;ouOlWN3}yF9s-=p+$G%fVVEkV*-Hz
z14wNSr#_Zs%x?&e4H(CY>qBV)`qADS#8^7r4v2pbBz^}Z|Blr{_F?WmLeUg`a;%+W
z9BhaTMlsgQ#f80ha3)R7rqolQdX?mx7egRCNL`?WB|y;Sbs&s8p7E+za%XD>%ygI#
zG}FSZ-IA+dSEd34h>VxXgo+5%25#P%1RMZ__#XRT4P_bTZ5QU+
zzMMh&Q`s|6(nF+`3i^Qf1?GVSAs;9Z3?y*WOmLt_L
z6OWaD7tV7>MV&PRW;{H2_G?}Z;i})6DF3!Z1w&{8Vlixt#31n}NM?`;TncqY5{O)w
zKr`;)yBux<@iUmX~x2xk3U
zx4>E{G;ajIF#xmJubo7)XNVZTqve+69GaDZ5h88)gIIiQ3lSRjW8NomPe7&*+@p4A
zzOYv^*=QK{ZU|qUiRZ+g3+)#pCmary|6^#-9yG2CNR`8eQP5cGNpLd)w$+s1hA?)Q
zl3@{@CI}+K)M(E)U$Wq#*;Q3xq&)q
z*+cRMrtF87j3AL?2MrSfbI|E!vaeIhU0p|Zpx@6sp4_ym<;P38{BUoAdMW$CxDn>h
z6-=68K7caez~p!y&==PaP(q6|$zyT6PlM*1TpNyEg0icFJ$)Vg%g_mX=&&x}%!duJ
zTT8I;O+7c-8LI#S;2;~s294x^FxD&>BGIOb%!HB5HtJH3JU+?81`5%9rNjx1W;i$$
z5+x9cVd@T8*8hvV;Rm}qNS2o5huinbEq5-{Y-Z3UPUss7fIfd
zeD4li-`zuqo4~;x?uQI(@ZE9>l7j$>-T;Ha3~ECP3GG9|mJs^g(aw-G4drL|bY=VQ
zw(Rf3k}%fb+;n*?(Z2w$!Wiz{*OQ;!-Iky28z8hzsLPbP_%T
z854fHQ|2O(lQzxBTpb#~kE+|}PiCDl;Vn}0G6)yW-5)s7jRUW?=SlzN4d}c+z-&hb
z1Fx~K@78Y|I3fIjla}V^g}GTu3#K0APp
zi3eu*D1A*mz`21b4%&m=T}4FINf1F{&M2e?)l8&9M@d3CFmJV}fiSWOR};ei7Z@Yb
z#n=(Qo6Mu~%h`~07&^4Tcz`95j-}~kvUSFlGq=ph>A+bZ3^G6Vfyp_)Im1|stu{jg
zFq4-<^LHdVx}hJm7_6=vc+Mk&OMdrRnVY1Emn5f#aeR7|=OJIxt5VajW3xa2>i7$S
zfoK5;*g%{e`o3r$GL6N75%(dD0W%CpACh|@88K!CNjQT5XInFnGq%ji39U##vwJ0#
zM$8Ei(gq;9mgRmb1C*K34h`lOK+aETPo<9QhMUV=sO6-&P#$seCVAZHTjZpcC()=a
zWp7n<4lUusJu<WJbY(O`giDS`i>1r8z`4I9r->hZhBPBGT51#W+J(9)NjLgqO(g+->`;J6J&yf%k
z5z++a)I?Ykeh0w()({=EkskXGN{qzOamp3X-@R0u`N-1zmJcK|t={?XSo`yzX*enj
zAYA{JcZK1~(z(t3yI-++Fg&N3#0y@YYoiHv8A^~L6iCWQgpLzLV>WCPBK}b85NX{i
zn9&}LWEdklL1;J=Xqkhy%t7))m=U;X%u4f91s-&+n469mZWZPSnRTp?gyqs3@#hgl
znzcY$^-yZAh6ci{VRJ4-oZl)j-w~_6tVhY80JN(jJ^rdPM|9Nn{djLs`}Rts`KQZU
zPyYTh-~Pwu{^7t8n;;7>yx=)ms`b9SKXQXCKM_Ic0#Y-6XbU^n@CjrBukjaBWe!Od
z&vQsJNCxy^E@=OuA5w$OZocu#BHIj+(lukn%&PyZ2xs9hmNU0#*
zE*z|bu|zeQgZ4k5GlmAa`S>SnG<*;lF#dQw=LAgV=07r6LHgai9n|jLSDX1nFRWdA
z!TaC5?$C1@xaXq^*S+cuCv93?e(|PW_tI7ppXTQ!gPQTT<;N$QfZ>TTFotyZqDjse
ztFs(SATtCroXj&9Y`17(>>y3HJynjE9?u2}kLR&-Oy&cc4&zG$wvLMeQUd`i+kUWj
zZ@u|5`+4tvUDfCC;HYVUg_r)$(*`QbJ4I2{2v)jHK$<2e9k&M7nn
zB_9UQaf^=YuPlePf9(3vpATB|JD&Z%KeZzd8;&{yUUczgMV=(9d0uqWEZ^+ragp!dZ_P3{j3IocH>dNxEh0u-#~WXK7~k6DvXVFJ0GL
zO>hWf9;~z)MBOB9Xr7>Ln?fdZztGOU_I`zjx_`*_Lt)jo>OcNDOsCAS?}6hjuLjZe
z?RxVs+ReG|j+!la|Dyw3<$i&y|Jw&~kkX&qvE%%OZts5iEN`Up^cl&PvG^zbppo$7@=`Ee{8{Z%AV&f
zt%Sj~`=k1YJF|1&IqxHHJ0hohFkrR&2QGZuAHwkKB%WRP=APO4zqz~K`0kPy3=(9J
zuqf3-J9L~#CXjMPw4b-Jb%X4KazZ=QX+inG4`Js7sZ|pVLlftnw4rWF)~EYb_b{ii
zQea%_sG{q+`}c&w)l0S7dq>UYcZx7Ns>CN?<@*<|eEY{m?cZ0Q>vo>DxVrl4x&GiW
zGjZJX(;UiOMMpUGI7$MT9aTgz71M!@{tK@|jzc@v1up@Jv+cKqQ^P*S;
z!6RKFB?Ilp5erUl!cQt?MGXVCB(NRDgkrotRB4fQpqZmWwwr50Rbt%&CI?|=(f6Fr
zitl}YB@92=t<^pT$-gac%oLxw@%nM!qYQQ@#{|Cq-p{FW`>nrG-@pGwbKTyB^TYU*
znIw<=tWXG5N%@H;j7t)%YA`UN=+w^5uzO*;JK+!~q)j4WrgP<
zOfs<&=rW1V4<_gV46xg;N^|R=0n;b6-H;{cka~WyGDC85KG$^QcuFe=%tYO*mbg@qnBgH`BCEPuf@LePs7l^_1}H*FZd0y
zV+Icx0|?*zlMku9*KOpz&RI^ce{OvkKdG6d4{s&Krh1x&K~iWJj9_1-;jZ{-ff=nO
zvMKI^0qkn7flw#TQaCD4TxZyI^xlr|-PCj4Z-4>cP`-O>RpqaMp%^d?*S+zhs_gY6>GfMO7|u$T
zF6Kpk0_1tCgB;Z@iWts%0CPkMww{9Cfoa|lS@?c|sex->$pgQWMd3(%zdZk=Z?3v-
z4A`&?n1(A}{~?i1N6BdDxmoIZ{2EGS){UtLm_Gn=0^v)6d?N<~ic2nk*Z9VR@E|-0
n55j}+AUp^U!h^73K;-`cw&WX*^9$uh00000NkvXXu0mjf$(18J
literal 0
HcmV?d00001
diff --git a/src/de/fireanime/res/mipmap-xxhdpi/ic_launcher.png b/src/de/fireanime/res/mipmap-xxhdpi/ic_launcher.png
new file mode 100644
index 0000000000000000000000000000000000000000..b2afec9a94ed495436a92071f63ea6292e183f39
GIT binary patch
literal 18992
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.getSharedPreferences("source_$id", 0x0000)
+ }
+
+ // ===== POPULAR ANIME =====
+ override fun popularAnimeRequest(page: Int): Request = POST(
+ "$baseUrl/api/public/airing",
+ body = FormBody.Builder()
+ .add("langs[0]", "de-DE")
+ .build()
+ )
+
+ override fun popularAnimeParse(response: Response): AnimesPage = parseAnimeListJson(response, true)
+
+ // ===== LATEST ANIME =====
+ override fun latestUpdatesRequest(page: Int): Request = POST(
+ "$baseUrl/api/public/new",
+ body = FormBody.Builder()
+ .add("langs[0]", "de-DE")
+ .add("limit", "30")
+ .add("offset", (page - 1).toString())
+ .build()
+ )
+
+ override fun latestUpdatesParse(response: Response): AnimesPage = parseAnimeListJson(response)
+
+ // ===== ANIME SEARCH =====
+ override fun searchAnimeRequest(page: Int, query: String, filters: AnimeFilterList): Request = POST(
+ "$baseUrl/api/public/search",
+ body = FormBody.Builder()
+ .add("q", query)
+ .build()
+ )
+
+ override fun searchAnimeParse(response: Response): AnimesPage = parseAnimeListJson(response, true)
+
+ // ===== ANIME LIST PARSING =====
+ private fun parseAnimeListJson(response: Response, singlePage: Boolean = false): AnimesPage {
+ val animes = json.decodeFromString(ListSerializer(AnimeBaseDto.serializer()), response.body!!.string())
+ .distinctBy { it.url }
+ return AnimesPage(animes.map { createAnime(it) }, animes.count() > 0 && !singlePage)
+ }
+
+ // ===== ANIME DETAILS =====
+ override fun animeDetailsRequest(anime: SAnime): Request = POST(
+ "$baseUrl/api/public/anime",
+ body = FormBody.Builder()
+ .add("url", anime.url)
+ .build()
+ )
+
+ override fun fetchAnimeDetails(anime: SAnime): Observable {
+ return client.newCall(animeDetailsRequest(anime))
+ .asObservableSuccess()
+ .map { response ->
+ animeDetailsParse(response, anime).apply { initialized = true }
+ }
+ }
+
+ override fun animeDetailsParse(response: Response): SAnime = throw UnsupportedOperationException("Not used")
+
+ private fun animeDetailsParse(response: Response, baseAnime: SAnime): SAnime {
+ val anime = json.decodeFromString(AnimeDetailsWrapperDto.serializer(), response.body!!.string()).response
+ return createAnime(baseAnime, anime)
+ }
+
+ // ===== CREATE ANIME =====
+ private fun createAnime(anime: AnimeBaseDto): SAnime {
+ return SAnime.create().apply {
+ title = anime.title
+ url = anime.url
+ thumbnail_url = "$baseUrl/api/get/img/" + anime.imgPoster + "-normal-poster.webp"
+ status = SAnime.UNKNOWN
+ }
+ }
+
+ private fun createAnime(baseAnime: SAnime, details: AnimeDetailsDto): SAnime {
+ return baseAnime.apply {
+ description = details.description
+ genre = "FSK ${details.fsk}, " + (if (details.votingDouble != null) "%.1f/5 ⭐, ".format(details.votingDouble) else "") + details.genres.joinToString(", ") { it.genre }
+ }
+ }
+
+ // ===== EPISODE =====
+ override fun episodeListRequest(anime: SAnime): Request = POST(
+ "$baseUrl/api/public/episodes",
+ body = FormBody.Builder()
+ .add("url", anime.url)
+ .build()
+ )
+
+ override fun fetchEpisodeList(anime: SAnime): Observable> {
+ return if (anime.status != SAnime.LICENSED) {
+ client.newCall(episodeListRequest(anime))
+ .asObservableSuccess()
+ .map { response ->
+ episodeListParse(response, anime.url)
+ }
+ } else {
+ Observable.error(Exception("Licensed - No episodes to show"))
+ }
+ }
+
+ override fun episodeListParse(response: Response): List = throw UnsupportedOperationException("Not used")
+
+ private fun episodeListParse(response: Response, animeUrl: String): List {
+ val episodes = json.decodeFromString(EpisodeListingWrapperDto.serializer(), response.body!!.string()).response
+ return episodes.mapIndexed { i, ep ->
+ SEpisode.create().apply {
+ episode_number = ep.episode.toFloat()
+ name = if (ep.title.startsWith("Episode")) ep.title else "Episode ${i + 1}: ${ep.title}"
+ url = animeUrl + (-1..i).joinToString("") { " " } // Add some spaces so that all episodes are shown
+ date_upload = System.currentTimeMillis()
+ }
+ }.reversed()
+ }
+
+ // ===== VIDEO SOURCES =====
+ override fun videoListRequest(episode: SEpisode): Request = POST(
+ "$baseUrl/api/public/episode",
+ body = FormBody.Builder()
+ .add("url", episode.url.trim())
+ .add("ep", "%.0f".format(episode.episode_number))
+ .build()
+ )
+
+ override fun videoListParse(response: Response): List |