OSDN Git Service

ハ゛タ50(1.50.1.599)までの変更分をマージ
[gikonavigoeson/gikonavi.git] / NewBoard.pas
index 2d6a52a..684dcc0 100644 (file)
@@ -18,22 +18,29 @@ type
                Label1: TLabel;
                MessageMemo: TMemo;
                UpdateButton: TButton;
-    CloseButton: TButton;
+       CloseButton: TButton;
                Indy: TIdHTTP;
                IdAntiFreeze: TIdAntiFreeze;
                StopButton: TButton;
-               Label2: TLabel;
-    BoardURLComboBox: TComboBox;
-    Label13: TLabel;
+       BoardURLComboBox: TComboBox;
+       Label13: TLabel;
+       EditIgnoreListsButton: TButton;
+    Label2: TLabel;
                procedure UpdateButtonClick(Sender: TObject);
                procedure StopButtonClick(Sender: TObject);
                procedure CloseButtonClick(Sender: TObject);
                procedure FormCreate(Sender: TObject);
+       procedure EditIgnoreListsButtonClick(Sender: TObject);
+    procedure FormClose(Sender: TObject; var Action: TCloseAction);
        private
                { Private \90é\8c¾ }
+               IgnoreLists : TStringList;
                FAbort: Boolean;
                function BoardDownload: TNewBoardItem;
                procedure UpdateURL(s: string);
+               procedure SetIgnoreCategory(b: boolean);
+               procedure EditIgnoreList(Sender: TObject);
+               procedure UpdateIgnoreList(Sender: TObject);
        public
                { Public \90é\8c¾ }
        end;
@@ -41,6 +48,7 @@ type
 var
        NewBoardDialog: TNewBoardDialog;
 
+
 implementation
 
 uses Giko, IdHeaderList;
@@ -57,19 +65,26 @@ begin
                UpdateButton.Enabled := False;
                StopButton.Enabled := True;
                CloseButton.Enabled := False;
+               EditIgnoreListsButton.Enabled := False;
                Item := BoardDownload;
                StopButton.Enabled := False;
                if FAbort then
                        Exit;
                if Item.FContent <> '' then begin
+                       GikoForm.TabsSaveAction.Tag := 1;
+                       GikoForm.TabsOpenAction.Tag := 1;
+                       GikoForm.TabsSaveAction.Execute;
                        UpdateURL(Item.FContent);
                        GikoForm.ReloadBBS;
+                       GikoForm.TabsSaveAction.Tag := 0;
+                       GikoForm.TabsOpenAction.Tag := 0;
                end else
                        MessageMemo.Lines.Add('\83_\83E\83\93\83\8d\81[\83h\82ª\8e¸\94s\82µ\82Ü\82µ\82½[' + IntToStr(Item.FResponseCode) + ']');
        finally
                UpdateButton.Enabled := True;
                StopButton.Enabled := False;
                CloseButton.Enabled := True;
+               EditIgnoreListsButton.Enabled := True;
        end;
 end;
 
@@ -170,6 +185,7 @@ end;
 procedure TNewBoardDialog.UpdateURL(s: string);
 var
        i: Integer;
+//     j: Integer;
        idx: Integer;
        idx1: Integer;
        idx2: Integer;
@@ -179,9 +195,10 @@ var
        cate: string;
        Board: TBoard;
        Change: Boolean;
+       Ignore: Boolean;
        ini: TMemIniFile;
-    oldURLs : TStringList;
-    newURLs : TStringList;
+       oldURLs : TStringList;
+       newURLs : TStringList;
 begin
        Change := False;
        MessageMemo.Lines.Add('\90V\94Â\81A\94ÂURL\95Ï\8dX\83`\83F\83b\83N\82ð\8aJ\8en\82µ\82Ü\82·');
@@ -193,8 +210,8 @@ begin
        s := CustomStringReplace(s, '</A', '</a', true);
        cate := '';
 
-    oldURLs := TStringList.Create;
-    newURLs := TStringList.Create;
+       oldURLs := TStringList.Create;
+       newURLs := TStringList.Create;
 
        try
 
@@ -221,19 +238,31 @@ begin
                                        tmp := Copy(s, idx1, (idx - idx1) + 4);
                                        tmp := CustomStringReplace(tmp, '<b>', '');
                                        tmp := CustomStringReplace(tmp, '</b>', '');
-
+                                       Ignore := false;
+                                       for i := 0 to IgnoreLists.Count - 1 do begin
+                                               if tmp = Trim(IgnoreLists[i]) then begin
+                                                       cate := '';
+                                                       s := Copy(s, idx + 5, Length(s));
+                                                       Ignore := True;
+                                                       break;
+                                               end;
+                                       end;
+                                       if Ignore then
+                                               Continue;
+                                       {
                                        if (tmp = '\82¨\82·\82·\82ß') or
                                                 (tmp = '\93Á\95Ê\8aé\89æ') or
                                                 (tmp = '\82Ü\82¿\82a\82a\82r') or
                                                 (tmp = '\83`\83\83\83b\83g') or
                                                 (tmp = '\82¨\8aG\82©\82«') or
-                                                (tmp = '\89^\89c') or
+                                                (tmp = '\89^\89c\88Ä\93à') or
                                                 (tmp = '\83c\81[\83\8b\97Þ') or
                                                 (tmp = '\91¼\82Ì\83T\83C\83g') then begin
                                                cate := '';
                                                s := Copy(s, idx + 5, Length(s));
                                                Continue;
                                        end;
+                                       }
                                        s := Copy(s, idx + 5, Length(s));
                                        cate := tmp;
                                end else begin
@@ -245,26 +274,27 @@ begin
                                                tmp := Copy(s, idx2, (idx - idx2) + 4);
                                                tmp := CustomStringReplace(tmp, '<a href=', '');
                                                tmp := CustomStringReplace(tmp, '</a>', '');
+                        tmp := CustomStringReplace(tmp, 'TARGET=_blank', '');
                                                i := AnsiPos('>', tmp);
                                                if i <> 0 then begin
                                                        URL := Copy(tmp, 1, i - 1);
                                                        Title := Copy(tmp, i + 1, Length(tmp));
-                                                       Board := BBSs[ 0 ].FindBoardFromTitle(Title);
-                                                       if Board = nil then begin
-                                                               MessageMemo.Lines.Add('\90V\94Â\92Ç\89Á\81u' + Title + '(' + URL + ')\81v');
-                                                               ini.WriteString(cate, Title, URL);
-                                                               Change := True;
-                                                       end else begin
-                                                               if Board.URL <> URL then begin
-                                                                       MessageMemo.Lines.Add('URL\95Ï\8dX\81u' + Board.Title + '(' + URL +')\81v');
-                                                                       ini.WriteString(cate, Title, URL);
+                            Board := BBSs[ 0 ].FindBoardFromTitle(Title);
+                            if Board = nil then begin
+                               MessageMemo.Lines.Add('\90V\94Â\92Ç\89Á\81u' + Title + '(' + URL + ')\81v');
+                                ini.WriteString(cate, Title, URL);
+                                Change := True;
+                            end else begin
+                               if Board.URL <> URL then begin
+                                       MessageMemo.Lines.Add('URL\95Ï\8dX\81u' + Board.Title + '(' + URL +')\81v');
+                                    ini.WriteString(cate, Title, URL);
                                     oldURLs.Add(Board.URL);
-                                                               newURLs.Add(URL);
-                                                                       Change := True;
-                                                               end else begin
-                                                                       ini.WriteString(cate, Title, URL);
-                                                               end;
-                                                       end;
+                                    newURLs.Add(URL);
+                                    Change := True;
+                                end else begin
+                                       ini.WriteString(cate, Title, URL);
+                                end;
+                            end;
                                                end else begin
                                                        s := Copy(s, idx2 + 2, Length(s));
                                                        Continue;
@@ -281,6 +311,8 @@ begin
                MessageMemo.Lines.Add('');
            if Change then begin
             GikoForm.FavoritesURLReplace(oldURLs, newURLs);
+            GikoForm.RoundListURLReplace(oldURLs, newURLs);
+            GikoForm.TabFileURLReplace(oldURLs, newURLs);
                        MessageMemo.Lines.Add('\90V\94Â\81A\94ÂURL\95Ï\8dX\83`\83F\83b\83N\82ª\8a®\97¹\82µ\82Ü\82µ\82½');
                        MessageMemo.Lines.Add('\81u\95Â\82\82é\81v\83{\83^\83\93\82ð\89\9f\82µ\82Ä\82­\82¾\82³\82¢');
                end else
@@ -288,19 +320,84 @@ begin
     finally
        oldURLs.Free;
        newURLs.Free;
-    end;
+       end;
 end;
 
 procedure TNewBoardDialog.FormCreate(Sender: TObject);
 begin
        StopButton.Enabled := False;
-    BoardURLComboBox.Clear;
-    BoardURLComboBox.Items.AddStrings(GikoSys.Setting.BoardURLs);
-    try
-       BoardURLComboBox.ItemIndex := GikoSys.Setting.BoardURLSelected - 1;
-    except
-        BoardURLComboBox.ItemIndex := 0;
-    end;
+       BoardURLComboBox.Clear;
+       BoardURLComboBox.Items.AddStrings(GikoSys.Setting.BoardURLs);
+       try
+               BoardURLComboBox.ItemIndex := GikoSys.Setting.BoardURLSelected - 1;
+       except
+               BoardURLComboBox.ItemIndex := 0;
+       end;
+       SetIgnoreCategory(false);
+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.SetIgnoreCategory(b: boolean);
+begin
+       IgnoreLists := TStringList.Create;
+       if not( FileExists(GikoSys.Setting.GetIgnoreFileName) ) or ( b )then begin
+               IgnoreLists.Add('\82¨\82·\82·\82ß');
+               IgnoreLists.Add('\93Á\95Ê\8aé\89æ');
+               IgnoreLists.Add('\82Ü\82¿\82a\82a\82r');
+               IgnoreLists.Add('\83`\83\83\83b\83g');
+               IgnoreLists.Add('\82¨\8aG\82©\82«');
+               IgnoreLists.Add('\89^\89c\88Ä\93à');
+               IgnoreLists.Add('\83c\81[\83\8b\97Þ');
+               IgnoreLists.Add('\91¼\82Ì\83T\83C\83g');
+       end else begin
+               try
+                       IgnoreLists.LoadFromFile(GikoSys.Setting.GetIgnoreFileName);
+               except
+                       IgnoreLists.Free;
+                       SetIgnoreCategory(true);
+               end;
+       end;
+end;
+
+procedure TNewBoardDialog.EditIgnoreListsButtonClick(Sender: TObject);
+begin
+       EditIgnoreList(Sender);
+       EditIgnoreListsButton.OnClick := UpdateIgnoreList;
+end;
+procedure TNewBoardDialog.EditIgnoreList(Sender: TObject);
+var
+       i: Integer;
+begin
+       EditIgnoreListsButton.Caption := '\8f\9c\8aO\83J\83e\83S\83\8a\81[\8dX\90V';
+       Label2.Caption := '\8ae\82P\8ds\82É\83J\83e\83S\83\8a\96¼\82ð\8bL\93ü\82µ\82Ä\82­\82¾\82³\82¢\81B\81i\89ü\8ds\82ÍCtrl+Enter\81j';
+       UpdateButton.Enabled := false;
+       //MessageMemo.ReadOnly := false;
+       MessageMemo.Clear;
+       for i := 0 to IgnoreLists.Count - 1 do
+               MessageMemo.Lines.Add(IgnoreLists[i]);
+end;
+procedure TNewBoardDialog.UpdateIgnoreList(Sender: TObject);
+var
+       i: Integer;
+begin
+       Label2.Caption := '';
+    UpdateButton.Enabled := true;
+       EditIgnoreListsButton.Caption := '\8f\9c\8aO\83J\83e\83S\83\8a\81[\95Ò\8fW';
+       IgnoreLists.Clear;
+       for i := 0 to MessageMemo.Lines.Count - 1 do
+               IgnoreLists.Add(MessageMemo.Lines[i]);
+       IgnoreLists.SaveToFile(GikoSys.Setting.GetIgnoreFileName);
+       IgnoreLists.Free;
+       SetIgnoreCategory(false);
+       //MessageMemo.ReadOnly := true;
+       MessageMemo.Clear;
+       EditIgnoreListsButton.OnClick := EditIgnoreListsButtonClick;
+end;
+
+procedure TNewBoardDialog.FormClose(Sender: TObject;
+  var Action: TCloseAction);
+begin
+       IgnoreLists.Free;
 end;
 
 end.