mirror of
https://git.tt-rss.org/git/tt-rss.git
synced 2025-12-15 11:55:57 +00:00
cache media: set referrer to source URL when fetching images
This commit is contained in:
@@ -739,7 +739,7 @@ class RSSUtils {
|
|||||||
if (count($matched_filter_ids) > 0) {
|
if (count($matched_filter_ids) > 0) {
|
||||||
$filter_ids_qmarks = arr_qmarks($matched_filter_ids);
|
$filter_ids_qmarks = arr_qmarks($matched_filter_ids);
|
||||||
|
|
||||||
$fsth = $pdo->prepare("UPDATE ttrss_filters2 SET last_triggered = NOW() WHERE
|
$fsth = $pdo->prepare("UPDATE ttrss_filters2 SET last_triggered = NOW() WHERE
|
||||||
id IN ($filter_ids_qmarks) AND owner_uid = ?");
|
id IN ($filter_ids_qmarks) AND owner_uid = ?");
|
||||||
|
|
||||||
$fsth->execute(array_merge($matched_filter_ids, [$owner_uid]));
|
$fsth->execute(array_merge($matched_filter_ids, [$owner_uid]));
|
||||||
@@ -1200,10 +1200,18 @@ class RSSUtils {
|
|||||||
Debug::log("cache_enclosures: downloading: $src to $local_filename", Debug::$LOG_VERBOSE);
|
Debug::log("cache_enclosures: downloading: $src to $local_filename", Debug::$LOG_VERBOSE);
|
||||||
|
|
||||||
if (!$cache->exists($local_filename)) {
|
if (!$cache->exists($local_filename)) {
|
||||||
$file_content = fetch_file_contents(array("url" => $src, "max_size" => MAX_CACHE_FILE_SIZE));
|
|
||||||
|
global $fetch_last_error_code;
|
||||||
|
global $fetch_last_error;
|
||||||
|
|
||||||
|
$file_content = fetch_file_contents(array("url" => $src,
|
||||||
|
"http_referrer" => $src,
|
||||||
|
"max_size" => MAX_CACHE_FILE_SIZE));
|
||||||
|
|
||||||
if ($file_content) {
|
if ($file_content) {
|
||||||
$cache->put($local_filename, $file_content);
|
$cache->put($local_filename, $file_content);
|
||||||
|
} else {
|
||||||
|
Debug::log("cache_enclosures: failed with $fetch_last_error_code: $fetch_last_error");
|
||||||
}
|
}
|
||||||
} else if (is_writable($local_filename)) {
|
} else if (is_writable($local_filename)) {
|
||||||
$cache->touch($local_filename);
|
$cache->touch($local_filename);
|
||||||
@@ -1234,10 +1242,17 @@ class RSSUtils {
|
|||||||
if (!$cache->exists($local_filename)) {
|
if (!$cache->exists($local_filename)) {
|
||||||
Debug::log("cache_media: downloading: $src to $local_filename", Debug::$LOG_VERBOSE);
|
Debug::log("cache_media: downloading: $src to $local_filename", Debug::$LOG_VERBOSE);
|
||||||
|
|
||||||
$file_content = fetch_file_contents(array("url" => $src, "max_size" => MAX_CACHE_FILE_SIZE));
|
global $fetch_last_error_code;
|
||||||
|
global $fetch_last_error;
|
||||||
|
|
||||||
|
$file_content = fetch_file_contents(array("url" => $src,
|
||||||
|
"http_referrer" => $src,
|
||||||
|
"max_size" => MAX_CACHE_FILE_SIZE));
|
||||||
|
|
||||||
if ($file_content) {
|
if ($file_content) {
|
||||||
$cache->put($local_filename, $file_content);
|
$cache->put($local_filename, $file_content);
|
||||||
|
} else {
|
||||||
|
Debug::log("cache_media: failed with $fetch_last_error_code: $fetch_last_error");
|
||||||
}
|
}
|
||||||
} else if ($cache->isWritable($local_filename)) {
|
} else if ($cache->isWritable($local_filename)) {
|
||||||
$cache->touch($local_filename);
|
$cache->touch($local_filename);
|
||||||
|
|||||||
@@ -230,6 +230,7 @@
|
|||||||
$followlocation = isset($options["followlocation"]) ? $options["followlocation"] : true;
|
$followlocation = isset($options["followlocation"]) ? $options["followlocation"] : true;
|
||||||
$max_size = isset($options["max_size"]) ? $options["max_size"] : MAX_DOWNLOAD_FILE_SIZE; // in bytes
|
$max_size = isset($options["max_size"]) ? $options["max_size"] : MAX_DOWNLOAD_FILE_SIZE; // in bytes
|
||||||
$http_accept = isset($options["http_accept"]) ? $options["http_accept"] : false;
|
$http_accept = isset($options["http_accept"]) ? $options["http_accept"] : false;
|
||||||
|
$http_referrer = isset($options["http_referrer"]) ? $options["http_referrer"] : false;
|
||||||
|
|
||||||
$url = ltrim($url, ' ');
|
$url = ltrim($url, ' ');
|
||||||
$url = str_replace(' ', '%20', $url);
|
$url = str_replace(' ', '%20', $url);
|
||||||
@@ -273,7 +274,9 @@
|
|||||||
curl_setopt($ch, CURLOPT_USERAGENT, $useragent ? $useragent :
|
curl_setopt($ch, CURLOPT_USERAGENT, $useragent ? $useragent :
|
||||||
SELF_USER_AGENT);
|
SELF_USER_AGENT);
|
||||||
curl_setopt($ch, CURLOPT_ENCODING, "");
|
curl_setopt($ch, CURLOPT_ENCODING, "");
|
||||||
//curl_setopt($ch, CURLOPT_REFERER, $url);
|
|
||||||
|
if ($http_referrer)
|
||||||
|
curl_setopt($ch, CURLOPT_REFERER, $http_referrer);
|
||||||
|
|
||||||
if ($max_size) {
|
if ($max_size) {
|
||||||
curl_setopt($ch, CURLOPT_NOPROGRESS, false);
|
curl_setopt($ch, CURLOPT_NOPROGRESS, false);
|
||||||
@@ -401,6 +404,9 @@
|
|||||||
if ($http_accept)
|
if ($http_accept)
|
||||||
array_push($context_options['http']['header'], "Accept: $http_accept");
|
array_push($context_options['http']['header'], "Accept: $http_accept");
|
||||||
|
|
||||||
|
if ($http_referrer)
|
||||||
|
array_push($context_options['http']['header'], "Referer: $http_referrer");
|
||||||
|
|
||||||
if (defined('_HTTP_PROXY')) {
|
if (defined('_HTTP_PROXY')) {
|
||||||
$context_options['http']['request_fulluri'] = true;
|
$context_options['http']['request_fulluri'] = true;
|
||||||
$context_options['http']['proxy'] = _HTTP_PROXY;
|
$context_options['http']['proxy'] = _HTTP_PROXY;
|
||||||
|
|||||||
Reference in New Issue
Block a user