OSDN Git Service

Twitter.PostStatusメソッドでautoPopulateReplyMetadataを常にtrueにし、excludeReplyUserIdsを指定可能にする
authorKimura Youichi <kim.upsilon@bucyou.net>
Sat, 24 Sep 2016 06:14:56 +0000 (15:14 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Sat, 11 Nov 2017 21:06:25 +0000 (06:06 +0900)
OpenTween/Connection/IMediaUploadService.cs
OpenTween/Connection/Imgur.cs
OpenTween/Connection/Mobypicture.cs
OpenTween/Connection/TwitterPhoto.cs
OpenTween/Tween.cs
OpenTween/Twitter.cs

index ede832e..f06b71f 100644 (file)
@@ -73,7 +73,7 @@ namespace OpenTween.Connection
         /// メディアのアップロードとツイートの投稿を行います
         /// </summary>
         /// <exception cref="WebApiException"/>
-        Task PostStatusAsync(string text, long? inReplyToStatusId, IMediaItem[] mediaItems);
+        Task PostStatusAsync(string text, long? inReplyToStatusId, IMediaItem[] mediaItems, long[] excludeReplyUserIds);
 
         /// <summary>
         /// 画像URLのために確保する必要のある文字数を返します
index f29abdf..5568c10 100644 (file)
@@ -98,7 +98,7 @@ namespace OpenTween.Connection
             return MaxFileSize;
         }
 
-        public async Task PostStatusAsync(string text, long? inReplyToStatusId, IMediaItem[] mediaItems)
+        public async Task PostStatusAsync(string text, long? inReplyToStatusId, IMediaItem[] mediaItems, long[] excludeReplyUserIds)
         {
             if (mediaItems == null)
                 throw new ArgumentNullException(nameof(mediaItems));
@@ -138,7 +138,7 @@ namespace OpenTween.Connection
 
             var textWithImageUrl = text + " " + imageUrl.Trim();
 
-            await this.twitter.PostStatus(textWithImageUrl, inReplyToStatusId)
+            await this.twitter.PostStatus(textWithImageUrl, inReplyToStatusId, excludeReplyUserIds: excludeReplyUserIds)
                 .ConfigureAwait(false);
         }
 
index be68f2d..694527e 100644 (file)
@@ -122,7 +122,7 @@ namespace OpenTween.Connection
             return MaxFileSize;
         }
 
-        public async Task PostStatusAsync(string text, long? inReplyToStatusId, IMediaItem[] mediaItems)
+        public async Task PostStatusAsync(string text, long? inReplyToStatusId, IMediaItem[] mediaItems, long[] excludeReplyUserIds)
         {
             if (mediaItems == null)
                 throw new ArgumentNullException(nameof(mediaItems));
@@ -147,7 +147,7 @@ namespace OpenTween.Connection
 
             var textWithImageUrl = text + " " + imageUrlElm.Value.Trim();
 
-            await this.twitter.PostStatus(textWithImageUrl, inReplyToStatusId)
+            await this.twitter.PostStatus(textWithImageUrl, inReplyToStatusId, excludeReplyUserIds: excludeReplyUserIds)
                 .ConfigureAwait(false);
         }
 
index 2924f1f..e2416d5 100644 (file)
@@ -78,7 +78,7 @@ namespace OpenTween.Connection
             return this.twitterConfig.PhotoSizeLimit;
         }
 
-        public async Task PostStatusAsync(string text, long? inReplyToStatusId, IMediaItem[] mediaItems)
+        public async Task PostStatusAsync(string text, long? inReplyToStatusId, IMediaItem[] mediaItems, long[] excludeReplyUserIds)
         {
             if (mediaItems == null)
                 throw new ArgumentNullException(nameof(mediaItems));
@@ -101,7 +101,7 @@ namespace OpenTween.Connection
             var mediaIds = await Task.WhenAll(uploadTasks)
                 .ConfigureAwait(false);
 
-            await this.tw.PostStatus(text, inReplyToStatusId, mediaIds)
+            await this.tw.PostStatus(text, inReplyToStatusId, mediaIds, excludeReplyUserIds)
                 .ConfigureAwait(false);
         }
 
index 65e8203..a9388c4 100644 (file)
@@ -318,6 +318,7 @@ namespace OpenTween
             public string status = "";
             public long? inReplyToId = null;
             public string inReplyToName = null;
+            public long[] excludeReplyUserIds = null;
             public string imageService = "";      //画像投稿サービス名
             public IMediaItem[] mediaItems = null;
             public PostingStatus()
@@ -2750,13 +2751,13 @@ namespace OpenTween
                 {
                     if (status.mediaItems == null || status.mediaItems.Length == 0)
                     {
-                        await this.tw.PostStatus(status.status, status.inReplyToId)
+                        await this.tw.PostStatus(status.status, status.inReplyToId, excludeReplyUserIds: status.excludeReplyUserIds)
                             .ConfigureAwait(false);
                     }
                     else
                     {
                         var service = ImageSelector.GetService(status.imageService);
-                        await service.PostStatusAsync(status.status, status.inReplyToId, status.mediaItems)
+                        await service.PostStatusAsync(status.status, status.inReplyToId, status.mediaItems, status.excludeReplyUserIds)
                             .ConfigureAwait(false);
                     }
                 });
index 3a13de2..4af5aa3 100644 (file)
@@ -278,7 +278,8 @@ namespace OpenTween
             return orgData;
         }
 
-        public async Task PostStatus(string postStr, long? reply_to, IReadOnlyList<long> mediaIds = null)
+        public async Task PostStatus(string postStr, long? reply_to, IReadOnlyList<long> mediaIds = null,
+            IReadOnlyList<long> excludeReplyUserIds = null)
         {
             this.CheckAccountState();
 
@@ -289,7 +290,8 @@ namespace OpenTween
                 return;
             }
 
-            var response = await this.Api.StatusesUpdate(postStr, reply_to, mediaIds)
+            var response = await this.Api.StatusesUpdate(postStr, reply_to, mediaIds,
+                    autoPopulateReplyMetadata: true, excludeReplyUserIds: excludeReplyUserIds)
                 .ConfigureAwait(false);
 
             var status = await response.LoadJsonAsync()