From 50d6de9c286abcb34ff4234d56d9cbb803db7665 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 14 Dec 2017 17:38:41 +0100 Subject: Begin moving video channel to actor --- shared/models/accounts/account.model.ts | 13 ------------- shared/models/accounts/follow.model.ts | 12 ------------ shared/models/accounts/index.ts | 2 -- shared/models/activitypub/activity.ts | 18 ++++++------------ shared/models/activitypub/activitypub-actor.ts | 9 +++++++-- shared/models/activitypub/objects/common-objects.ts | 5 +++++ shared/models/activitypub/objects/index.ts | 1 - .../models/activitypub/objects/video-channel-object.ts | 13 ------------- .../models/activitypub/objects/video-torrent-object.ts | 4 ++-- shared/models/actors/account.model.ts | 13 +++++++++++++ shared/models/actors/follow.model.ts | 12 ++++++++++++ shared/models/actors/index.ts | 2 ++ shared/models/index.ts | 2 +- shared/models/users/user.model.ts | 2 +- shared/models/videos/video.model.ts | 2 +- 15 files changed, 50 insertions(+), 60 deletions(-) delete mode 100644 shared/models/accounts/account.model.ts delete mode 100644 shared/models/accounts/follow.model.ts delete mode 100644 shared/models/accounts/index.ts delete mode 100644 shared/models/activitypub/objects/video-channel-object.ts create mode 100644 shared/models/actors/account.model.ts create mode 100644 shared/models/actors/follow.model.ts create mode 100644 shared/models/actors/index.ts (limited to 'shared') diff --git a/shared/models/accounts/account.model.ts b/shared/models/accounts/account.model.ts deleted file mode 100644 index d14701317..000000000 --- a/shared/models/accounts/account.model.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { Avatar } from '../avatars/avatar.model' - -export interface Account { - id: number - uuid: string - name: string - host: string - followingCount: number - followersCount: number - createdAt: Date - updatedAt: Date - avatar: Avatar -} diff --git a/shared/models/accounts/follow.model.ts b/shared/models/accounts/follow.model.ts deleted file mode 100644 index cdc3da560..000000000 --- a/shared/models/accounts/follow.model.ts +++ /dev/null @@ -1,12 +0,0 @@ -import { Account } from './account.model' - -export type FollowState = 'pending' | 'accepted' - -export interface AccountFollow { - id: number - follower: Account - following: Account - state: FollowState - createdAt: Date - updatedAt: Date -} diff --git a/shared/models/accounts/index.ts b/shared/models/accounts/index.ts deleted file mode 100644 index 8fe437b81..000000000 --- a/shared/models/accounts/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './account.model' -export * from './follow.model' diff --git a/shared/models/activitypub/activity.ts b/shared/models/activitypub/activity.ts index 37f5400b9..1d248d3d7 100644 --- a/shared/models/activitypub/activity.ts +++ b/shared/models/activitypub/activity.ts @@ -1,14 +1,14 @@ import { ActivityPubSignature } from './activitypub-signature' -import { VideoChannelObject, VideoTorrentObject } from './objects' +import { VideoTorrentObject } from './objects' import { DislikeObject } from './objects/dislike-object' import { VideoAbuseObject } from './objects/video-abuse-object' import { ViewObject } from './objects/view-object' -export type Activity = ActivityCreate | ActivityAdd | ActivityUpdate | +export type Activity = ActivityCreate | ActivityUpdate | ActivityDelete | ActivityFollow | ActivityAccept | ActivityAnnounce | ActivityUndo | ActivityLike -export type ActivityType = 'Create' | 'Add' | 'Update' | 'Delete' | 'Follow' | 'Accept' | 'Announce' | 'Undo' | 'Like' +export type ActivityType = 'Create' | 'Update' | 'Delete' | 'Follow' | 'Accept' | 'Announce' | 'Undo' | 'Like' export interface ActivityAudience { to: string[] @@ -27,18 +27,12 @@ export interface BaseActivity { export interface ActivityCreate extends BaseActivity { type: 'Create' - object: VideoChannelObject | VideoAbuseObject | ViewObject | DislikeObject -} - -export interface ActivityAdd extends BaseActivity { - type: 'Add' - target: string - object: VideoTorrentObject + object: VideoTorrentObject | VideoAbuseObject | ViewObject | DislikeObject } export interface ActivityUpdate extends BaseActivity { type: 'Update' - object: VideoTorrentObject | VideoChannelObject + object: VideoTorrentObject } export interface ActivityDelete extends BaseActivity { @@ -56,7 +50,7 @@ export interface ActivityAccept extends BaseActivity { export interface ActivityAnnounce extends BaseActivity { type: 'Announce' - object: ActivityCreate | ActivityAdd + object: ActivityCreate } export interface ActivityUndo extends BaseActivity { diff --git a/shared/models/activitypub/activitypub-actor.ts b/shared/models/activitypub/activitypub-actor.ts index 05b911d81..d9f80b94c 100644 --- a/shared/models/activitypub/activitypub-actor.ts +++ b/shared/models/activitypub/activitypub-actor.ts @@ -1,6 +1,10 @@ +import { ActivityPubAttributedTo } from './objects/common-objects' + +export type ActivityPubActorType = 'Person' | 'Application' | 'Group' + export interface ActivityPubActor { '@context': any[] - type: 'Person' | 'Application' | 'Group' + type: ActivityPubActorType id: string following: string followers: string @@ -12,6 +16,8 @@ export interface ActivityPubActor { endpoints: { sharedInbox: string } + summary: string + attributedTo: ActivityPubAttributedTo[] uuid: string publicKey: { @@ -21,7 +27,6 @@ export interface ActivityPubActor { } // Not used - // summary: string // icon: string[] // liked: string } diff --git a/shared/models/activitypub/objects/common-objects.ts b/shared/models/activitypub/objects/common-objects.ts index 3eaab21b5..ea5a503ac 100644 --- a/shared/models/activitypub/objects/common-objects.ts +++ b/shared/models/activitypub/objects/common-objects.ts @@ -23,3 +23,8 @@ export interface ActivityUrlObject { width: number size?: number } + +export interface ActivityPubAttributedTo { + type: 'Group' | 'Person' + id: string +} diff --git a/shared/models/activitypub/objects/index.ts b/shared/models/activitypub/objects/index.ts index f1f761e44..3efd3ef13 100644 --- a/shared/models/activitypub/objects/index.ts +++ b/shared/models/activitypub/objects/index.ts @@ -1,6 +1,5 @@ export * from './common-objects' export * from './video-abuse-object' -export * from './video-channel-object' export * from './video-torrent-object' export * from './view-object' export * from './dislike-object' diff --git a/shared/models/activitypub/objects/video-channel-object.ts b/shared/models/activitypub/objects/video-channel-object.ts deleted file mode 100644 index dcce8696b..000000000 --- a/shared/models/activitypub/objects/video-channel-object.ts +++ /dev/null @@ -1,13 +0,0 @@ -import { ActivityPubOrderedCollection } from '../activitypub-ordered-collection' - -export interface VideoChannelObject { - type: 'VideoChannel' - id: string - name: string - content: string - uuid: string - published: string - updated: string - actor?: string - shares?: ActivityPubOrderedCollection -} diff --git a/shared/models/activitypub/objects/video-torrent-object.ts b/shared/models/activitypub/objects/video-torrent-object.ts index a15ec7142..1405f7748 100644 --- a/shared/models/activitypub/objects/video-torrent-object.ts +++ b/shared/models/activitypub/objects/video-torrent-object.ts @@ -1,6 +1,6 @@ import { ActivityIconObject, - ActivityIdentifierObject, + ActivityIdentifierObject, ActivityPubAttributedTo, ActivityTagObject, ActivityUrlObject } from './common-objects' @@ -24,8 +24,8 @@ export interface VideoTorrentObject { content: string icon: ActivityIconObject url: ActivityUrlObject[] - actor?: string likes?: ActivityPubOrderedCollection dislikes?: ActivityPubOrderedCollection shares?: ActivityPubOrderedCollection + attributedTo: ActivityPubAttributedTo[] } diff --git a/shared/models/actors/account.model.ts b/shared/models/actors/account.model.ts new file mode 100644 index 000000000..d14701317 --- /dev/null +++ b/shared/models/actors/account.model.ts @@ -0,0 +1,13 @@ +import { Avatar } from '../avatars/avatar.model' + +export interface Account { + id: number + uuid: string + name: string + host: string + followingCount: number + followersCount: number + createdAt: Date + updatedAt: Date + avatar: Avatar +} diff --git a/shared/models/actors/follow.model.ts b/shared/models/actors/follow.model.ts new file mode 100644 index 000000000..cdc3da560 --- /dev/null +++ b/shared/models/actors/follow.model.ts @@ -0,0 +1,12 @@ +import { Account } from './account.model' + +export type FollowState = 'pending' | 'accepted' + +export interface AccountFollow { + id: number + follower: Account + following: Account + state: FollowState + createdAt: Date + updatedAt: Date +} diff --git a/shared/models/actors/index.ts b/shared/models/actors/index.ts new file mode 100644 index 000000000..8fe437b81 --- /dev/null +++ b/shared/models/actors/index.ts @@ -0,0 +1,2 @@ +export * from './account.model' +export * from './follow.model' diff --git a/shared/models/index.ts b/shared/models/index.ts index faf616bfc..a88c01608 100644 --- a/shared/models/index.ts +++ b/shared/models/index.ts @@ -1,4 +1,4 @@ -export * from './accounts' +export * from './actors' export * from './activitypub' export * from './users' export * from './videos' diff --git a/shared/models/users/user.model.ts b/shared/models/users/user.model.ts index f2b43d371..b5f459f31 100644 --- a/shared/models/users/user.model.ts +++ b/shared/models/users/user.model.ts @@ -1,4 +1,4 @@ -import { Account } from '../accounts' +import { Account } from '../actors' import { VideoChannel } from '../videos/video-channel.model' import { UserRole } from './user-role' diff --git a/shared/models/videos/video.model.ts b/shared/models/videos/video.model.ts index 3a378419f..13b9c49b3 100644 --- a/shared/models/videos/video.model.ts +++ b/shared/models/videos/video.model.ts @@ -1,4 +1,4 @@ -import { Account } from '../accounts' +import { Account } from '../actors' import { VideoChannel } from './video-channel.model' import { VideoPrivacy } from './video-privacy.enum' -- cgit v1.2.3