Add ability to update torrents cache in client

pull/3756/head
Chocobozzz 2021-02-18 11:07:08 +01:00 committed by Chocobozzz
parent d9a2a03196
commit b3d5cb92b1
12 changed files with 41 additions and 4 deletions

View File

@ -38,6 +38,20 @@
<div *ngIf="formErrors.cache.captions.size" class="form-error">{{ formErrors.cache.captions.size }}</div> <div *ngIf="formErrors.cache.captions.size" class="form-error">{{ formErrors.cache.captions.size }}</div>
</div> </div>
<div class="form-group" formGroupName="torrents">
<label i18n for="cacheTorrentsSize">Number of video torrents to keep in cache</label>
<div class="number-with-unit">
<input
type="number" min="0" id="cacheTorrentsSize" class="form-control"
formControlName="size" [ngClass]="{ 'input-error': formErrors['cache.torrents.size'] }"
>
<span i18n>{getCacheSize('torrents'), plural, =1 {cached torrent} other {cached torrents}}</span>
</div>
<div *ngIf="formErrors.cache.torrents.size" class="form-error">{{ formErrors.cache.torrents.size }}</div>
</div>
</ng-container> </ng-container>
</div> </div>

View File

@ -12,7 +12,7 @@ export class EditAdvancedConfigurationComponent {
@Input() form: FormGroup @Input() form: FormGroup
@Input() formErrors: any @Input() formErrors: any
getCacheSize (type: 'captions' | 'previews') { getCacheSize (type: 'captions' | 'previews' | 'torrents') {
return this.form.value['cache'][type]['size'] return this.form.value['cache'][type]['size']
} }
} }

View File

@ -105,6 +105,9 @@ export class EditCustomConfigComponent extends FormReactive implements OnInit {
}, },
captions: { captions: {
size: CACHE_CAPTIONS_SIZE_VALIDATOR size: CACHE_CAPTIONS_SIZE_VALIDATOR
},
torrents: {
size: CACHE_CAPTIONS_SIZE_VALIDATOR
} }
}, },
signup: { signup: {

View File

@ -61,6 +61,8 @@ cache:
size: 1 size: 1
captions: captions:
size: 1 size: 1
torrents:
size: 1
signup: signup:
enabled: true enabled: true

View File

@ -395,6 +395,9 @@ function customConfig (): CustomConfig {
}, },
captions: { captions: {
size: CONFIG.CACHE.VIDEO_CAPTIONS.SIZE size: CONFIG.CACHE.VIDEO_CAPTIONS.SIZE
},
torrents: {
size: CONFIG.CACHE.TORRENTS.SIZE
} }
}, },
signup: { signup: {

View File

@ -1,6 +1,5 @@
import { copy } from 'fs-extra'
import { join } from 'path' import { join } from 'path'
import { logger } from '@server/helpers/logger'
import { ThumbnailType } from '../../shared/models/videos/thumbnail.type' import { ThumbnailType } from '../../shared/models/videos/thumbnail.type'
import { generateImageFromVideoFile } from '../helpers/ffmpeg-utils' import { generateImageFromVideoFile } from '../helpers/ffmpeg-utils'
import { processImage } from '../helpers/image-utils' import { processImage } from '../helpers/image-utils'

View File

@ -25,6 +25,7 @@ const customConfigUpdateValidator = [
body('cache.previews.size').isInt().withMessage('Should have a valid previews cache size'), body('cache.previews.size').isInt().withMessage('Should have a valid previews cache size'),
body('cache.captions.size').isInt().withMessage('Should have a valid captions cache size'), body('cache.captions.size').isInt().withMessage('Should have a valid captions cache size'),
body('cache.torrents.size').isInt().withMessage('Should have a valid torrents cache size'),
body('signup.enabled').isBoolean().withMessage('Should have a valid signup enabled boolean'), body('signup.enabled').isBoolean().withMessage('Should have a valid signup enabled boolean'),
body('signup.limit').isInt().withMessage('Should have a valid signup limit'), body('signup.limit').isInt().withMessage('Should have a valid signup limit'),

View File

@ -36,7 +36,7 @@ export class TrackerModel extends Model {
const query = { const query = {
include: [ include: [
{ {
attributes: [ 'id', 'trackerId' ], attributes: [ 'id' ],
model: VideoModel.unscoped(), model: VideoModel.unscoped(),
required: true, required: true,
where: { id: videoId } where: { id: videoId }

View File

@ -65,6 +65,9 @@ describe('Test config API validators', function () {
}, },
captions: { captions: {
size: 3 size: 3
},
torrents: {
size: 4
} }
}, },
signup: { signup: {

View File

@ -55,6 +55,7 @@ function checkInitialConfig (server: ServerInfo, data: CustomConfig) {
expect(data.cache.previews.size).to.equal(1) expect(data.cache.previews.size).to.equal(1)
expect(data.cache.captions.size).to.equal(1) expect(data.cache.captions.size).to.equal(1)
expect(data.cache.torrents.size).to.equal(1)
expect(data.signup.enabled).to.be.true expect(data.signup.enabled).to.be.true
expect(data.signup.limit).to.equal(4) expect(data.signup.limit).to.equal(4)
@ -144,6 +145,7 @@ function checkUpdatedConfig (data: CustomConfig) {
expect(data.cache.previews.size).to.equal(2) expect(data.cache.previews.size).to.equal(2)
expect(data.cache.captions.size).to.equal(3) expect(data.cache.captions.size).to.equal(3)
expect(data.cache.torrents.size).to.equal(4)
expect(data.signup.enabled).to.be.false expect(data.signup.enabled).to.be.false
expect(data.signup.limit).to.equal(5) expect(data.signup.limit).to.equal(5)
@ -305,6 +307,9 @@ describe('Test config', function () {
}, },
captions: { captions: {
size: 3 size: 3
},
torrents: {
size: 4
} }
}, },
signup: { signup: {

View File

@ -90,6 +90,9 @@ function updateCustomSubConfig (url: string, token: string, newConfig: DeepParti
}, },
captions: { captions: {
size: 3 size: 3
},
torrents: {
size: 4
} }
}, },
signup: { signup: {

View File

@ -59,6 +59,10 @@ export interface CustomConfig {
captions: { captions: {
size: number size: number
} }
torrents: {
size: number
}
} }
signup: { signup: {