1
0
Fork 0

Add ability to delete previously added constants

This commit is contained in:
Chocobozzz 2021-06-15 15:18:11 +02:00
parent 4c3e4c3d93
commit 799ece6aae
No known key found for this signature in database
GPG key ID: 583A612D890159BE
4 changed files with 27 additions and 13 deletions

View file

@ -37,18 +37,20 @@ type VideoConstant = { [key in number | string]: string }
type UpdatedVideoConstant = { type UpdatedVideoConstant = {
[name in AlterableVideoConstant]: { [name in AlterableVideoConstant]: {
added: { key: number | string, label: string }[] [ npmName: string]: {
deleted: { key: number | string, label: string }[] added: { key: number | string, label: string }[]
deleted: { key: number | string, label: string }[]
}
} }
} }
export class RegisterHelpers { export class RegisterHelpers {
private readonly updatedVideoConstants: UpdatedVideoConstant = { private readonly updatedVideoConstants: UpdatedVideoConstant = {
playlistPrivacy: { added: [], deleted: [] }, playlistPrivacy: { },
privacy: { added: [], deleted: [] }, privacy: { },
language: { added: [], deleted: [] }, language: { },
licence: { added: [], deleted: [] }, licence: { },
category: { added: [], deleted: [] } category: { }
} }
private readonly transcodingProfiles: { private readonly transcodingProfiles: {
@ -377,7 +379,7 @@ export class RegisterHelpers {
const { npmName, type, obj, key } = parameters const { npmName, type, obj, key } = parameters
if (!obj[key]) { if (!obj[key]) {
logger.warn('Cannot delete %s %s by plugin %s: key does not exist.', type, npmName, key) logger.warn('Cannot delete %s by plugin %s: key %s does not exist.', type, npmName, key)
return false return false
} }
@ -388,7 +390,15 @@ export class RegisterHelpers {
} }
} }
this.updatedVideoConstants[type][npmName].deleted.push({ key, label: obj[key] }) const updatedConstants = this.updatedVideoConstants[type][npmName]
const alreadyAdded = updatedConstants.added.find(a => a.key === key)
if (alreadyAdded) {
updatedConstants.added.filter(a => a.key !== key)
} else if (obj[key]) {
updatedConstants.deleted.push({ key, label: obj[key] })
}
delete obj[key] delete obj[key]
return true return true

View file

@ -11,8 +11,10 @@ async function register ({
}) { }) {
videoLanguageManager.addLanguage('al_bhed', 'Al Bhed') videoLanguageManager.addLanguage('al_bhed', 'Al Bhed')
videoLanguageManager.addLanguage('al_bhed2', 'Al Bhed 2') videoLanguageManager.addLanguage('al_bhed2', 'Al Bhed 2')
videoLanguageManager.addLanguage('al_bhed3', 'Al Bhed 3')
videoLanguageManager.deleteLanguage('en') videoLanguageManager.deleteLanguage('en')
videoLanguageManager.deleteLanguage('fr') videoLanguageManager.deleteLanguage('fr')
videoLanguageManager.deleteLanguage('al_bhed3')
videoCategoryManager.addCategory(42, 'Best category') videoCategoryManager.addCategory(42, 'Best category')
videoCategoryManager.addCategory(43, 'High best category') videoCategoryManager.addCategory(43, 'High best category')

View file

@ -1,7 +1,7 @@
{ {
"name": "peertube-plugin-test-three", "name": "peertube-plugin-test-video-constants",
"version": "0.0.1", "version": "0.0.1",
"description": "Plugin test 3", "description": "Plugin test video constants",
"engine": { "engine": {
"peertube": ">=1.3.0" "peertube": ">=1.3.0"
}, },

View file

@ -32,7 +32,7 @@ describe('Test plugin altering video constants', function () {
await installPlugin({ await installPlugin({
url: server.url, url: server.url,
accessToken: server.accessToken, accessToken: server.accessToken,
path: getPluginTestPath('-three') path: getPluginTestPath('-video-constants')
}) })
}) })
@ -45,6 +45,7 @@ describe('Test plugin altering video constants', function () {
expect(languages['al_bhed']).to.equal('Al Bhed') expect(languages['al_bhed']).to.equal('Al Bhed')
expect(languages['al_bhed2']).to.equal('Al Bhed 2') expect(languages['al_bhed2']).to.equal('Al Bhed 2')
expect(languages['al_bhed3']).to.not.exist
}) })
it('Should have updated categories', async function () { it('Should have updated categories', async function () {
@ -116,7 +117,7 @@ describe('Test plugin altering video constants', function () {
}) })
it('Should uninstall the plugin and reset languages, categories, licences and privacies', async function () { it('Should uninstall the plugin and reset languages, categories, licences and privacies', async function () {
await uninstallPlugin({ url: server.url, accessToken: server.accessToken, npmName: 'peertube-plugin-test-three' }) await uninstallPlugin({ url: server.url, accessToken: server.accessToken, npmName: 'peertube-plugin-test-video-constants' })
{ {
const res = await getVideoLanguages(server.url) const res = await getVideoLanguages(server.url)
@ -127,6 +128,7 @@ describe('Test plugin altering video constants', function () {
expect(languages['al_bhed']).to.not.exist expect(languages['al_bhed']).to.not.exist
expect(languages['al_bhed2']).to.not.exist expect(languages['al_bhed2']).to.not.exist
expect(languages['al_bhed3']).to.not.exist
} }
{ {