private
function Download : TDownloadState;
+ function CreateThread( inSubject : string; inName : string; inMail : string; inMessage : string ) : TDownloadState;
function ToThreadURL( inFileName : string ) : string;
procedure EnumThread( inCallBack : TBoardItemEnumThreadCallBack );
MAJOR_VERSION = 1;
MINOR_VERSION = 0;
RELEASE_VERSION = 'beta';
- REVISION_VERSION = 2;
+ REVISION_VERSION = 3;
// =========================================================================
// \8eG\97p\8aÖ\90\94
inherited;
OnDownload := Download;
+ OnCreateThread := CreateThread;
OnEnumThread := EnumThread;
OnFileName2ThreadURL := ToThreadURL;
end;
// *************************************************************************
+// \83X\83\8c\97§\82Ä\82ð\8ew\8e¦\82³\82ê\82½
+// *************************************************************************
+function TMachiBBSBoardItem.CreateThread(
+ inSubject : string; // \83X\83\8c\83^\83C
+ inName : string; // \96¼\91O(\83n\83\93\83h\83\8b)
+ inMail : string; // \83\81\81[\83\8b\83A\83h\83\8c\83X
+ inMessage : string // \96{\95¶
+) : TDownloadState; // \8f\91\82«\8d\9e\82Ý\82ª\90¬\8c÷\82µ\82½\82©\82Ç\82¤\82©
+var
+ postURL : string;
+ postData : string;
+ postResult : PChar;
+ uri : TIdURI;
+ uriList : TStringList;
+begin
+
+ uri := TIdURI.Create( URL );
+ uriList := TStringList.Create;
+ try
+ ExtractHttpFields(
+ ['&'], [],
+ Copy( uri.Params, Pos( '?', uri.Params ) + 1, Length( uri.Params ) ), uriList );
+
+ postURL := uri.Protocol + '://' + uri.Host + '/bbs/write.cgi';
+ postData :=
+ 'SUBJECT=' + HttpEncode( inSubject ) +
+ '&NAME=' + HttpEncode( inName ) +
+ '&MAIL=' + HttpEncode( inMail ) +
+ '&MESSAGE=' + HttpEncode( inMessage ) +
+ '&BBS=' + uriList[ 1 ] +
+ '&TIME=' + IntToStr( DateTimeToUnix( Now ) ) +
+ '&submit=' + HttpEncode( '\90V\8bK\8f\91\82«\8d\9e\82Ý' );
+
+ // \93Æ\8e©\82É\92Ê\90M\82µ\82È\82¢\8fê\8d\87\82Í InternalPost \82É\94C\82¹\82é\82±\82Æ\82ª\8fo\97\88\82é
+ InternalPost( PChar( postURL ), PChar( postData ), postResult );
+ DisposeResultString( postResult );
+
+ Result := dsComplete
+ finally
+ uri.Free;
+ uriList.Free;
+ end;
+
+end;
+
+// *************************************************************************
// \83X\83\8c\88ê\97\97\82Ì URL \82©\82ç\83X\83\8c\83b\83h\82Ì URL \82ð\93±\82«\8fo\82·
// *************************************************************************
function TMachiBBSBoardItem.ToThreadURL(
private
function Download : TDownloadState;
+ function CreateThread( inSubject : string; inName : string; inMail : string; inMessage : string ) : TDownloadState;
function ToThreadURL( inFileName : string ) : string;
procedure EnumThread( inCallBack : TBoardItemEnumThreadCallBack );
MAJOR_VERSION = 1;
MINOR_VERSION = 0;
RELEASE_VERSION = 'beta';
- REVISION_VERSION = 3;
+ REVISION_VERSION = 4;
// =========================================================================
// \8eG\97p\8aÖ\90\94
inherited;
OnDownload := Download;
+ OnCreateThread := CreateThread;
OnEnumThread := EnumThread;
OnFileName2ThreadURL := ToThreadURL;
end;
// *************************************************************************
+// \8f\91\82«\8d\9e\82Ý\82ð\8ew\8e¦\82³\82ê\82½
+// *************************************************************************
+function TShitarabaBoardItem.CreateThread(
+ inSubject : string; // \83X\83\8c\83^\83C
+ inName : string; // \96¼\91O(\83n\83\93\83h\83\8b)
+ inMail : string; // \83\81\81[\83\8b\83A\83h\83\8c\83X
+ inMessage : string // \96{\95¶
+) : TDownloadState; // \8f\91\82«\8d\9e\82Ý\82ª\90¬\8c÷\82µ\82½\82©\82Ç\82¤\82©
+var
+ postURL : string;
+ postData : string;
+ postResult : PChar;
+ uri : TIdURI;
+ uriList : TStringList;
+begin
+
+ uri := TIdURI.Create( URL );
+ uriList := TStringList.Create;
+ try
+ ExtractHttpFields( ['/', '?'], [], uri.Path, uriList );
+
+ // http://jbbs.shitaraba.com/bbs/write.cgi/game/1578/new/
+ // http://jbbs.shitaraba.com/game/1000/subject.txt
+ postURL :=
+ uri.Protocol + '://' + uri.Host + '/bbs/write.cgi/' +
+ uriList[ 1 ] + '/' + uriList[ 2 ] + '/new/';
+ postData :=
+ 'SUBJECT=' + HttpEncode( SJIStoEUC( inSubject ) ) +
+ '&NAME=' + HttpEncode( SJIStoEUC( inName ) ) +
+ '&MAIL=' + HttpEncode( SJIStoEUC( inMail ) ) +
+ '&MESSAGE=' + HttpEncode( SJIStoEUC( inMessage ) ) +
+ '&BBS=' + uriList[ 4 ] +
+ '&DIR=' + uriList[ 3 ] +
+ '&TIME=' + IntToStr( DateTimeToUnix( Now ) ) +
+ '&submit=' + HttpEncode( SJIStoEUC( '\90V\8bK\8f\91\82«\8d\9e\82Ý' ) );
+
+ // \93Æ\8e©\82É\92Ê\90M\82µ\82È\82¢\8fê\8d\87\82Í InternalPost \82É\94C\82¹\82é\82±\82Æ\82ª\8fo\97\88\82é
+ InternalPost( PChar( postURL ), PChar( postData ), postResult );
+ DisposeResultString( postResult );
+
+ Result := dsComplete
+ finally
+ uri.Free;
+ uriList.Free;
+ end;
+
+end;
+
+// *************************************************************************
// \83X\83\8c\88ê\97\97\82Ì URL \82©\82ç\83X\83\8c\83b\83h\82Ì URL \82ð\93±\82«\8fo\82·
// *************************************************************************
function TShitarabaBoardItem.ToThreadURL(