+ toAnnouncesActivityPubObject () {
+ const shares: string[] = []
+
+ for (const videoShare of this.VideoShares) {
+ shares.push(videoShare.url)
+ }
+
+ return activityPubCollection(getVideoSharesActivityPubUrl(this), shares)
+ }
+
+ toCommentsActivityPubObject () {
+ const comments: string[] = []
+
+ for (const videoComment of this.VideoComments) {
+ comments.push(videoComment.url)
+ }
+
+ return activityPubCollection(getVideoCommentsActivityPubUrl(this), comments)
+ }
+
+ toRatesActivityPubObjects () {
+ const likes: string[] = []
+ const dislikes: string[] = []
+
+ for (const rate of this.AccountVideoRates) {
+ if (rate.type === 'like') {
+ likes.push(rate.Account.Actor.url)
+ } else if (rate.type === 'dislike') {
+ dislikes.push(rate.Account.Actor.url)
+ }
+ }
+
+ const likesObject = activityPubCollection(getVideoLikesActivityPubUrl(this), likes)
+ const dislikesObject = activityPubCollection(getVideoDislikesActivityPubUrl(this), dislikes)
+
+ return { likesObject, dislikesObject }
+ }
+