kugou音乐api

改代码依赖于酷狗云音乐的api接口"http://cloud.kugou.com/app/getSearchResult.php?key={key}&pageNo={pageno}&pageSize={pagesize}"

贴上代码:

显示代码
 1 using System;
 2 using System.Text.RegularExpressions;
 3 using System.Text;
 4 using System.Collections;
 5 using System.Net;
 6 using System.IO;
 7 using System.Net.Json;
 8 
 9 public class Kugou
10 {
11     private static void Usage()
12     {
13         StringBuilder sb=new StringBuilder();
14         sb.Append("Kugou /key:keyvalue [/pageno:pageno] [/pagesize:pagesize] /out:outfile\n");
15         sb.Append("-key        关键字\n");
16         sb.Append("-pageno        页号\n");
17         sb.Append("-pagesize    页面大小\n");
18         Console.WriteLine(sb.ToString());
19     }
20     private static Hashtable keys=new Hashtable();
21     public static void Main(string[]args)
22     {
23         try
24         {
25         if(args.Length==0)
26         {
27             Usage();
28         }
29         else
30         {
31             foreach(string arg in args)
32             {
33                 Regex re=new Regex(@"^/(.+):(.+)$",RegexOptions.IgnoreCase);
34                 Match match=re.Match(arg);
35                 GroupCollection  gps=match.Groups;
36                 string key="";
37                 string value="";
38                 for(int i=1;i<gps.Count;i++)
39                 {
40                     if(i==1)
41                     {
42                         key=gps[i].Captures[0].Value;
43                     }
44                     else
45                     {
46                         value=gps[i].Captures[0].Value;
47                     }
48                 }
49                 keys.Add(key,value);
50             }
51             if(keys["key"]== null)
52             {
53                 Console.WriteLine("没有输入key值!");
54                 return ;
55             }
56             if(keys["pageno"]==null)
57                 keys.Add("pageno","1");
58             if(keys["pagesize"]==null)
59                 keys.Add("pagesize","1000");
60             string url="http://cloud.kugou.com/app/getSearchResult.php?key="+keys["key"].ToString()+"&pageNo="+keys["pageno"].ToString()+"&pageSize="+keys["pagesize"].ToString();
61             WebClient client=new WebClient();
62             client.Encoding=Encoding.UTF8;
63             string result=client.DownloadString(url);
64             JSONObject obj=new JSONObject(result);
65             JSONArray data=obj.getJSONArray("data");
66             string table="<table border=\"1px\" cellspacing=\"0\">";
67             table+="<tr><th>文件名</th><th>哈希值</th><th>拥有者</th><th>大小</th><th>比特率</th><th>拓展名</th><th>时长</th><th>位图id</th><th>行id</th></tr>";
68             for(int i=0;i<data.length();i++)
69             {
70                 JSONObject item=data.getJSONObject(i);
71                 table+="<tr>";
72                 table+="<th>"+item.getString("FileName")+"</th>";
73                 string u="http://cloud.kugou.com/singlePlayer/4/362/1/3/"+item.getString("Hash")+".swf";
74                 table+="<th><a href=\""+u+"\">"+u+"</a></th>";
75                 table+="<th>"+item.getString("Owner")+"</th>";
76                 table+="<th>"+item.getString("Size")+"</th>";
77                 table+="<th>"+item.getString("BitRate")+"</th>";
78                 table+="<th>"+item.getString("ExtName")+"</th>";
79                 table+="<th>"+item.getString("TimeLength")+"</th>";
80                 table+="<th>"+item.getString("Bitmap")+"</th>";
81                 table+="<th>"+item.getString("RowID")+"</th>";
82                 table+="</tr>";
83             }
84             table+="</table>";
85             if(keys["out"]==null)
86             {
87                 keys.Add("out","output.html");
88             }
89             File.WriteAllText(keys["out"].ToString(),table,Encoding.Default);
90             Console.WriteLine("转换成功!");
91             System.Diagnostics.Process.Start(@"C:\Program Files\Internet Explorer\iexplore.exe",Environment.CurrentDirectory+"\\"+keys["out"].ToString());
92         }
93         }catch(Exception e)
94         {
95             File.WriteAllText("log",e.StackTrace);
96         }
97     }
98 }

 

posted @ 2012-05-27 21:17  痞子笑  阅读(9711)  评论(0编辑  收藏  举报