OSDN Git Service

TwitterApiConnection.GetStreamAsyncメソッドを削除
authorKimura Youichi <kim.upsilon@bucyou.net>
Mon, 11 Dec 2023 16:32:28 +0000 (01:32 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Mon, 11 Dec 2023 17:09:58 +0000 (02:09 +0900)
OpenTween.Tests/Connection/TwitterApiConnectionTest.cs
OpenTween/Connection/IApiConnectionLegacy.cs
OpenTween/Connection/TwitterApiConnection.cs
OpenTween/ErrorReportHandler.cs

index bfb4b5f..cc89356 100644 (file)
@@ -281,52 +281,6 @@ namespace OpenTween.Connection
         }
 
         [Fact]
-        public async Task GetStreamAsync_Test()
-        {
-            using var mockHandler = new HttpMessageHandlerMock();
-            using var http = new HttpClient(mockHandler);
-            using var apiConnection = new TwitterApiConnection();
-            using var image = TestUtils.CreateDummyImage();
-            apiConnection.Http = http;
-
-            mockHandler.Enqueue(x =>
-            {
-                Assert.Equal(HttpMethod.Get, x.Method);
-                Assert.Equal("https://api.twitter.com/1.1/hoge/tetete.json",
-                    x.RequestUri.GetLeftPart(UriPartial.Path));
-
-                var query = HttpUtility.ParseQueryString(x.RequestUri.Query);
-
-                Assert.Equal("1111", query["aaaa"]);
-                Assert.Equal("2222", query["bbbb"]);
-
-                return new HttpResponseMessage(HttpStatusCode.OK)
-                {
-                    Content = new ByteArrayContent(image.Stream.ToArray()),
-                };
-            });
-
-            var endpoint = new Uri("hoge/tetete.json", UriKind.Relative);
-            var param = new Dictionary<string, string>
-            {
-                ["aaaa"] = "1111",
-                ["bbbb"] = "2222",
-            };
-
-            var stream = await apiConnection.GetStreamAsync(endpoint, param);
-
-            using (var memoryStream = new MemoryStream())
-            {
-                // 内容の比較のために MemoryStream にコピー
-                await stream.CopyToAsync(memoryStream);
-
-                Assert.Equal(image.Stream.ToArray(), memoryStream.ToArray());
-            }
-
-            Assert.Equal(0, mockHandler.QueueCount);
-        }
-
-        [Fact]
         public async Task PostLazyAsync_Test()
         {
             using var mockHandler = new HttpMessageHandlerMock();
index 7f364f6..9b9e7d8 100644 (file)
@@ -34,10 +34,6 @@ namespace OpenTween.Connection
     {
         Task<T> GetAsync<T>(Uri uri, IDictionary<string, string>? param, string? endpointName);
 
-        Task<Stream> GetStreamAsync(Uri uri, IDictionary<string, string>? param);
-
-        Task<Stream> GetStreamAsync(Uri uri, IDictionary<string, string>? param, string? endpointName);
-
         Task<Stream> GetStreamingStreamAsync(Uri uri, IDictionary<string, string>? param);
 
         Task<LazyJson<T>> PostLazyAsync<T>(Uri uri, IDictionary<string, string>? param);
index 7c7e578..bf81c23 100644 (file)
@@ -164,44 +164,6 @@ namespace OpenTween.Connection
             }
         }
 
-        public Task<Stream> GetStreamAsync(Uri uri, IDictionary<string, string>? param)
-            => this.GetStreamAsync(uri, param, null);
-
-        public async Task<Stream> GetStreamAsync(Uri uri, IDictionary<string, string>? param, string? endpointName)
-        {
-            // レートリミット規制中はAPIリクエストを送信せずに直ちにエラーを発生させる
-            if (endpointName != null)
-                this.ThrowIfRateLimitExceeded(endpointName);
-
-            var requestUri = new Uri(RestApiBase, uri);
-
-            if (param != null)
-                requestUri = new Uri(requestUri, "?" + MyCommon.BuildQueryString(param));
-
-            try
-            {
-                var response = await this.Http.GetAsync(requestUri)
-                    .ConfigureAwait(false);
-
-                if (endpointName != null)
-                    MyCommon.TwitterApiInfo.UpdateFromHeader(response.Headers, endpointName);
-
-                await TwitterApiConnection.CheckStatusCode(response)
-                    .ConfigureAwait(false);
-
-                return await response.Content.ReadAsStreamAsync()
-                    .ConfigureAwait(false);
-            }
-            catch (HttpRequestException ex)
-            {
-                throw TwitterApiException.CreateFromException(ex);
-            }
-            catch (OperationCanceledException ex)
-            {
-                throw TwitterApiException.CreateFromException(ex);
-            }
-        }
-
         public async Task<Stream> GetStreamingStreamAsync(Uri uri, IDictionary<string, string>? param)
         {
             var requestUri = new Uri(RestApiBase, uri);
index af9d572..166b172 100644 (file)
@@ -106,18 +106,6 @@ namespace OpenTween
                     return true;
             }
 
-            if (ex is TaskCanceledException cancelEx)
-            {
-                // ton.twitter.com の画像でタイムアウトした場合、try-catch で例外がキャッチできない
-                // https://osdn.net/ticket/browse.php?group_id=6526&tid=37433
-                var stackTrace = new StackTrace(cancelEx);
-                var lastFrameMethod = stackTrace.GetFrame(stackTrace.FrameCount - 1).GetMethod();
-                var matchClass = lastFrameMethod.ReflectedType == typeof(TwitterApiConnection);
-                var matchMethod = lastFrameMethod.Name == nameof(TwitterApiConnection.GetStreamAsync);
-                if (matchClass && matchMethod)
-                    return true;
-            }
-
             return false;
         }
     }