aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/initializers/constants.ts
diff options
context:
space:
mode:
Diffstat (limited to 'server/initializers/constants.ts')
-rw-r--r--server/initializers/constants.ts52
1 files changed, 42 insertions, 10 deletions
diff --git a/server/initializers/constants.ts b/server/initializers/constants.ts
index a92fd22d6..03ae94d35 100644
--- a/server/initializers/constants.ts
+++ b/server/initializers/constants.ts
@@ -27,7 +27,7 @@ import { CONFIG, registerConfigChangedHandler } from './config'
27 27
28// --------------------------------------------------------------------------- 28// ---------------------------------------------------------------------------
29 29
30const LAST_MIGRATION_VERSION = 780 30const LAST_MIGRATION_VERSION = 790
31 31
32// --------------------------------------------------------------------------- 32// ---------------------------------------------------------------------------
33 33
@@ -76,6 +76,8 @@ const SORTABLE_COLUMNS = {
76 VIDEO_COMMENT_THREADS: [ 'createdAt', 'totalReplies' ], 76 VIDEO_COMMENT_THREADS: [ 'createdAt', 'totalReplies' ],
77 VIDEO_COMMENTS: [ 'createdAt' ], 77 VIDEO_COMMENTS: [ 'createdAt' ],
78 78
79 VIDEO_PASSWORDS: [ 'createdAt' ],
80
79 VIDEO_RATES: [ 'createdAt' ], 81 VIDEO_RATES: [ 'createdAt' ],
80 BLACKLISTS: [ 'id', 'name', 'duration', 'views', 'likes', 'dislikes', 'uuid', 'createdAt' ], 82 BLACKLISTS: [ 'id', 'name', 'duration', 'views', 'likes', 'dislikes', 'uuid', 'createdAt' ],
81 83
@@ -172,6 +174,7 @@ const JOB_ATTEMPTS: { [id in JobType]: number } = {
172 'after-video-channel-import': 1, 174 'after-video-channel-import': 1,
173 'move-to-object-storage': 3, 175 'move-to-object-storage': 3,
174 'transcoding-job-builder': 1, 176 'transcoding-job-builder': 1,
177 'generate-video-storyboard': 1,
175 'notify': 1, 178 'notify': 1,
176 'federate-video': 1 179 'federate-video': 1
177} 180}
@@ -196,6 +199,7 @@ const JOB_CONCURRENCY: { [id in Exclude<JobType, 'video-transcoding' | 'video-im
196 'video-channel-import': 1, 199 'video-channel-import': 1,
197 'after-video-channel-import': 1, 200 'after-video-channel-import': 1,
198 'transcoding-job-builder': 1, 201 'transcoding-job-builder': 1,
202 'generate-video-storyboard': 1,
199 'notify': 5, 203 'notify': 5,
200 'federate-video': 3 204 'federate-video': 3
201} 205}
@@ -216,6 +220,7 @@ const JOB_TTL: { [id in JobType]: number } = {
216 'activitypub-refresher': 60000 * 10, // 10 minutes 220 'activitypub-refresher': 60000 * 10, // 10 minutes
217 'video-redundancy': 1000 * 3600 * 3, // 3 hours 221 'video-redundancy': 1000 * 3600 * 3, // 3 hours
218 'video-live-ending': 1000 * 60 * 10, // 10 minutes 222 'video-live-ending': 1000 * 60 * 10, // 10 minutes
223 'generate-video-storyboard': 1000 * 60 * 10, // 10 minutes
219 'manage-video-torrent': 1000 * 3600 * 3, // 3 hours 224 'manage-video-torrent': 1000 * 3600 * 3, // 3 hours
220 'move-to-object-storage': 1000 * 60 * 60 * 3, // 3 hours 225 'move-to-object-storage': 1000 * 60 * 60 * 3, // 3 hours
221 'video-channel-import': 1000 * 60 * 60 * 4, // 4 hours 226 'video-channel-import': 1000 * 60 * 60 * 4, // 4 hours
@@ -444,6 +449,9 @@ const CONSTRAINTS_FIELDS = {
444 REASON: { min: 1, max: 5000 }, // Length 449 REASON: { min: 1, max: 5000 }, // Length
445 ERROR_MESSAGE: { min: 1, max: 5000 }, // Length 450 ERROR_MESSAGE: { min: 1, max: 5000 }, // Length
446 PROGRESS: { min: 0, max: 100 } // Value 451 PROGRESS: { min: 0, max: 100 } // Value
452 },
453 VIDEO_PASSWORD: {
454 LENGTH: { min: 2, max: 100 }
447 } 455 }
448} 456}
449 457
@@ -520,7 +528,8 @@ const VIDEO_PRIVACIES: { [ id in VideoPrivacy ]: string } = {
520 [VideoPrivacy.PUBLIC]: 'Public', 528 [VideoPrivacy.PUBLIC]: 'Public',
521 [VideoPrivacy.UNLISTED]: 'Unlisted', 529 [VideoPrivacy.UNLISTED]: 'Unlisted',
522 [VideoPrivacy.PRIVATE]: 'Private', 530 [VideoPrivacy.PRIVATE]: 'Private',
523 [VideoPrivacy.INTERNAL]: 'Internal' 531 [VideoPrivacy.INTERNAL]: 'Internal',
532 [VideoPrivacy.PASSWORD_PROTECTED]: 'Password protected'
524} 533}
525 534
526const VIDEO_STATES: { [ id in VideoState ]: string } = { 535const VIDEO_STATES: { [ id in VideoState ]: string } = {
@@ -738,10 +747,16 @@ const NSFW_POLICY_TYPES: { [ id: string ]: NSFWPolicyType } = {
738 747
739// Express static paths (router) 748// Express static paths (router)
740const STATIC_PATHS = { 749const STATIC_PATHS = {
750 // TODO: deprecated in v6, to remove
741 THUMBNAILS: '/static/thumbnails/', 751 THUMBNAILS: '/static/thumbnails/',
742 752
743 WEBSEED: '/static/webseed/', 753 // Need to keep this legacy path for previously generated torrents
744 PRIVATE_WEBSEED: '/static/webseed/private/', 754 LEGACY_WEB_VIDEOS: '/static/webseed/',
755 WEB_VIDEOS: '/static/web-videos/',
756
757 // Need to keep this legacy path for previously generated torrents
758 LEGACY_PRIVATE_WEB_VIDEOS: '/static/webseed/private/',
759 PRIVATE_WEB_VIDEOS: '/static/web-videos/private/',
745 760
746 REDUNDANCY: '/static/redundancy/', 761 REDUNDANCY: '/static/redundancy/',
747 762
@@ -756,14 +771,18 @@ const STATIC_DOWNLOAD_PATHS = {
756 HLS_VIDEOS: '/download/streaming-playlists/hls/videos/' 771 HLS_VIDEOS: '/download/streaming-playlists/hls/videos/'
757} 772}
758const LAZY_STATIC_PATHS = { 773const LAZY_STATIC_PATHS = {
774 THUMBNAILS: '/lazy-static/thumbnails/',
759 BANNERS: '/lazy-static/banners/', 775 BANNERS: '/lazy-static/banners/',
760 AVATARS: '/lazy-static/avatars/', 776 AVATARS: '/lazy-static/avatars/',
761 PREVIEWS: '/lazy-static/previews/', 777 PREVIEWS: '/lazy-static/previews/',
762 VIDEO_CAPTIONS: '/lazy-static/video-captions/', 778 VIDEO_CAPTIONS: '/lazy-static/video-captions/',
763 TORRENTS: '/lazy-static/torrents/' 779 TORRENTS: '/lazy-static/torrents/',
780 STORYBOARDS: '/lazy-static/storyboards/'
764} 781}
765const OBJECT_STORAGE_PROXY_PATHS = { 782const OBJECT_STORAGE_PROXY_PATHS = {
766 PRIVATE_WEBSEED: '/object-storage-proxy/webseed/private/', 783 // Need to keep this legacy path for previously generated torrents
784 LEGACY_PRIVATE_WEB_VIDEOS: '/object-storage-proxy/webseed/private/',
785 PRIVATE_WEB_VIDEOS: '/object-storage-proxy/web-videos/private/',
767 786
768 STREAMING_PLAYLISTS: { 787 STREAMING_PLAYLISTS: {
769 PRIVATE_HLS: '/object-storage-proxy/streaming-playlists/hls/private/' 788 PRIVATE_HLS: '/object-storage-proxy/streaming-playlists/hls/private/'
@@ -807,6 +826,14 @@ const ACTOR_IMAGES_SIZE: { [key in ActorImageType]: { width: number, height: num
807 ] 826 ]
808} 827}
809 828
829const STORYBOARD = {
830 SPRITE_SIZE: {
831 width: 192,
832 height: 108
833 },
834 SPRITES_MAX_EDGE_COUNT: 10
835}
836
810const EMBED_SIZE = { 837const EMBED_SIZE = {
811 width: 560, 838 width: 560,
812 height: 315 839 height: 315
@@ -818,6 +845,10 @@ const FILES_CACHE = {
818 DIRECTORY: join(CONFIG.STORAGE.CACHE_DIR, 'previews'), 845 DIRECTORY: join(CONFIG.STORAGE.CACHE_DIR, 'previews'),
819 MAX_AGE: 1000 * 3600 * 3 // 3 hours 846 MAX_AGE: 1000 * 3600 * 3 // 3 hours
820 }, 847 },
848 STORYBOARDS: {
849 DIRECTORY: join(CONFIG.STORAGE.CACHE_DIR, 'storyboards'),
850 MAX_AGE: 1000 * 3600 * 24 // 24 hours
851 },
821 VIDEO_CAPTIONS: { 852 VIDEO_CAPTIONS: {
822 DIRECTORY: join(CONFIG.STORAGE.CACHE_DIR, 'video-captions'), 853 DIRECTORY: join(CONFIG.STORAGE.CACHE_DIR, 'video-captions'),
823 MAX_AGE: 1000 * 3600 * 3 // 3 hours 854 MAX_AGE: 1000 * 3600 * 3 // 3 hours
@@ -832,8 +863,8 @@ const LRU_CACHE = {
832 USER_TOKENS: { 863 USER_TOKENS: {
833 MAX_SIZE: 1000 864 MAX_SIZE: 1000
834 }, 865 },
835 ACTOR_IMAGE_STATIC: { 866 FILENAME_TO_PATH_PERMANENT_FILE_CACHE: {
836 MAX_SIZE: 500 867 MAX_SIZE: 1000
837 }, 868 },
838 STATIC_VIDEO_FILES_RIGHTS_CHECK: { 869 STATIC_VIDEO_FILES_RIGHTS_CHECK: {
839 MAX_SIZE: 5000, 870 MAX_SIZE: 5000,
@@ -857,8 +888,8 @@ const DIRECTORIES = {
857 }, 888 },
858 889
859 VIDEOS: { 890 VIDEOS: {
860 PUBLIC: CONFIG.STORAGE.VIDEOS_DIR, 891 PUBLIC: CONFIG.STORAGE.WEB_VIDEOS_DIR,
861 PRIVATE: join(CONFIG.STORAGE.VIDEOS_DIR, 'private') 892 PRIVATE: join(CONFIG.STORAGE.WEB_VIDEOS_DIR, 'private')
862 }, 893 },
863 894
864 HLS_REDUNDANCY: join(CONFIG.STORAGE.REDUNDANCY_DIR, 'hls') 895 HLS_REDUNDANCY: join(CONFIG.STORAGE.REDUNDANCY_DIR, 'hls')
@@ -1084,6 +1115,7 @@ export {
1084 RESUMABLE_UPLOAD_SESSION_LIFETIME, 1115 RESUMABLE_UPLOAD_SESSION_LIFETIME,
1085 RUNNER_JOB_STATES, 1116 RUNNER_JOB_STATES,
1086 P2P_MEDIA_LOADER_PEER_VERSION, 1117 P2P_MEDIA_LOADER_PEER_VERSION,
1118 STORYBOARD,
1087 ACTOR_IMAGES_SIZE, 1119 ACTOR_IMAGES_SIZE,
1088 ACCEPT_HEADERS, 1120 ACCEPT_HEADERS,
1089 BCRYPT_SALT_SIZE, 1121 BCRYPT_SALT_SIZE,