import { Activity, ActivityPubActor } from '../../shared/models/activitypub'
import { ACTIVITY_PUB } from '../initializers'
import { ActorModel } from '../models/activitypub/actor'
-import { signObject } from './peertube-crypto'
+import { signJsonLDObject } from './peertube-crypto'
import { pageToStartAndCount } from './core-utils'
+import { parse } from 'url'
function activityPubContextify <T> (data: T) {
return Object.assign(data, {
'https://w3id.org/security/v1',
{
RsaSignature2017: 'https://w3id.org/security#RsaSignature2017',
+ pt: 'https://joinpeertube.org/ns',
+ sc: 'http://schema.org#',
Hashtag: 'as:Hashtag',
- uuid: 'http://schema.org/identifier',
- category: 'http://schema.org/category',
- licence: 'http://schema.org/license',
- subtitleLanguage: 'http://schema.org/subtitleLanguage',
+ uuid: 'sc:identifier',
+ category: 'sc:category',
+ licence: 'sc:license',
+ subtitleLanguage: 'sc:subtitleLanguage',
sensitive: 'as:sensitive',
- language: 'http://schema.org/inLanguage',
- views: 'http://schema.org/Number',
- stats: 'http://schema.org/Number',
- size: 'http://schema.org/Number',
- fps: 'http://schema.org/Number',
- commentsEnabled: 'http://schema.org/Boolean',
- waitTranscoding: 'http://schema.org/Boolean',
- support: 'http://schema.org/Text'
+ language: 'sc:inLanguage',
+ views: 'sc:Number',
+ state: 'sc:Number',
+ size: 'sc:Number',
+ fps: 'sc:Number',
+ commentsEnabled: 'sc:Boolean',
+ waitTranscoding: 'sc:Boolean',
+ expires: 'sc:expires',
+ support: 'sc:Text',
+ CacheFile: 'pt:CacheFile'
},
{
likes: {
function buildSignedActivity (byActor: ActorModel, data: Object) {
const activity = activityPubContextify(data)
- return signObject(byActor, activity) as Promise<Activity>
+ return signJsonLDObject(byActor, activity) as Promise<Activity>
}
function getActorUrl (activityActor: string | ActivityPubActor) {
return activityActor.id
}
+function checkUrlsSameHost (url1: string, url2: string) {
+ const idHost = parse(url1).host
+ const actorHost = parse(url2).host
+
+ return idHost && actorHost && idHost.toLowerCase() === actorHost.toLowerCase()
+}
+
// ---------------------------------------------------------------------------
export {
+ checkUrlsSameHost,
getActorUrl,
activityPubContextify,
activityPubCollectionPagination,