Develop and Download Open Source Software

Browse CVS Repository

Diff of /gikonavigoeson/gikonavi/NewBoard.pas

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.5 by yoffy, Mon Nov 24 10:50:01 2003 UTC revision 1.6 by h677, Tue Jan 6 16:14:39 2004 UTC
# Line 6  uses Line 6  uses
6          Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,          Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
7          Dialogs, IdAntiFreezeBase, IdAntiFreeze, IdBaseComponent, IdComponent,          Dialogs, IdAntiFreezeBase, IdAntiFreeze, IdBaseComponent, IdComponent,
8          IdTCPConnection, IdTCPClient, IdHTTP, IDException, StdCtrls, IniFiles,          IdTCPConnection, IdTCPClient, IdHTTP, IDException, StdCtrls, IniFiles,
9          GikoSystem, BoardGroup;          GikoSystem, BoardGroup, MojuUtils;
10    
11  type  type
12          TNewBoardItem = record          TNewBoardItem = record
# Line 180  var Line 180  var
180          Board: TBoard;          Board: TBoard;
181          Change: Boolean;          Change: Boolean;
182          ini: TMemIniFile;          ini: TMemIniFile;
183        oldURLs : TStringList;
184        newURLs : TStringList;
185  begin  begin
186          Change := False;          Change := False;
187          MessageMemo.Lines.Add('新板、板URL変更チェックを開始します');          MessageMemo.Lines.Add('新板、板URL変更チェックを開始します');
188          MessageMemo.Lines.Add('');          MessageMemo.Lines.Add('');
189          s := StringReplace(s, '<B>', '<b>', [rfReplaceAll, rfIgnoreCase]);          s := CustomStringReplace(s, '<B>', '<b>', true);
190          s := StringReplace(s, '<BR>', '<br>', [rfReplaceAll, rfIgnoreCase]);          s := CustomStringReplace(s, '<BR>', '<br>', true);
191          s := StringReplace(s, '</B>', '</b>', [rfReplaceAll, rfIgnoreCase]);          s := CustomStringReplace(s, '</B>', '</b>', true);
192          s := StringReplace(s, '<A HREF', '<a href', [rfReplaceAll, rfIgnoreCase]);          s := CustomStringReplace(s, '<A HREF', '<a href', true);
193          s := StringReplace(s, '</A', '</a', [rfReplaceAll, rfIgnoreCase]);          s := CustomStringReplace(s, '</A', '</a', true);
194          cate := '';          cate := '';
195          GikoSys.ForceDirectoriesEx(GikoSys.GetConfigDir);  
196          ini := TMemIniFile.Create(GikoSys.GetBoardFileName);      oldURLs := TStringList.Create;
197        newURLs := TStringList.Create;
198    
199          try          try
                 //  
                 //削除オプションが選択されている場合はクリア  
200    
201                  ini.Clear;                  GikoSys.ForceDirectoriesEx(GikoSys.GetConfigDir);
202                  while True do begin                  ini := TMemIniFile.Create(GikoSys.GetBoardFileName);
203                          idx1 := AnsiPos('<b>', s);                  try
204                          idx2 := AnsiPos('<a', s);                          //
205                          if (idx1 = 0) and (idx2 = 0) then Break;                          //削除オプションが選択されている場合はクリア
206    
207                          if idx1 < idx2 then begin                          ini.Clear;
208                                  //<br>  
209                                  idx := AnsiPos('</b>', s);                          while True do begin
210                                  if idx = 0 then begin                                  idx1 := AnsiPos('<b>', s);
211                                          s := Copy(s, idx1 + 4, Length(s));                                  idx2 := AnsiPos('<a', s);
212                                          continue;                                  if (idx1 = 0) and (idx2 = 0) then Break;
213                                  end;  
214                                  tmp := Copy(s, idx1, (idx - idx1) + 4);                                  if idx1 < idx2 then begin
215                                  tmp := StringReplace(tmp, '<b>', '', [rfReplaceAll]);                                          //<br>
216                                  tmp := StringReplace(tmp, '</b>', '', [rfReplaceAll]);                                          idx := AnsiPos('</b>', s);
217                                            if idx = 0 then begin
218                                  if (tmp = 'おすすめ') or                                                  s := Copy(s, idx1 + 4, Length(s));
219                                           (tmp = '特別企画') or                                                  continue;
220                                           (tmp = 'まちBBS') or                                          end;
221                                           (tmp = 'チャット') or                                          tmp := Copy(s, idx1, (idx - idx1) + 4);
222                                           (tmp = 'お絵かき') or                                          tmp := CustomStringReplace(tmp, '<b>', '');
223                                           (tmp = '運営') or                                          tmp := CustomStringReplace(tmp, '</b>', '');
224                                           (tmp = 'ツール類') or  
225                                           (tmp = '他のサイト') then begin                                          if (tmp = 'おすすめ') or
226                                          cate := '';                                                   (tmp = '特別企画') or
227                                                     (tmp = 'まちBBS') or
228                                                     (tmp = 'チャット') or
229                                                     (tmp = 'お絵かき') or
230                                                     (tmp = '運営') or
231                                                     (tmp = 'ツール類') or
232                                                     (tmp = '他のサイト') then begin
233                                                    cate := '';
234                                                    s := Copy(s, idx + 5, Length(s));
235                                                    Continue;
236                                            end;
237                                          s := Copy(s, idx + 5, Length(s));                                          s := Copy(s, idx + 5, Length(s));
238                                          Continue;                                          cate := tmp;
                                 end;  
                                 s := Copy(s, idx + 5, Length(s));  
                                 cate := tmp;  
                         end else begin  
                                 //<a href=  
                                 if cate = '' then begin  
                                         s := Copy(s, idx2 + 2, Length(s));  
239                                  end else begin                                  end else begin
240                                          idx := AnsiPos('</a>', s);                                          //<a href=
241                                          tmp := Copy(s, idx2, (idx - idx2) + 4);                                          if cate = '' then begin
242                                          tmp := StringReplace(tmp, '<a href=', '', [rfReplaceAll]);                                                  s := Copy(s, idx2 + 2, Length(s));
243                                          tmp := StringReplace(tmp, '</a>', '', [rfReplaceAll]);                                          end else begin
244                                          i := AnsiPos('>', tmp);                                                  idx := AnsiPos('</a>', s);
245                                          if i <> 0 then begin                                                  tmp := Copy(s, idx2, (idx - idx2) + 4);
246                                                  URL := Copy(tmp, 1, i - 1);                                                  tmp := CustomStringReplace(tmp, '<a href=', '');
247                                                  Title := Copy(tmp, i + 1, Length(tmp));                                                  tmp := CustomStringReplace(tmp, '</a>', '');
248                                                  Board := BBSs[ 0 ].FindBoardFromTitle(Title);                                                  i := AnsiPos('>', tmp);
249                                                  if Board = nil then begin                                                  if i <> 0 then begin
250                                                          MessageMemo.Lines.Add('新板追加「' + Title + '(' + URL + ')」');                                                          URL := Copy(tmp, 1, i - 1);
251                                                          ini.WriteString(cate, Title, URL);                                                          Title := Copy(tmp, i + 1, Length(tmp));
252                                                          Change := True;                                                          Board := BBSs[ 0 ].FindBoardFromTitle(Title);
253                                                  end else begin                                                          if Board = nil then begin
254                                                          if Board.URL <> URL then begin                                                                  MessageMemo.Lines.Add('新板追加「' + Title + '(' + URL + ')」');
                                                                 MessageMemo.Lines.Add('URL変更「' + Board.Title + '(' + URL +')」');  
255                                                                  ini.WriteString(cate, Title, URL);                                                                  ini.WriteString(cate, Title, URL);
256                                                                  Change := True;                                                                  Change := True;
257                                                          end else begin                                                          end else begin
258                                                                  ini.WriteString(cate, Title, URL);                                                                  if Board.URL <> URL then begin
259                                                                            MessageMemo.Lines.Add('URL変更「' + Board.Title + '(' + URL +')」');
260                                                                            ini.WriteString(cate, Title, URL);
261                                        oldURLs.Add(Board.URL);
262                                                                    newURLs.Add(URL);
263                                                                            Change := True;
264                                                                    end else begin
265                                                                            ini.WriteString(cate, Title, URL);
266                                                                    end;
267                                                          end;                                                          end;
268                                                    end else begin
269                                                            s := Copy(s, idx2 + 2, Length(s));
270                                                            Continue;
271                                                  end;                                                  end;
272                                          end else begin                                                  s := Copy(s, idx + 5, Length(s));
                                                 s := Copy(s, idx2 + 2, Length(s));  
                                                 Continue;  
273                                          end;                                          end;
                                         s := Copy(s, idx + 5, Length(s));  
274                                  end;                                  end;
275                          end;                          end;
276                    finally
277                            if Change then
278                                    ini.UpdateFile;
279                            ini.Free;
280                  end;                  end;
281          finally                  MessageMemo.Lines.Add('');
282                  if Change then              if Change then begin
283                          ini.UpdateFile;              GikoForm.FavoritesURLReplace(oldURLs, newURLs);
284                  ini.Free;                          MessageMemo.Lines.Add('新板、板URL変更チェックが完了しました');
285          end;                          MessageMemo.Lines.Add('「閉じる」ボタンを押してください');
286          MessageMemo.Lines.Add('');                  end else
287          if Change then begin                          MessageMemo.Lines.Add('新板、板URL変更は ありませんでした');
288                  MessageMemo.Lines.Add('新板、板URL変更チェックが完了しました');      finally
289                  MessageMemo.Lines.Add('「閉じる」ボタンを押してください');          oldURLs.Free;
290          end else          newURLs.Free;
291                  MessageMemo.Lines.Add('新板、板URL変更は ありませんでした');      end;
292  end;  end;
293    
294  procedure TNewBoardDialog.FormCreate(Sender: TObject);  procedure TNewBoardDialog.FormCreate(Sender: TObject);

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26