69 lines
1.8 KiB
Kotlin
69 lines
1.8 KiB
Kotlin
package jp.juggler.subwaytooter.api.entity
|
|
|
|
import jp.juggler.subwaytooter.api.TootParser
|
|
import jp.juggler.subwaytooter.pref
|
|
import jp.juggler.subwaytooter.util.DecodeOptions
|
|
import jp.juggler.util.JsonObject
|
|
import jp.juggler.util.filterNotEmpty
|
|
|
|
class TootCard(
|
|
|
|
// The url associated with the card
|
|
val url : String?,
|
|
|
|
// The title of the card
|
|
val title : String?,
|
|
|
|
// The card description
|
|
val description : String?,
|
|
|
|
// The image associated with the card, if any
|
|
val image : String?,
|
|
|
|
val type : String?,
|
|
val author_name : String? = null,
|
|
val author_url : String? = null,
|
|
val provider_name : String? = null,
|
|
val provider_url : String? = null,
|
|
|
|
val blurhash : String? = null,
|
|
|
|
val originalStatus : TootStatus? = null
|
|
) {
|
|
|
|
constructor(src : JsonObject) : this(
|
|
url = src.string("url"),
|
|
title = src.string("title"),
|
|
description = src.string("description"),
|
|
image = src.string("image"),
|
|
|
|
type = src.string("type"),
|
|
author_name = src.string("author_name"),
|
|
author_url = src.string("author_url"),
|
|
provider_name = src.string("provider_name"),
|
|
provider_url = src.string("provider_url"),
|
|
blurhash = src.string("blurhash")
|
|
)
|
|
|
|
constructor(parser : TootParser, src : TootStatus) : this(
|
|
originalStatus = src,
|
|
url = src.url,
|
|
title = "${src.account.display_name} @${parser.getFullAcct(src.account.acct).pretty}",
|
|
description = src.spoiler_text.filterNotEmpty()
|
|
?: if(parser.serviceType == ServiceType.MISSKEY) {
|
|
src.content
|
|
} else {
|
|
DecodeOptions(
|
|
context = parser.context,
|
|
decodeEmoji = true,
|
|
mentionDefaultHostDomain = src.account
|
|
).decodeHTML(src.content ?: "").toString()
|
|
},
|
|
image = src.media_attachments
|
|
?.firstOrNull()
|
|
?.urlForThumbnail(parser.context.pref())
|
|
?: src.account.avatar_static,
|
|
type = "photo"
|
|
)
|
|
}
|