package Ġcom . sh jl one . lx music . repository Ċ Ċ import Ġandroid . util . Log Ċ import Ġokhttp 3 .* Ċ import Ġorg . json . JSONObject Ċ import Ġjava . io . IOException Ċ Ċ /** Ċ Ġ* Ġ@ author : Ġa 5 6 4 Ċ Ġ* Ġ@ Date Ġ 2 0 2 1 / 5 / 1 8 Ċ Ġ*/ Ċ class ĠW Y Repository Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġclient Ġ= ĠOk HttpClient () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Detail ( song mid : String ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" https :// music . 1 6 3 . com / we api / v 3 / song / detail " ĊĊĊĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠForm Body . Builder () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . add ("") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrequest Ġ= ĠRequest . Builder () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. url ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. post ( builder . build ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header (" User - Agent "," Mozilla / 5 . 0 Ġ( X 1 1 ; ĠLinux Ġx 8 6 _ 6 4 ) ĠAppleWebKit / 5 3 7 . 3 6 Ġ( KHTML , Ġlike ĠGecko ) ĠChrome / 6 0 . 0 . 3 1 1 2 . 9 0 ĠSafari / 5 3 7 . 3 6 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header (" Refer er ", Ġ" https :// music . 1 6 3 . com / song ? id =' Ġ+ Ġ$ song mid ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add Header (" origin ", Ġ" https :// music . 1 6 3 . com ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcall Ġ= ĠK G Repository . client . new Call ( request ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall , Ġe : ĠIOException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" UPDATE ", Ġ" on Failure : Ġ$ e ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Throws ( IOException :: class ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall , Ġresponse : ĠResponse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent : ĠString Ġ= Ġresponse . body ?. string () Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson Ġ= ĠJSONObject ( content ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsong List Ġ= Ġjson . get JSONArray (" data ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġ( 0 .. song List . length () Ġ- Ġ 1 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhash Ġ= Ġ( song List . get ( i ) Ġas ĠJSONObject ). get (" hash ") Ġas ĠString ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" UPDATE ", Ġ" On Response : Ġ" Ġ+ Ġcontent ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLog . e (" UPDATE ĠERROR :", Ġ"", Ġe ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }