Revision 363437313235 () - Diff

Link to this snippet: https://friendpaste.com/20wv25hFJ2by4Y5vFvUZ1P
Embed:
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
Option Explicit

Function Concat(A, B)
Dim C
ReDim C(UBound(A) + UBound(B) + 1)
Dim Dst
Dst = 0
Dim Src
For Src = 0 To UBound(A)
C(Dst) = A(Src)
Dst = Dst + 1
Next

For Src = 0 To UBound(B)
C(Dst) = B(Src)
Dst = Dst + 1
Next
Concat = C
End Function

Function GetContent(Url)
Dim Req
Set Req = CreateObject("MSXML2.ServerXMLHTTP.6.0")
Req.Open "GET", Url, False
Req.Send
GetContent = Req.ResponseText
End Function

Function GetDateInfo(Content)
Dim Reg
Set Reg = New RegExp
Reg.Pattern = "<div class=""date"">(.*?)</div>"
Dim Mats
Set Mats = Reg.Execute(Content)
GetDateInfo = Split(Mats(0).SubMatches(0), " ")
End Function

Function Flatten(Url)
Dim Idx
Idx = InStrRev(Url, "/")
Dim Num
Num = Mid(Url, Idx + 1)
Dim Ran
Ran = Split(Num, "-")
Dim Fst
Fst = CInt(Ran(0))
Dim Lst
If UBound(Ran) = 0 Then
Lst = Fst
Else
Lst = CInt(Ran(1))
End If
Dim A
ReDim A(Lst - Fst)
Dim I
I = 0
Dim N
For N = Fst To Lst
A(I) = Mid(Url, 1, Idx) & N
I = I + 1
Next
Flatten = A
End Function

Function Sort(Src, Index)
Dim Dst
Dst = Src
Dim I
For I = UBound(Dst) - 1 To 0 Step -1
Dim J
For J = 0 To I
If Dst(J)(Index) > Dst(J + 1)(Index) Then
Dim T
T = Dst(J)
Dst(J) = Dst(J + 1)
Dst(J + 1) = T
End If
Next
Next
Sort = Dst
End Function

Function ReadUrls()
ReadUrls = Array( _
"http://hanabi.2ch.net/test/read.cgi/soccer/1490483242/101-103", _
"http://echo.2ch.net/test/read.cgi/tech/1490506257/200")
End Function

Sub Main()
Dim Data
Data = Array()

Dim Url
For Each Url In ReadUrls()
Dim FlatUrl
For Each FlatUrl In Flatten(Url)
Dim Content
Content = GetContent(FlatUrl)

Dim DateInfo
DateInfo = GetDateInfo(Content)

Dim Record
Record = Concat(Array(FlatUrl), DateInfo)

Data = Concat(Data, Array(Record))
Next
Next
Dim Sorted
Sorted = Sort(Data, 2)
Sorted = Sort(Sorted, 1)

For Each Record In Sorted
WScript.Echo Join(Record, ", ")
Next
End Sub

Main