namespace OpenTween.Api.DataModel
{
- // 参照: https://dev.twitter.com/docs/platform-objects/entities
+ // 参照: https://developer.twitter.com/en/docs/tweets/data-dictionary/overview/entities-object
[DataContract]
public class TwitterEntities : IEnumerable<TwitterEntity>
[DataMember(Name = "media", IsRequired = false)]
public TwitterEntityMedia[] Media { get; set; }
+ [DataMember(Name = "symbols", IsRequired = false)]
+ public TwitterEntitySymbol[] Symbols { get; set; }
+
[DataMember(Name = "urls", IsRequired = false)]
public TwitterEntityUrl[] Urls { get; set; }
if (this.Hashtags != null)
entities = entities.Concat(this.Hashtags);
+
if (this.Media != null)
entities = entities.Concat(this.Media);
+
+ if (this.Symbols != null)
+ entities = entities.Concat(this.Symbols);
+
if (this.Urls != null)
entities = entities.Concat(this.Urls);
+
if (this.UserMentions != null)
entities = entities.Concat(this.UserMentions);
}
IEnumerator IEnumerable.GetEnumerator()
- {
- return this.GetEnumerator();
- }
+ => this.GetEnumerator();
}
[DataContract]
[DataContract]
public class TwitterEntityMedia : TwitterEntityUrl
{
+ [DataMember(Name = "additional_media_info", IsRequired = false)]
+ public TwitterMediaAdditionalInfo AdditionalMediaInfo { get; set; }
+
[DataMember(Name = "id")]
public long Id { get; set; }
}
[DataContract]
+ public class TwitterMediaAdditionalInfo
+ {
+ [DataMember(Name = "title")]
+ public string Title { get; set; }
+
+ [DataMember(Name = "description")]
+ public string Description { get; set; }
+
+ [DataMember(Name = "embeddable")]
+ public bool Embeddable { get; set; }
+
+ [DataMember(Name = "monetizable")]
+ public bool Monetizable { get; set; }
+ }
+
+ [DataContract]
+ public class TwitterEntitySymbol : TwitterEntity
+ {
+ [DataMember(Name = "text")]
+ public string Text { get; set; }
+ }
+
+ [DataContract]
public class TwitterEntityUrl : TwitterEntity
{
[DataMember(Name = "display_url")]
return new TwitterEntities
{
- Hashtags = this.ExtendedEntities.Hashtags ?? this.Entities.Hashtags,
+ Hashtags = this.Entities.Hashtags,
Media = this.ExtendedEntities.Media ?? this.Entities.Media,
- Urls = this.ExtendedEntities.Urls ?? this.Entities.Urls,
- UserMentions = this.ExtendedEntities.UserMentions ?? this.Entities.UserMentions,
+ Symbols = this.Entities.Symbols,
+ Urls = this.Entities.Urls,
+ UserMentions = this.Entities.UserMentions,
};
}
}