From 608c926714d7cc920b3b994e6e90054ce655050c Mon Sep 17 00:00:00 2001 From: Kimura Youichi Date: Wed, 10 Apr 2013 19:16:55 +0900 Subject: [PATCH] =?utf8?q?=E3=82=B5=E3=83=BC=E3=83=89=E3=83=91=E3=83=BC?= =?utf8?q?=E3=83=86=E3=82=A3=E8=A3=BD=E3=82=B5=E3=83=BC=E3=83=93=E3=82=B9?= =?utf8?q?=E3=81=AE=E3=83=91=E3=83=BC=E3=83=9E=E3=83=AA=E3=83=B3=E3=82=AFU?= =?utf8?q?RL=E3=81=8B=E3=82=89=E3=82=B9=E3=83=86=E3=83=BC=E3=82=BF?= =?utf8?q?=E3=82=B9ID=E3=82=92=E6=8A=BD=E5=87=BA=E3=81=97=E3=81=A6?= =?utf8?q?=E9=96=A2=E9=80=A3=E7=99=BA=E8=A8=80=E8=A1=A8=E7=A4=BA=E3=81=99?= =?utf8?q?=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- OpenTween.Tests/TwitterTest.cs | 16 ++++++++++++++++ OpenTween/Resources/ChangeLog.txt | 1 + OpenTween/Twitter.cs | 16 ++++++++++++++-- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/OpenTween.Tests/TwitterTest.cs b/OpenTween.Tests/TwitterTest.cs index a775b82b..f4d145f9 100644 --- a/OpenTween.Tests/TwitterTest.cs +++ b/OpenTween.Tests/TwitterTest.cs @@ -47,5 +47,21 @@ namespace OpenTween return Twitter.StatusUrlRegex.Matches(url).Cast() .Select(x => x.Groups["StatusId"].Value).ToArray(); } + + [TestCase("http://favstar.fm/users/twitterapi/status/22634515958", + Result = new[] { "22634515958" })] + [TestCase("http://ja.favstar.fm/users/twitterapi/status/22634515958", + Result = new[] { "22634515958" })] + [TestCase("http://favstar.fm/t/22634515958", + Result = new[] { "22634515958" })] + [TestCase("http://aclog.koba789.com/i/312485321239564288", + Result = new[] { "312485321239564288" })] + [TestCase("http://frtrt.net/solo_status.php?status=263483634307198977", + Result = new[] { "263483634307198977" })] + public string[] ThirdPartyStatusUrlRegexTest(string url) + { + return Twitter.ThirdPartyStatusUrlRegex.Matches(url).Cast() + .Select(x => x.Groups["StatusId"].Value).ToArray(); + } } } diff --git a/OpenTween/Resources/ChangeLog.txt b/OpenTween/Resources/ChangeLog.txt index 529d9cb4..5fd163cc 100644 --- a/OpenTween/Resources/ChangeLog.txt +++ b/OpenTween/Resources/ChangeLog.txt @@ -3,6 +3,7 @@ ==== Ver 1.1.0-beta1(2013/xx/xx) * NEW: タブの表示位置を画面上部に変更可能に (thx @aokomoriuta!) * NEW: mobile.twitter.com/<スクリーン名>/status/<ステータスID> のURLも関連発言表示の対象に追加 + * NEW: Favstarなどサードパーティ製サービスのパーマリンクURLも関連発言表示の対象に追加 * FIX: スペースが含まれているURLをブラウザで開こうとするとURLが分断されて複数のタブが開いてしまう問題を修正 (thx @5px!) * FIX: 画面更新時にInvalidOperationExceptionのエラーが発生する不具合を修正 diff --git a/OpenTween/Twitter.cs b/OpenTween/Twitter.cs index b951139b..cd864408 100644 --- a/OpenTween/Twitter.cs +++ b/OpenTween/Twitter.cs @@ -122,6 +122,16 @@ namespace OpenTween /// public static readonly Regex StatusUrlRegex = new Regex(@"https?://([^.]+\.)?twitter\.com/(#!/)?(?[a-zA-Z0-9_]+)/status(es)?/(?[0-9]+)(/photo)?", RegexOptions.IgnoreCase); + /// + /// FavstarやaclogなどTwitter関連サービスのパーマリンクURLからステータスIDを抽出する正規表現 + /// + public static readonly Regex ThirdPartyStatusUrlRegex = new Regex(@"https?://(?:[^.]+\.)?(?: + favstar\.fm/users/[a-zA-Z0-9_]+/status/ # Favstar +| favstar\.fm/t/ # Favstar (short) +| aclog\.koba789\.com/i/ # aclog +| frtrt\.net/solo_status\.php\?status= # RtRT +)(?[0-9]+)", RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace); + delegate void GetIconImageDelegate(PostClass post); private readonly object LockObj = new object(); private List followerId = new List(); @@ -2622,8 +2632,10 @@ namespace OpenTween //return rslt; //MRTとかに対応のためツイート内にあるツイートを指すURLを取り込む - var ma = Twitter.StatusUrlRegex.Matches(tab.RelationTargetPost.Text); - foreach (Match _match in ma) + var text = tab.RelationTargetPost.Text; + var ma = Twitter.StatusUrlRegex.Matches(text).Cast() + .Concat(Twitter.ThirdPartyStatusUrlRegex.Matches(text).Cast()); + foreach (var _match in ma) { Int64 _statusId; if (Int64.TryParse(_match.Groups["StatusId"].Value, out _statusId)) -- 2.11.0