package Ġcom . lag rad ost . cloud stream 3 . extract ors Ċ Ċ import Ġcom . fasterxml . jackson . annotation . JsonProperty Ċ import Ġcom . lag rad ost . cloud stream 3 . utils .* Ċ import Ġcom . lag rad ost . cloud stream 3 . app Ċ import Ġcom . lag rad ost . cloud stream 3 . utils . App Utils . parse Json Ċ Ċ data Ġclass ĠData Options Json Ġ( ĊĠĠĠ Ġ@ JsonProperty (" flash vars ") Ġvar Ġflash vars Ġ: ĠFlash vars ? Ġ= ĠFlash vars (), Ċ ) Ċ data Ġclass ĠFlash vars Ġ( ĊĠĠĠ Ġ@ JsonProperty (" metadata ") Ġvar Ġmetadata Ġ: ĠString ? Ġ= Ġnull , ĊĠĠĠ Ġ@ JsonProperty (" hls Manifest Url ") Ġvar Ġh ls Manifest Url Ġ: ĠString ? Ġ= Ġnull , Ġ// m 3 u 8 Ċ ) Ċ Ċ data Ġclass ĠMetadata Ok ru Ġ( ĊĠĠĠ Ġ@ JsonProperty (" videos ") Ġvar Ġvideos : ĠArrayList < Videos > Ġ= Ġarray ListOf (), Ċ ) Ċ Ċ data Ġclass ĠV ideos Ġ( ĊĠĠĠ Ġ@ JsonProperty (" name ") Ġvar Ġname Ġ: ĠString , ĊĠĠĠ Ġ@ JsonProperty (" url ") Ġvar Ġurl Ġ: ĠString , ĊĠĠĠ Ġ@ JsonProperty (" seek Schema ") Ġvar Ġseek Schema Ġ: ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġ@ JsonProperty (" dis allowed ") Ġvar Ġdis allowed Ġ: ĠBoolean ? Ġ= Ġnull Ċ ) Ċ Ċ open Ġclass ĠOk Ru Ġ: ĠExtract or Api () Ġ{ ĊĠĠĠ Ġoverride Ġvar Ġname Ġ= Ġ" Ok ru " ĊĠĠĠ Ġoverride Ġvar Ġmain Url Ġ= Ġ" http :// ok . ru " ĊĠĠĠ Ġoverride Ġval Ġrequires Refer er Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġsuspend Ġfun ĠgetUrl ( url : ĠString , Ġrefer er : ĠString ?): ĠList < Extractor Link >? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdoc Ġ= Ġapp . get ( url ). document ĊĠĠĠĠĠĠĠ Ġval Ġsources Ġ= ĠArrayList < Extractor Link >() ĊĠĠĠĠĠĠĠ Ġval Ġdata json Ġ= Ġdoc . select (" div [ data - options ]"). attr (" data - options ") ĊĠĠĠĠĠĠĠ Ġif Ġ( data json . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmain Ġ= Ġparse Json < Data Options Json >( data json ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmetadata json Ġ= Ġparse Json < Metadata Ok ru >( main . flash vars ?. metadata !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġservers Ġ= Ġmetadata json . videos ĊĠĠĠĠĠĠĠĠĠĠĠ Ġservers . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġquality Ġ= Ġit . name . uppercase () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" MOB ILE "," 1 4 4 p ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" LOW EST "," 2 4 0 p ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" LOW "," 3 6 0 p ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" SD "," 4 8 0 p ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" HD "," 7 2 0 p ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" FULL "," 1 0 8 0 p ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" QUAD "," 1 4 4 0 p ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. replace (" UL TRA "," 4 k ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġextracted url Ġ= Ġit . url . replace (" \\\\ u 0 0 2 6 ", Ġ"& ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsources . add ( Extractor Link ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġname Ġ= Ġthis . name , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġextracted url , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Quality FromName ( quality ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis M 3 u 8 Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsources ĊĠĠĠ Ġ} Ċ }