local json = json local g = {} g.file = '/storage/emulated/0/' gqlb = {'请搜索歌曲'} idb = {'1010'} gc = nil g.config = g.file..'FuHongMusic.cfg' --配置全音乐运行函数 function NetEaseCloud_start(name,sl) print('请求搜索歌曲'..name..'数量'..sl) return gg.makeRequest('http://music.163.com/api/search/get?s='..name..'&type=1&offset=0&total=true&limit='..sl) end function NetEaseCloud_Playsound(id,name) gg.toast('正在播放音乐:'..name) gg.playMusic('http://music.163.com/song/media/outer/url?id='..id..'.mp3') end function NetEaseCloud_zjson(jsonr) local str = jsonr local pattern = "\"[%w]+\":" string.gsub(str, pattern, function(v) if string.find(str, v) then str = string.gsub(str, v, string.gsub(v, "\"", "")) end end) str = string.gsub(str, ":", "=") str = string.gsub(str, "%[", "{") str = string.gsub(str, "%]", "}") local data = "return " .. str return load(data)() end function NetEaseCloud_json(con)--音乐读取post请求配置json res = NetEaseCloud_zjson(con) zd = res.result.songCount pd = go3-zd if pd <= 0 then else go3 = zd print(go3) end gqlb = {} idb = {} for i = 1,go3 do gqlb[i] = res.result.songs[i].name idb[i] = res.result.songs[i].id end end function NetEaseCloud_Play(gqlb,idb)--Play搜索框运行后搜索 SN = gg.choice(gqlb,1,'歌曲:《'..go1..'》找到'..zd..'首\n当前显示'..go3..'首')--选择需要播放的音乐 if not SN then string.toMusic('取消') gg.toast('取消') return else--没取消弹窗则 sn = gg.choice({'播放歌曲','下载歌曲','返回重新选择歌曲'},nil,'你选择的歌曲:'..gqlb[1]..'\n请选择功能') if not sn then string.toMusic('取消') gg.toast('取消') end--取消则结束这个函数的运行 if sn == 1 then NetEaseCloud_Playsound(idb[1],gqlb[1]) NetEaseCloud_Play(gqlb,idb) end--播放 if sn == 2 then--下载音乐函数 gg.toast('歌曲:'..go1..'\n下载中...') local XEY = gg.makeRequest('http://music.163.com/song/media/outer/url?id='..idb[1]..'.mp3').content local XEY1 = g.file..'FuHongMusic_'..gqlb[1]..'.mp3' io.open(XEY1,'w'):write(XEY)--下载配置函数 gg.alert2('下载成功','下载位置:\n\n'..XEY1,'返回') return end--下载提示完成后自动返回 if sn == 3 then NetEaseCloud_Play(gqlb,idb) return end--返回 end--end结束 end--end function NetEaseCloud_Music(name,quantity) if name == nil then gg.alert('NetEaseCloud_Music name = nil') end if quantity == nil then gg.alert('NetEaseCloud_Music quantity = nil') end local loadingBox = getLoadingBox('搜索歌曲:['..name..']\n数量:['..quantity..']') loadingBox['显示']() gg.toast('歌曲ID:'..name..'\n搜索数量'..quantity..'\n\n搜索中...')--toast显示 file.write(setpath,name) go1 = name go3 = quantity jg = NetEaseCloud_start(go1,go3) fh = jg.content fh = NetEaseCloud_json(fh) loadingBox['关闭']() NetEaseCloud_Play(gqlb,idb) end setpath = '/storage/emulated/0/FuHong/configurations/setsearchplay.json' if file.exists(setpath) then setsearchplay = file.read(setpath) else setsearchplay = '未保存音乐搜索内容 请输入搜索内容后自动保存到配置' end pro = gg.prompt({'请输入要搜索的歌曲 可加歌手名字','\n显示数值过多反应会较慢 建议1~10\n设置搜索显示数量[1;100]',},{setsearchplay,'5'},{'text','number'})--搜索输入框 if pro then NetEaseCloud_Music(pro[1],pro[2]) end