From d67a5f9cfc5a0bce6d8e9e4b185218664acf6103 Mon Sep 17 00:00:00 2001 From: Kimura Youichi Date: Mon, 5 May 2014 21:23:57 +0900 Subject: [PATCH] =?utf8?q?TwitterDataModel.Configuration=20=E3=82=92=20Twi?= =?utf8?q?tterConfiguration=20=E3=81=AB=E7=A7=BB=E8=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- OpenTween/Api/TwitterConfiguration.cs | 80 +++++++++++++++++++++++++++++++++++ OpenTween/Api/TwitterDataModel.cs | 29 ------------- OpenTween/AppendSettingDialog.cs | 2 +- OpenTween/OpenTween.csproj | 1 + OpenTween/Twitter.cs | 4 +- 5 files changed, 84 insertions(+), 32 deletions(-) create mode 100644 OpenTween/Api/TwitterConfiguration.cs diff --git a/OpenTween/Api/TwitterConfiguration.cs b/OpenTween/Api/TwitterConfiguration.cs new file mode 100644 index 00000000..f7d9e084 --- /dev/null +++ b/OpenTween/Api/TwitterConfiguration.cs @@ -0,0 +1,80 @@ +// OpenTween - Client of Twitter +// Copyright (c) 2007-2011 kiri_feather (@kiri_feather) +// (c) 2008-2011 Moz (@syo68k) +// (c) 2008-2011 takeshik (@takeshik) +// (c) 2010-2011 anis774 (@anis774) +// (c) 2010-2011 fantasticswallow (@f_swallow) +// (c) 2011 Egtra (@egtra) +// (c) 2013 kim_upsilon (@kim_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 , 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.Linq; +using System.Runtime.Serialization; +using System.Text; +using System.Threading.Tasks; + +namespace OpenTween.Api +{ + [DataContract] + public class TwitterConfiguration + { + [DataMember(Name = "characters_reserved_per_media")] + public int CharactersReservedPerMedia { get; set; } + + [DataMember(Name = "photo_size_limit")] + public int PhotoSizeLimit { get; set; } + + [DataMember(Name = "photo_sizes")] + public TwitterMediaSizes PhotoSizes { get; set; } + + [DataMember(Name = "non_username_paths")] + public string[] NonUsernamePaths { get; set; } + + [DataMember(Name = "short_url_length")] + public int ShortUrlLength { get; set; } + + [DataMember(Name = "short_url_length_https")] + public int ShortUrlLengthHttps { get; set; } + + [DataMember(Name = "max_media_per_upload")] + public int MaxMediaPerUpload { get; set; } + + /// + public static TwitterConfiguration ParseJson(string json) + { + return MyCommon.CreateDataFromJson(json); + } + + /// + /// 設定が取得できるまでの間に代わりに使用する適当な値を返します + /// + public static TwitterConfiguration DefaultConfiguration() + { + return new TwitterConfiguration + { + CharactersReservedPerMedia = 20, + ShortUrlLength = 19, + ShortUrlLengthHttps = 20, + }; + } + } +} diff --git a/OpenTween/Api/TwitterDataModel.cs b/OpenTween/Api/TwitterDataModel.cs index 378f15e0..421db2cd 100644 --- a/OpenTween/Api/TwitterDataModel.cs +++ b/OpenTween/Api/TwitterDataModel.cs @@ -408,34 +408,5 @@ namespace OpenTween.Api [DataMember(Name = "query")] public string Query; [DataMember(Name = "max_id_str")] public string MaxIdStr; } - - [DataContract] - public class PhotoSize - { - [DataMember(Name = "h")] public int Height; - [DataMember(Name = "w")] public int Width; - [DataMember(Name = "resize")] public string Resize; - } - - [DataContract] - public class PhotoType - { - [DataMember(Name = "large")] public PhotoSize LargeSize; - [DataMember(Name = "medium")] public PhotoSize MediumSize; - [DataMember(Name = "small")] public PhotoSize SmallSize; - [DataMember(Name = "thumb")] public PhotoSize ThumbSize; - } - - [DataContract] - public class Configuration - { - [DataMember(Name = "characters_reserved_per_media")] public int CharactersReservedPerMedia = 20; - [DataMember(Name = "photo_size_limit")] public int PhotoSizeLimit; - [DataMember(Name = "photo_sizes")] public PhotoType PhotoSizes; - [DataMember(Name = "non_username_paths")] public string[] NonUsernamePaths; - [DataMember(Name = "short_url_length")] public int ShortUrlLength = 19; - [DataMember(Name = "short_url_length_https")] public int ShortUrlLengthHttps = 20; - [DataMember(Name = "max_media_per_upload")] public int MaxMediaPerUpload; - } } } diff --git a/OpenTween/AppendSettingDialog.cs b/OpenTween/AppendSettingDialog.cs index bbd9b318..4ccf3cfd 100644 --- a/OpenTween/AppendSettingDialog.cs +++ b/OpenTween/AppendSettingDialog.cs @@ -68,7 +68,7 @@ namespace OpenTween public bool IsRemoveSameEvent; public bool IsNotifyUseGrowl; - public TwitterDataModel.Configuration TwitterConfiguration = new TwitterDataModel.Configuration(); + public TwitterConfiguration TwitterConfiguration = TwitterConfiguration.DefaultConfiguration(); private string _pin; diff --git a/OpenTween/OpenTween.csproj b/OpenTween/OpenTween.csproj index abffadd5..f1032aa2 100644 --- a/OpenTween/OpenTween.csproj +++ b/OpenTween/OpenTween.csproj @@ -62,6 +62,7 @@ + diff --git a/OpenTween/Twitter.cs b/OpenTween/Twitter.cs index f753968f..c12add00 100644 --- a/OpenTween/Twitter.cs +++ b/OpenTween/Twitter.cs @@ -2455,7 +2455,7 @@ namespace OpenTween /// t.co の文字列長などの設定情報を取得します /// /// - public TwitterDataModel.Configuration ConfigurationApi() + public TwitterConfiguration ConfigurationApi() { HttpStatusCode res; var content = ""; @@ -2474,7 +2474,7 @@ namespace OpenTween try { - return MyCommon.CreateDataFromJson(content); + return TwitterConfiguration.ParseJson(content); } catch(SerializationException e) { -- 2.11.0