1
0
Fork 0
mirror of https://github.com/Chocobozzz/PeerTube.git synced 2025-10-04 10:19:35 +02:00

Server shares user videos

This commit is contained in:
Chocobozzz 2017-11-16 15:22:39 +01:00
parent efc32059d9
commit 20494f1221
No known key found for this signature in database
GPG key ID: 583A612D890159BE
16 changed files with 215 additions and 111 deletions

View file

@ -2,8 +2,7 @@ import * as validator from 'validator'
import { isAccountAcceptActivityValid, isAccountDeleteActivityValid, isAccountFollowActivityValid } from './account'
import { isActivityPubUrlValid } from './misc'
import {
isVideoAnnounceValid,
isVideoChannelAnnounceValid,
isAnnounceValid,
isVideoChannelCreateActivityValid,
isVideoChannelDeleteActivityValid,
isVideoChannelUpdateActivityValid,
@ -37,8 +36,7 @@ function isActivityValid (activity: any) {
isAccountFollowActivityValid(activity) ||
isAccountAcceptActivityValid(activity) ||
isVideoFlagValid(activity) ||
isVideoAnnounceValid(activity) ||
isVideoChannelAnnounceValid(activity)
isAnnounceValid(activity)
}
// ---------------------------------------------------------------------------

View file

@ -21,7 +21,7 @@ function isActivityPubUrlValid (url: string) {
}
function isBaseActivityValid (activity: any, type: string) {
return Array.isArray(activity['@context']) &&
return (activity['@context'] === undefined || Array.isArray(activity['@context'])) &&
activity.type === type &&
isActivityPubUrlValid(activity.id) &&
isActivityPubUrlValid(activity.actor) &&

View file

@ -39,6 +39,7 @@ function isActivityPubVideoDurationValid (value: string) {
function isVideoTorrentObjectValid (video: any) {
return video.type === 'Video' &&
isActivityPubUrlValid(video.id) &&
isVideoNameValid(video.name) &&
isActivityPubVideoDurationValid(video.duration) &&
isUUIDValid(video.uuid) &&
@ -62,14 +63,12 @@ function isVideoFlagValid (activity: any) {
isActivityPubUrlValid(activity.object)
}
function isVideoAnnounceValid (activity: any) {
function isAnnounceValid (activity: any) {
return isBaseActivityValid(activity, 'Announce') &&
isVideoTorrentObjectValid(activity.object)
}
function isVideoChannelAnnounceValid (activity: any) {
return isBaseActivityValid(activity, 'Announce') &&
isVideoChannelObjectValid(activity.object)
(
isVideoChannelCreateActivityValid(activity.object) ||
isVideoTorrentAddActivityValid(activity.object)
)
}
function isVideoChannelCreateActivityValid (activity: any) {
@ -88,8 +87,11 @@ function isVideoChannelDeleteActivityValid (activity: any) {
function isVideoChannelObjectValid (videoChannel: any) {
return videoChannel.type === 'VideoChannel' &&
isActivityPubUrlValid(videoChannel.id) &&
isVideoChannelNameValid(videoChannel.name) &&
isVideoChannelDescriptionValid(videoChannel.description) &&
isVideoChannelDescriptionValid(videoChannel.content) &&
isDateValid(videoChannel.published) &&
isDateValid(videoChannel.updated) &&
isUUIDValid(videoChannel.uuid)
}
@ -103,8 +105,8 @@ export {
isVideoChannelDeleteActivityValid,
isVideoTorrentDeleteActivityValid,
isVideoFlagValid,
isVideoAnnounceValid,
isVideoChannelAnnounceValid
isAnnounceValid,
isVideoChannelObjectValid
}
// ---------------------------------------------------------------------------
@ -148,8 +150,20 @@ function setValidRemoteVideoUrls (video: any) {
function isRemoteVideoUrlValid (url: any) {
return url.type === 'Link' &&
ACTIVITY_PUB.VIDEO_URL_MIME_TYPES.indexOf(url.mimeType) !== -1 &&
isVideoUrlValid(url.url) &&
validator.isInt(url.width + '', { min: 0 }) &&
validator.isInt(url.size + '', { min: 0 })
(
ACTIVITY_PUB.URL_MIME_TYPES.VIDEO.indexOf(url.mimeType) !== -1 &&
isVideoUrlValid(url.url) &&
validator.isInt(url.width + '', { min: 0 }) &&
validator.isInt(url.size + '', { min: 0 })
) ||
(
ACTIVITY_PUB.URL_MIME_TYPES.TORRENT.indexOf(url.mimeType) !== -1 &&
isVideoUrlValid(url.url) &&
validator.isInt(url.width + '', { min: 0 })
) ||
(
ACTIVITY_PUB.URL_MIME_TYPES.MAGNET.indexOf(url.mimeType) !== -1 &&
validator.isLength(url.url, { min: 5 }) &&
validator.isInt(url.width + '', { min: 0 })
)
}