-export enum UserNotificationType {
+import { FollowState } from '../actors'
+import { AbuseState } from '../moderation'
+import { PluginType } from '../plugins'
+
+export const enum UserNotificationType {
NEW_VIDEO_FROM_SUBSCRIPTION = 1,
NEW_COMMENT_ON_MY_VIDEO = 2,
- NEW_VIDEO_ABUSE_FOR_MODERATORS = 3,
+ NEW_ABUSE_FOR_MODERATORS = 3,
BLACKLIST_ON_MY_VIDEO = 4,
UNBLACKLIST_ON_MY_VIDEO = 5,
NEW_FOLLOW = 10,
COMMENT_MENTION = 11,
- VIDEO_AUTO_BLACKLIST_FOR_MODERATORS = 12
+ VIDEO_AUTO_BLACKLIST_FOR_MODERATORS = 12,
+
+ NEW_INSTANCE_FOLLOWER = 13,
+
+ AUTO_INSTANCE_FOLLOWING = 14,
+
+ ABUSE_STATE_CHANGE = 15,
+
+ ABUSE_NEW_MESSAGE = 16,
+
+ NEW_PLUGIN_VERSION = 17,
+ NEW_PEERTUBE_VERSION = 18
}
export interface VideoInfo {
id: number
uuid: string
+ shortUUID: string
name: string
}
+export interface AvatarInfo {
+ width: number
+ path: string
+}
+
export interface ActorInfo {
id: number
displayName: string
name: string
host: string
- avatar?: {
- path: string
- }
+
+ avatars: AvatarInfo[]
+ avatar: AvatarInfo
}
export interface UserNotification {
video: VideoInfo
}
- videoAbuse?: {
+ abuse?: {
id: number
- video: VideoInfo
+ state: AbuseState
+
+ video?: VideoInfo
+
+ comment?: {
+ threadId: number
+
+ video: VideoInfo
+ }
+
+ account?: ActorInfo
}
videoBlacklist?: {
actorFollow?: {
id: number
follower: ActorInfo
+ state: FollowState
+
following: {
- type: 'account' | 'channel'
+ type: 'account' | 'channel' | 'instance'
name: string
displayName: string
+ host: string
}
}
+ plugin?: {
+ name: string
+ type: PluginType
+ latestVersion: string
+ }
+
+ peertube?: {
+ latestVersion: string
+ }
+
createdAt: string
updatedAt: string
}