ギコナビ
Revision | 8b9cdb000bccef82f5e9a23e879158c3cdfabe76 (tree) |
---|---|
Time | 2008-07-06 22:29:17 |
Author | h677 <h677> |
Commiter | h677 |
まちBBSの新URL(PATH_INFO)に対応
@@ -83,7 +83,7 @@ const | ||
83 | 83 | MAJOR_VERSION = 1; |
84 | 84 | MINOR_VERSION = 0; |
85 | 85 | RELEASE_VERSION = 'beta'; |
86 | - REVISION_VERSION = 18; | |
86 | + REVISION_VERSION = 19; | |
87 | 87 | |
88 | 88 | // ========================================================================= |
89 | 89 | // GpÖ |
@@ -269,6 +269,7 @@ var | ||
269 | 269 | const |
270 | 270 | BBS_HOST = 'machi.to'; |
271 | 271 | THREAD_MARK = '/bbs/read.pl'; |
272 | + THREAD_MARK2= '/bbs/read.cgi'; | |
272 | 273 | begin |
273 | 274 | |
274 | 275 | try |
@@ -280,6 +281,10 @@ begin | ||
280 | 281 | foundPos := AnsiPos( BBS_HOST, uri.Host ); |
281 | 282 | if (foundPos > 0) and (Length( uri.Host ) - foundPos + 1 = Length( BBS_HOST )) then begin |
282 | 283 | foundPos := Pos( THREAD_MARK, inURL ); |
284 | + if (foundPos = 0) then begin | |
285 | + // VURLÎ | |
286 | + foundPos := Pos( THREAD_MARK2, inURL ); | |
287 | + end; | |
283 | 288 | if foundPos > 0 then |
284 | 289 | Result := atThread |
285 | 290 | else if (uriList.Count > 1) and (uri.Path <> '/') then // Å㪠'/' ÅÂßçêÄéÈç 3 |
@@ -309,9 +314,10 @@ procedure OnExtractBoardURL( | ||
309 | 314 | var |
310 | 315 | uri : TIdURI; |
311 | 316 | uriList : TStringList; |
312 | - URL : String; | |
317 | + URL : String; | |
313 | 318 | const |
314 | 319 | THREAD_MARK = '/bbs/read.pl'; |
320 | + THREAD_MARK2= '/bbs/read.cgi'; | |
315 | 321 | begin |
316 | 322 | URL := string(inURL); |
317 | 323 | if AnsiPos(THREAD_MARK, URL) > 0 then begin |
@@ -333,6 +339,27 @@ begin | ||
333 | 339 | uri.Free; |
334 | 340 | uriList.Free; |
335 | 341 | end; |
342 | + end else if AnsiPos(THREAD_MARK2, URL) > 0 then begin | |
343 | + if Copy( inURL, Length( inURL ), 1 ) = '/' then | |
344 | + uri := TIdURI.Create( URL ) | |
345 | + else | |
346 | + uri := TIdURI.Create( URL + '/' ); | |
347 | + | |
348 | + uriList := TStringList.Create; | |
349 | + try | |
350 | + // http://kanto.machi.to/bbs/read.cgi/kana/1215253035/l50 | |
351 | + // http://kanto.machi.to/kana/ | |
352 | + uriList.Delimiter := '/'; | |
353 | + uriList.DelimitedText := uri.Path; | |
354 | + URL := uri.Protocol + '://' + uri.Host + '/'; | |
355 | + if (uriList.Count >= 4) then begin | |
356 | + URL := URL + uriList[3] + '/'; | |
357 | + end; | |
358 | + outURL := CreateResultString(URL); | |
359 | + finally | |
360 | + uri.Free; | |
361 | + uriList.Free; | |
362 | + end; | |
336 | 363 | end else begin |
337 | 364 | outURL := CreateResultString(URL); |
338 | 365 | end; |
@@ -873,6 +900,8 @@ var | ||
873 | 900 | uri : TIdURI; |
874 | 901 | uriList : TStringList; |
875 | 902 | foundPos : Integer; |
903 | +const | |
904 | + THREAD_MARK2= '/bbs/read.cgi'; | |
876 | 905 | begin |
877 | 906 | |
878 | 907 | foundPos := AnsiPos( '?', URL ); |
@@ -888,7 +917,26 @@ begin | ||
888 | 917 | uri.Free; |
889 | 918 | uriList.Free; |
890 | 919 | end; |
891 | - end; | |
920 | + end else begin | |
921 | + // V`® ? | |
922 | + foundPos := AnsiPos(THREAD_MARK2, URL); | |
923 | + if (foundPos > 0) then begin | |
924 | + uri := TIdURI.Create( URL ); | |
925 | + uriList := TStringList.Create; | |
926 | + try | |
927 | + uriList.Delimiter := '/'; | |
928 | + uriList.DelimitedText := uri.Path; | |
929 | + if (uriList.Count >= 5) then begin | |
930 | + Result := | |
931 | + uri.Protocol + '://' + uri.Host + '/bbs/read.pl?' + | |
932 | + 'BBS=' + uriList[3] + '&KEY=' + uriList[4]; | |
933 | + end; | |
934 | + finally | |
935 | + uri.Free; | |
936 | + uriList.Free; | |
937 | + end; | |
938 | + end; | |
939 | + end; | |
892 | 940 | |
893 | 941 | end; |
894 | 942 |