blob: 6246bf9b71f10a1c366bf67d1b23c0d42eb5766a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
using System;
using System.IO;
using System.Net;
namespace SpacesToDasBlog.ConsoleUI {
public class SpaceHtmlParser {
public SpaceHtmlParser( string blogUrl ) {
_blogUrl = blogUrl;
}
public string BlogUrl {
get { return _blogUrl; }
}
public DateTime GetEntryDate( string entryId ) {
return GetEntryDate( entryId, GetPageHtml( entryId ) );
}
private static string GetTime( string html ) {
int start = html.IndexOf( " AM" );
start = ( start == -1 ) ? html.IndexOf( " PM" ) : start;
start = start - 7;
int end = start + 10;
return html.Substring( start, end - start );
}
private static string GetMonthAndYear( string entryId, string responseFromServer ) {
responseFromServer = responseFromServer.Substring( responseFromServer.IndexOf( "LastMDatecns!" + entryId ), 50 );
int start = responseFromServer.IndexOf( ">" ) + 1;
int end = responseFromServer.IndexOf( "<" );
return responseFromServer.Substring( start, end - start ) + " 2005";
}
private static DateTime GetEntryDate( string entryId, string responseFromServer ) {
string dateTime = GetMonthAndYear( entryId, responseFromServer ) + " " + GetTime( responseFromServer );
DateTime result;
if ( DateTime.TryParse( dateTime, out result ) ) {
return result;
}
return DateTime.MinValue;
}
private string GetPageHtml( string entryId ) {
WebResponse response = null;
StreamReader reader = null;
string responseFromServer;
try {
WebRequest request = WebRequest.Create( _blogUrl + entryId + ".entry" );
response = request.GetResponse( );
//Console.WriteLine( ( ( HttpWebResponse )response ).StatusDescription );
Stream dataStream = response.GetResponseStream( );
reader = new StreamReader( dataStream );
responseFromServer = reader.ReadToEnd( );
//Console.WriteLine( responseFromServer );
}
finally {
if ( reader != null ) {
reader.Close( );
}
if ( response != null ) {
response.Close( );
}
}
return responseFromServer;
}
private string _blogUrl;
}
}
|