- 001
- 002
- 003
- 004
- 005
- 006
- 007
- 008
- 009
- 010
- 011
- 012
- 013
- 014
- 015
- 016
- 017
- 018
- 019
- 020
- 021
- 022
- 023
- 024
- 025
- 026
- 027
- 028
- 029
- 030
- 031
- 032
- 033
- 034
- 035
- 036
- 037
- 038
- 039
- 040
- 041
- 042
- 043
- 044
- 045
- 046
- 047
- 048
- 049
- 050
- 051
- 052
- 053
- 054
- 055
- 056
- 057
- 058
- 059
- 060
- 061
- 062
- 063
- 064
- 065
- 066
- 067
- 068
- 069
- 070
- 071
- 072
- 073
- 074
- 075
- 076
- 077
- 078
- 079
- 080
- 081
- 082
- 083
- 084
- 085
- 086
- 087
- 088
- 089
- 090
- 091
- 092
- 093
- 094
- 095
- 096
- 097
- 098
- 099
- 100
public Quote[] ParseQuotesFromFile(string p){
HtmlDocument d = new HtmlDocument();
d.Load(p, new UTF8Encoding());
#if !DEBUG
return
#endif
#if DEBUG
var v1 =
#endif
d.GetElementbyId("body")//main div
#if DEBUG
; var v2 = v1
#endif
.ChildNodes//subnodes
#if DEBUG
; var v3 = v2
#endif
.Where(a => a.Attributes.Contains("class"))//nodes with classes
#if DEBUG
; var v4 = v3
#endif
.Where(a => a.Attributes["class"].Value == "quote")//quotes
#if DEBUG
; var v5 = v4
#endif
.Where(a => a.ChildNodes.Any(b => b.Attributes.Contains("class")))//only real quotes
#if DEBUG
; var v6 = v5
#endif
.Select(a => a.ChildNodes.Where(b => b.Attributes.Contains("class")).ToArray())//only usable
#if DEBUG
; var v7 = v6
#endif
.Where(a => a.Length == 2)//drop ads
#if DEBUG
; var v8 = v7
#endif
.Select(a => new Quote()
{
Text = conv.HtmlSpecialCharsDecode(a.First(b => b.Attributes["class"].Value == "text").InnerHtml.Replace("<br>", "\r\n"),StringTools.ReplaceType.Both),
ID=BadParse(GetIdString(a)),
Score=BadParse(GetScoreString(a))})
#if DEBUG
; var v9 = v8
#endif
.ToArray();
#if DEBUG
return v9;
#endif
} private static string GetScoreString(HtmlNode[] a){
#if !DEBUG
return
#endif
#if DEBUG
var v1 =
#endif
a.First(b => b.Attributes["class"].Value == "actions")
#if DEBUG
; var v2 = v1
#endif
.ChildNodes.Where(b => b.Name != "#text")
#if DEBUG
; var v3 = v2
#endif
.First(b => b.Attributes["class"].Value == "rating-o")
#if DEBUG
; var v4 = v3
#endif
.FirstChild
#if DEBUG
; var v5 = v4
#endif
.InnerText;
#if DEBUG
return v5;
#endif
} private static string GetIdString(HtmlNode[] a) {
#if !DEBUG
return
#endif
#if DEBUG
var v1=
#endif
a.First(b => b.Attributes["class"].Value == "actions")
#if DEBUG
; var v2 = v1
#endif
.ChildNodes.Where(b => b.Name != "#text")
#if DEBUG
; var v3 = v2
#endif
.First(b => b.Attributes["class"].Value == "id")
#if DEBUG
; var v4 = v3
#endif
.InnerText.Replace("#", "");
#if DEBUG
return v4;
#endif
}
bormand 12.08.2012 19:06 # +1
HaskellGovno 12.08.2012 20:13 # +2
bormand 12.08.2012 20:15 # +4
HaskellGovno 12.08.2012 20:21 # −2
Кстати, очень даже созвучно:
АссПараллел
АссТроллоллел
Только л вторая лишняя как мне кажется.
kasthack 12.08.2012 21:27 # 0
guest 14.08.2012 21:02 # 0
eth0 12.08.2012 20:40 # +1
bormand 12.08.2012 20:47 # +6
kasthack 12.08.2012 21:03 # +1
Писалось где-то в пять утра.
Со сна показалось, что так проще дебажить
bormand 12.08.2012 21:05 # 0
А самое главное - проще поддерживать ;)
kasthack 12.08.2012 21:15 # 0
С парсингом он справился, а дальше в /dev/null его.
Проще потом нормально написать, если пригодится
bormand 12.08.2012 21:27 # +5
Ну и нафига тогда весь этот геморрой с дебагами? Чем мешали временные переменные в релизном режиме - даже не могу придумать.
roman-kashitsyn 12.08.2012 23:36 # +3
sayidandrtfm 13.08.2012 09:48 # +1
3.14159265 13.08.2012 13:40 # +2
Простите не удержался.
Lure Of Chaos 13.08.2012 22:56 # 0
scriptin 13.08.2012 23:40 # +1
>301
rat4 14.08.2012 07:42 # 0
--2012-08-14 08:41:23-- http://bash.org/
Распознаётся bash.org... 69.61.106.93
Подключение к bash.org|69.61.106.93|:80... соединение установлено.
HTTP-запрос отправлен. Ожидание ответа... 200 OK