mirror of
https://github.com/RSS-Bridge/rss-bridge.git
synced 2024-11-26 11:26:31 +03:00
refactor: restore some useful comments
This commit is contained in:
parent
96a63a8e81
commit
d5e9dbf47d
1 changed files with 61 additions and 3 deletions
|
@ -2,6 +2,56 @@
|
||||||
|
|
||||||
final class HttpException extends \Exception {}
|
final class HttpException extends \Exception {}
|
||||||
|
|
||||||
|
// todo: move this somewhere useful, possibly into a function
|
||||||
|
const RSSBRIDGE_HTTP_STATUS_CODES = [
|
||||||
|
'100' => 'Continue',
|
||||||
|
'101' => 'Switching Protocols',
|
||||||
|
'200' => 'OK',
|
||||||
|
'201' => 'Created',
|
||||||
|
'202' => 'Accepted',
|
||||||
|
'203' => 'Non-Authoritative Information',
|
||||||
|
'204' => 'No Content',
|
||||||
|
'205' => 'Reset Content',
|
||||||
|
'206' => 'Partial Content',
|
||||||
|
'300' => 'Multiple Choices',
|
||||||
|
'302' => 'Found',
|
||||||
|
'303' => 'See Other',
|
||||||
|
'304' => 'Not Modified',
|
||||||
|
'305' => 'Use Proxy',
|
||||||
|
'400' => 'Bad Request',
|
||||||
|
'401' => 'Unauthorized',
|
||||||
|
'402' => 'Payment Required',
|
||||||
|
'403' => 'Forbidden',
|
||||||
|
'404' => 'Not Found',
|
||||||
|
'405' => 'Method Not Allowed',
|
||||||
|
'406' => 'Not Acceptable',
|
||||||
|
'407' => 'Proxy Authentication Required',
|
||||||
|
'408' => 'Request Timeout',
|
||||||
|
'409' => 'Conflict',
|
||||||
|
'410' => 'Gone',
|
||||||
|
'411' => 'Length Required',
|
||||||
|
'412' => 'Precondition Failed',
|
||||||
|
'413' => 'Request Entity Too Large',
|
||||||
|
'414' => 'Request-URI Too Long',
|
||||||
|
'415' => 'Unsupported Media Type',
|
||||||
|
'416' => 'Requested Range Not Satisfiable',
|
||||||
|
'417' => 'Expectation Failed',
|
||||||
|
'500' => 'Internal Server Error',
|
||||||
|
'501' => 'Not Implemented',
|
||||||
|
'502' => 'Bad Gateway',
|
||||||
|
'503' => 'Service Unavailable',
|
||||||
|
'504' => 'Gateway Timeout',
|
||||||
|
'505' => 'HTTP Version Not Supported'
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Fetch data from an http url
|
||||||
|
*
|
||||||
|
* @param array $httpHeaders E.g. ['Content-type: text/plain']
|
||||||
|
* @param array $curlOptions Associative array e.g. [CURLOPT_MAXREDIRS => 3]
|
||||||
|
* @param bool $returnHeader Whether to include headers in the returned value
|
||||||
|
* @return string|array
|
||||||
|
*/
|
||||||
function getContents(
|
function getContents(
|
||||||
string $url,
|
string $url,
|
||||||
array $httpHeaders = [],
|
array $httpHeaders = [],
|
||||||
|
@ -42,6 +92,7 @@ function getContents(
|
||||||
$directives = explode(',', $lastValue);
|
$directives = explode(',', $lastValue);
|
||||||
$directives = array_map('trim', $directives);
|
$directives = array_map('trim', $directives);
|
||||||
if(in_array('no-cache', $directives) || in_array('no-store', $directives)) {
|
if(in_array('no-cache', $directives) || in_array('no-store', $directives)) {
|
||||||
|
// Don't cache as instructed by the server
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -51,7 +102,13 @@ function getContents(
|
||||||
$response['content'] = $cache->loadData();
|
$response['content'] = $cache->loadData();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
throw new HttpException('', $result['code']);
|
throw new HttpException(
|
||||||
|
sprintf(
|
||||||
|
'%s %s',
|
||||||
|
RSSBRIDGE_HTTP_STATUS_CODES[$result['code']] ?? $result['code'],
|
||||||
|
$result['code']
|
||||||
|
)
|
||||||
|
);
|
||||||
}
|
}
|
||||||
if ($returnHeader === true) {
|
if ($returnHeader === true) {
|
||||||
return $response;
|
return $response;
|
||||||
|
@ -92,9 +149,10 @@ function _http_request(string $url, array $config = []): array
|
||||||
if($config['proxy']) {
|
if($config['proxy']) {
|
||||||
curl_setopt($ch, CURLOPT_PROXY, $config['proxy']);
|
curl_setopt($ch, CURLOPT_PROXY, $config['proxy']);
|
||||||
}
|
}
|
||||||
foreach($config['curl_options'] as $key => $value) {
|
if (curl_setopt_array($ch, $config['curl_options']) === false) {
|
||||||
curl_setopt($ch, $key, $value);
|
throw new \Exception('Tried to set an illegal curl option');
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($config['if_not_modified_since']) {
|
if ($config['if_not_modified_since']) {
|
||||||
curl_setopt($ch, CURLOPT_TIMEVALUE, $config['if_not_modified_since']);
|
curl_setopt($ch, CURLOPT_TIMEVALUE, $config['if_not_modified_since']);
|
||||||
curl_setopt($ch, CURLOPT_TIMECONDITION, CURL_TIMECOND_IFMODSINCE);
|
curl_setopt($ch, CURLOPT_TIMECONDITION, CURL_TIMECOND_IFMODSINCE);
|
||||||
|
|
Loading…
Reference in a new issue