Change tweets to only show display text now.

This commit is contained in:
Maurice Parker 2020-04-17 10:18:59 -05:00
parent 984322453f
commit 687e1105f0
2 changed files with 38 additions and 4 deletions

View File

@ -13,16 +13,20 @@ struct Tweet: Codable {
let createdAt: Date?
let idStr: String?
let text: String?
let displayTextRange: [Int]?
let user: TwitterUser
let truncated: Bool
let retweeted: Bool
let extendedTweet: ExtendedTweet?
enum CodingKeys: String, CodingKey {
case createdAt = "created_at"
case idStr = "id_str"
case text = "text"
case displayTextRange = "display_text_range"
case user = "user"
case truncated = "truncated"
case retweeted = "retweeted"
case extendedTweet = "extended_tweet"
}
@ -30,6 +34,12 @@ struct Tweet: Codable {
struct ExtendedTweet: Codable {
let full_text: String?
let fullText: String?
let displayTextRange: [Int]?
enum CodingKeys: String, CodingKey {
case fullText = "full_text"
case displayTextRange = "display_text_range"
}
}

View File

@ -252,9 +252,9 @@ private extension TwitterFeedProvider {
externalURL: nil,
title: nil,
language: nil,
contentHTML: tweet.text,
contentText: tweet.text,
summary: tweet.text,
contentHTML: makeTweetHTML(tweet),
contentText: makeTweetText(tweet),
summary: nil,
imageURL: nil,
bannerImageURL: nil,
datePublished: tweet.createdAt,
@ -276,4 +276,28 @@ private extension TwitterFeedProvider {
return Set([ParsedAuthor(name: user.name, url: makeUserURL(user.screenName!), avatarURL: user.avatarURL, emailAddress: nil)])
}
func makeTweetText(_ tweet: Tweet) -> String? {
if tweet.truncated, let extendedText = tweet.extendedTweet?.fullText {
if let displayRange = tweet.extendedTweet?.displayTextRange, displayRange.count > 1 {
let startIndex = extendedText.index(extendedText.startIndex, offsetBy: displayRange[0])
let endIndex = extendedText.index(extendedText.startIndex, offsetBy: displayRange[1])
return String(extendedText[startIndex...endIndex])
} else {
return extendedText
}
} else {
if let text = tweet.text, let displayRange = tweet.displayTextRange {
let startIndex = text.index(text.startIndex, offsetBy: displayRange[0])
let endIndex = text.index(text.startIndex, offsetBy: displayRange[1])
return String(text[startIndex...endIndex])
} else {
return tweet.text
}
}
}
func makeTweetHTML(_ tweet: Tweet) -> String? {
return nil
}
}