Label13: TLabel;
EditIgnoreListsButton: TButton;
Label2: TLabel;
+ SakuCheckBox: TCheckBox;
procedure UpdateButtonClick(Sender: TObject);
procedure StopButtonClick(Sender: TObject);
procedure CloseButtonClick(Sender: TObject);
procedure SetIgnoreCategory(b: boolean);
procedure EditIgnoreList(Sender: TObject);
procedure UpdateIgnoreList(Sender: TObject);
+ function CheckDeleteItem(ini: TMemIniFile): Boolean;
public
{ Public \90é\8c¾ }
class procedure InitHTTPClient(client : TIdHTTP);
ini: TMemIniFile;
oldURLs : TStringList;
newURLs : TStringList;
+ SakuIdx: Integer;
begin
Change := False;
MessageMemo.Lines.Add('\90V\94Â\81A\94ÂURL\95Ï\8dX\83`\83F\83b\83N\82ð\8aJ\8en\82µ\82Ü\82·');
tmp := CustomStringReplace(tmp, 'TARGET=_blank', '');
i := AnsiPos('>', tmp);
if i <> 0 then begin
- URL := Copy(tmp, 1, i - 1);
+ URL := Trim(Copy(tmp, 1, i - 1));
Title := Copy(tmp, i + 1, Length(tmp));
- Board := BBSs[ 0 ].FindBoardFromTitle(Title);
+ if (SakuCheckBox.Checked = True) and (Title = '\8dí\8f\9c\97v\90¿') then begin
+ SakuIdx := Pos('.2ch.net/saku/', URL);
+ if (SakuIdx > 0) then
+ URL := Copy(URL, 1, SakuIdx - 1) + '.2ch.net/saku2ch/';
+ end;
+ // BBSs\82ª\8bó\91Î\8dô
+ if Length(BBSs) = 0 then begin
+ Board := nil;
+ end else begin
+ Board := BBSs[ 0 ].FindBoardFromTitleAndCategory(cate, Title);
+ end;
if Board = nil then begin
MessageMemo.Lines.Add('\90V\94Â\92Ç\89Á\81u' + Title + '(' + URL + ')\81v');
ini.WriteString(cate, Title, URL);
end;
end;
end;
+ // \83J\83e\83S\83\8a/\94Â\82ª\8c¸\82Á\82½\82¾\82¯\82¾\82ÆChange\83t\83\89\83O\82ª\82½\82½\82È\82¢\82Æ\82«\82Ì\91Î\8dô
+ if not Change then begin
+ Change := CheckDeleteItem(ini);
+ end;
finally
if Change then
ini.UpdateFile;
end;
Result := Change;
end;
-
+//! \8dí\8f\9c\83J\83e\83S\83\8a/\94Â\83`\83F\83b\83N
+function TNewBoardDialog.CheckDeleteItem(ini: TMemIniFile): Boolean;
+var
+ URL: string;
+ Title: string;
+ orgini: TMemIniFile;
+ orgStrings, newStrings: TStringList;
+ i: Integer;
+begin
+ orgini := TMemIniFile.Create(GikoSys.GetBoardFileName);
+ orgStrings := TStringList.Create;
+ newStrings := TStringList.Create;
+ try
+ ini.ReadSections(newStrings);
+ orgini.ReadSections(orgStrings);
+ if (newStrings.Count <> orgStrings.Count) then begin
+ //\83J\83e\83S\83\8a\92Ç\89Á\82Í\81A\94Â\82ª\92Ç\89Á\82É\82È\82é\82Ì\82Å\83`\83F\83b\83N\82µ\82È\82\82Ä\82à\82¢\82¢
+ //\83J\83e\83S\83\8a\82Ì\8dí\8f\9c\83`\83F\83b\83N
+ for i := 0 to orgStrings.Count - 1 do begin
+ if (newStrings.IndexOf(orgStrings[i]) = -1) then begin
+ MessageMemo.Lines.Add('\83J\83e\83S\83\8a\8dí\8f\9c\81u' + orgStrings[i] + '\81v');
+ end;
+ end;
+ Result := True;
+ end else begin
+ // \94Â\82Ì\90\94\83`\83F\83b\83N
+ ini.GetStrings(newStrings);
+ orgini.GetStrings(orgStrings);
+ if (newStrings.Count <> orgStrings.Count) then begin
+ // \94Â\82Ì\8dí\8f\9c\83`\83F\83b\83N
+ for i := 0 to orgStrings.Count - 1 do begin
+ if (newStrings.IndexOf(orgStrings[i]) = -1) then begin
+ Title := Copy(orgStrings[i], 1 , AnsiPos('=',orgStrings[i]) - 1);
+ URL := Copy(orgStrings[i],
+ AnsiPos('=',orgStrings[i]) + 1, Length(orgStrings[i]));
+ MessageMemo.Lines.Add('\94Â\8dí\8f\9c\81u' + Title + '(' + URL +')\81v');
+ end;
+ end;
+ Result := True;
+ end;
+ end;
+ finally
+ orgStrings.Free;
+ newStrings.Free;
+ orgini.Free;
+ end;
+end;
procedure TNewBoardDialog.FormCreate(Sender: TObject);
+var
+ CenterForm: TCustomForm;
begin
+ CenterForm := TCustomForm(Owner);
+ if Assigned(CenterForm) then begin
+ Left := ((CenterForm.Width - Width) div 2) + CenterForm.Left;
+ Top := ((CenterForm.Height - Height) div 2) + CenterForm.Top;
+ end else begin
+ Left := (Screen.Width - Width) div 2;
+ Top := (Screen.Height - Height) div 2;
+ end;
+
StopButton.Enabled := False;
BoardURLComboBox.Clear;
BoardURLComboBox.Items.AddStrings(GikoSys.Setting.BoardURLs);
BoardURLComboBox.ItemIndex := 0;
end;
SetIgnoreCategory(false);
+
+ SakuCheckBox.Checked := GikoSys.Setting.SakuBoard;
end;
//\94Â\8dX\90V\82Ì\8f\9c\8aO\83J\83e\83S\83\8a\83\8a\83X\83g\82Ì\93o\98^
{['\82¨\82·\82·\82ß', '\93Á\95Ê\8aé\89æ', '\82Ü\82¿\82a\82a\82r', '\83`\83\83\83b\83g', '\82¨\8aG\82©\82«', '\89^\89c\88Ä\93à', '\83c\81[\83\8b\97Þ', '\91¼\82Ì\83T\83C\83g']}
procedure TNewBoardDialog.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
+ GikoSys.Setting.SakuBoard := SakuCheckBox.Checked;
IgnoreLists.Free;
end;
//! \83\8d\81[\83J\83\8b\83t\83@\83C\83\8b\82ð\83\8d\81[\83h\82·\82é
begin
client.Request.Clear;
client.Request.CustomHeaders.Clear;
+ client.Request.UserAgent := GikoSys.GetUserAgent;
client.RecvBufferSize := Gikosys.Setting.RecvBufferSize;
client.ProxyParams.BasicAuthentication := False;
+ client.ReadTimeout := GikoSys.Setting.ReadTimeOut;
+ client.ConnectTimeout := GikoSys.Setting.ReadTimeOut;
+
if GikoSys.Setting.ReadProxy then begin
if GikoSys.Setting.ProxyProtocol then
client.ProtocolVersion := pv1_1