diff --git a/src/version.js b/src/version.js
index adccb4b..48ddfad 100644
--- a/src/version.js
+++ b/src/version.js
@@ -1,6 +1,6 @@
import { name, version, bundle } from '../package.json';
-const Core = '^16.9.0';
+const Core = '^16.10.0';
const FFmpeg = '^4.1.0 || ^5.0.0';
const UI = bundle ? bundle : name + ' v' + version;
const Version = version;
diff --git a/src/views/Settings.js b/src/views/Settings.js
index a985116..61ce9df 100644
--- a/src/views/Settings.js
+++ b/src/views/Settings.js
@@ -439,13 +439,25 @@ const configValues = {
return null;
},
},
- 'storage.disk.cache.types': {
+ 'storage.disk.cache.types.allow': {
tab: 'storage',
set: (config, value) => {
- config.storage.disk.cache.types = value;
+ config.storage.disk.cache.types.allow = value;
},
unset: (config) => {
- delete config.storage.disk.cache.types;
+ delete config.storage.disk.cache.types.allow;
+ },
+ validate: (config) => {
+ return null;
+ },
+ },
+ 'storage.disk.cache.types.block': {
+ tab: 'storage',
+ set: (config, value) => {
+ config.storage.disk.cache.types.block = value;
+ },
+ unset: (config) => {
+ delete config.storage.disk.cache.types.block;
},
validate: (config) => {
return null;
@@ -756,7 +768,8 @@ export default function Settings(props) {
config.storage.cors.allow_all = true;
}
config.storage.cors.origins = config.storage.cors.origins.join('\n');
- config.storage.disk.cache.types = config.storage.disk.cache.types.join('\n');
+ config.storage.disk.cache.types.allow = config.storage.disk.cache.types.allow.join('\n');
+ config.storage.disk.cache.types.block = config.storage.disk.cache.types.block.join('\n');
config.sessions.ip_ignorelist = config.sessions.ip_ignorelist.join('\n');
@@ -905,7 +918,8 @@ export default function Settings(props) {
}
delete config.storage.cors.allow_all;
- config.storage.disk.cache.types = toArray(config.storage.disk.cache.types, '\n');
+ config.storage.disk.cache.types.allow = toArray(config.storage.disk.cache.types.allow, '\n');
+ config.storage.disk.cache.types.block = toArray(config.storage.disk.cache.types.block, '\n');
config.sessions.ip_ignorelist = toArray(config.sessions.ip_ignorelist, '\n');
@@ -1806,21 +1820,36 @@ export default function Settings(props) {
Maximum file size to put in cache.
-
+
Cache types}
- env={env('storage.disk.cache.types')}
- disabled={env('storage.disk.cache.types') || !config.storage.disk.cache.enable}
- value={config.storage.disk.cache.types}
- onChange={handleChange('storage.disk.cache.types')}
+ env={env('storage.disk.cache.types.allow')}
+ disabled={env('storage.disk.cache.types.allow') || !config.storage.disk.cache.enable}
+ value={config.storage.disk.cache.types.allow}
+ onChange={handleChange('storage.disk.cache.types.allow')}
/>
-
+
List of file extensions to cache (e.g. ".html"), one per line. Leave empty to cache all file types.
+
+ Block cache types}
+ env={env('storage.disk.cache.types.block')}
+ disabled={env('storage.disk.cache.types.block') || !config.storage.disk.cache.enable}
+ value={config.storage.disk.cache.types.block}
+ onChange={handleChange('storage.disk.cache.types.block')}
+ />
+
+
+ List of file extensions not to cache (e.g. ".m3u8"), one per line. Leave empty for none.
+
+