mirror of https://github.com/Chocobozzz/PeerTube
50 lines
1.7 KiB
TypeScript
50 lines
1.7 KiB
TypeScript
import { Account as AccountInterface } from '../../../../../../shared/models/actors'
|
|
import { VideoComment as VideoCommentServerModel, VideoCommentCreate } from '../../../../../../shared/models/videos/video-comment.model'
|
|
import { Actor } from '@app/shared/actor/actor.model'
|
|
import { getAbsoluteAPIUrl } from '@app/shared/misc/utils'
|
|
|
|
export class VideoComment implements VideoCommentServerModel {
|
|
id: number
|
|
url: string
|
|
text: string
|
|
threadId: number
|
|
inReplyToCommentId: number
|
|
videoId: number
|
|
createdAt: Date | string
|
|
updatedAt: Date | string
|
|
deletedAt: Date | string
|
|
isDeleted: boolean
|
|
account: AccountInterface
|
|
totalRepliesFromVideoAuthor: number
|
|
totalReplies: number
|
|
by: string
|
|
accountAvatarUrl: string
|
|
|
|
isLocal: boolean
|
|
|
|
constructor (hash: VideoCommentServerModel) {
|
|
this.id = hash.id
|
|
this.url = hash.url
|
|
this.text = hash.text
|
|
this.threadId = hash.threadId
|
|
this.inReplyToCommentId = hash.inReplyToCommentId
|
|
this.videoId = hash.videoId
|
|
this.createdAt = new Date(hash.createdAt.toString())
|
|
this.updatedAt = new Date(hash.updatedAt.toString())
|
|
this.deletedAt = hash.deletedAt ? new Date(hash.deletedAt.toString()) : null
|
|
this.isDeleted = hash.isDeleted
|
|
this.account = hash.account
|
|
this.totalRepliesFromVideoAuthor = hash.totalRepliesFromVideoAuthor
|
|
this.totalReplies = hash.totalReplies
|
|
|
|
if (this.account) {
|
|
this.by = Actor.CREATE_BY_STRING(this.account.name, this.account.host)
|
|
this.accountAvatarUrl = Actor.GET_ACTOR_AVATAR_URL(this.account)
|
|
|
|
const absoluteAPIUrl = getAbsoluteAPIUrl()
|
|
const thisHost = new URL(absoluteAPIUrl).host
|
|
this.isLocal = this.account.host.trim() === thisHost
|
|
}
|
|
}
|
|
}
|