package Ġcom . lag rad ost . cloud stream 3 . providers jav Ċ Ċ import Ġandroid . util . Log Ċ import Ġcom . lag rad ost . cloud stream 3 .* Ċ import Ġcom . lag rad ost . cloud stream 3 . network . get Ċ import Ġcom . lag rad ost . cloud stream 3 . network . text Ċ import Ġorg . js oup . J soup Ċ Ċ class ĠOp J av Com Ġ: ĠMain API () Ġ{ ĊĠĠĠ Ġoverride Ġval Ġname : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ" Op J AV . com " ĊĊĠĠĠ Ġoverride Ġval Ġmain Url : ĠString ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ" https :// op jav . com " ĊĊĠĠĠ Ġoverride Ġval Ġsupported Types : ĠSet < Tv Type > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġset Of ( Tv Type . J AV ) ĊĊĠĠĠ Ġoverride Ġval Ġhas Download Support : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġval Ġhas Main Page : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġtrue ĊĊĠĠĠ Ġoverride Ġval Ġhas Quick Search : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġget Main Page (): ĠHome Page Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġhtml Ġ= Ġget ("$ main Url ", Ġtimeout Ġ= Ġ 1 5 ). text ĊĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= ĠJ soup . parse ( html ) ĊĠĠĠĠĠĠĠ Ġval Ġall Ġ= ĠArrayList < HomePage List >() ĊĊĠĠĠĠĠĠĠ Ġval Ġmain body Ġ= Ġdocument . getElementsBy Tag (" body "). select (" div # header ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. select (" div # body - wrapper "). select (" div . content - wrapper ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. select (" div . container . fit "). select (" div . main . col - lg - 8 . col - md - 8 . col - sm - 7 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. select (" div . block . update "). select (" div . block - body ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. select (" div . content ") ĊĊĠĠĠĠĠĠĠ Ġvar Ġcount Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġmain body . select (" div . list - film . row ") ?. forEach Ġ{ Ġit 2 Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠTODO : ĠChange Ġrow Ġname ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcount ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġ" Row Ġ$ count " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠFetch Ġitems Ġand Ġmap ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġit 2 . select (" div . inner ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( inner Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġelements : ĠList < Search Response > Ġ= Ġinner . map Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaa Ġ= Ġit . select (" a . poster ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlink Ġ= Ġfix Url ( aa . attr (" href ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Ġ= Ġaa . select (" img "). attr (" src ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġname Ġ= Ġaa . attr (" title ") Ġ?: Ġ"< No ĠTitle >" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġyear Ġ= Ġinner . select (" dfn ") ?. get ( 1 )?. text ()?. toInt OrNull () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMovie Search Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT v Type . J AV , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyear , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġall . add ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHome Page List ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , Ġelements ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠHome Page Response ( all ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsearch ( query : ĠString ): ĠList < Search Response > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ"$ main Url / search /${ query }/ " ĊĠĠĠĠĠĠĠ Ġval Ġhtml Ġ= Ġget ( url , Ġtimeout = 2 0 ). text ĊĠĠĠĠĠĠĠ Ġval Ġdocument Ġ= ĠJ soup . parse ( html ). select (" div . block - body Ġ> Ġdiv . list - film . row ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. select (" div . item . col - lg - 3 . col - md - 3 . col - sm - 6 . col - xs - 6 ") ĊĊĠĠĠĠĠĠĠ ĠLog . i ( this . name , Ġ" Result Ġsize Ġ=> Ġ${ document . size }") ĊĠĠĠĠĠĠĠ Ġreturn Ġdocument . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinner Ġ= Ġit . select (" div . inner ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinner Post Ġ= Ġinner . select (" a . poster ") ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhref Ġ= Ġfix Url ( inner Post . attr (" href ") Ġ?: Ġ"") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġinner Post . attr (" title ") Ġ?: Ġ"< No ĠTitle Ġfound >" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Ġ= Ġinner Post . select (" img "). attr (" src ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . i ( this . name , Ġ" Result Ġimage Ġ=> Ġ${ image }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġyear Ġ= Ġinner . select (" dfn "). last OrNull ()?. text ()?. toInt OrNull () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Log . i ( this . name , Ġ" Result Ġ=> Ġ$ ") ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMovie Search Response ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhref , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠT v Type . J AV , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyear ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġload ( url : ĠString ): ĠLoad Response Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġresponse Ġ= Ġget ( url ). text ĊĠĠĠĠĠĠĠ Ġval Ġdoc Ġ= ĠJ soup . parse ( response ) ĊĠĠĠĠĠĠĠ ĠLog . i ( this . name , Ġ" Url Ġ=> Ġ${ url }") ĊĠĠĠĠĠĠĠ Ġval Ġposter Ġ= Ġdoc . select (" meta [ ite mp rop = image ]") ?. get ( 1 )?. attr (" content ") ĊĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= Ġdoc . select (" meta [ property = og : title ]"). first OrNull ()?. attr (" content "). toString () ĊĠĠĠĠĠĠĠ Ġval Ġde script Ġ= Ġdoc . select (" meta [ name = keywords ]"). first OrNull ()?. attr (" content ") ĊĠĠĠĠĠĠĠ Ġval Ġid Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġval Ġyear Ġ= Ġdoc . select (" meta [ ite mp rop = date Created ]") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. first OrNull ()?. attr (" content ") ?. toInt OrNull () ĊĊĠĠĠĠĠĠĠ Ġreturn ĠMovie Load Response ( title , Ġurl , Ġthis . name , ĠT v Type . J AV , Ġid , Ġposter , Ġyear , Ġde script , Ġnull , Ġnull ) ĊĠĠĠ Ġ} Ċ }