Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Browse the repository at this point in the history
Plugins can update video constants
Categories, licences and languages
- Loading branch information
1 parent
16d5469
commit ee28659
Showing
9 changed files
with
342 additions
and
1 deletion.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,39 @@ | ||
async function register ({ | ||
registerHook, | ||
registerSetting, | ||
settingsManager, | ||
storageManager, | ||
videoCategoryManager, | ||
videoLicenceManager, | ||
videoLanguageManager | ||
}) { | ||
videoLanguageManager.addLanguage('al_bhed', 'Al Bhed') | ||
videoLanguageManager.addLanguage('al_bhed2', 'Al Bhed 2') | ||
videoLanguageManager.deleteLanguage('en') | ||
videoLanguageManager.deleteLanguage('fr') | ||
|
||
videoCategoryManager.addCategory(42, 'Best category') | ||
videoCategoryManager.addCategory(43, 'High best category') | ||
videoCategoryManager.deleteCategory(1) // Music | ||
videoCategoryManager.deleteCategory(2) // Films | ||
|
||
videoLicenceManager.addLicence(42, 'Best licence') | ||
videoLicenceManager.addLicence(43, 'High best licence') | ||
videoLicenceManager.deleteLicence(1) // Attribution | ||
videoLicenceManager.deleteLicence(7) // Public domain | ||
} | ||
|
||
async function unregister () { | ||
return | ||
} | ||
|
||
module.exports = { | ||
register, | ||
unregister | ||
} | ||
|
||
// ############################################################################ | ||
|
||
function addToCount (obj) { | ||
return Object.assign({}, obj, { count: obj.count + 1 }) | ||
} |
19 changes: 19 additions & 0 deletions
19
server/tests/fixtures/peertube-plugin-test-three/package.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
{ | ||
"name": "peertube-plugin-test-three", | ||
"version": "0.0.1", | ||
"description": "Plugin test 3", | ||
"engine": { | ||
"peertube": ">=1.3.0" | ||
}, | ||
"keywords": [ | ||
"peertube", | ||
"plugin" | ||
], | ||
"homepage": "https://github.com/Chocobozzz/PeerTube", | ||
"author": "Chocobozzz", | ||
"bugs": "https://github.com/Chocobozzz/PeerTube/issues", | ||
"library": "./main.js", | ||
"staticDirs": {}, | ||
"css": [], | ||
"clientScripts": [] | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,3 @@ | ||
import './action-hooks' | ||
import './filter-hooks' | ||
import './video-constants' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,140 @@ | ||
/* tslint:disable:no-unused-expression */ | ||
|
||
import * as chai from 'chai' | ||
import 'mocha' | ||
import { | ||
cleanupTests, | ||
flushAndRunMultipleServers, | ||
flushAndRunServer, killallServers, reRunServer, | ||
ServerInfo, | ||
waitUntilLog | ||
} from '../../../shared/extra-utils/server/servers' | ||
import { | ||
addVideoCommentReply, | ||
addVideoCommentThread, | ||
deleteVideoComment, | ||
getPluginTestPath, | ||
getVideosList, | ||
installPlugin, | ||
removeVideo, | ||
setAccessTokensToServers, | ||
updateVideo, | ||
uploadVideo, | ||
viewVideo, | ||
getVideosListPagination, | ||
getVideo, | ||
getVideoCommentThreads, | ||
getVideoThreadComments, | ||
getVideoWithToken, | ||
setDefaultVideoChannel, | ||
waitJobs, | ||
doubleFollow, getVideoLanguages, getVideoLicences, getVideoCategories, uninstallPlugin | ||
} from '../../../shared/extra-utils' | ||
import { VideoCommentThreadTree } from '../../../shared/models/videos/video-comment.model' | ||
import { VideoDetails } from '../../../shared/models/videos' | ||
import { getYoutubeVideoUrl, importVideo } from '../../../shared/extra-utils/videos/video-imports' | ||
|
||
const expect = chai.expect | ||
|
||
describe('Test plugin altering video constants', function () { | ||
let server: ServerInfo | ||
|
||
before(async function () { | ||
this.timeout(30000) | ||
|
||
server = await flushAndRunServer(1) | ||
await setAccessTokensToServers([ server ]) | ||
|
||
await installPlugin({ | ||
url: server.url, | ||
accessToken: server.accessToken, | ||
path: getPluginTestPath('-three') | ||
}) | ||
}) | ||
|
||
it('Should have updated languages', async function () { | ||
const res = await getVideoLanguages(server.url) | ||
const languages = res.body | ||
|
||
expect(languages['en']).to.not.exist | ||
expect(languages['fr']).to.not.exist | ||
|
||
expect(languages['al_bhed']).to.equal('Al Bhed') | ||
expect(languages['al_bhed2']).to.equal('Al Bhed 2') | ||
}) | ||
|
||
it('Should have updated categories', async function () { | ||
const res = await getVideoCategories(server.url) | ||
const categories = res.body | ||
|
||
expect(categories[1]).to.not.exist | ||
expect(categories[2]).to.not.exist | ||
|
||
expect(categories[42]).to.equal('Best category') | ||
expect(categories[43]).to.equal('High best category') | ||
}) | ||
|
||
it('Should have updated licences', async function () { | ||
const res = await getVideoLicences(server.url) | ||
const licences = res.body | ||
|
||
expect(licences[1]).to.not.exist | ||
expect(licences[7]).to.not.exist | ||
|
||
expect(licences[42]).to.equal('Best licence') | ||
expect(licences[43]).to.equal('High best licence') | ||
}) | ||
|
||
it('Should be able to upload a video with these values', async function () { | ||
const attrs = { name: 'video', category: 42, licence: 42, language: 'al_bhed2' } | ||
const resUpload = await uploadVideo(server.url, server.accessToken, attrs) | ||
|
||
const res = await getVideo(server.url, resUpload.body.video.uuid) | ||
|
||
const video: VideoDetails = res.body | ||
expect(video.language.label).to.equal('Al Bhed 2') | ||
expect(video.licence.label).to.equal('Best licence') | ||
expect(video.category.label).to.equal('Best category') | ||
}) | ||
|
||
it('Should uninstall the plugin and reset languages, categories and licences', async function () { | ||
await uninstallPlugin({ url: server.url, accessToken: server.accessToken, npmName: 'peertube-plugin-test-three' }) | ||
|
||
{ | ||
const res = await getVideoLanguages(server.url) | ||
const languages = res.body | ||
|
||
expect(languages[ 'en' ]).to.equal('English') | ||
expect(languages[ 'fr' ]).to.equal('French') | ||
|
||
expect(languages[ 'al_bhed' ]).to.not.exist | ||
expect(languages[ 'al_bhed2' ]).to.not.exist | ||
} | ||
|
||
{ | ||
const res = await getVideoCategories(server.url) | ||
const categories = res.body | ||
|
||
expect(categories[ 1 ]).to.equal('Music') | ||
expect(categories[ 2 ]).to.equal('Films') | ||
|
||
expect(categories[ 42 ]).to.not.exist | ||
expect(categories[ 43 ]).to.not.exist | ||
} | ||
|
||
{ | ||
const res = await getVideoLicences(server.url) | ||
const licences = res.body | ||
|
||
expect(licences[ 1 ]).to.equal('Attribution') | ||
expect(licences[ 7 ]).to.equal('Public Domain Dedication') | ||
|
||
expect(licences[ 42 ]).to.not.exist | ||
expect(licences[ 43 ]).to.not.exist | ||
} | ||
}) | ||
|
||
after(async function () { | ||
await cleanupTests([ server ]) | ||
}) | ||
}) |
Oops, something went wrong.