aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Dag <me@dvikan.no> 2025-01-04 19:43:48 +0100
committerGravatar GitHub <noreply@github.com> 2025-01-04 19:43:48 +0100
commit1d02214e1253b86622262988ad7ecce1f5647006 (patch)
treefe57a4c90ecb6f88c9683f59846d3fb53d0e11e1
parent48cb7d71ed982e6b4145a825eb7c5579b9023999 (diff)
downloadrss-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.php7
-rw-r--r--config.default.ini.php9
-rw-r--r--lib/bootstrap.php4
-rw-r--r--lib/simplehtmldom/simple_html_dom.php5
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);