From 800a42172db1775aaa76f50446ed914ee0b5a80b Mon Sep 17 00:00:00 2001 From: Jules-Bertholet Date: Tue, 9 Mar 2021 14:51:09 -0500 Subject: Add an option to set a custom user agent to retrieve individual feeds (#3494) * Add an option to set a custom user agent to retrieve individual feeds This allows retrieving the original RSS feed when websites use services like FeedBurner. * Use !== instead of != in subscriptionController.php * Add proxy and user-agent to subscription/add Co-authored-by: Georgelemental Co-authored-by: Alexandre Alapetite --- app/Controllers/feedController.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'app/Controllers/feedController.php') diff --git a/app/Controllers/feedController.php b/app/Controllers/feedController.php index 6c9b16ff4..63abc9f45 100755 --- a/app/Controllers/feedController.php +++ b/app/Controllers/feedController.php @@ -165,9 +165,25 @@ class FreshRSS_feed_Controller extends Minz_ActionController { $http_auth = $user . ':' . $pass; } + $useragent = Minz_Request::param('curl_params_useragent', ''); + $proxy_address = Minz_Request::param('curl_params', ''); + $proxy_type = Minz_Request::param('proxy_type', ''); + $opts = []; + if ($proxy_address !== '' && $proxy_type !== '' && in_array($proxy_type, [0, 2, 4, 5, 6, 7])) { + $opts[CURLOPT_PROXY] = $proxy_address; + $opts[CURLOPT_PROXYTYPE] = intval($proxy_type); + } + if ($cookie !== '') { + $opts[CURLOPT_COOKIE] = $cookie; + } + if ($useragent !== '') { + $opts[CURLOPT_USERAGENT] = $useragent; + } + $attributes = array( 'ssl_verify' => null, 'timeout' => null, + 'curl_params' => empty($opts) ? null : $opts, ); if (FreshRSS_Auth::hasAccess('admin')) { $attributes['ssl_verify'] = Minz_Request::paramTernary('ssl_verify'); -- cgit v1.2.3