OSDN Git Service

強制短縮URL解決を試みると、twitter.com/#!/xxx/xxx のパスまで含めたuri文字列が取得できないので、twitter.comは強制除外。他のパターンは不明。
authorkiri_feather <kiri_feather@users.sourceforge.jp>
Thu, 7 Apr 2011 09:51:15 +0000 (18:51 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sat, 18 Feb 2012 14:19:24 +0000 (23:19 +0900)
強制短縮URL解決の設定初期値をオフに。
ListManageの一部英語リソース漏れ対応。
CreateHtmlAnchorの正規表現見直し

Tween/ListManage.vb
Tween/My Project/Resources.Designer.vb
Tween/My Project/Resources.en.resx
Tween/My Project/Resources.resx
Tween/My Project/Resources.zh-CHS.resx
Tween/Setting/SettingCommon.vb
Tween/ShortUrl.vb
Tween/Twitter.vb

index 484d943..54acf70 100644 (file)
@@ -71,7 +71,7 @@ Public Class ListManage
             Me.UserList.Items.Add(user)
         Next
 
-        Me.GetMoreUsersButton.Text = IIf(Me.UserList.Items.Count > 0, "さらに取得(&M)", "取得(&M)").ToString()
+        Me.GetMoreUsersButton.Text = IIf(Me.UserList.Items.Count > 0, My.Resources.ListManageGetMoreUsers2, My.Resources.ListManageGetMoreUsers1).ToString()
     End Sub
 
     Private Sub EditCheckBox_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EditCheckBox.CheckedChanged
@@ -159,7 +159,7 @@ Public Class ListManage
     Private Sub GetListMembersCallback(ByVal result As String)
         If result = Me.ListsList.SelectedItem.ToString Then
             Me.ListsList_SelectedIndexChanged(Me.ListsList, EventArgs.Empty)
-            Me.GetMoreUsersButton.Text = "さらに取得(&M)"
+            Me.GetMoreUsersButton.Text = My.Resources.ListManageGetMoreUsers1
         Else
             MessageBox.Show(String.Format(My.Resources.ListManageGetListMembersCallback1, result))
         End If
index 68f3ece..68a8afa 100644 (file)
@@ -550,22 +550,21 @@ Namespace My.Resources
         '''<summary>
         '''  更新履歴
         '''
-        '''==== Ver 1.0.0.0(2011/02/26)
-        ''' * ListView追加時の画面ちらつき対処
-        ''' * OS復帰時30秒経過後にREST取得を走らせるように
-        ''' * OutOfMemoryが発生する問題に対処
-        ''' * 再起動時に例外が発生する問題に対処(したつもり)
-        ''' * メモリを食いつぶす問題に対処
-        ''' * しばらく応答しなくなる問題に対処
-        ''' * bit.ly/j.mpでのURL短縮が出来なくなった問題に対処
-        ''' * タブ削除のUndo(編集メニュー)が直前のものしか出来なかったが、複数Undo出来るように変更
-        ''' * 1時間ごとにフォロワー情報再取得
-        ''' * 発言ソートで、ソートキーが日時以外の場合にstable sortに
-        ''' * 新着通知オフ時の強制イベント通知の初期設定値をFalseへ
-        ''' * 設定画面の動作→イベント受信時、を表示下へ移動
-        ''' * 設定画面のUserStreamパネルの内容を基本→更新間隔へ移動、パネル削除
-        ''' * 投稿時取得をUserStream有効時でも効くように戻し
-        ''' * gキーの関連発言表示でツイートのURLが含まれている場合に関連発言タブ [残りの文字列は切り詰められました]&quot;; に類似しているローカライズされた文字列を検索します。
+        '''==== Ver 1.0.0.2(2011/03/29)
+        ''' * 発言削除時に未読数がずれるバグ修正
+        ''' * Favorite追加・削除時の発言色が反映されないバグ修正
+        ''' * 不正画像対策強化
+        ''' * 発言リストの選択状態がずれる問題に対処
+        ''' * ユーザー発言タブで振分条件が追加できるバグ修正
+        ''' * タブ選択画面にユーザー発言タブが表示されるバグ修正
+        ''' * TwitterのユーザープロフィールURLをCtrl+クリック時は、設定の「Tweenタブ表示orWeb表示の設定」と逆の動作をするよう変更
+        ''' * ユーザーのアイコン画像が表示されないバグ修正
+        ''' * 画像サムネイル表示サービスにpikubo、ニコニコ静画を追加
+        ''' * User Streams有効時のイベント一覧をCSVファイル保存できるように
+        ''' * Ctrl-j/kでのカーソル移動が出来ないバグ修正
+        ''' * 全取得停止機能追加(ファイル→「All Refresh Stop」)
+        ''' * 発言リストで発言をダブルクリックした際の動作を設定で変更可能に
+        ''' * ユーザー定義のURLを開く機能を追加。設定画面のURL指定に{ID}を [残りの文字列は切り詰められました]&quot;; に類似しているローカライズされた文字列を検索します。
         '''</summary>
         Friend ReadOnly Property ChangeLog() As String
             Get
@@ -1410,6 +1409,24 @@ Namespace My.Resources
         End Property
         
         '''<summary>
+        '''  取得(&amp;M) に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property ListManageGetMoreUsers1() As String
+            Get
+                Return ResourceManager.GetString("ListManageGetMoreUsers1", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
+        '''  さらに取得(&amp;M) に類似しているローカライズされた文字列を検索します。
+        '''</summary>
+        Friend ReadOnly Property ListManageGetMoreUsers2() As String
+            Get
+                Return ResourceManager.GetString("ListManageGetMoreUsers2", resourceCulture)
+            End Get
+        End Property
+        
+        '''<summary>
         '''  リスト名を入力してください に類似しているローカライズされた文字列を検索します。
         '''</summary>
         Friend ReadOnly Property ListManageOKButton1() As String
index 8979da2..39eaa08 100644 (file)
   <data name="SettingAPIUse2" xml:space="preserve">
     <value>Consumption API count if using Users Streams :  {0} / h</value>
   </data>
+  <data name="ListManageGetMoreUsers1" xml:space="preserve">
+    <value>Get members(&amp;M)</value>
+  </data>
+  <data name="ListManageGetMoreUsers2" xml:space="preserve">
+    <value>Get more(&amp;M)</value>
+  </data>
 </root>
\ No newline at end of file
index 8c3d92a..c9ebb88 100644 (file)
   <data name="UpdateBlockUserText3" xml:space="preserve">
     <value>BlockIds取得完了</value>
   </data>
+  <data name="ListManageGetMoreUsers1" xml:space="preserve">
+    <value>取得(&amp;M)</value>
+  </data>
+  <data name="ListManageGetMoreUsers2" xml:space="preserve">
+    <value>さらに取得(&amp;M)</value>
+  </data>
 </root>
\ No newline at end of file
index 934acdc..a0f9e2a 100644 (file)
   <data name="TabUsageTypeName_UserTimeline" xml:space="preserve">
     <value>UserTimeline</value>
   </data>
+  <data name="ListManageGetMoreUsers1" xml:space="preserve">
+    <value>Get members(&amp;M)</value>
+  </data>
+  <data name="ListManageGetMoreUsers2" xml:space="preserve">
+    <value>Get more(&amp;M)</value>
+  </data>
 </root>
\ No newline at end of file
index 9621bfe..ab6fd31 100644 (file)
@@ -118,7 +118,7 @@ Public Class SettingCommon
     Public DispLatestPost As DispTitleEnum = DispTitleEnum.Post
     Public SortOrderLock As Boolean = False
     Public TinyUrlResolve As Boolean = True
-    Public ShortUrlForceResolve As Boolean = True
+    Public ShortUrlForceResolve As Boolean = False
     Public PeriodAdjust As Boolean = True
     Public StartupVersion As Boolean = True
     Public StartupFollowers As Boolean = True
index 0214ace..1c1e84c 100644 (file)
@@ -120,13 +120,13 @@ Public Class ShortUrl
                 End If
             End SyncLock
 
-            Dim m As MatchCollection = Regex.Matches(orgData, "<a href=""(?<svc>http://.+?/)(?<path>[^""]+)""", RegexOptions.IgnoreCase)
+            Dim m As MatchCollection = Regex.Matches(orgData, "<a href=""(?<svc>http://.+?/)(?<path>[^""]+)?""", RegexOptions.IgnoreCase)
             Dim urlList As New List(Of String)
             For Each orgUrlMatch As Match In m
                 Dim orgUrl As String = orgUrlMatch.Result("${svc}")
                 Dim orgUrlPath As String = orgUrlMatch.Result("${path}")
                 If (_isForceResolve OrElse Array.IndexOf(_ShortUrlService, orgUrl) > -1) AndAlso _
-                   Not urlList.Contains(orgUrl + orgUrlPath) Then
+                   Not urlList.Contains(orgUrl + orgUrlPath) AndAlso orgUrl <> "http://twitter.com/" Then
                     SyncLock _lockObj
                         urlList.Add(orgUrl + orgUrlPath)
                     End SyncLock
index 11e96ad..a3b9923 100644 (file)
@@ -2706,17 +2706,19 @@ Public Class Twitter
         If Text Is Nothing Then Return Nothing
         Dim retStr As String = Text.Replace("&gt;", "<<<<<tweenだいなり>>>>>").Replace("&lt;", "<<<<<tweenしょうなり>>>>>")
         'uriの正規表現
+        Const url_valid_domain As String = "(?<domain>(?:[\.-]|[^\p{P}\s])+\.[a-z]{2,}(?::[0-9]+)?)"
         Const url_valid_general_path_chars As String = "[a-z0-9!*';:=+$/%#\[\]\-_,~]"
-        Const url_valid_url_path_ending_chars As String = "[a-z0-9=#/]"
-        Const pth As String = "(?<path>/(?:(?:\(" + url_valid_general_path_chars + "+\))" +
+        Const url_balance_parens As String = "(?:\(" + url_valid_general_path_chars + "+\))"
+        Const url_valid_url_path_ending_chars As String = "(?:[a-z0-9=_#/\-\+]+|" + url_balance_parens + ")"
+        Const pth As String = "(?<path>(/(?:" + url_balance_parens +
             "|@" + url_valid_general_path_chars + "+/" +
-            "|[.,]?" + url_valid_general_path_chars +
-            ")*" +
-            url_valid_url_path_ending_chars + "?)?"
+            "|[.,]?" + url_valid_general_path_chars + "+" +
+            ")?" +
+            url_valid_url_path_ending_chars + "?)?)"
         Const qry As String = "(?<query>\?[a-z0-9!*'();:&=+$/%#\[\]\-_.,~]*[a-z0-9_&=#])?"
         Const rgUrl As String = "(?<before>(?:[^\""':!=]|^|\:))" +
                                     "(?<url>(?<protocol>https?://|www\.)" +
-                                    "(?<domain>(?:[\.-]|[^\p{P}\s])+\.[a-z]{2,}(?::[0-9]+)?)" +
+                                    url_valid_domain +
                                     pth +
                                     qry +
                                     ")"