mirror of
https://github.com/metabolist/metatext.git
synced 2024-05-18 08:23:00 +00:00
62 lines
2.1 KiB
Swift
62 lines
2.1 KiB
Swift
// Copyright © 2020 Metabolist. All rights reserved.
|
|
|
|
import Foundation
|
|
import GRDB
|
|
import Mastodon
|
|
|
|
extension Status {
|
|
func save(_ db: Database) throws {
|
|
try account.save(db)
|
|
|
|
if let reblog = reblog {
|
|
try reblog.account.save(db)
|
|
try StoredStatus(status: reblog).save(db)
|
|
}
|
|
|
|
try StoredStatus(status: self).save(db)
|
|
}
|
|
|
|
convenience init(statusResult: StatusResult) {
|
|
var reblog: Status?
|
|
|
|
if let reblogResult = statusResult.reblog, let reblogAccount = statusResult.reblogAccount {
|
|
reblog = Status(storedStatus: reblogResult, account: reblogAccount, reblog: nil)
|
|
}
|
|
|
|
self.init(storedStatus: statusResult.status, account: statusResult.account, reblog: reblog)
|
|
}
|
|
|
|
convenience init(storedStatus: StoredStatus, account: Account, reblog: Status?) {
|
|
self.init(
|
|
id: storedStatus.id,
|
|
uri: storedStatus.uri,
|
|
createdAt: storedStatus.createdAt,
|
|
account: account,
|
|
content: storedStatus.content,
|
|
visibility: storedStatus.visibility,
|
|
sensitive: storedStatus.sensitive,
|
|
spoilerText: storedStatus.spoilerText,
|
|
mediaAttachments: storedStatus.mediaAttachments,
|
|
mentions: storedStatus.mentions,
|
|
tags: storedStatus.tags,
|
|
emojis: storedStatus.emojis,
|
|
reblogsCount: storedStatus.reblogsCount,
|
|
favouritesCount: storedStatus.favouritesCount,
|
|
repliesCount: storedStatus.repliesCount,
|
|
application: storedStatus.application,
|
|
url: storedStatus.url,
|
|
inReplyToId: storedStatus.inReplyToId,
|
|
inReplyToAccountId: storedStatus.inReplyToAccountId,
|
|
reblog: reblog,
|
|
poll: storedStatus.poll,
|
|
card: storedStatus.card,
|
|
language: storedStatus.language,
|
|
text: storedStatus.text,
|
|
favourited: storedStatus.favourited,
|
|
reblogged: storedStatus.reblogged,
|
|
muted: storedStatus.muted,
|
|
bookmarked: storedStatus.bookmarked,
|
|
pinned: storedStatus.pinned)
|
|
}
|
|
}
|