]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - server/lib/activitypub/activity.ts
ba2967ce97f68f6717f1ff31f1d525be288b7cb0
[github/Chocobozzz/PeerTube.git] / server / lib / activitypub / activity.ts
1 import { ActivityType } from "@shared/models"
2
3 function getAPId (object: string | { id: string }) {
4 if (typeof object === 'string') return object
5
6 return object.id
7 }
8
9 function getActivityStreamDuration (duration: number) {
10 // https://www.w3.org/TR/activitystreams-vocabulary/#dfn-duration
11 return 'PT' + duration + 'S'
12 }
13
14 function getDurationFromActivityStream (duration: string) {
15 return parseInt(duration.replace(/[^\d]+/, ''))
16 }
17
18 function buildAvailableActivities (): ActivityType[] {
19 return [
20 'Create',
21 'Update',
22 'Delete',
23 'Follow',
24 'Accept',
25 'Announce',
26 'Undo',
27 'Like',
28 'Reject',
29 'View',
30 'Dislike',
31 'Flag'
32 ]
33 }
34
35 export {
36 getAPId,
37 getActivityStreamDuration,
38 buildAvailableActivities,
39 getDurationFromActivityStream
40 }