diff options
author | 2025-01-04 19:43:48 +0100 | |
---|---|---|
committer | 2025-01-04 19:43:48 +0100 | |
commit | 1d02214e1253b86622262988ad7ecce1f5647006 (patch) | |
tree | fe57a4c90ecb6f88c9683f59846d3fb53d0e11e1 | |
parent | 48cb7d71ed982e6b4145a825eb7c5579b9023999 (diff) | |
download | rss-bridge-1d02214e1253b86622262988ad7ecce1f5647006.tar.gz rss-bridge-1d02214e1253b86622262988ad7ecce1f5647006.tar.zst rss-bridge-1d02214e1253b86622262988ad7ecce1f5647006.zip |
feat: extract simple_html_dom max_file_size to config (#4395)
-rw-r--r-- | bridges/YoutubeBridge.php | 7 | ||||
-rw-r--r-- | config.default.ini.php | 9 | ||||
-rw-r--r-- | lib/bootstrap.php | 4 | ||||
-rw-r--r-- | lib/simplehtmldom/simple_html_dom.php | 5 |
4 files changed, 12 insertions, 13 deletions
diff --git a/bridges/YoutubeBridge.php b/bridges/YoutubeBridge.php index 647b1c42..12cdaec4 100644 --- a/bridges/YoutubeBridge.php +++ b/bridges/YoutubeBridge.php @@ -1,12 +1,5 @@ <?php -/** -* RssBridgeYoutube -* Returns the newest videos -* WARNING: to parse big playlists (over ~90 videos), you need to edit simple_html_dom.php: -* change: define('MAX_FILE_SIZE', 600000); -* into: define('MAX_FILE_SIZE', 900000); (or more) -*/ class YoutubeBridge extends BridgeAbstract { const NAME = 'YouTube Bridge'; diff --git a/config.default.ini.php b/config.default.ini.php index 1045d6c3..25f35508 100644 --- a/config.default.ini.php +++ b/config.default.ini.php @@ -46,7 +46,11 @@ enable_debug_mode = false ; Whether to enable maintenance mode. If enabled, feed requests receive 503 Service Unavailable enable_maintenance_mode = false +; Max file size for simple_html_dom in bytes (10000000 => 10 MB) +max_file_size = 10000000 + [http] + ; Operation timeout in seconds timeout = 15 @@ -70,6 +74,7 @@ type = "file" custom_timeout = false [admin] + ; Advertise an email address where people can reach the administrator. ; This address is displayed on the main page, visible to everyone! ; "" = Disabled (default) @@ -86,6 +91,7 @@ telegram = "" donations = true [proxy] + ; The HTTP proxy to tunnel requests through ; https://curl.se/libcurl/c/CURLOPT_PROXY.html ; "" = Proxy disabled (default) @@ -135,6 +141,7 @@ report_limit = 1 ; --- Cache specific configuration --------------------------------------------- [FileCache] + ; The root folder to store files in. ; "" = Use the cache folder in the repository (default) path = "" @@ -142,6 +149,7 @@ path = "" enable_purge = true [SQLiteCache] + ; Filepath of the sqlite db file file = "cache.sqlite" ; Whether to actually delete data when purging @@ -150,6 +158,7 @@ enable_purge = true timeout = 5000 [MemcachedCache] + host = "localhost" port = 11211 diff --git a/lib/bootstrap.php b/lib/bootstrap.php index 36b13e19..8a7c62a1 100644 --- a/lib/bootstrap.php +++ b/lib/bootstrap.php @@ -7,10 +7,6 @@ if (is_file(__DIR__ . '/../vendor/autoload.php')) { const PATH_LIB_CACHES = __DIR__ . '/../caches/'; const PATH_CACHE = __DIR__ . '/../cache/'; -// Allow larger files for simple_html_dom -// todo: extract to config (if possible) -const MAX_FILE_SIZE = 10000000; - // Files $files = [ __DIR__ . '/../lib/html.php', diff --git a/lib/simplehtmldom/simple_html_dom.php b/lib/simplehtmldom/simple_html_dom.php index 170f6fb0..e8b3a727 100644 --- a/lib/simplehtmldom/simple_html_dom.php +++ b/lib/simplehtmldom/simple_html_dom.php @@ -114,8 +114,9 @@ function str_get_html( if (empty($str)) { throw new \Exception('Refusing to parse empty string input'); } - if (strlen($str) > MAX_FILE_SIZE) { - throw new \Exception('Refusing to parse too big input'); + + if (strlen($str) > Configuration::getConfig('system', 'max_file_size')) { + throw new \Exception('simple_html_dom: Refusing to parse too big input: ' . strlen($str)); } return $dom->load($str, $lowercase, $stripRN); |