package Ġt ach iload . app Ċ Ċ import Ġcom . google . gson . Gson Ċ import Ġcom . google . gson . reflect . Type Token Ċ import Ġt ach iload . t ach iy omi . source . model . Filter List Ċ import Ġt ach iload . t ach iy omi . source . model . SM anga Impl Ċ Ċ class ĠCLI ( private Ġval Ġconfig Path : ĠString , Ġprivate Ġval Ġdownload Path : ĠString , Ġprivate Ġval Ġargs : ĠArray < String >) Ġ{ ĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( this . args [ 0 ] Ġ== Ġ"-- extensions " Ġ&& Ġthis . args . size Ġ== Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint ( this . ext List ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif ( this . args [ 0 ] Ġ== Ġ"-- search " Ġ&& Ġthis . args . size Ġ>= Ġ 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint ( this . search ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif ( this . args [ 0 ] Ġ== Ġ"-- download " Ġ&& Ġthis . args . size Ġ== Ġ 2 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint ( this . download ()) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprint (" Error ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġext List (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis :: class . java . class Loader . getResource (" extensions . json "). read Text () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsearch (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġ// args : Ġ-- search Ġ[ name ] Ġ[ lang _ ext 1 ] Ġ[ name _ ext 1 ] Ġ[ lang _ ext 2 ] Ġ[ name _ ext 2 ] ĊĠĠĠĠĠĠĠ Ġvar Ġlst Ġ= Ġmutable ListOf < Config Item >() ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ 2 Ġuntil Ġargs . size Ġstep Ġ 2 ) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġext Ġ= ĠHelpers . load Extension ( Helpers . load Index (), Ġthis . args [ i ], Ġthis . args [ i + 1 ]) Ġ?: Ġreturn Ġ" Error " ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġpage Ġ= Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġnext Page Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile ( next Page ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvalue Ġ= Ġext . fetch Search M anga ( page , Ġargs [ 1 ], ĠFilter List ()). to Blocking (). first () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( m Ġin Ġvalue . m ang as ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlst . add ( Config Item ( this . args [ i + 1 ], Ġthis . args [ i ], Ġm Ġas ĠSM anga Impl )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( value . hasNext Page ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnext Page Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠGson (). toJson ( lst ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdownload (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem : ĠConfig Item Ġ= ĠGson (). fromJson ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs [ 1 ], ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject : ĠType Token < Config Item >() Ġ{} . type ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġval Ġdl Ġ= ĠDownload ( this . config Path , Ġthis . download Path ) ĊĠĠĠĠĠĠĠ Ġdl . download New Chapter s ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHelpers . load Extension ( Helpers . load Index (), Ġitem . language , Ġitem . extension ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem . data , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdl . get Latest Chapter ( item . data . title ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġreturn Ġ"" ĊĠĠĠ Ġ} Ċ Ċ }