• R/O
  • HTTP
  • SSH
  • HTTPS

提交

标签
No Tags

Frequently used words (click to add to your profile)

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

OpenTweenのfork


Commit MetaInfo

修订版537b4bf05629b5ddcb1fb7f50ecaee5581811111 (tree)
时间2012-05-19 06:38:40
作者Kimura Youichi <kim.upsilon@bucy...>
CommiterKimura Youichi

Log Message

アップデート確認機能を追加

自動アップデートではない

更改概述

差异

--- a/OpenTween/ApplicationSettings.cs
+++ b/OpenTween/ApplicationSettings.cs
@@ -65,6 +65,17 @@ namespace OpenTween
6565 public const string ShortcutKeyUrl = "http://sourceforge.jp/projects/tween/wiki/%E3%82%B7%E3%83%A7%E3%83%BC%E3%83%88%E3%82%AB%E3%83%83%E3%83%88%E3%82%AD%E3%83%BC";
6666
6767 //=====================================================================
68+ // アップデートチェック関連
69+
70+ /// <summary>
71+ /// 最新バージョンの情報を取得するためのURL
72+ /// </summary>
73+ /// <remarks>
74+ /// version.txt のフォーマットについては http://sourceforge.jp/projects/opentween/wiki/VersionTxt を参照。
75+ /// </remarks>
76+ public const string VersionInfoUrl = "http://www.opentween.org/status/version.txt";
77+
78+ //=====================================================================
6879 // Twitter
6980 // https://dev.twitter.com/ から取得できます。
7081
--- a/OpenTween/DialogAsShieldIcon.cs
+++ b/OpenTween/DialogAsShieldIcon.cs
@@ -72,7 +72,8 @@ namespace OpenTween
7272 this.PictureBox1.Image = System.Drawing.SystemIcons.Question.ToBitmap();
7373 }
7474
75- public System.Windows.Forms.DialogResult ShowDialog(string text, string detail = "", string caption = "DialogAsShieldIcon",
75+ public System.Windows.Forms.DialogResult ShowDialog(IWin32Window owner,
76+ string text, string detail = "", string caption = "DialogAsShieldIcon",
7677 System.Windows.Forms.MessageBoxButtons Buttons = System.Windows.Forms.MessageBoxButtons.OKCancel,
7778 System.Windows.Forms.MessageBoxIcon icon = MessageBoxIcon.Question)
7879 {
--- a/OpenTween/MyCommon.cs
+++ b/OpenTween/MyCommon.cs
@@ -815,15 +815,22 @@ namespace OpenTween
815815 /// <remarks>
816816 /// バージョン1.0.0.1のように末尾が0でない(=開発版)の場合は「1.0.1-beta1」が出力される
817817 /// </remarks>
818- /// <returns></returns>
819- public static string GetReadableVersion()
818+ /// <returns>
819+ /// 生成されたバージョン番号の文字列
820+ /// </returns>
821+ public static string GetReadableVersion(string fileVersion = null)
820822 {
821- if (string.IsNullOrEmpty(MyCommon.fileVersion))
823+ if (fileVersion == null)
824+ {
825+ fileVersion = MyCommon.fileVersion;
826+ }
827+
828+ if (string.IsNullOrEmpty(fileVersion))
822829 {
823830 return null;
824831 }
825832
826- int[] version = MyCommon.fileVersion.Split('.')
833+ int[] version = fileVersion.Split('.')
827834 .Select(x => int.Parse(x)).ToArray();
828835
829836 if (version[3] == 0)
--- a/OpenTween/Resources/ChangeLog.txt
+++ b/OpenTween/Resources/ChangeLog.txt
@@ -1,6 +1,7 @@
11 更新履歴
22
33 ==== Ver 1.0.2-beta1(2012/xx/xx)
4+ * NEW: アップデート確認機能を追加
45 * FIX: 発言詳細部においてUnicodeで追加された一部の文字が正しく表示されない問題を修正
56 * FIX: メッセージなどに含まれるアプリケーション名の変更漏れを修正
67 * FIX: タスクバーから復元した際に最大化した状態が保持されない問題を修正
--- a/OpenTween/Tween.cs
+++ b/OpenTween/Tween.cs
@@ -5979,10 +5979,57 @@ namespace OpenTween
59795979
59805980 private void CheckNewVersion(bool startup = false)
59815981 {
5982- // TODO 自動アップデート機能の実装
5983- if (!startup)
5982+ if (string.IsNullOrEmpty(MyCommon.fileVersion))
5983+ {
5984+ return;
5985+ }
5986+
5987+ string retMsg;
5988+ try
5989+ {
5990+ retMsg = tw.GetVersionInfo();
5991+ }
5992+ catch
5993+ {
5994+ retMsg = "";
5995+ }
5996+
5997+ if (string.IsNullOrEmpty(retMsg))
5998+ {
5999+ StatusLabel.Text = Properties.Resources.CheckNewVersionText9;
6000+ if (!startup) MessageBox.Show(Properties.Resources.CheckNewVersionText10, MyCommon.ReplaceAppName(Properties.Resources.CheckNewVersionText2), MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);
6001+ return;
6002+ }
6003+
6004+ // 改行2つで前後パートを分割(前半がバージョン番号など、後半が詳細テキスト)
6005+ string[] msgPart = retMsg.Split(new string[] {"\n\n", "\r\n\r\n"}, 2, StringSplitOptions.None);
6006+
6007+ string[] msgHeader = msgPart[0].Split(new string[] {"\n", "\r\n"}, StringSplitOptions.None);
6008+ string msgBody = msgPart.Length == 2 ? msgPart[1] : "";
6009+
6010+ msgBody = Regex.Replace(msgBody, "(?<!\r)\n", "\r\n"); // LF -> CRLF
6011+
6012+ string currentVersion = msgHeader[0];
6013+ string downloadUrl = msgHeader[1];
6014+
6015+ if (currentVersion.Replace(".", "").CompareTo(MyCommon.fileVersion.Replace(".", "")) > 0)
6016+ {
6017+ string dialogText = string.Format(Properties.Resources.CheckNewVersionText3, MyCommon.GetReadableVersion(currentVersion));
6018+ using (DialogAsShieldIcon dialog = new DialogAsShieldIcon())
6019+ {
6020+ DialogResult ret = dialog.ShowDialog(this, dialogText, msgBody, MyCommon.ReplaceAppName(Properties.Resources.CheckNewVersionText1), MessageBoxButtons.YesNo, MessageBoxIcon.Question);
6021+ if (ret == DialogResult.Yes)
6022+ {
6023+ this.OpenUriAsync(downloadUrl);
6024+ }
6025+ }
6026+ }
6027+ else
59846028 {
5985- MessageBox.Show(this, "OpenTween の自動アップデート機能は未実装です。OpenTween のウェブサイトで更新を確認し手動でアップデートしてください。", Application.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Information);
6029+ if (!startup)
6030+ {
6031+ MessageBox.Show(Properties.Resources.CheckNewVersionText7 + MyCommon.GetReadableVersion() + Properties.Resources.CheckNewVersionText8 + MyCommon.GetReadableVersion(currentVersion), MyCommon.ReplaceAppName(Properties.Resources.CheckNewVersionText2), MessageBoxButtons.OK, MessageBoxIcon.Information);
6032+ }
59866033 }
59876034 }
59886035
--- a/OpenTween/Twitter.cs
+++ b/OpenTween/Twitter.cs
@@ -1656,7 +1656,7 @@ namespace OpenTween
16561656 public string GetVersionInfo()
16571657 {
16581658 var content = "";
1659- if (!(new HttpVarious()).GetData("http://tween.sourceforge.jp/version.txt?" + DateTime.Now.ToString("yyMMddHHmmss") + Environment.TickCount.ToString(), null, out content, MyCommon.GetUserAgentString()))
1659+ if (!(new HttpVarious()).GetData(ApplicationSettings.VersionInfoUrl + "?" + DateTime.Now.ToString("yyMMddHHmmss") + Environment.TickCount.ToString(), null, out content, MyCommon.GetUserAgentString()))
16601660 {
16611661 throw new Exception("GetVersionInfo Failed");
16621662 }