uri := TIdURI.Create( inURL );
uriList := TStringList.Create;
try
- ExtractHttpFields( ['/'], [], uri.Path, uriList );
+ ExtractHttpFields( ['/'], [], uri.Path, uriList );
foundPos := AnsiPos( BBS_HOST, uri.Host );
if (foundPos > 0) and (Length( uri.Host ) - foundPos + 1 = Length( BBS_HOST )) then begin
foundPos := Pos( THREAD_MARK, inURL );
// *************************************************************************
procedure OnExtractBoardURL(
inURL : PChar;
- var outURL : PChar
+ var outURL : PChar
); stdcall;
var
uri : TIdURI;
uriList : TStringList;
- URL : String;
+ URL : String;
+const
+ THREAD_MARK = '/bbs/read.pl';
begin
- URL := string(inURL);
- if Copy( inURL, Length( inURL ), 1 ) = '/' then
- uri := TIdURI.Create( URL )
- else
- uri := TIdURI.Create( URL + '/' );
+ URL := string(inURL);
+ if AnsiPos(THREAD_MARK, URL) > 0 then begin
+ if Copy( inURL, Length( inURL ), 1 ) = '/' then
+ uri := TIdURI.Create( URL )
+ else
+ uri := TIdURI.Create( URL + '/' );
- uriList := TStringList.Create;
- try
- ExtractHttpFields(
- ['&'], [],
- Copy( uri.Params, AnsiPos( '?', uri.Params ) + 1, Length( uri.Params ) ),uriList );
- // http://hokkaido.machi.to/bbs/read.pl?BBS=hokkaidou&KEY=1061764446
- // http://hokkaido.machi.to/hokkaidou/
- URL := uri.Protocol + '://' + uri.Host + '/' + uriList.Values[ 'BBS' ] + '/';
- outURL := CreateResultString(URL);
- finally
- uri.Free;
- uriList.Free;
+ uriList := TStringList.Create;
+ try
+ ExtractHttpFields(
+ ['&'], [],
+ Copy( uri.Params, AnsiPos( '?', uri.Params ) + 1, Length( uri.Params ) ),uriList );
+ // http://hokkaido.machi.to/bbs/read.pl?BBS=hokkaidou&KEY=1061764446
+ // http://hokkaido.machi.to/hokkaidou/
+ URL := uri.Protocol + '://' + uri.Host + '/' + uriList.Values[ 'BBS' ] + '/';
+ outURL := CreateResultString(URL);
+ finally
+ uri.Free;
+ uriList.Free;
+ end;
+ end else begin
+ outURL := CreateResultString(URL);
end;
end;
{
ShitarabaJBBSPlugIn
\82µ\82½\82ç\82Î\8f\88\97\9d\83\86\83j\83b\83g
- $Id: ShitarabaJBBSPlugIn.dpr,v 1.38.2.2 2005/05/05 12:15:25 h677 Exp $
+ $Id: ShitarabaJBBSPlugIn.dpr,v 1.38.2.3 2005/05/15 02:14:17 h677 Exp $
}
uses
uri : TIdURI;
uriList : TStringList;
tmphost : String;
- URL : String;
+ URL : String;
const
BBS_HOST_OLD = 'jbbs.shitaraba.com';
BBS_HOST_OLD2 = 'jbbs.livedoor.com';
BBS_HOST = 'jbbs.livedoor.jp';
- THREAD_MARK = '/bbs/read.cgi/';
+ THREAD_MARK = '/bbs/read.cgi/';
begin
- if AnsiPos(THREAD_MARK, string(inURL)) > 0 then begin
- URL := BrowsableURL(string(inURL));
- uri := TIdURI.Create( URL );
- uriList := TStringList.Create;
- try
- ExtractHttpFields( ['/', '?'], [], uri.Path, uriList );
-
- tmphost := uri.Host;
-
- if (tmphost = BBS_HOST_OLD) or (tmphost = BBS_HOST_OLD2) then
- tmphost := BBS_HOST;
-
- // http://jbbs.livedoor.com/bbs/read.cgi/computer/351/1090404452/l100
- // http://jbbs.livedoor.com/bbs/read.cgi/game/1578/1067968274/l100
- // http://jbbs.livedoor.com/game/1000/subject.txt
- if uriList.Count > 4 then
- URL := uri.Protocol + '://' + tmphost + '/' + uriList[ 3 ] + '/' + uriList[ 4 ] + '/';
- outURL := CreateResultString(URL);
- finally
- uri.Free;
- uriList.Free;
- end;
- end else begin
- URL := string(inURL);
- outURL := CreateResultString(URL);
- end;
+
+ if AnsiPos(THREAD_MARK, string(inURL)) > 0 then begin
+ URL := BrowsableURL(string(inURL));
+ uri := TIdURI.Create( URL );
+ uriList := TStringList.Create;
+ try
+ ExtractHttpFields( ['/', '?'], [], uri.Path, uriList );
+
+ tmphost := uri.Host;
+
+ if (tmphost = BBS_HOST_OLD) or (tmphost = BBS_HOST_OLD2) then
+ tmphost := BBS_HOST;
+
+ // http://jbbs.livedoor.com/bbs/read.cgi/computer/351/1090404452/l100
+ // http://jbbs.livedoor.com/bbs/read.cgi/game/1578/1067968274/l100
+ // http://jbbs.livedoor.com/game/1000/subject.txt
+
+ if uriList.Count > 4 then
+ URL := uri.Protocol + '://' + tmphost + '/' + uriList[ 3 ] + '/' + uriList[ 4 ] + '/';
+
+ outURL := CreateResultString(URL);
+ finally
+ uri.Free;
+ uriList.Free;
+ end;
+ end else begin
+ URL := string(inURL);
+ URL := CustomStringReplace(URL, BBS_HOST_OLD, BBS_HOST);
+ URL := CustomStringReplace(URL, BBS_HOST_OLD2, BBS_HOST);
+ outURL := CreateResultString(URL);
+ end;
end;
// *************************************************************************