import { dirname, join } from 'path'
import { VideosRedundancy } from '../../shared/models'
// Do not use barrels, remain constants as independent as possible
-import { buildPath, parseBytes, parseDuration, root } from '../helpers/core-utils'
+import { buildPath, parseBytes, parseDurationToMs, root } from '../helpers/core-utils'
import { NSFWPolicyType } from '../../shared/models/videos/nsfw-policy.type'
import * as bytes from 'bytes'
HOSTNAME: config.get<string>('webserver.hostname'),
PORT: config.get<number>('webserver.port')
},
+ RATES_LIMIT: {
+ LOGIN: {
+ WINDOW_MS: parseDurationToMs(config.get<string>('rates_limit.login.window')),
+ MAX: config.get<number>('rates_limit.login.max')
+ },
+ ASK_SEND_EMAIL: {
+ WINDOW_MS: parseDurationToMs(config.get<string>('rates_limit.ask_send_email.window')),
+ MAX: config.get<number>('rates_limit.ask_send_email.max')
+ }
+ },
TRUST_PROXY: config.get<string[]>('trust_proxy'),
LOG: {
LEVEL: config.get<string>('log.level')
},
REDUNDANCY: {
VIDEOS: {
- CHECK_INTERVAL: parseDuration(config.get<string>('redundancy.videos.check_interval')),
+ CHECK_INTERVAL: parseDurationToMs(config.get<string>('redundancy.videos.check_interval')),
STRATEGIES: buildVideosRedundancy(config.get<any[]>('redundancy.videos.strategies'))
}
},
PRIVATE: config.get<boolean>('tracker.private'),
REJECT_TOO_MANY_ANNOUNCES: config.get<boolean>('tracker.reject_too_many_announces')
},
+ HISTORY: {
+ VIDEOS: {
+ MAX_AGE: parseDurationToMs(config.get('history.videos.max_age'))
+ }
+ },
+ VIEWS: {
+ VIDEOS: {
+ REMOTE: {
+ MAX_AGE: parseDurationToMs(config.get('views.videos.remote.max_age'))
+ }
+ }
+ },
ADMIN: {
get EMAIL () { return config.get<string>('admin.email') }
},
return objs.map(obj => {
return Object.assign({}, obj, {
- minLifetime: parseDuration(obj.min_lifetime),
+ minLifetime: parseDurationToMs(obj.min_lifetime),
size: bytes.parse(obj.size),
minViews: obj.min_views
})