• R/O
  • HTTP
  • SSH
  • HTTPS

提交

標籤
無標籤

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

ギコナビ


Commit MetaInfo

修訂b86063858cee550e0635d5045760477270c3e1af (tree)
時間2006-08-19 03:37:28
作者h677 <h677>
Commiterh677

Log Message

ローカルルール取得とかのリファクタリング

Change Summary

差異

--- a/Editor.pas
+++ b/Editor.pas
@@ -252,6 +252,11 @@ type
252252 procedure SetExtraTab;
253253 //! ”Ž擾
254254 function GetBoard : TBoard;
255+ //! URL‚̃f[ƒ^‚ðstream‚ÉŽæ‚荞‚Þ
256+ procedure GetWebData(const URL: string; const RefURL: string;
257+ Modified: TDateTime; stream: TStream);
258+ //! GikoForm‚ɐV’…ƒƒbƒZ[ƒW‚ð’ljÁ‚·‚é
259+ procedure AddFormMessageNew(icon: TGikoMessageIcon);
255260 protected
256261 procedure CreateParams(var Params: TCreateParams); override;
257262 public
@@ -1002,34 +1007,23 @@ begin
10021007 if FStatusCode = 302 then begin
10031008 GikoForm.PlaySound('ResEnd');
10041009 SaveSendFile;
1005- if FThreadItem = nil then
1006- GikoForm.AddMessageList(FBoard.Title + ' ' + GikoSys.GetGikoMessage(gmNewSure), nil, gmiOK)
1007- else
1008- GikoForm.AddMessageList(FThreadItem.Title + ' ' + GikoSys.GetGikoMessage(gmNewRes), nil, gmiOK);
1010+ AddFormMessageNew( gmiOK );
10091011 Close;
10101012 Exit;
10111013 end;
10121014 if State = gdsComplete then begin
10131015 GikoForm.PlaySound('ResEnd');
10141016 SaveSendFile;
1015- if FThreadItem = nil then
1016- GikoForm.AddMessageList(FBoard.Title + ' ' + GikoSys.GetGikoMessage(gmNewSure), nil, gmiOK)
1017- else
1018- GikoForm.AddMessageList(FThreadItem.Title + ' ' + GikoSys.GetGikoMessage(gmNewRes), nil, gmiOK);
1017+ AddFormMessageNew( gmiOK );
10191018 Close;
10201019 end else if State = gdsError then begin
1021- if FThreadItem = nil then
1022- GikoForm.AddMessageList(FBoard.Title + ' ' + GikoSys.GetGikoMessage(gmNewSure), nil, gmiOK)
1023- else
1024- GikoForm.AddMessageList(FThreadItem.Title + ' ' + GikoSys.GetGikoMessage(gmNewRes), nil, gmiOK);
1025-
1020+ AddFormMessageNew( gmiOK );
10261021 EditorPage.ActivePage := PreviewTab;
10271022 SetContent(ResponseText, Browser);
10281023 end else if State = gdsAbort then begin
10291024 GikoForm.AddMessageList(FThreadItem.Title + ' ' + GikoSys.GetGikoMessage(gmAbort), nil, gmiSAD);
10301025 end;
10311026 end;
1032-
10331027 function TEditorForm.GetResultType(ResponseText: string): TGikoResultType;
10341028 begin
10351029 if AnsiPos('‘‚«‚±‚Ý‚ªI‚í‚è‚Ü‚µ‚½', ResponseText) <> 0 then
@@ -1508,65 +1502,59 @@ end;
15081502
15091503 procedure TEditorForm.GetSETTINGTXTActionExecute(Sender: TObject);
15101504 var
1505+ memStream: TMemoryStream;
15111506 URL, RefURL: string;
15121507 settingBody: TStringList;
15131508 tmpBoard: TBoard;
15141509 begin
1510+ if not FWork then begin
1511+ FWork := True;
15151512
1516- if FWork then begin
1517- Exit;
1518- end;
1519-
1520- FWork := True;
1521-
1522- InitIdHTTP(Indy);
1523- tmpBoard := GetBoard;
1524-
1525- if tmpBoard = nil then Exit;
1526-
1527- RefURL := tmpBoard.URL;
1528- if RefURL[Length(RefURL)] <> '/' then
1529- URL := RefURL + '/' + 'SETTING.TXT'
1530- else
1531- URL := RefURL + 'SETTING.TXT';
1532-
1533- Indy.Request.LastModified := tmpBoard.SETTINGTXTTime;
1534- Indy.Request.Referer := RefURL;
1535- Screen.Cursor := crHourGlass;
1536- settingBody := TStringList.Create;
1537- try
1538- StatusBar.Panels[0].Text := 'SETTING.TXTƒ_ƒEƒ“ƒ[ƒh’†';
1539- try
1540- IdAntiFreeze.Active := True;
1541- try
1542- settingBody.Text := Indy.Get(URL);
1543- finally
1544- IdAntiFreeze.Active := False;
1545- end;
1546- if( Indy.ResponseCode = 200 ) then begin
1547- settingBody.SaveToFile(tmpBoard.GetSETTINGTXTFileName);
1548- tmpBoard.SETTINGTXTTime := Indy.Response.LastModified;
1549- tmpBoard.IsSETTINGTXT := true;
1550- tmpBoard.TitlePictureURL := GetTitlePictureURL(settingBody, tmpBoard);
1551- tmpBoard.Modified := true;
1552- StatusBar.Panels[0].Text := 'SETTING.TXTŽæ“¾Š®—¹(' + IntToStr(Indy.ResponseCode) + ')';
1553- end;
1554- except
1555- on E: EIdException do begin
1556- if( AnsiPos('304', E.Message) > 0 ) then
1557- StatusBar.Panels[0].Text := 'SETTING.TXTXV–³‚µ(' + IntToStr(Indy.ResponseCode) + ')'
1558- else
1559- StatusBar.Panels[0].Text := 'SETTING.TXTŽæ“¾ƒGƒ‰[(' + IntToStr(Indy.ResponseCode) + ')';
1560- end;
1561- end;
1562- finally
1563- settingBody.Free;
1564- Screen.Cursor := crDefault;
1565- FWork := False;
1566- end;
1567- ShowBoardInformation(tmpBoard, BoardInformationMemo);
1568-
1569-
1513+ tmpBoard := GetBoard;
1514+ if tmpBoard <> nil then begin
1515+
1516+ RefURL := tmpBoard.URL;
1517+ if RefURL[Length(RefURL)] <> '/' then
1518+ URL := RefURL + '/' + 'SETTING.TXT'
1519+ else
1520+ URL := RefURL + 'SETTING.TXT';
1521+ Screen.Cursor := crHourGlass;
1522+ memStream := TMemoryStream.Create;
1523+ try
1524+ try
1525+ StatusBar.Panels[0].Text := 'SETTING.TXTƒ_ƒEƒ“ƒ[ƒh’†';
1526+ GetWebData(URL, RefURL, tmpBoard.SETTINGTXTTime, memStream);
1527+ if( Indy.ResponseCode = 200 ) then begin
1528+ settingBody := TStringList.Create;
1529+ try
1530+ memStream.Seek(0, soFromBeginning);
1531+ settingBody.LoadFromStream(memStream);
1532+ settingBody.SaveToFile(tmpBoard.GetSETTINGTXTFileName);
1533+ tmpBoard.SETTINGTXTTime := Indy.Response.LastModified;
1534+ tmpBoard.IsSETTINGTXT := true;
1535+ tmpBoard.TitlePictureURL := GetTitlePictureURL(settingBody, tmpBoard);
1536+ tmpBoard.Modified := true;
1537+ finally
1538+ settingBody.Free;
1539+ end;
1540+ StatusBar.Panels[0].Text := 'SETTING.TXTŽæ“¾Š®—¹(' + IntToStr(Indy.ResponseCode) + ')';
1541+ end;
1542+ except
1543+ on E: EIdException do begin
1544+ if( AnsiPos('304', E.Message) > 0 ) then
1545+ StatusBar.Panels[0].Text := 'SETTING.TXTXV–³‚µ(' + IntToStr(Indy.ResponseCode) + ')'
1546+ else
1547+ StatusBar.Panels[0].Text := 'SETTING.TXTŽæ“¾ƒGƒ‰[(' + IntToStr(Indy.ResponseCode) + ')';
1548+ end;
1549+ end;
1550+ finally
1551+ memStream.Free;
1552+ Screen.Cursor := crDefault;
1553+ end;
1554+ ShowBoardInformation(tmpBoard, BoardInformationMemo);
1555+ end;
1556+ FWork := False;
1557+ end;
15701558 end;
15711559
15721560 procedure TEditorForm.ShowBoardInformation(ABoard: TBoard; AMemo: TMemo);
@@ -1640,38 +1628,53 @@ begin
16401628 Exit;
16411629
16421630 FWork := True;
1643-
1644- InitIdHTTP(Indy);
16451631 memStream := TMemoryStream.Create;
16461632 try
16471633 tmpBoard := GetBoard;
16481634
1649- Indy.Request.Referer := tmpBoard.URL;
1650- if tmpBoard.TitlePictureURL <> '' then begin
1635+ if (tmpBoard <> nil) and (tmpBoard.TitlePictureURL <> '') then begin
16511636 StatusBar.Panels[0].Text := '”ƒgƒbƒv‰æ‘œƒ_ƒEƒ“ƒ[ƒh’†';
16521637 Screen.Cursor := crHourGlass;
16531638 try
1654- IdAntiFreeze.Active := True;
1655- try
1656- Indy.Get(tmpBoard.TitlePictureURL, memStream);
1657- finally
1658- IdAntiFreeze.Active := False;
1659- end;
1639+ // URL‚ðŽw’肵‚ăƒ‚ƒŠ‚ɓǂݍž‚Þ
1640+ GetWebData(tmpBoard.TitlePictureURL, tmpBoard.URL,
1641+ ZERO_DATE, memStream);
16601642 if Indy.ResponseCode = 200 then begin
16611643 memStream.SaveToFile(tmpBoard.GetTitlePictureFileName);
16621644 ShowTitlePicture();
16631645 tmpBoard.Modified := true;
16641646 end;
1647+ StatusBar.Panels[0].Text := '”ƒgƒbƒv‰æ‘œ (' + IntToStr(Indy.ResponseCode) + ')';
16651648 except
16661649 end;
16671650 end;
16681651 finally
1669- Screen.Cursor := crDefault;
1670- StatusBar.Panels[0].Text := '”ƒgƒbƒv‰æ‘œ (' + IntToStr(Indy.ResponseCode) + ')';
16711652 memStream.Free;
1653+ FWork := False;
1654+ Screen.Cursor := crDefault;
16721655 end;
1656+end;
1657+{
1658+\brief URL‚̃f[ƒ^‚ðstream‚ɓǂݍž‚Þ
1659+\param URL “ǂݍž‚ސæ
1660+\param RefURL referer‚ɐݒ肷‚é
1661+\param Modified Modified‚ɐݒ肷‚é
1662+\param stream “ǂݍž‚ñ‚¾ƒf[ƒ^‚Ì•Û‘¶æ
1663+}
1664+procedure TEditorForm.GetWebData(const URL: string; const RefURL: string;
1665+ Modified: TDateTime; stream: TStream);
1666+begin
1667+ InitIdHTTP(Indy);
1668+ Indy.Request.Referer := RefURL;
1669+ Indy.Request.LastModified := Modified;
1670+
1671+ IdAntiFreeze.Active := True;
1672+ try
1673+ Indy.Get(URL, stream);
1674+ finally
1675+ IdAntiFreeze.Active := False;
1676+ end;
16731677
1674- FWork := False;
16751678 end;
16761679 procedure TEditorForm.ShowTitlePicture();
16771680 var
@@ -1708,69 +1711,63 @@ var
17081711 URL, RefURL: string;
17091712 settingBody: TStringList;
17101713 tmpBoard: TBoard;
1714+ memStream: TMemoryStream;
17111715 begin
1712- if FWork then
1713- Exit;
1716+ if not FWork then begin
17141717 FWork := True;
17151718
1716- InitIdHTTP(Indy);
1717-
1718- tmpBoard := GetBoard;
1719-
1720- if tmpBoard = nil then Exit;
1721-
1722- RefURL := tmpBoard.URL;
1723- if RefURL[Length(RefURL)] <> '/' then
1724- URL := RefURL + '/' + 'head.txt'
1725- else
1726- URL := RefURL + 'head.txt';
1727-
1728- if FileExists(tmpBoard.GETHEADTXTFileName) then
1729- Indy.Request.LastModified := tmpBoard.HEADTXTTime
1730- else
1731- Indy.Request.LastModified := ZERO_DATE;
1732-
1733- Indy.Request.Referer := RefURL;
1734- Screen.Cursor := crHourGlass;
1735- settingBody := TStringList.Create;
1736- try
1737- StatusBar.Panels[0].Text := 'ƒ[ƒJƒ‹ƒ‹[ƒ‹(head.txt)ƒ_ƒEƒ“ƒ[ƒh’†';
1738- try
1739- IdAntiFreeze.Active := True;
1740- try
1741- settingBody.Text := Indy.Get(URL);
1742- finally
1743- IdAntiFreeze.Active := False;
1744- end;
1745- if( Indy.ResponseCode = 200 ) then begin
1746- settingBody.Insert(0, '<HTML lang="ja"><HEAD>');
1747- settingBody.Insert(1, '<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">');
1748- settingBody.Insert(2, '<TITLE>' + tmpBoard.Title + '</TITLE>');
1749- settingBody.Insert(3, '<base href="' + RefURL + '"></HEAD><BODY>');
1750- settingBody.Add('</BODY></HTML>');
1751- settingBody.SaveToFile(tmpBoard.GETHEADTXTFileName);
1752- tmpBoard.HEADTXTTime := Indy.Response.LastModified;
1753- tmpBoard.IsHEADTXT := true;
1754- tmpBoard.Modified := true;
1755- StatusBar.Panels[0].Text := 'ƒ[ƒJƒ‹ƒ‹[ƒ‹Žæ“¾Š®—¹(' + IntToStr(Indy.ResponseCode) + ')';
1756- end;
1757- except
1758- on E: EIdException do begin
1759- if( AnsiPos('304', E.Message) > 0 ) then
1760- StatusBar.Panels[0].Text := 'ƒ[ƒJƒ‹ƒ‹[ƒ‹XV–³‚µ(' + IntToStr(Indy.ResponseCode) + ')'
1761- else
1762- StatusBar.Panels[0].Text := 'ƒ[ƒJƒ‹ƒ‹[ƒ‹Žæ“¾ƒGƒ‰[(' + IntToStr(Indy.ResponseCode) + ')';
1763- end;
1764- end;
1765- finally
1766- settingBody.Free;
1767- Screen.Cursor := crDefault;
1719+ tmpBoard := GetBoard;
1720+ if (tmpBoard <> nil) then begin
1721+
1722+ RefURL := tmpBoard.URL;
1723+ if RefURL[Length(RefURL)] <> '/' then
1724+ URL := RefURL + '/' + 'head.txt'
1725+ else
1726+ URL := RefURL + 'head.txt';
1727+
1728+ Screen.Cursor := crHourGlass;
1729+ memStream := TMemoryStream.Create;
1730+ try
1731+ StatusBar.Panels[0].Text := 'ƒ[ƒJƒ‹ƒ‹[ƒ‹(head.txt)ƒ_ƒEƒ“ƒ[ƒh’†';
1732+ try
1733+ GetWebData(URL, RefURL, tmpBoard.HEADTXTTime, memStream);
1734+ if( Indy.ResponseCode = 200 ) then begin
1735+ settingBody := TStringList.Create;
1736+ try
1737+ memStream.Seek(0, soFromBeginning);
1738+ settingBody.LoadFromStream(memStream);
1739+ settingBody.Insert(0, '<HTML lang="ja"><HEAD>');
1740+ settingBody.Insert(1, '<META http-equiv="Content-Type" content="text/html; charset=Shift_JIS">');
1741+ settingBody.Insert(2, '<TITLE>' + tmpBoard.Title + '</TITLE>');
1742+ settingBody.Insert(3, '<base href="' + RefURL + '"></HEAD><BODY>');
1743+ settingBody.Add('</BODY></HTML>');
1744+ settingBody.SaveToFile(tmpBoard.GETHEADTXTFileName);
1745+ tmpBoard.HEADTXTTime := Indy.Response.LastModified;
1746+ tmpBoard.IsHEADTXT := true;
1747+ tmpBoard.Modified := true;
1748+ finally
1749+ settingBody.Free;
1750+ end;
1751+ StatusBar.Panels[0].Text := 'ƒ[ƒJƒ‹ƒ‹[ƒ‹Žæ“¾Š®—¹(' + IntToStr(Indy.ResponseCode) + ')';
1752+ end;
1753+ except
1754+ on E: EIdException do begin
1755+ if( AnsiPos('304', E.Message) > 0 ) then
1756+ StatusBar.Panels[0].Text := 'ƒ[ƒJƒ‹ƒ‹[ƒ‹XV–³‚µ(' + IntToStr(Indy.ResponseCode) + ')'
1757+ else
1758+ StatusBar.Panels[0].Text := 'ƒ[ƒJƒ‹ƒ‹[ƒ‹Žæ“¾ƒGƒ‰[(' + IntToStr(Indy.ResponseCode) + ')';
1759+ end;
1760+ end;
1761+ finally
1762+ memStream.Free;
1763+ Screen.Cursor := crDefault;
1764+ end;
1765+ if tmpBoard.IsHEADTXT then begin
1766+ ShowBoardHead(tmpboard, LocalEdit);
1767+ end;
1768+ end;
17681769 FWork := False;
1769- end;
1770- if tmpBoard.IsHEADTXT then begin
1771- ShowBoardHead(tmpboard, LocalEdit);
1772- end;
1773-
1770+ end;
17741771
17751772 end;
17761773
@@ -2277,5 +2274,18 @@ begin
22772274 Result := FThreadItem.ParentBoard;
22782275 end;
22792276 end;
2277+{
2278+\brief GikoForm‚ɃƒbƒZ[ƒW‚ð’ljÁ‚·‚é
2279+\param icon ƒƒbƒZ[ƒW‚ɂ‚­ƒAƒCƒRƒ“
2280+}
2281+procedure TEditorForm.AddFormMessageNew(icon: TGikoMessageIcon);
2282+begin
2283+ if FThreadItem = nil then begin
2284+ GikoForm.AddMessageList(FBoard.Title + ' ' + GikoSys.GetGikoMessage(gmNewSure), nil, icon)
2285+ end else begin
2286+ GikoForm.AddMessageList(FThreadItem.Title + ' ' + GikoSys.GetGikoMessage(gmNewRes), nil, icon);
2287+ end;
2288+
2289+end;
22802290
22812291 end.