blob: adab4cfbda43ede60833b4cdcba765b7d7aebfb5 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
|
import { getAbsoluteAPIUrl } from '@app/helpers'
import { Actor, Video } from '@app/shared/shared-main'
import {
Account as AccountInterface,
VideoComment as VideoCommentServerModel,
VideoCommentAdmin as VideoCommentAdminServerModel
} from '@shared/models'
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
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)
const absoluteAPIUrl = getAbsoluteAPIUrl()
const thisHost = new URL(absoluteAPIUrl).host
this.isLocal = this.account.host.trim() === thisHost
}
}
}
export class VideoCommentAdmin implements VideoCommentAdminServerModel {
id: number
url: string
text: string
textHtml: string
threadId: number
inReplyToCommentId: number
createdAt: Date | string
updatedAt: Date | string
account: AccountInterface & { localUrl?: string }
localUrl: string
video: {
id: number
uuid: string
name: string
localUrl: string
}
by: string
constructor (hash: VideoCommentAdminServerModel, textHtml: string) {
this.id = hash.id
this.url = hash.url
this.text = hash.text
this.textHtml = textHtml
this.threadId = hash.threadId
this.inReplyToCommentId = hash.inReplyToCommentId
this.createdAt = new Date(hash.createdAt.toString())
this.updatedAt = new Date(hash.updatedAt.toString())
this.video = {
id: hash.video.id,
uuid: hash.video.uuid,
name: hash.video.name,
localUrl: Video.buildWatchUrl(hash.video)
}
this.localUrl = this.video.localUrl + ';threadId=' + this.threadId
this.account = hash.account
if (this.account) {
this.by = Actor.CREATE_BY_STRING(this.account.name, this.account.host)
this.account.localUrl = '/a/' + this.by
}
}
}
|