public int RetweetedCount { get; set; }
public long? RetweetedByUserId { get; set; }
public long? InReplyToUserId { get; set; }
- public Dictionary<string, string> Media { get; set; }
+ public Dictionary<string, List<string>> Media { get; set; }
public string RelTabName { get; set; }
public int FavoritedCount { get; set; }
{
RetweetedBy = "";
RelTabName = "";
- Media = new Dictionary<string, string>();
+ Media = new Dictionary<string, List<string>>();
ReplyToList = new List<string>();
}
var clone = (PostClass)this.MemberwiseClone();
clone.ReplyToList = new List<string>(this.ReplyToList);
clone.PostGeo = new StatusGeo { Lng = this.PostGeo.Lng, Lat = this.PostGeo.Lat };
- clone.Media = new Dictionary<string, string>(this.Media);
+ clone.Media = new Dictionary<string, List<string>>(this.Media);
return clone;
}
return retStr;
}
- public async Task<string> CreateHtmlAnchorAsync(string text, List<string> AtList, TwitterEntities entities, Dictionary<string, string> media)
+ public async Task<string> CreateHtmlAnchorAsync(string text, List<string> AtList, TwitterEntities entities, Dictionary<string, List<string>> media)
{
if (entities != null)
{
ent.ExpandedUrl = await ShortUrl.Instance.ExpandUrlAsync(ent.ExpandedUrl)
.ConfigureAwait(false);
- if (media != null && !media.ContainsKey(ent.Url))
- media.Add(ent.Url, ent.ExpandedUrl);
+ if (media != null)
+ {
+ List<string> mediaUrls;
+ if (!media.TryGetValue(ent.Url, out mediaUrls))
+ {
+ mediaUrls = new List<string>();
+ media.Add(ent.Url, mediaUrls);
+ }
+ else if (mediaUrls.Contains(ent.ExpandedUrl)) continue;
+ mediaUrls.Add(ent.ExpandedUrl);
+ }
}
}
if (entities.Hashtags != null)
}
if (entities.Media != null)
{
- foreach (var ent in entities.Media)
+ if (media != null)
{
- if (media != null && !media.ContainsKey(ent.Url))
- media.Add(ent.Url, ent.MediaUrl);
+ foreach (var ent in entities.Media)
+ {
+ List<string> mediaUrls;
+ if (!media.TryGetValue(ent.Url, out mediaUrls))
+ {
+ mediaUrls = new List<string>();
+ media.Add(ent.Url, mediaUrls);
+ }
+ else if (mediaUrls.Contains(ent.MediaUrl)) continue;
+ mediaUrls.Add(ent.MediaUrl);
+ }
}
}
}
}
[Obsolete]
- public string CreateHtmlAnchor(string text, List<string> AtList, TwitterEntities entities, Dictionary<string, string> media)
+ public string CreateHtmlAnchor(string text, List<string> AtList, TwitterEntities entities, Dictionary<string, List<string>> media)
{
return this.CreateHtmlAnchorAsync(text, AtList, entities, media).Result;
}