//! 2\82¿\82á\82ñ\82Ë\82é\82ÌURL
URL_2ch: string = 'www.2ch.net/';
//! \83M\83R\83i\83rWiki\82ÌURL
- URL_Wiki: string = 'gikowiki.dyndns.info/index.php?FAQ';
+ URL_Wiki: string = 'sourceforge.jp/projects/gikonavi/wiki/FAQ';
SELECTCOMBOBOX_NAME: string = ''; // '\83X\83\8c\83b\83h\8di\8d\9e\8c\9f\8dõ';
SELECTCOMBOBOX_COLOR: TColor = clWindow;
ExtractSameIDAction: TAction;
ShowTabListAction: TAction;
DereferenceResAction: TAction;
+ UpdateGikonaviAction: TAction;
+ konoURLPATHAction: TAction;
+ konoURLQueryAction: TAction;
procedure EditNGActionExecute(Sender: TObject);
procedure ReloadActionExecute(Sender: TObject);
procedure GoFowardActionExecute(Sender: TObject);
procedure ExtractSameIDActionExecute(Sender: TObject);
procedure ShowTabListActionExecute(Sender: TObject);
procedure DereferenceResActionExecute(Sender: TObject);
+ procedure UpdateGikonaviActionExecute(Sender: TObject);
+ procedure konoURLPATHActionExecute(Sender: TObject);
+ procedure konoURLQueryActionExecute(Sender: TObject);
+ procedure konoURLQueryActionUpdate(Sender: TObject);
private
{ Private \90é\8c¾ }
procedure ClearResFilter;
procedure ClearSelectComboBox;
procedure ClearMailAllEditor();
procedure ClearNameTextAllEditor();
- procedure MoveURLWithHistory(URL : String);
+ procedure MoveURLWithHistory(URL : String; KeyMask: Boolean = False);
procedure BackToHistory(item: TMoveHistoryItem);
function GetActiveThreadLinks : IHTMLElementCollection;
procedure GetLinkURLs(links : IHTMLElementCollection;
GikoBayesian, About, ShellAPI,
RoundName, RoundData, Menus, ListViewUtils,
ThreadControl, GikoMessage, InputAssist,
- DefaultFileManager, Forms, NewBoardURL;
+ DefaultFileManager, Forms, NewBoardURL, UpdateCheck;
const
MSG_ERROR : string = '\83G\83\89\81[';
GikoForm.ResRangeMenuSelect := 100;
OnlyAHundredResAction.Checked := True;
- //\81@\95\\8e¦\94Í\88Í\82ð\90Ý\92è\82·\82é
- SetResRange(100);
+ //\81@\95\\8e¦\94Í\88Í\82ð\90Ý\92è\82·\82é\81B\90Ý\92è\92l\82©\82ç\82Æ\82Á\82Ä\82\82é\81B
+ SetResRange(GikoSys.Setting.ResRangeExCount);
end;
// *************************************************************************
//! \96¢\93Ç\83\8c\83X\82Ì\82Ý\95\\8e¦
No := GikoForm.KokoPopupMenu.Tag;
if No = 0
then Exit;
- ThreadItem := GikoForm.GetActiveContent(True);
+ ThreadItem := GikoForm.KokoPopupThreadItem;
if not Assigned(ThreadItem) then
Exit;
ThreadItem.Kokomade := No;
begin
Number := GikoForm.KokoPopupMenu.Tag;
if Number = 0 then Exit;
- Item := GikoForm.GetActiveContent(True);
+ Item := GikoForm.KokoPopupThreadItem;
if Item = nil then Exit;
Editor := TEditorForm.Create(GikoForm);
begin
No := GikoForm.KokoPopupMenu.Tag;
if No = 0 then Exit;
- ThreadItem := GikoForm.GetActiveContent(True);
+ ThreadItem := GikoForm.KokoPopupThreadItem;
if ThreadItem = nil then Exit;
AID := GikoSys.GetResID(No, ThreadItem);
end;
end else begin
//URL\82É\88Ú\93®
- MoveURLWithHistory(item.ThreadItem.URL);
+ MoveURLWithHistory(item.ThreadItem.URL, True);
end;
end;
end;
//! \97\9a\97ð\8f\88\97\9d\82Â\82«URL\88Ú\93®
-procedure TGikoDM.MoveURLWithHistory(URL : String);
+procedure TGikoDM.MoveURLWithHistory(URL : String; KeyMask: Boolean = False);
var
idx : Integer;
begin
//URL\82É\88Ú\93®
- GikoForm.MoveToURL(URL);
+ GikoForm.MoveToURL(URL, KeyMask);
//\88È\89º\81A\97\9a\97ð\82Ì\8f\88\97\9d
idx := GikoForm.AddressComboBox.Items.IndexOf(URL);
if idx = -1 then begin
No := GikoForm.KokoPopupMenu.Tag;
if No = 0 then Exit;
- ThreadItem := GikoForm.GetActiveContent;
+ ThreadItem := GikoForm.KokoPopupThreadItem;
// \83A\83N\83e\83B\83u\83^\83u\82©\82ç\91S\82Ä\82Ì\83\8a\83\93\83N\82ð\8eæ\93¾\82·\82é
links := GetActiveThreadLinks;
if (ThreadItem <> nil) and (links <> nil) then begin
end;
end;
+procedure TGikoDM.UpdateGikonaviActionExecute(Sender: TObject);
+var
+ form : TUpdateCheckForm;
+ Msg: string;
+ shutdown: boolean;
+begin
+ if (EditorFormExists) then begin
+ Msg := '\83\8c\83X\83G\83f\83B\83^\82ð\91S\82Ä\95Â\82¶\82Ä\82\82¾\82³\82¢';
+ MsgBox(GikoForm.Handle, Msg, MSG_ERROR, MB_OK or MB_ICONSTOP);
+ Exit;
+ end;
+ GikoForm.UpdateExePath := '';
+ GikoForm.UpdateExeArgs := '';
+ form := TUpdateCheckForm.Create(Self);
+ try
+ form.ShowModal;
+ shutdown := form.Allowshutdown;
+ if shutdown then begin
+ GikoForm.UpdateExePath := form.ExecPath;
+ GikoForm.UpdateExeArgs := form.ExecArgs;
+ end;
+ finally
+ form.Release;
+ end;
+ if shutdown then begin
+ // \83M\83R\83i\83r\8fI\97¹
+ GikoForm.Close;
+ end;
+
+end;
+//! \82±\82Ì\83\8c\83X\82ÌURL\83R\83s\81[\81iPATH_INFO)
+procedure TGikoDM.konoURLPATHActionExecute(Sender: TObject);
+var
+ No : Integer;
+ ThreadItem : TThreadItem;
+ URL, Protocol, Host, Path, Document, Port, Bookmark : String;
+begin
+ No := GikoForm.KokoPopupMenu.Tag;
+ if No = 0 then Exit;
+
+ ThreadItem := GikoForm.KokoPopupThreadItem;
+ if (ThreadItem.ParentBoard.Is2ch) or not (Pos('?', ThreadItem.URL) > 0) then begin
+ GikoSys.ParseURI(ThreadItem.URL,Protocol, Host, Path, Document, Port, Bookmark);
+ URL := Protocol + '://' + Host + Path + IntToStr(No);
+ end else begin
+ if Pos('?', ThreadItem.URL) > 0 then begin
+ URL := Copy(ThreadItem.URL, 1, Pos('?', ThreadItem.URL)-1);
+ // \82Ü\82¿BBS\97p\8f\88\92u
+ URL := MojuUtils.CustomStringReplace(URL, 'read.pl', 'read.cgi');
+ URL := URL + '/' + ThreadItem.ParentBoard.BBSID + '/' + ChangeFileExt(ThreadItem.FileName, '') + '/' + IntToStr(No);
+ end;
+ end;
+ Clipboard.SetTextBuf( PChar(URL) );
+end;
+//! \82±\82Ì\83\8c\83X\82ÌURL\83R\83s\81[\81iQuery_STRING)
+procedure TGikoDM.konoURLQueryActionExecute(Sender: TObject);
+var
+ No : Integer;
+ ThreadItem : TThreadItem;
+ URL, Protocol, Host, Path, Document, Port, Bookmark : String;
+begin
+ No := GikoForm.KokoPopupMenu.Tag;
+ if No = 0 then Exit;
+
+ ThreadItem := GikoForm.KokoPopupThreadItem;
+ // 2ch\82Æ\82µ\82½\82ç\82Î\82Í\81A\83\8c\83X\94Ô\8d\86\82ð\82¤\82Ü\82\8f\88\97\9d\82µ\82Ä\82\82ê\82È\82¢\82Ì\82Å\97\98\97p\95s\89Â
+ if ThreadItem.ParentBoard.Is2ch or not (Pos('?', ThreadItem.URL) > 0) then begin
+ GikoSys.ParseURI(ThreadItem.URL, Protocol, Host, Path, Document, Port, Bookmark);
+ URL := Protocol + '://' + Host + '/test/read.cgi?bbs=' + ThreadItem.ParentBoard.BBSID
+ + '&key=' + ChangeFileExt(ThreadItem.FileName, '') + '&st=' + IntToStr(No) + '&to=' + IntToStr(No);
+ end else begin
+ URL := ThreadItem.URL;
+ // \82Ü\82¿BBS
+ if Pos('&LAST=', URL) > 0 then begin
+ URL := Copy(URL, 1, Pos('&LAST=', URL) - 1);
+ URL := URL + '&START=' + IntToStr(No) + '&END=' + IntToStr(No);
+ end;
+ // \82»\82Ì\91¼\8aO\95\94\94Â
+ if Pos('&ls=', URL) > 0 then begin
+ URL := Copy(URL, 1, Pos('&ls=', URL) - 1);
+ URL := URL + '&st=' + IntToStr(No) + '&to=' + IntToStr(No);
+ end;
+
+ end;
+ Clipboard.SetTextBuf( PChar(URL) );
+end;
+//! \82±\82Ì\83\8c\83X\82ÌURL\83R\83s\81[\81iQuery_STRING\81j\82Ì\97\98\97p\83`\83F\83b\83N
+procedure TGikoDM.konoURLQueryActionUpdate(Sender: TObject);
+const
+ LIVEDOOR_URL = 'http://jbbs.livedoor.jp/';
+begin
+ // 2ch\82Æ\82µ\82½\82ç\82Î\82Í\97\98\97p\82Å\82«\82È\82¢\82æ\82¤\82É\82·\82é\81i\82¤\82Ü\82\83\8c\83X\8ew\92è\82Å\82«\82È\82¢\82Ì\82Å\81j
+ konoURLQueryAction.Enabled := false;
+ if (GikoForm.KokoPopupThreadItem <> nil) then begin
+ konoURLQueryAction.Enabled := not GikoForm.KokoPopupThreadItem.ParentBoard.Is2ch;
+ if konoURLQueryAction.Enabled then begin
+ konoURLQueryAction.Enabled := not (Pos(LIVEDOOR_URL, GikoForm.KokoPopupThreadItem.URL) = 1);
+ end;
+ end;
+end;
+
end.