import { HttpClient } from '@angular/common/http'
import { Inject, Injectable, LOCALE_ID } from '@angular/core'
import { getDevLocale, isOnDevLocale, sortBy } from '@app/helpers'
-import { peertubeLocalStorage } from '@root-helpers/peertube-web-storage'
import { getCompleteLocale, isDefaultLocale, peertubeTranslate } from '@shared/core-utils/i18n'
import { SearchTargetType, ServerConfig, ServerStats, VideoConstant } from '@shared/models'
import { environment } from '../../../environments/environment'
private static BASE_LOCALE_URL = environment.apiUrl + '/client/locales/'
private static BASE_STATS_URL = environment.apiUrl + '/api/v1/server/stats'
- private static CONFIG_LOCAL_STORAGE_KEY = 'server-config'
-
configReloaded = new Subject<ServerConfig>()
private localeObservable: Observable<any>
signup: {
allowed: false,
allowedForCurrentIP: false,
- requiresEmailVerification: false
+ requiresEmailVerification: false,
+ minimumAge: 16
},
transcoding: {
+ profile: 'default',
+ availableProfiles: [ 'default' ],
enabledResolutions: [],
hls: {
enabled: false
maxUserLives: -1,
transcoding: {
enabled: false,
+ profile: 'default',
+ availableProfiles: [ 'default' ],
enabledResolutions: []
},
rtmp: {
extensions: []
}
},
+ banner: {
+ file: {
+ size: { max: 0 },
+ extensions: []
+ }
+ },
video: {
image: {
size: { max: 0 },
videos: {
intervalDays: 0,
algorithms: {
- enabled: [ 'hot', 'most-viewed', 'most-liked' ],
+ enabled: [ 'best', 'hot', 'most-viewed', 'most-liked' ],
default: 'most-viewed'
}
}
disableLocalSearch: false,
isDefaultSearch: false
}
+ },
+ homepage: {
+ enabled: false
}
}
this.configReset = true
// Notify config update
- this.getConfig().subscribe(() => {
- // empty, to fire a reset config event
- })
+ return this.getConfig()
}
getConfig () {
if (!this.configObservable) {
this.configObservable = this.http.get<ServerConfig>(ServerService.BASE_CONFIG_URL)
.pipe(
- tap(config => this.saveConfigLocally(config)),
tap(config => {
this.config = config
this.configLoaded = true
)
}
- private saveConfigLocally (config: ServerConfig) {
- peertubeLocalStorage.setItem(ServerService.CONFIG_LOCAL_STORAGE_KEY, JSON.stringify(config))
- }
-
private loadConfigLocally () {
- const configString = peertubeLocalStorage.getItem(ServerService.CONFIG_LOCAL_STORAGE_KEY)
-
- if (configString) {
- try {
- const parsed = JSON.parse(configString)
- Object.assign(this.config, parsed)
- } catch (err) {
- console.error('Cannot parse config saved in local storage.', err)
- }
+ const configString = window['PeerTubeServerConfig']
+ if (!configString) return
+
+ try {
+ const parsed = JSON.parse(configString)
+ Object.assign(this.config, parsed)
+ } catch (err) {
+ console.error('Cannot parse config saved in from index.html.', err)
}
}
}