diff options
Diffstat (limited to 'server/initializers/constants.ts')
-rw-r--r-- | server/initializers/constants.ts | 52 |
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 | ||
30 | const LAST_MIGRATION_VERSION = 780 | 30 | const 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 | ||
526 | const VIDEO_STATES: { [ id in VideoState ]: string } = { | 535 | const 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) |
740 | const STATIC_PATHS = { | 749 | const 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 | } |
758 | const LAZY_STATIC_PATHS = { | 773 | const 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 | } |
765 | const OBJECT_STORAGE_PROXY_PATHS = { | 782 | const 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 | ||
829 | const STORYBOARD = { | ||
830 | SPRITE_SIZE: { | ||
831 | width: 192, | ||
832 | height: 108 | ||
833 | }, | ||
834 | SPRITES_MAX_EDGE_COUNT: 10 | ||
835 | } | ||
836 | |||
810 | const EMBED_SIZE = { | 837 | const 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, |