diff --git a/Frameworks/Account/FeedProvider/Twitter/Tweet.swift b/Frameworks/Account/FeedProvider/Twitter/Tweet.swift index 6e8aecbdc..3da8930c0 100644 --- a/Frameworks/Account/FeedProvider/Twitter/Tweet.swift +++ b/Frameworks/Account/FeedProvider/Twitter/Tweet.swift @@ -8,7 +8,7 @@ import Foundation -struct Tweet: Codable { +final class Tweet: Codable { let createdAt: Date? let idStr: String? @@ -17,6 +17,7 @@ struct Tweet: Codable { let user: TwitterUser let truncated: Bool let retweeted: Bool + let retweetedStatus: Tweet? enum CodingKeys: String, CodingKey { case createdAt = "created_at" @@ -26,6 +27,7 @@ struct Tweet: Codable { case user = "user" case truncated = "truncated" case retweeted = "retweeted" + case retweetedStatus = "retweeted_status" } } diff --git a/Frameworks/Account/FeedProvider/Twitter/TwitterFeedProvider.swift b/Frameworks/Account/FeedProvider/Twitter/TwitterFeedProvider.swift index 4626b6cd8..d10852912 100644 --- a/Frameworks/Account/FeedProvider/Twitter/TwitterFeedProvider.swift +++ b/Frameworks/Account/FeedProvider/Twitter/TwitterFeedProvider.swift @@ -283,7 +283,8 @@ private extension TwitterFeedProvider { } func makeTweetText(_ tweet: Tweet) -> String? { - if let text = tweet.fullText, let displayRange = tweet.displayTextRange, displayRange.count > 1, + let tweetToUse = tweet.retweetedStatus != nil ? tweet.retweetedStatus! : tweet + if let text = tweetToUse.fullText, let displayRange = tweetToUse.displayTextRange, displayRange.count > 1, let startIndex = text.index(text.startIndex, offsetBy: displayRange[0], limitedBy: text.endIndex), let endIndex = text.index(text.startIndex, offsetBy: displayRange[1], limitedBy: text.endIndex) { return String(text[startIndex..