--- Revision None +++ Revision 363437313235 @@ -0,0 +1,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 = "
(.*?)
" + + 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