+ if (Item.DownType = gdtThread) and (Item.ResponseCode = 302) then begin
+ {$IFDEF DEBUG}
+ Writeln('offlaw2.so\82Å\8eæ\93¾');
+ {$ENDIF}
+ ATitle := Item.ThreadItem.Title;
+ if ATitle = '' then
+ ATitle := '\81i\96¼\8fÌ\95s\96¾\81j';
+ FMsg := '\81\9adat.gz\82ª\91¶\8dÝ\82µ\82È\82¢\82½\82ßofflaw2.so\82ð\97\98\97p\82µ\82Ü\82· - [' + ATitle + ']';
+ FIcon := gmiWhat;
+ if Assigned(OnDownloadMsg) then
+ Synchronize(FireDownloadMsg);
+ URL := Item.ThreadItem.GetOfflaw2SoURL;
+ Modified := Item.ThreadItem.LastModified;
+ RangeStart := 0;
+ AdjustLen := 0;
+ if not DatDownload(Item.DownType, URL, Modified, RangeStart, AdjustLen) then begin
+ {$IFDEF DEBUG}
+ Writeln('ResponseCode: ' + IntToStr(Item.ResponseCode));
+ {$ENDIF}
+ Item.State := gdsError;
+
+ if (Item.DownType = gdtThread) and (Item.ResponseCode = 302) then begin
+ FMsg := '\94Â\82ª\88Ú\93]\82µ\82½\82©\82à\82µ\82ê\82È\82¢\82Ì\82Å\94Â\8dX\90V\82ð\8ds\82Á\82Ä\82\82¾\82³\82¢\81B';
+ FIcon := gmiNG;
+ if Assigned(OnDownloadMsg) then
+ Synchronize(FireDownloadMsg);
+ end;
+
+ end else begin
+ {$IFDEF DEBUG}
+ Writeln('ResponseCode: ' + IntToStr(Item.ResponseCode));
+ {$ENDIF}
+ if Item.ResponseCode = 200 then begin
+ {$IFDEF DEBUG}
+ Writeln('CGIStatus: OK');
+ {$ENDIF}
+ if Copy(Item.Content, 1, 5) = 'ERROR' then begin
+ {$IFDEF DEBUG}
+ Writeln('Offlow2Error');
+ {$ENDIF}
+ Item.ResponseCode := 404;
+ Item.State := gdsError;
+ Item.ErrText := '\83X\83\8c\82Í\91¶\8dÝ\82µ\82È\82¢\82æ\82¤\82Å\82·\81B' + Item.Content;
+ end else begin
+ GetLastModified;
+ end;
+ end else begin
+ {$IFDEF DEBUG}
+ Writeln('CGIStatus: 404(ERROR)');
+ {$ENDIF}
+ Item.ResponseCode := 404;
+ Item.State := gdsError;
+ Item.ErrText := CgiStatus.FErrText;
+ end;
+ end;
+ end;
+
+ if (Item.DownType = gdtThread) and ((Item.ResponseCode = 302) or (Item.ResponseCode = 404)) then begin
+ FSessionID := '';
+ Synchronize(GetSessionID);
+ if (FSessionID <> '') then begin
+ {$IFDEF DEBUG}
+ Writeln('Rokka\82Å\8eæ\93¾');
+ {$ENDIF}
+ ATitle := Item.ThreadItem.Title;
+ if ATitle = '' then
+ ATitle := '\81i\96¼\8fÌ\95s\96¾\81j';
+ FMsg := '\81\9aofflow2.so\82É\91¶\8dÝ\82µ\82È\82¢\82½\82ßRokka\82ð\97\98\97p\82µ\82Ü\82· - [' + ATitle + ']';
+ FIcon := gmiWhat;
+ if Assigned(OnDownloadMsg) then
+ Synchronize(FireDownloadMsg);
+ URL := Item.ThreadItem.GetRokkaURL(FSessionID);
+ Modified := Item.ThreadItem.LastModified;
+ RangeStart := 0;
+ AdjustLen := 0;
+
+ if not DatDownload(Item.DownType, URL, Modified, RangeStart, AdjustLen) then begin
+ {$IFDEF DEBUG}
+ Writeln('ResponseCode: ' + IntToStr(Item.ResponseCode));
+ {$ENDIF}
+ Item.State := gdsError;
+ end else begin
+ CgiStatus := ParseRokkaStatus(Item.Content);
+ {$IFDEF DEBUG}
+ Writeln('ResponseCode: ' + IntToStr(Item.ResponseCode));
+ {$ENDIF}
+ case CgiStatus.FStatus of
+ gcsOK: begin
+ {$IFDEF DEBUG}
+ Writeln('CGIStatus: OK');
+ {$ENDIF}
+ Item.ResponseCode := 200;
+ DeleteStatusLine(Item);
+ end;
+ gcsERR: begin
+ {$IFDEF DEBUG}
+ Writeln('CGIStatus: 404(ERROR)');
+ {$ENDIF}
+ Item.ResponseCode := 404;
+ Item.State := gdsError;
+ Item.ErrText := CgiStatus.FErrText;
+ end;
+ end;
+ end;
+ end;
+ end;
+
+ //********************
+ // 2ch\8aO\95\94\94Â
+ //********************
+// if not GikoSys.Is2chHost(GikoSys.UrlToServer(URL)) then begin
+ Host := URL;
+ Sep := Pos('://', Host);
+ if (Sep > 0) then
+ Delete(Host, 1, Sep + 2);
+ Sep := Pos('/', Host);
+ if (Sep > 0) then
+ SetLength(Host, Sep - 1);
+ if not GikoSys.Is2chHost(Host) then begin
+ if (Item.DownType = gdtThread) and (Item.ResponseCode = 404) then begin
+ {$IFDEF DEBUG}
+ Writeln('\8aO\95\94\94Â\89ß\8b\8e\83\8d\83O\8eæ\93¾');
+ {$ENDIF}
+ ATitle := Item.ThreadItem.Title;
+ if ATitle = '' then
+ ATitle := '\81i\96¼\8fÌ\95s\96¾\81j';
+ FMsg := '\81\9a\82Q\82¿\82á\82ñ\82Ë\82é\8aO\95\94\94Â\82Ì\89ß\8b\8e\83\8d\83O\8eæ\93¾\82ð\8ds\82¢\82Ü\82· - [' + ATitle + ']';
+ FIcon := gmiWhat;
+ if Assigned(OnDownloadMsg) then
+ Synchronize(FireDownloadMsg);
+ URL := Item.ThreadItem.GetExternalBoardKakoDatURL;
+ Modified := Item.ThreadItem.LastModified;
+ RangeStart := 0;
+ AdjustLen := 0;
+ if not DatDownload(Item.DownType, URL, Modified, RangeStart, AdjustLen) then
+ Item.State := gdsError;
+ {$IFDEF DEBUG}
+ Writeln('ResponseCode: ' + IntToStr(Item.ResponseCode));
+ {$ENDIF}
+ end;
+ end;
+(*