OSDN Git Service

「自分がRTした自分のツイート」に対して削除機能を実行すると元ツイートが削除される不具合を修正 (thx @a4lg!)
authorKimura Youichi <kim.upsilon@bucyou.net>
Fri, 28 Oct 2016 02:18:09 +0000 (11:18 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Fri, 28 Oct 2016 02:23:32 +0000 (11:23 +0900)
fc9f64e2 の修正ミスで post.StatusId と post.RetweetedId の両方に対して削除が行われていた
https://osdn.net/ticket/browse.php?group_id=6526&tid=36679

Fixes: fc9f64e2 ("「自分がRTした自分のツイート」に対して削除機能を実行すると元ツイートが削除される不具合を修正")

OpenTween/Resources/ChangeLog.txt
OpenTween/Tween.cs

index 8b230a4..b6a3b75 100644 (file)
@@ -7,6 +7,8 @@
  * FIX: Bing翻訳機能が使用できなくなっていた問題を修正
  * FIX: 未読発言への移動時にエラーが発生する不具合を修正 (thx @nue_of_k!)
  * FIX: ツイートの削除時に「(DELETED)」の表示がされなくなっていた不具合を修正
+ * FIX: 「自分がRTした自分のツイート」に削除機能を使用すると、RTの取り消しではなくRT元のツイートが削除される不具合を修正 (thx @a4lg!)
+  - 同現象に対して v1.3.5 で適切に修正できていなかった不具合です
 
 ==== Ver 1.3.5(2016/10/01)
  * NEW: 140文字を越えるツイートの表示に対応しました
index d932def..1089ffc 100644 (file)
@@ -3475,23 +3475,27 @@ namespace OpenTween
                         else
                         {
                             if (post.RetweetedByUserId == this.tw.UserId)
+                            {
                                 // 自分が RT したツイート (自分が RT した自分のツイートも含む)
                                 //   => RT を取り消し
                                 await this.twitterApi.StatusesDestroy(post.StatusId)
                                     .IgnoreResponse();
-
-                            if (post.UserId == this.tw.UserId)
+                            }
+                            else
                             {
-                                if (post.RetweetedId != null)
-                                    // 他人に RT された自分のツイート
-                                    //   => RT 元の自分のツイートを削除
-                                    await this.twitterApi.StatusesDestroy(post.RetweetedId.Value)
-                                        .IgnoreResponse();
-                                else
-                                    // 自分のツイート
-                                    //   => ツイートを削除
-                                    await this.twitterApi.StatusesDestroy(post.StatusId)
-                                        .IgnoreResponse();
+                                if (post.UserId == this.tw.UserId)
+                                {
+                                    if (post.RetweetedId != null)
+                                        // 他人に RT された自分のツイート
+                                        //   => RT 元の自分のツイートを削除
+                                        await this.twitterApi.StatusesDestroy(post.RetweetedId.Value)
+                                            .IgnoreResponse();
+                                    else
+                                        // 自分のツイート
+                                        //   => ツイートを削除
+                                        await this.twitterApi.StatusesDestroy(post.StatusId)
+                                            .IgnoreResponse();
+                                }
                             }
                         }
                     }