OSDN Git Service

画像投稿先のサービスから「yfrog」を削除
authorKimura Youichi <kim.upsilon@bucyou.net>
Wed, 8 Nov 2017 17:09:32 +0000 (02:09 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Wed, 8 Nov 2017 17:09:32 +0000 (02:09 +0900)
OpenTween/ApplicationSettings.cs
OpenTween/Connection/yfrog.cs [deleted file]
OpenTween/MediaSelector.cs
OpenTween/OpenTween.csproj
OpenTween/Resources/ChangeLog.txt

index 71df19b..1f487c5 100644 (file)
@@ -95,15 +95,6 @@ namespace OpenTween
         public const string TwitterConsumerSecret = "prTAs2fqLv12nHxlMoLQZT8AkpZt0yYb8A7ktGS2VYeRj0TddS";
 
         //=====================================================================
-        // yfrog
-        // http://stream.imageshack.us/api/ から取得できます。
-
-        /// <summary>
-        /// yfrog APIキー
-        /// </summary>
-        public const string YfrogApiKey = "HIDP42ZO6314ee2218e2995662bad5ae320c32f1";
-
-        //=====================================================================
         // Foursquare
         // https://developer.foursquare.com/ から取得できます。
 
diff --git a/OpenTween/Connection/yfrog.cs b/OpenTween/Connection/yfrog.cs
deleted file mode 100644 (file)
index f457c0b..0000000
+++ /dev/null
@@ -1,182 +0,0 @@
-// OpenTween - Client of Twitter
-// Copyright (c) 2007-2011 kiri_feather (@kiri_feather) <kiri.feather@gmail.com>
-//           (c) 2008-2011 Moz (@syo68k)
-//           (c) 2008-2011 takeshik (@takeshik) <http://www.takeshik.org/>
-//           (c) 2010-2011 anis774 (@anis774) <http://d.hatena.ne.jp/anis774/>
-//           (c) 2010-2011 fantasticswallow (@f_swallow) <http://twitter.com/f_swallow>
-//           (c) 2011      spinor (@tplantd) <http://d.hatena.ne.jp/spinor/>
-//           (c) 2014      kim_upsilon (@kim_upsilon) <https://upsilo.net/~upsilon/>
-// All rights reserved.
-//
-// This file is part of OpenTween.
-//
-// This program is free software; you can redistribute it and/or modify it
-// under the terms of the GNU General Public License as published by the Free
-// Software Foundation; either version 3 of the License, or (at your option)
-// any later version.
-//
-// This program is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-// or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-// for more details.
-//
-// You should have received a copy of the GNU General Public License along
-// with this program. If not, see <http://www.gnu.org/licenses/>, or write to
-// the Free Software Foundation, Inc., 51 Franklin Street - Fifth Floor,
-// Boston, MA 02110-1301, USA.
-
-using System;
-using System.Collections.Generic;
-using System.IO;
-using System.Linq;
-using System.Net;
-using System.Net.Http;
-using System.Threading.Tasks;
-using System.Xml;
-using System.Xml.Linq;
-using System.Xml.XPath;
-using OpenTween.Api;
-using OpenTween.Api.DataModel;
-
-namespace OpenTween.Connection
-{
-    public class yfrog : IMediaUploadService
-    {
-        private readonly string[] pictureExt = { ".jpg", ".jpeg", ".gif", ".png" };
-        private readonly long MaxFileSize = 5L * 1024 * 1024;
-
-        private readonly Twitter tw;
-        private readonly YfrogApi yfrogApi;
-
-        private TwitterConfiguration twitterConfig;
-
-        public yfrog(Twitter twitter, TwitterConfiguration twitterConfig)
-        {
-            this.tw = twitter;
-            this.twitterConfig = twitterConfig;
-
-            this.yfrogApi = new YfrogApi(twitter.Api);
-        }
-
-        public int MaxMediaCount
-        {
-            get { return 1; }
-        }
-
-        public string SupportedFormatsStrForDialog
-        {
-            get
-            {
-                return "Image Files(*.gif;*.jpg;*.jpeg;*.png)|*.gif;*.jpg;*.jpeg;*.png";
-            }
-        }
-
-        public bool CanUseAltText => false;
-
-        public bool CheckFileExtension(string fileExtension)
-        {
-            return this.pictureExt.Contains(fileExtension.ToLowerInvariant());
-        }
-
-        public bool CheckFileSize(string fileExtension, long fileSize)
-        {
-            var maxFileSize = this.GetMaxFileSize(fileExtension);
-            return maxFileSize == null || fileSize <= maxFileSize.Value;
-        }
-
-        public long? GetMaxFileSize(string fileExtension)
-        {
-            return MaxFileSize;
-        }
-
-        public async Task PostStatusAsync(string text, long? inReplyToStatusId, IMediaItem[] mediaItems)
-        {
-            if (mediaItems == null)
-                throw new ArgumentNullException(nameof(mediaItems));
-
-            if (mediaItems.Length != 1)
-                throw new ArgumentOutOfRangeException(nameof(mediaItems));
-
-            var item = mediaItems[0];
-
-            if (item == null)
-                throw new ArgumentException("Err:Media not specified.");
-
-            if (!item.Exists)
-                throw new ArgumentException("Err:Media not found.");
-
-            var xml = await this.yfrogApi.UploadFileAsync(item, text)
-                .ConfigureAwait(false);
-
-            var imageUrlElm = xml.XPathSelectElement("/rsp/mediaurl");
-            if (imageUrlElm == null)
-                throw new WebApiException("Invalid API response", xml.ToString());
-
-            var textWithImageUrl = text + " " + imageUrlElm.Value.Trim();
-
-            await this.tw.PostStatus(textWithImageUrl, inReplyToStatusId)
-                .ConfigureAwait(false);
-        }
-
-        public int GetReservedTextLength(int mediaCount)
-            => this.twitterConfig.ShortUrlLength + 1;
-
-        public void UpdateTwitterConfiguration(TwitterConfiguration config)
-        {
-            this.twitterConfig = config;
-        }
-
-        public class YfrogApi
-        {
-            private readonly HttpClient http;
-
-            private static readonly Uri UploadEndpoint = new Uri("https://yfrog.com/api/xauth_upload");
-
-            private static readonly Uri OAuthRealm = new Uri("http://api.twitter.com/");
-            private static readonly Uri AuthServiceProvider = new Uri("https://api.twitter.com/1.1/account/verify_credentials.json");
-
-            public YfrogApi(TwitterApi twitterApi)
-            {
-                var handler = twitterApi.CreateOAuthEchoHandler(AuthServiceProvider, OAuthRealm);
-
-                this.http = Networking.CreateHttpClient(handler);
-                this.http.Timeout = Networking.UploadImageTimeout;
-            }
-
-            /// <summary>
-            /// 画像のアップロードを行います
-            /// </summary>
-            /// <exception cref="WebApiException"/>
-            /// <exception cref="XmlException"/>
-            public async Task<XDocument> UploadFileAsync(IMediaItem item, string message)
-            {
-                // 参照: http://twitter.yfrog.com/page/api#a1
-
-                using (var request = new HttpRequestMessage(HttpMethod.Post, UploadEndpoint))
-                using (var multipart = new MultipartFormDataContent())
-                {
-                    request.Content = multipart;
-
-                    using (var apiKeyContent = new StringContent(ApplicationSettings.YfrogApiKey))
-                    using (var mediaStream = item.OpenRead())
-                    using (var mediaContent = new StreamContent(mediaStream))
-                    {
-                        multipart.Add(apiKeyContent, "key");
-                        multipart.Add(mediaContent, "media", item.Name);
-
-                        using (var response = await this.http.SendAsync(request).ConfigureAwait(false))
-                        {
-                            var responseText = await response.Content.ReadAsStringAsync()
-                                .ConfigureAwait(false);
-
-                            if (!response.IsSuccessStatusCode)
-                                throw new WebApiException(response.StatusCode.ToString(), responseText);
-
-                            return XDocument.Parse(responseText);
-                        }
-                    }
-                }
-            }
-        }
-    }
-}
index 094c82b..3b4ebbe 100644 (file)
@@ -155,7 +155,6 @@ namespace OpenTween
             this.pictureService = new Dictionary<string, IMediaUploadService> {
                 ["Twitter"] = new TwitterPhoto(tw, twitterConfig),
                 ["img.ly"] = new imgly(tw, twitterConfig),
-                ["yfrog"] = new yfrog(tw, twitterConfig),
                 ["Imgur"] = new Imgur(tw, twitterConfig),
                 ["Mobypicture"] = new Mobypicture(tw, twitterConfig),
             };
index 52cea07..014b97f 100644 (file)
       <DependentUpon>ListManage.cs</DependentUpon>
     </Compile>
     <Compile Include="Connection\TwitterPhoto.cs" />
-    <Compile Include="Connection\yfrog.cs" />
     <Compile Include="DetailsListView.cs">
       <SubType>Component</SubType>
     </Compile>
index 590cf7b..ecbb7cc 100644 (file)
@@ -1,7 +1,7 @@
 更新履歴
 
 ==== Ver 1.4.1-dev(xxxx/xx/xx)
- * CHG: サービスが終了した「ついっぷるフォト」を画像投稿先から削除
+ * CHG: サービスが終了した「yfrog」「ついっぷるフォト」を画像投稿先から削除
  * FIX: 投稿欄の複数行表示が次回起動時に保持されない不具合を修正
 
 ==== Ver 1.4.0(2017/10/30)