OSDN Git Service

URLがうまくリンクされないバグ修正
authorkiri_feather <kiri_feather@users.sourceforge.jp>
Thu, 14 Apr 2011 12:21:17 +0000 (21:21 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sat, 18 Feb 2012 14:19:25 +0000 (23:19 +0900)
強制URL解決の時、クエリが落とされてリンクされるバグ修正

Tween/ShortUrl.vb
Tween/Twitter.vb

index 1c1e84c..689aba5 100644 (file)
@@ -149,7 +149,7 @@ Public Class ShortUrl
                         retUrlStr = urlEncodeMultibyteChar(httpVar.GetRedirectTo(tmpurlStr))
                         If retUrlStr.StartsWith("http") Then
                             retUrlStr = retUrlStr.Replace("""", "%22")  'ダブルコーテーションがあるとURL終端と判断されるため、これだけ再エンコード
-                            orgData = orgData.Replace("<a href=""" + orgUrl + """", "<a href=""" + retUrlStr + """")
+                            orgData = orgData.Replace("<a href=""" + tmpurlStr, "<a href=""" + retUrlStr)
                             SyncLock _lockObj
                                 If Not urlCache.ContainsKey(orgUrl) Then urlCache.Add(orgUrl, retUrlStr)
                             End SyncLock
index a3b9923..d21ed24 100644 (file)
@@ -2710,16 +2710,20 @@ Public Class Twitter
         Const url_valid_general_path_chars As String = "[a-z0-9!*';:=+$/%#\[\]\-_,~]"
         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 +
+        Const pth As String = "(?:" + url_balance_parens +
             "|@" + url_valid_general_path_chars + "+/" +
             "|[.,]?" + url_valid_general_path_chars + "+" +
-            ")?" +
-            url_valid_url_path_ending_chars + "?)?)"
+            ")"
+        Const pth2 As String = "(/(?:" +
+            pth + "+" + url_valid_url_path_ending_chars + "|" +
+            pth + "+" + url_valid_url_path_ending_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\.)" +
                                     url_valid_domain +
-                                    pth +
+                                    pth2 +
                                     qry +
                                     ")"
         '絶対パス表現のUriをリンクに置換