mastodon-ios/Mastodon/Extension/MastodonSDK/Mastodon+Entity+Account.swift

52 lines
1.3 KiB
Swift
Raw Normal View History

//
// Mastodon+Entity+Account.swift
// Mastodon
//
// Created by xiaojian sun on 2021/4/2.
//
import UIKit
import MastodonSDK
2021-07-23 13:10:27 +02:00
import MastodonMeta
extension Mastodon.Entity.Account: Hashable {
public func hash(into hasher: inout Hasher) {
hasher.combine(id)
}
public static func == (lhs: Mastodon.Entity.Account, rhs: Mastodon.Entity.Account) -> Bool {
return lhs.id == rhs.id
}
}
extension Mastodon.Entity.Account {
var displayNameWithFallback: String {
return !displayName.isEmpty ? displayName : username
}
}
extension Mastodon.Entity.Account {
public func avatarImageURL() -> URL? {
let string = UserDefaults.shared.preferredStaticAvatar ? avatarStatic ?? avatar : avatar
return URL(string: string)
}
public func avatarImageURLWithFallback(domain: String) -> URL {
return avatarImageURL() ?? URL(string: "https://\(domain)/avatars/original/missing.png")!
}
}
2021-07-23 13:10:27 +02:00
extension Mastodon.Entity.Account {
var emojiMeta: MastodonContent.Emojis {
2021-07-23 13:33:05 +02:00
let isAnimated = !UserDefaults.shared.preferredStaticEmoji
2021-07-23 13:10:27 +02:00
var dict = MastodonContent.Emojis()
for emoji in emojis ?? [] {
2021-07-23 13:33:05 +02:00
dict[emoji.shortcode] = isAnimated ? emoji.url : emoji.staticURL
2021-07-23 13:10:27 +02:00
}
return dict
}
}