mirror of
https://github.com/Chocobozzz/PeerTube.git
synced 2025-10-06 03:50:26 +02:00
Federate video abuses
This commit is contained in:
parent
d7d5611c8a
commit
21e0727a84
7 changed files with 28 additions and 12 deletions
|
@ -5,15 +5,18 @@ import { VideoAbuse as FormattedVideoAbuse } from '../../../shared/models/videos
|
|||
import { AccountInstance } from '../account/account-interface'
|
||||
import { ServerInstance } from '../server/server-interface'
|
||||
import { VideoInstance } from './video-interface'
|
||||
import { VideoAbuseObject } from '../../../shared/models/activitypub/objects/video-abuse-object'
|
||||
|
||||
export namespace VideoAbuseMethods {
|
||||
export type ToFormattedJSON = (this: VideoAbuseInstance) => FormattedVideoAbuse
|
||||
|
||||
export type ListForApi = (start: number, count: number, sort: string) => Promise< ResultList<VideoAbuseInstance> >
|
||||
export type ToActivityPubObject = () => VideoAbuseObject
|
||||
}
|
||||
|
||||
export interface VideoAbuseClass {
|
||||
listForApi: VideoAbuseMethods.ListForApi
|
||||
toActivityPubObject: VideoAbuseMethods.ToActivityPubObject
|
||||
}
|
||||
|
||||
export interface VideoAbuseAttributes {
|
||||
|
|
|
@ -10,10 +10,12 @@ import {
|
|||
|
||||
VideoAbuseMethods
|
||||
} from './video-abuse-interface'
|
||||
import { VideoAbuseObject } from '../../../shared/models/activitypub/objects/video-abuse-object'
|
||||
|
||||
let VideoAbuse: Sequelize.Model<VideoAbuseInstance, VideoAbuseAttributes>
|
||||
let toFormattedJSON: VideoAbuseMethods.ToFormattedJSON
|
||||
let listForApi: VideoAbuseMethods.ListForApi
|
||||
let toActivityPubObject: VideoAbuseMethods.ToActivityPubObject
|
||||
|
||||
export default function (sequelize: Sequelize.Sequelize, DataTypes: Sequelize.DataTypes) {
|
||||
VideoAbuse = sequelize.define<VideoAbuseInstance, VideoAbuseAttributes>('VideoAbuse',
|
||||
|
@ -47,7 +49,8 @@ export default function (sequelize: Sequelize.Sequelize, DataTypes: Sequelize.Da
|
|||
listForApi
|
||||
]
|
||||
const instanceMethods = [
|
||||
toFormattedJSON
|
||||
toFormattedJSON,
|
||||
toActivityPubObject
|
||||
]
|
||||
addMethodsToModel(VideoAbuse, classMethods, instanceMethods)
|
||||
|
||||
|
@ -80,6 +83,16 @@ toFormattedJSON = function (this: VideoAbuseInstance) {
|
|||
return json
|
||||
}
|
||||
|
||||
toActivityPubObject = function (this: VideoAbuseInstance) {
|
||||
const videoAbuseObject: VideoAbuseObject = {
|
||||
type: 'Flag' as 'Flag',
|
||||
content: this.reason,
|
||||
object: this.Video.url
|
||||
}
|
||||
|
||||
return videoAbuseObject
|
||||
}
|
||||
|
||||
// ------------------------------ STATICS ------------------------------
|
||||
|
||||
function associate (models) {
|
||||
|
|
|
@ -26,6 +26,7 @@ import {
|
|||
unlinkPromise,
|
||||
writeFilePromise
|
||||
} from '../../helpers'
|
||||
import { isVideoUrlValid } from '../../helpers/custom-validators/videos'
|
||||
import {
|
||||
API_VERSION,
|
||||
CONFIG,
|
||||
|
@ -39,14 +40,13 @@ import {
|
|||
VIDEO_LICENCES,
|
||||
VIDEO_PRIVACIES
|
||||
} from '../../initializers'
|
||||
import { sendDeleteVideo } from '../../lib/activitypub/send-request'
|
||||
|
||||
import { addMethodsToModel, getSort } from '../utils'
|
||||
|
||||
import { TagInstance } from './tag-interface'
|
||||
import { VideoFileInstance, VideoFileModel } from './video-file-interface'
|
||||
import { VideoAttributes, VideoInstance, VideoMethods } from './video-interface'
|
||||
import { sendDeleteVideo } from '../../lib/activitypub/send-request'
|
||||
import { isVideoUrlValid } from '../../helpers/custom-validators/videos'
|
||||
|
||||
const Buffer = safeBuffer.Buffer
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue