package Ġxyz . y hs j . k music . impl Ċ Ċ import Ġxyz . y hs j . json . JSONObject Ċ import Ġxyz . y hs j . k http . get Ċ import Ġxyz . y hs j . k music . entity . Album Ċ import Ġxyz . y hs j . k music . entity . Music Resp Ċ import Ġxyz . y hs j . k music . entity . Music Top Ċ import Ġxyz . y hs j . k music . entity . Song Ċ import Ġxyz . y hs j . k music . utils . future Ċ Ċ /** Ċ Ġ* Ġ éħ · çĭ Ĺ è§£æŀĲ Ċ Ġ*/ Ċ object ĠK ug ou Impl Ġ: ĠImp l Ġ{ ĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* æł¹æį® ID èİ·åıĸ ä¸ĵ è¾ĳ è¯¦æĥħ ĊĠĠĠĠ Ġ* Ġ@ param Ġalbum Id Ġ ä¸ĵ è¾ĳ ID ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġget Album ById ( album Id : ĠString ): ĠMusic Resp < Album > Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġkey Ġ åħ³éĶ®åŃĹ ĊĠĠĠĠ Ġ* Ġ@ param Ġpage Ġ é¡µ æķ° ĊĠĠĠĠ Ġ* Ġæ Ĳ ľç´¢ ä¸ĵ è¾ĳ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġsearch Album ( key : ĠString , Ġpage : ĠInt , Ġnum : ĠInt ): ĠMusic Resp < List < Album >> Ġ{ ĊĠĠĠĠĠĠĠ ĠTODO (" not Ġimplemented ") Ġ// To Ġchange Ġbody Ġof Ġcreated Ġfunctions Ġuse ĠFile Ġ| ĠSettings Ġ| ĠFile ĠTemplates . ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġæł¹æį® ç±»åŀĭ , èİ·åıĸ æŃĮ æĽ² æİĴ è¡Į æ ¦ ľ è¯¦æĥħ ĊĠĠĠĠ Ġ* Ġhttp :// m . k ug ou . com / rank / info / 6 6 6 6 & json = true ĊĠĠĠĠ Ġ* Ġhttp :// m . k ug ou . com / rank / info /? rank id = 6 6 6 6 & page = 1 & cmd = 1 0 & json = true ĊĠĠĠĠ Ġ* Ġhttp :// mobile cdn . k ug ou . com / api / v 3 / rank / song ? page = 1 & rank id = 6 6 6 6 & page size = 1 0 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġget Song Top Detail ( top Id : ĠString , Ġtop Type : ĠString , Ġtop Key : ĠString , Ġpage : ĠInt , Ġnum : ĠInt ): ĠMusic Resp < List < Song >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresp Ġ= Ġget ( url Ġ= Ġ" http :// mobile cdn . k ug ou . com / api / v 3 / rank / song ? rank id =$ top Id & format = json & page =$ page & page size =$ num " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġheaders Ġ= Ġmap Of (" Refer er " Ġto Ġ" http :// m . k ug ou . com / rank / song ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" User - Agent " Ġto Ġ" Mozilla / 5 . 0 Ġ( iPhone ; ĠCPU ĠiPhone ĠOS Ġ 9 _ 1 Ġlike ĠMac ĠOS ĠX ) ĠAppleWebKit / 6 0 1 . 1 . 4 6 Ġ( KHTML , Ġlike ĠGecko ) ĠVersion / 9 . 0 ĠMobile / 1 3 B 1 4 3 ĠSafari / 6 0 1 . 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( resp . statusCode Ġ!= Ġ 2 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Resp . failure ( code Ġ= Ġresp . statusCode , Ġmsg Ġ= Ġ" è¯·æ±Ĥ å¤±è´¥ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġradio Data Ġ= Ġresp . jsonObject ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsong List Ġ= Ġradio Data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getJSONObject (" data ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get JSONArray (" info ") ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// éħ · çĭ Ĺ ä¸į æĶ¯æĮģ åľ¨ è¯¦æĥħ èİ·åıĸ ä¸ĵ è¾ĳ åĲįç§° ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalbum Names Ġ= ĠHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// èİ·åıĸ æŃĮ æĽ² ID ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsong Ids Ġ= Ġsong List . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhash Ġ= Ġ( it Ġas ĠJSONObject ). getString (" 3 2 0 hash ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalbum Name Ġ= Ġit . getString (" remark ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtmp Hash Ġ= Ġif Ġ( hash . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . getString (" hash ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhash ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Names [ tmp Hash . toUpperCase ()] Ġ= Ġalbum Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtmp Hash ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ·»åĬł ä¸ĵ è¾ĳ åĲįç§° ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmusic Data Ġ= Ġget Song ById ( song Ids ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata ?. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . album Name Ġ= Ġalbum Names [ it . song id ?. toUpperCase ()] Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmusic Data ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Resp . failure ( msg Ġ= Ġe . message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ æŃĮ æĽ² æİĴ è¡Į æ ¦ ľ ĊĠĠĠĠ Ġ* Ġhttp :// mobile cdn . k ug ou . com / api / v 3 / rank / list ? plat = 0 & with song = 1 ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġget Song Top (): ĠMusic Resp < List < Music Top >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresp Ġ= Ġget ( url Ġ= Ġ" http :// mobile cdn . k ug ou . com / api / v 3 / rank / list ? plat = 0 & with song = 1 " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġheaders Ġ= Ġmap Of (" Refer er " Ġto Ġ" http :// m . k ug ou . com / rank / list ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" User - Agent " Ġto Ġ" Mozilla / 5 . 0 Ġ( iPhone ; ĠCPU ĠiPhone ĠOS Ġ 9 _ 1 Ġlike ĠMac ĠOS ĠX ) ĠAppleWebKit / 6 0 1 . 1 . 4 6 Ġ( KHTML , Ġlike ĠGecko ) ĠVersion / 9 . 0 ĠMobile / 1 3 B 1 4 3 ĠSafari / 6 0 1 . 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( resp . statusCode Ġ!= Ġ 2 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Resp . failure ( code Ġ= Ġresp . statusCode , Ġmsg Ġ= Ġ" è¯·æ±Ĥ å¤±è´¥ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġradio Data Ġ= Ġresp . jsonObject ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsong List Ġ= Ġradio Data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getJSONObject (" data ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get JSONArray (" info ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġto ps Ġ= Ġsong List . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtop Obj Ġ= Ġit Ġas ĠJSONObject ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtop Re ap Ġ= ĠMusic Top () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Re ap . site Ġ= Ġ" k ug ou " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Re ap . name Ġ= Ġtop Obj . getString (" rank name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Re ap . top Id Ġ= Ġtop Obj . getInt (" rank id "). toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Re ap . comment Ġ= Ġtop Obj . getString (" intro ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Re ap . pic Ġ= Ġtop Obj . getString (" img url "). replace ("{ size }", Ġ" 4 0 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtop Re ap ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Resp . success ( data Ġ= Ġto ps ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Resp . failure ( msg Ġ= Ġe . message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġsearch ( key : ĠString , Ġpage : ĠInt , Ġnum : ĠInt ): ĠMusic Resp < List < Song >> Ġ{ ĊĠĠĠĠĠĠĠ Ġ// http :// ios cdn . k ug ou . com / api / v 3 / search / song ? keyword = åı¦ ä¸Ģä¸ª ç« ¥ è¯Ŀ & page = 1 & page size = 1 5 & show type = 1 0 & plat = 2 & version = 7 9 1 0 & tag = 1 & correct = 1 & privilege = 1 & s ver = 5 ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresp Ġ= Ġget ( url Ġ= Ġ" http :// mobile cdn . k ug ou . com / api / v 3 / search / song ? keyword =$ key & format = json & page =$ page & page size =$ num " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ, Ġheaders Ġ= Ġmap Of (" Refer er " Ġto Ġ" http :// m . k ug ou . com / v 2 / static / html / search . html ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" User - Agent " Ġto Ġ" Mozilla / 5 . 0 Ġ( iPhone ; ĠCPU ĠiPhone ĠOS Ġ 9 _ 1 Ġlike ĠMac ĠOS ĠX ) ĠAppleWebKit / 6 0 1 . 1 . 4 6 Ġ( KHTML , Ġlike ĠGecko ) ĠVersion / 9 . 0 ĠMobile / 1 3 B 1 4 3 ĠSafari / 6 0 1 . 1 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ)) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( resp . statusCode Ġ!= Ġ 2 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Resp . failure ( code Ġ= Ġresp . statusCode , Ġmsg Ġ= Ġ" è¯·æ±Ĥ å¤±è´¥ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġradio Data Ġ= Ġresp . jsonObject ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsong List Ġ= Ġradio Data ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getJSONObject (" data ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. get JSONArray (" info ") ĊĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// éħ · çĭ Ĺ ä¸į æĶ¯æĮģ åľ¨ è¯¦æĥħ èİ·åıĸ ä¸ĵ è¾ĳ åĲįç§° ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalbum Names Ġ= ĠHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// èİ·åıĸ æŃĮ æĽ² ID ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsong Ids Ġ= Ġsong List . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhash Ġ= Ġ( it Ġas ĠJSONObject ). getString (" 3 2 0 hash ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalbum Name Ġ= Ġit . getString (" album _ name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtmp Hash Ġ= Ġif Ġ( hash . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . getString (" hash ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhash ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Names [ tmp Hash . toUpperCase ()] Ġ= Ġalbum Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtmp Hash ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æ·»åĬł ä¸ĵ è¾ĳ åĲįç§° ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmusic Data Ġ= Ġget Song ById ( song Ids ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata ?. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . album Name Ġ= Ġalbum Names [ it . song id ?. toUpperCase ()] Ġ?: Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmusic Data ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMusic Resp . failure ( msg Ġ= Ġe . message ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Song ById ( song Ids : ĠList < String >): ĠMusic Resp < List < Song >> Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ä½¿çĶ¨ æĲ º ç¨ĭ å¹¶ åıĳ åĬłè½½ ĊĠĠĠĠĠĠĠ Ġval Ġsongs Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsong Ids . future Ġ{ Ġsong Id Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsong Resp Ġ= Ġget ( url Ġ= Ġ" http :// m . k ug ou . com / app / i / getS ong Info . php ? cmd = play Info & hash =$ song Id ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheaders Ġ= Ġmap Of (" Refer er " Ġto Ġ" http :// m . k ug ou . com / play / info /$ song Id ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" User - Agent " Ġto Ġ" Mozilla / 5 . 0 Ġ( iPhone ; ĠCPU ĠiPhone ĠOS Ġ 9 _ 1 Ġlike ĠMac ĠOS ĠX ) ĠAppleWebKit / 6 0 1 . 1 . 4 6 Ġ( KHTML , Ġlike ĠGecko ) ĠVersion / 9 . 0 ĠMobile / 1 3 B 1 4 3 ĠSafari / 6 0 1 . 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( song Resp . statusCode Ġ!= Ġ 2 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSong ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsite Ġ= Ġ" k ug ou ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġsong Resp . statusCode , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg Ġ= Ġ" ç½ĳç»ľ å¼Ĥå¸¸ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsong id Ġ= Ġsong Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsong Info Ġ= Ġsong Resp . jsonObject Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġerr code Ġ= Ġsong Info . getInt (" errcode ") Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġerror Ġ= Ġsong Info . getString (" error ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġsong Info . getString (" url ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( url . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġprivilege Ġ= Ġsong Info . getInt (" privilege ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSong ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsite Ġ= Ġ" k ug ou ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġ 4 0 3 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg Ġ= Ġif Ġ( privilege Ġ== Ġ 1 ) Ġ" æºĲ ç«Ļ åıį é¦ Ī æŃ¤ éŁ³ é¢ĳ éľĢè¦ģ ä»ĺ è´¹ " Ġelse Ġ" æī¾ ä¸įåĪ° åı¯ çĶ¨çļĦ æĴŃæĶ¾ åľ°åĿĢ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsong id Ġ= Ġsong Id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġradio Song Id Ġ= Ġsong Info . getString (" hash ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġalbum Img Ġ= Ġsong Info . getString (" album _ img "). replace ("{ size }", Ġ" 4 0 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimg Url Ġ= Ġsong Info . getString (" img Url "). replace ("{ size }", Ġ" 4 0 0 ") ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSong ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsite Ġ= Ġ" k ug ou ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlink Ġ= Ġ" http :// www . k ug ou . com / song /# hash =$ radio Song Id ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsong id Ġ= Ġradio Song Id , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= Ġsong Info . getString (" song Name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġauthor Ġ= Ġsong Info . getString (" sing er Name "), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġurl Ġ= Ġurl , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġl rc Ġ= Ġget L rc ById ( radio Song Id ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpic Ġ= Ġif Ġ( album Img . isEmpty ()) Ġimg Url Ġelse Ġalbum Img Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġalbum Name Ġ= Ġsong . getString (" album Name ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSong ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsite Ġ= Ġ" k ug ou ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcode Ġ= Ġ 5 0 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmsg Ġ= Ġe . message Ġ?: Ġ" æľª çŁ¥ å¼Ĥå¸¸ ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsong id Ġ= Ġsong Id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn ĠMusic Resp . success ( data Ġ= Ġsongs ) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget L rc ById ( song Id : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl Ġ= Ġ" http :// m . k ug ou . com / app / i / k rc . php ? cmd = 1 0 0 & time length = 9 9 9 9 9 9 & hash =$ song Id " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsong Resp Ġ= Ġget ( url Ġ= Ġurl , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtimeout Ġ= Ġ 5 . 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheaders Ġ= Ġmap Of (" Refer er " Ġto Ġ" http :// m . k ug ou . com / play / info /$ song Id ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" User - Agent " Ġto Ġ" Mozilla / 5 . 0 Ġ( iPhone ; ĠCPU ĠiPhone ĠOS Ġ 9 _ 1 Ġlike ĠMac ĠOS ĠX ) ĠAppleWebKit / 6 0 1 . 1 . 4 6 Ġ( KHTML , Ġlike ĠGecko ) ĠVersion / 9 . 0 ĠMobile / 1 3 B 1 4 3 ĠSafari / 6 0 1 . 1 ")) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( song Resp . statusCode Ġ== Ġ 2 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsong Info Ġ= Ġsong Resp . text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsong Info ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"[ 0 0 : 0 0 : 0 0 ] æŃ¤ æŃĮ æĽ² åı¯èĥ½ æ²¡æľī æŃĮ è¯į " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" èİ·åıĸ æŃĮ è¯į åĩºçİ° å¼Ĥå¸¸ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"[ 0 0 : 0 0 : 0 0 ] æŃ¤ æŃĮ æĽ² åı¯èĥ½ æ²¡æľī æŃĮ è¯į " ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }