OSDN Git Service

PostClass.Mediaに pic.twitter.com などのURLのみを含めるようにする
authorKimura Youichi <kim.upsilon@bucyou.net>
Fri, 27 Nov 2015 09:57:11 +0000 (18:57 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Fri, 27 Nov 2015 17:54:44 +0000 (02:54 +0900)
ThumbnailGenerator などでは、PostClass.Media に加えて PostClass.GetExpandedUrls
の返値を見てサムネイル表示の対象となる URL を探す

OpenTween/Thumbnail/Services/TwitterComVideo.cs
OpenTween/Thumbnail/ThumbnailGenerator.cs
OpenTween/TweetThumbnail.cs
OpenTween/Twitter.cs

index 2d82bf4..c0b9524 100644 (file)
@@ -51,7 +51,7 @@ namespace OpenTween.Thumbnail.Services
         {
             // 前処理で動画用URLが準備されていればそれを使う
             var mediaInfo = post.Media.FirstOrDefault(x => x.Url == url);
-            if (mediaInfo.VideoUrl != null)
+            if (mediaInfo?.VideoUrl != null)
             {
                 return new ThumbnailInfo
                 {
index b394270..8caea6e 100644 (file)
@@ -219,9 +219,12 @@ namespace OpenTween.Thumbnail
         {
             var thumbnails = new List<ThumbnailInfo>();
 
-            foreach (var media in post.Media)
+            var expandedUrls = Enumerable.Concat(
+                post.GetExpandedUrls(), post.Media.Select(x => x.Url));
+
+            foreach (var expandedUrl in expandedUrls)
             {
-                var thumbInfo = await ThumbnailGenerator.GetThumbnailInfoAsync(media.Url, post, token)
+                var thumbInfo = await ThumbnailGenerator.GetThumbnailInfoAsync(expandedUrl, post, token)
                     .ConfigureAwait(false);
 
                 if (thumbInfo != null)
index 2651c71..c7b4e86 100644 (file)
@@ -67,7 +67,7 @@ namespace OpenTween
 
             this.scrollBar.Enabled = false;
 
-            if (post.Media.Count == 0 && post.PostGeo == null)
+            if (post.ExpandedUrls.Count == 0 && post.Media.Count == 0 && post.PostGeo == null)
             {
                 this.SetThumbnailCount(0);
                 return;
index 8161a0a..0913e87 100644 (file)
@@ -2689,21 +2689,10 @@ namespace OpenTween
             this.CheckStatusCode(res, content);
         }
 
-        public async Task<string> CreateHtmlAnchorAsync(string text, List<string> AtList, TwitterEntities entities, List<MediaInfo> media)
+        public string CreateHtmlAnchor(string text, List<string> AtList, TwitterEntities entities, List<MediaInfo> media)
         {
             if (entities != null)
             {
-                if (entities.Urls != null)
-                {
-                    foreach (var ent in entities.Urls)
-                    {
-                        var expandedUrl = await ShortUrl.Instance.ExpandUrlAsync(ent.ExpandedUrl)
-                            .ConfigureAwait(false);
-
-                        if (media != null && !media.Any(info => info.Url == expandedUrl))
-                            media.Add(new MediaInfo(expandedUrl));
-                    }
-                }
                 if (entities.Hashtags != null)
                 {
                     lock (this.LockObj)
@@ -2754,12 +2743,6 @@ namespace OpenTween
             return text;
         }
 
-        [Obsolete]
-        public string CreateHtmlAnchor(string text, List<string> AtList, TwitterEntities entities, List<MediaInfo> media)
-        {
-            return this.CreateHtmlAnchorAsync(text, AtList, entities, media).Result;
-        }
-
         /// <summary>
         /// Twitter APIから得たHTML形式のsource文字列を分析し、source名とURLに分離します
         /// </summary>