private static SearchResult Search(string key, int page, int size) { if (size > 20) { size = 20; } var result = new SearchResult { ErrorCode = 200, ErrorMsg = "OK", KeyWord = key, PageNum = page, TotalSize = -1, Songs = new List <SongResult>() }; var t1 = Task.Factory.StartNew((() => { var r1 = WyMusic.Search(key, page, size); if (r1?.Songs != null && r1.Songs.Count > 0) { lock (result) { result.Songs.AddRange(r1.Songs); } } })); var t2 = Task.Factory.StartNew((() => { var r1 = XmMusic.Search(key, page); if (r1?.Songs != null && r1.Songs.Count > 0) { lock (result) { result.Songs.AddRange(r1.Songs); } } })); var t3 = Task.Factory.StartNew((() => { var r1 = TtMusic.Search(key, page, size); if (r1?.Songs != null && r1.Songs.Count > 0) { lock (result) { result.Songs.AddRange(r1.Songs); } } })); Task.WaitAll(t1, t2, t3); if (result.Songs.Count > 0) { return(result); } result.ErrorCode = 404; result.ErrorMsg = "没有找到符合要求的歌曲"; return(result); }
private static CollectResult SearchArtist(string type, string id, string page, string size) { IMusic music; switch (type) { case "wy": music = new WyMusic(); break; case "xm": music = new XmMusic(); break; case "tt": music = new TtMusic(); break; default: return null; } return music.CollectSearch(id, Convert.ToInt32(page), Convert.ToInt32(size)); }
private static string GetUrl(string type, string id, string quality, string format) { IMusic music; switch (type) { case "wy": music = new WyMusic(); break; case "xm": music = new XmMusic(); break; case "tt": music = new TtMusic(); break; default: return null; } return music.GetSongUrl(id, quality, format); }
private static SongResult SearchSong(string type, string id) { IMusic music; switch (type) { case "wy": music = new WyMusic(); break; case "xm": music = new XmMusic(); break; case "tt": music = new TtMusic(); break; default: return null; } return music.GetSingleSong(id); }
private static SearchResult Search(string type, string key, string page, string size) { IMusic music; switch (type) { case "wy": music = new WyMusic(); break; case "xm": music = new XmMusic(); break; case "tt": music = new TtMusic(); break; default: music = new AnyMusic(); break; } return music.SongSearch(key, Convert.ToInt32(page), Convert.ToInt32(size)); }