1 |
douglas |
518 |
// Decentralized Media Client |
2 |
|
|
// |
3 |
|
|
// Douglas Thrift |
4 |
|
|
// |
5 |
|
|
// $Id$ |
6 |
|
|
|
7 |
|
|
using System; |
8 |
|
|
using System.Net; |
9 |
|
|
using System.IO; |
10 |
|
|
using System.Text; |
11 |
|
|
using System.Xml; |
12 |
|
|
|
13 |
|
|
public class DecentralizedMediaClient |
14 |
|
|
{ |
15 |
|
|
public static void Main(string[] args) |
16 |
|
|
{ |
17 |
|
|
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://daemon:6996/"); |
18 |
|
|
|
19 |
|
|
request.Method = "MEDIA"; |
20 |
|
|
request.SendChunked = true; |
21 |
|
|
|
22 |
|
|
XmlWriterSettings settings = new XmlWriterSettings(); |
23 |
|
|
|
24 |
|
|
settings.Indent = true; |
25 |
|
|
|
26 |
|
|
Stream stream = request.GetRequestStream(); |
27 |
|
|
XmlWriter writer = XmlWriter.Create(stream, settings); |
28 |
|
|
MediaFile file = new MediaFile(new FileInfo(@"C:\Documents and Settings\Douglas Thrift\My Documents\My Music\Led Zeppelin\Led Zeppelin I\07 Communication Breakdown.wma")); |
29 |
|
|
|
30 |
|
|
writer.WriteStartDocument(); |
31 |
|
|
writer.WriteStartElement("media"); |
32 |
|
|
writer.WriteStartElement("folder"); |
33 |
|
|
writer.WriteStartElement("path"); |
34 |
|
|
writer.WriteString("//unplugged/DCXXXX$"); |
35 |
|
|
writer.WriteEndElement(); |
36 |
|
|
writer.WriteStartElement("file"); |
37 |
|
|
writer.WriteStartElement("path"); |
38 |
|
|
writer.WriteString(file.path); |
39 |
|
|
writer.WriteEndElement(); |
40 |
|
|
writer.WriteStartElement("artist"); |
41 |
|
|
writer.WriteString(file.artist); |
42 |
|
|
writer.WriteEndElement(); |
43 |
|
|
writer.WriteStartElement("title"); |
44 |
|
|
writer.WriteString(file.title); |
45 |
|
|
writer.WriteEndElement(); |
46 |
|
|
writer.WriteStartElement("album"); |
47 |
|
|
writer.WriteString(file.album); |
48 |
|
|
writer.WriteEndElement(); |
49 |
|
|
writer.WriteStartElement("genre"); |
50 |
|
|
writer.WriteString(file.genre); |
51 |
|
|
writer.WriteEndElement(); |
52 |
|
|
writer.WriteEndElement(); |
53 |
|
|
writer.WriteEndDocument(); |
54 |
|
|
writer.Close(); |
55 |
|
|
stream.Close(); |
56 |
|
|
|
57 |
|
|
HttpWebResponse response = (HttpWebResponse)request.GetResponse(); |
58 |
|
|
|
59 |
|
|
Console.WriteLine("{0} {1}", (int)response.StatusCode, response.StatusDescription); |
60 |
|
|
|
61 |
|
|
response.Close(); |
62 |
|
|
} |
63 |
|
|
} |