*************************************************************************)
function TGikoSys.Get2chDate(aDate: TDateTime): string;
var
- d1: TDateTime;
d2: TDateTime;
begin
- d1 := EncodeDate(1970, 1, 1);
d2 := aDate - EncodeTime(9, 0, 0, 0);
- //Result := FloatToStr(Trunc((d2 - d1) * 24 * 60 * 60));
- Result := FloatToStr(Trunc((d2 - d1) * 86400));
+ Result := FloatToStr(Trunc((d2 - ZERO_DATE) * 86400));
end;
-
+//val\82Í\81A1970/1/1/ 00:00:00 \82©\82ç\82Ì\8co\89ß\8e\9e\8aÔ
function TGikoSys.IntToDateTime(val: Int64): TDateTime;
-var
- d1: tdatetime;
- d2: tdatetime;
begin
- d1 := EncodeDate(1970, 1, 1);
- d2 := val / 86400.0;//(val * 1000) / (24 * 60 * 60 * 1000);
- Result := d1 + d2;
+ Result := ZERO_DATE + val / 86400.0;
end;
-
+//ADate\82ð1970/1/1/ 00:00:00 \82©\82ç\82Ì\8co\89ß\8e\9e\8aÔ\82É\95Ï\8a·\82·\82é
function TGikoSys.DateTimeToInt(ADate: TDateTime): Int64;
-var
- d: TDateTime;
- c: Currency;
begin
- d := EncodeDate(1970, 1, 1);
- c := (ADate - d) * 86400; //(ADate - d) * 24 * 60 * 60;
- Result := Trunc(c);
+ Result := Trunc((ADate - ZERO_DATE) * 86400);
end;
idx: Integer;
usePlugIn : Boolean;
tmpStr: string;
+ BoardPath : String;
+ protocol, host, path, document, port, bookmark : string;
+ is2ch : Boolean;
{*
FavoThreadItem : TFavoriteThreadItem;
Node: TTreeNode;
UnRead := 0;
usePlugIn := Board.IsBoardPlugInAvailable;
+ if not usePlugIn then begin
+ GikoSys.ParseURI(Board.URL, protocol, host, path, document, port, bookmark );
+ is2ch := Is2chHost(host);
+ end;
FileName := Board.GetFolderIndexFileName;
ThreadItem := TThreadItem.Create(
Board.BoardPlugIn,
Board.BoardPlugIn.FileName2ThreadURL( DWORD( Board ), Rec.FFileName ) )
- else
- ThreadItem := TThreadItem.Create(
- nil,
- Get2chBoard2ThreadURL( Board, ChangeFileExt( Rec.FFileName, '' ) ) );
-
+ else begin
+ //ThreadItem := TThreadItem.Create(
+ // nil,
+ // Get2chBoard2ThreadURL( Board, ChangeFileExt( Rec.FFileName, '' )) );
+ ThreadItem := TThreadItem.Create(
+ is2ch,
+ Get2chBoard2ThreadURL( Board, ChangeFileExt( Rec.FFileName, '' )),
+ host, Board.BBSID, ChangeFileExt( Rec.FFileName, '' ) );
+ end;
+
+ ThreadItem.BeginUpdate;
if FileList.Count <> 0 then
if FileList.Find( ThreadItem.FileName, Index ) then
FileList.Delete( Index );
- ThreadItem.BeginUpdate;
ThreadItem.No := Rec.FNo;
ThreadItem.FileName := Rec.FFileName;
ThreadItem.Title := Rec.FTitle;
end;
end;
- //\91O\89ñ\88Ù\8fí\8fI\97¹\8e\9e\83`\83F\83b\83N
- if TmpFileList.Count <> 0 then begin
- if TmpFileList.Find(ChangeFileExt(ThreadItem.FileName, '.tmp'), Index) then begin
- ini := TMemIniFile.Create(ExtractFilePath(Board.GetFolderIndexFileName) + TmpFileList[Index]);
- try
- tmpStr := ini.ReadString('Setting', 'RoundDate', DateTimeToStr(ZERO_DATE));
- ThreadItem.RoundDate := ConvertDateTimeString(tmpStr);
-
- tmpStr := ini.ReadString('Setting', 'LastModified', DateTimeToStr(ZERO_DATE));
- ThreadItem.LastModified := ConvertDateTimeString(tmpStr);
- ThreadItem.Count := ini.ReadInteger('Setting', 'Count', 0);
- ThreadItem.NewReceive := ini.ReadInteger('Setting', 'NewReceive', 0);
-
- ThreadItem.Size := ini.ReadInteger('Setting', 'Size', 0);
- if(ThreadItem.Size = 0) and (FileExists(ThreadItem.GetThreadFileName)) then begin
- try
- ThreadItem.Size := GetFileSize(ThreadItem.GetThreadFileName) - ThreadItem.Count;
- except
- end;
- end;
-
-
- ThreadItem.Round := ini.ReadBool('Setting', 'Round', False);
- ThreadItem.UnRead := False;//ini.ReadBool('Setting', 'UnRead', False);
- ThreadItem.ScrollTop := ini.ReadInteger('Setting', 'ScrollTop', 0);
- ThreadItem.AllResCount := ini.ReadInteger('Setting', 'AllResCount', ThreadItem.Count);
- ThreadItem.NewResCount := ini.ReadInteger('Setting', 'NewResCount', 0);
- ThreadItem.AgeSage := TGikoAgeSage(ini.ReadInteger('Setting', 'AgeSage', Ord(gasNone)));
- finally
- ini.Free;
- end;
- DeleteFile(ExtractFilePath(Board.GetFolderIndexFileName) + TmpFileList[Index]);
- TmpFileList.Delete(Index);
- end;
- end;
ThreadItem.EndUpdate;
Board.Add(ThreadItem);
if UnRead <> Board.UnRead then
Board.UnRead := UnRead;
+ Boardpath := ExtractFilePath(Board.GetFolderIndexFileName);
//\83C\83\93\83f\83b\83N\83X\82É\96³\82©\82Á\82½\83\8d\83O\82ð\92Ç\89Á\81i\95\85\82ê\83C\83\93\83f\83b\83N\83X\91Î\89\9e\81j
for i := 0 to FileList.Count - 1 do begin
- FileName := ExtractFileDir(Board.GetFolderIndexFileName) + '\' + FileList[i];
+ FileName := Boardpath + FileList[i];
//ResRec := DivideStrLine(ReadThreadFile(FileName, 1));
if usePlugIn then begin
Board.Add(ThreadItem);
end;
Board.EndUpdate;
+
+ //\91O\89ñ\88Ù\8fí\8fI\97¹\8e\9e\83`\83F\83b\83N
+ for i := TmpFileList.Count - 1 downto 0 do begin
+ //if TmpFileList.Count <> 0 then begin
+ ThreadItem := Board.FindThreadFromFileName(ChangeFileExt(TmpFileList[i], '.dat'));
+ if ThreadItem <> nil then begin
+ //if TmpFileList.Find(ChangeFileExt(ThreadItem.FileName, '.tmp'), Index) then begin
+ ini := TMemIniFile.Create(Boardpath + TmpFileList[i]);
+ try
+ tmpStr := ini.ReadString('Setting', 'RoundDate', DateTimeToStr(ZERO_DATE));
+ ThreadItem.RoundDate := ConvertDateTimeString(tmpStr);
+
+ tmpStr := ini.ReadString('Setting', 'LastModified', DateTimeToStr(ZERO_DATE));
+ ThreadItem.LastModified := ConvertDateTimeString(tmpStr);
+ ThreadItem.Count := ini.ReadInteger('Setting', 'Count', 0);
+ ThreadItem.NewReceive := ini.ReadInteger('Setting', 'NewReceive', 0);
+
+ ThreadItem.Size := ini.ReadInteger('Setting', 'Size', 0);
+ if(ThreadItem.Size = 0) and (FileExists(ThreadItem.GetThreadFileName)) then begin
+ try
+ ThreadItem.Size := GetFileSize(ThreadItem.GetThreadFileName) - ThreadItem.Count;
+ except
+ end;
+ end;
+
+
+ ThreadItem.Round := ini.ReadBool('Setting', 'Round', False);
+ ThreadItem.UnRead := False;//ini.ReadBool('Setting', 'UnRead', False);
+ ThreadItem.ScrollTop := ini.ReadInteger('Setting', 'ScrollTop', 0);
+ ThreadItem.AllResCount := ini.ReadInteger('Setting', 'AllResCount', ThreadItem.Count);
+ ThreadItem.NewResCount := ini.ReadInteger('Setting', 'NewResCount', 0);
+ ThreadItem.AgeSage := TGikoAgeSage(ini.ReadInteger('Setting', 'AgeSage', Ord(gasNone)));
+ finally
+ ini.Free;
+ end;
+ DeleteFile(Boardpath + TmpFileList[i]);
+ end;
+ end;
+
finally
sl.Free;
FileList.Free;