1
0
Fork 0

Move ACCEPT constants to own "enum" class

This commit is contained in:
Philipp Holzer 2022-04-02 20:26:11 +02:00
commit 73c3b21665
Signed by: nupplaPhil
GPG key ID: 24A7501396EB5432
35 changed files with 144 additions and 138 deletions

View file

@ -43,22 +43,6 @@ use Psr\Log\LoggerInterface;
*/
class HttpClient implements ICanSendHttpRequests
{
/** @var string Default value for "Accept" header */
const ACCEPT_DEFAULT = '*/*';
const ACCEPT_ATOM_XML = 'application/atom+xml,text/xml;q=0.9,*/*;q=0.8';
const ACCEPT_FEED_XML = 'application/atom+xml,application/rss+xml;q=0.9,application/rdf+xml;q=0.8,text/xml;q=0.7,*/*;q=0.6';
const ACCEPT_HTML = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
const ACCEPT_IMAGE = 'image/png,image/jpeg,image/gif,image/*;q=0.9,*/*;q=0.8';
const ACCEPT_JRD_JSON = 'application/jrd+json,application/json;q=0.9';
const ACCEPT_JSON = 'application/json,*/*;q=0.9';
const ACCEPT_JSON_AS = 'application/activity+json, application/ld+json; profile="https://www.w3.org/ns/activitystreams"';
const ACCEPT_MAGIC = 'application/magic-envelope+xml';
const ACCEPT_MAGIC_KEY = 'application/magic-public-key';
const ACCEPT_RSS_XML = 'application/rss+xml,text/xml;q=0.9,*/*;q=0.8';
const ACCEPT_TEXT = 'text/plain,text/*;q=0.9,*/*;q=0.8';
const ACCEPT_VIDEO = 'video/mp4,video/*;q=0.9,*/*;q=0.8';
const ACCEPT_XRD_XML = 'application/xrd+xml,text/xml;q=0.9,*/*;q=0.8';
/** @var LoggerInterface */
private $logger;
/** @var Profiler */
@ -157,7 +141,7 @@ class HttpClient implements ICanSendHttpRequests
};
if (empty($conf[HttpClientOptions::HEADERS]['Accept'])) {
$conf[HttpClientOptions::HEADERS]['Accept'] = static::ACCEPT_DEFAULT;
$conf[HttpClientOptions::HEADERS]['Accept'] = HttpClientAccept::DEFAULT;
}
try {

View file

@ -0,0 +1,23 @@
<?php
namespace Friendica\Network\HTTPClient\Client;
class HttpClientAccept
{
/** @var string Default value for "Accept" header */
public const DEFAULT = '*/*';
public const ATOM_XML = 'application/atom+xml,text/xml;q=0.9,*/*;q=0.8';
public const FEED_XML = 'application/atom+xml,application/rss+xml;q=0.9,application/rdf+xml;q=0.8,text/xml;q=0.7,*/*;q=0.6';
public const HTML = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8';
public const IMAGE = 'image/png,image/jpeg,image/gif,image/*;q=0.9,*/*;q=0.8';
public const JRD_JSON = 'application/jrd+json,application/json;q=0.9';
public const JSON = 'application/json,*/*;q=0.9';
public const JSON_AS = 'application/activity+json, application/ld+json; profile="https://www.w3.org/ns/activitystreams"';
public const MAGIC = 'application/magic-envelope+xml';
public const MAGIC_KEY = 'application/magic-public-key';
public const RSS_XML = 'application/rss+xml,text/xml;q=0.9,*/*;q=0.8';
public const TEXT = 'text/plain,text/*;q=0.9,*/*;q=0.8';
public const VIDEO = 'video/mp4,video/*;q=0.9,*/*;q=0.8';
public const XRD_XML = 'application/xrd+xml,text/xml;q=0.9,*/*;q=0.8';
}

View file

@ -34,7 +34,7 @@ use Friendica\Model\Contact;
use Friendica\Model\GServer;
use Friendica\Model\Profile;
use Friendica\Model\User;
use Friendica\Network\HTTPClient\Client\HttpClient;
use Friendica\Network\HTTPClient\Client\HttpClientAccept;
use Friendica\Network\HTTPClient\Client\HttpClientOptions;
use Friendica\Protocol\ActivityNamespace;
use Friendica\Protocol\ActivityPub;
@ -170,7 +170,7 @@ class Probe
Logger::info('Probing', ['host' => $host, 'ssl_url' => $ssl_url, 'url' => $url, 'callstack' => System::callstack(20)]);
$xrd = null;
$curlResult = DI::httpClient()->get($ssl_url, [HttpClientOptions::TIMEOUT => $xrd_timeout, HttpClientOptions::ACCEPT_CONTENT => HttpClient::ACCEPT_XRD_XML]);
$curlResult = DI::httpClient()->get($ssl_url, [HttpClientOptions::TIMEOUT => $xrd_timeout, HttpClientOptions::ACCEPT_CONTENT => HttpClientAccept::XRD_XML]);
$ssl_connection_error = ($curlResult->getErrorNumber() == CURLE_COULDNT_CONNECT) || ($curlResult->getReturnCode() == 0);
if ($curlResult->isSuccess()) {
$xml = $curlResult->getBody();
@ -187,7 +187,7 @@ class Probe
}
if (!is_object($xrd) && !empty($url)) {
$curlResult = DI::httpClient()->get($url, [HttpClientOptions::TIMEOUT => $xrd_timeout, HttpClientOptions::ACCEPT_CONTENT => HttpClient::ACCEPT_XRD_XML]);
$curlResult = DI::httpClient()->get($url, [HttpClientOptions::TIMEOUT => $xrd_timeout, HttpClientOptions::ACCEPT_CONTENT => HttpClientAccept::XRD_XML]);
$connection_error = ($curlResult->getErrorNumber() == CURLE_COULDNT_CONNECT) || ($curlResult->getReturnCode() == 0);
if ($curlResult->isTimeout()) {
Logger::info('Probing timeout', ['url' => $url]);
@ -429,7 +429,7 @@ class Probe
*/
private static function getHideStatus($url)
{
$curlResult = DI::httpClient()->get($url, [HttpClientOptions::CONTENT_LENGTH => 1000000, HttpClientOptions::ACCEPT_CONTENT => HttpClient::ACCEPT_HTML]);
$curlResult = DI::httpClient()->get($url, [HttpClientOptions::CONTENT_LENGTH => 1000000, HttpClientOptions::ACCEPT_CONTENT => HttpClientAccept::HTML]);
if (!$curlResult->isSuccess()) {
return false;
}
@ -531,7 +531,7 @@ class Probe
$addr = $nick . '@' . $host;
}
$webfinger = self::getWebfinger($parts['scheme'] . '://' . $host . self::WEBFINGER, HttpClient::ACCEPT_JRD_JSON, $uri, $addr);
$webfinger = self::getWebfinger($parts['scheme'] . '://' . $host . self::WEBFINGER, HttpClientAccept::JRD_JSON, $uri, $addr);
if (empty($webfinger)) {
$lrdd = self::hostMeta($host);
}
@ -545,7 +545,7 @@ class Probe
$addr = $nick . '@' . $host;
}
$webfinger = self::getWebfinger($parts['scheme'] . '://' . $host . self::WEBFINGER, HttpClient::ACCEPT_JRD_JSON, $uri, $addr);
$webfinger = self::getWebfinger($parts['scheme'] . '://' . $host . self::WEBFINGER, HttpClientAccept::JRD_JSON, $uri, $addr);
if (empty($webfinger)) {
$lrdd = self::hostMeta($host);
}
@ -563,13 +563,13 @@ class Probe
$nick = substr($uri, 0, strpos($uri, '@'));
$addr = $uri;
$webfinger = self::getWebfinger('https://' . $host . self::WEBFINGER, HttpClient::ACCEPT_JRD_JSON, $uri, $addr);
$webfinger = self::getWebfinger('https://' . $host . self::WEBFINGER, HttpClientAccept::JRD_JSON, $uri, $addr);
if (self::$istimeout) {
return [];
}
if (empty($webfinger)) {
$webfinger = self::getWebfinger('http://' . $host . self::WEBFINGER, HttpClient::ACCEPT_JRD_JSON, $uri, $addr);
$webfinger = self::getWebfinger('http://' . $host . self::WEBFINGER, HttpClientAccept::JRD_JSON, $uri, $addr);
if (self::$istimeout) {
return [];
}
@ -834,7 +834,7 @@ class Probe
public static function pollZot($url, $data)
{
$curlResult = DI::httpClient()->get($url, [HttpClientOptions::ACCEPT_CONTENT => HttpClient::ACCEPT_JSON]);
$curlResult = DI::httpClient()->get($url, [HttpClientOptions::ACCEPT_CONTENT => HttpClientAccept::JSON]);
if ($curlResult->isTimeout()) {
return $data;
}
@ -1000,7 +1000,7 @@ class Probe
*/
private static function pollNoscrape($noscrape_url, $data)
{
$curlResult = DI::httpClient()->get($noscrape_url, [HttpClientOptions::ACCEPT_CONTENT => HttpClient::ACCEPT_JSON]);
$curlResult = DI::httpClient()->get($noscrape_url, [HttpClientOptions::ACCEPT_CONTENT => HttpClientAccept::JSON]);
if ($curlResult->isTimeout()) {
self::$istimeout = true;
return $data;
@ -1266,7 +1266,7 @@ class Probe
*/
private static function pollHcard($hcard_url, $data, $dfrn = false)
{
$curlResult = DI::httpClient()->get($hcard_url, [HttpClientOptions::ACCEPT_CONTENT => HttpClient::ACCEPT_HTML]);
$curlResult = DI::httpClient()->get($hcard_url, [HttpClientOptions::ACCEPT_CONTENT => HttpClientAccept::HTML]);
if ($curlResult->isTimeout()) {
self::$istimeout = true;
return [];
@ -1527,7 +1527,7 @@ class Probe
$pubkey = substr($pubkey, 5);
}
} elseif (Strings::normaliseLink($pubkey) == 'http://') {
$curlResult = DI::httpClient()->get($pubkey, [HttpClientOptions::ACCEPT_CONTENT => HttpClient::ACCEPT_MAGIC_KEY]);
$curlResult = DI::httpClient()->get($pubkey, [HttpClientOptions::ACCEPT_CONTENT => HttpClientAccept::MAGIC_KEY]);
if ($curlResult->isTimeout()) {
self::$istimeout = true;
return $short ? false : [];
@ -1562,7 +1562,7 @@ class Probe
}
// Fetch all additional data from the feed
$curlResult = DI::httpClient()->get($data["poll"], [HttpClientOptions::ACCEPT_CONTENT => HttpClient::ACCEPT_FEED_XML]);
$curlResult = DI::httpClient()->get($data["poll"], [HttpClientOptions::ACCEPT_CONTENT => HttpClientAccept::FEED_XML]);
if ($curlResult->isTimeout()) {
self::$istimeout = true;
return [];
@ -1614,7 +1614,7 @@ class Probe
*/
private static function pumpioProfileData($profile_link)
{
$curlResult = DI::httpClient()->get($profile_link, [HttpClientOptions::ACCEPT_CONTENT => HttpClient::ACCEPT_HTML]);
$curlResult = DI::httpClient()->get($profile_link, [HttpClientOptions::ACCEPT_CONTENT => HttpClientAccept::HTML]);
if (!$curlResult->isSuccess() || empty($curlResult->getBody())) {
return [];
}
@ -1827,7 +1827,7 @@ class Probe
*/
private static function feed($url, $probe = true)
{
$curlResult = DI::httpClient()->get($url, [HttpClientOptions::ACCEPT_CONTENT => HttpClient::ACCEPT_FEED_XML]);
$curlResult = DI::httpClient()->get($url, [HttpClientOptions::ACCEPT_CONTENT => HttpClientAccept::FEED_XML]);
if ($curlResult->isTimeout()) {
self::$istimeout = true;
return [];
@ -2049,7 +2049,7 @@ class Probe
return '';
}
$curlResult = DI::httpClient()->get($gserver['noscrape'] . '/' . $data['nick'], [HttpClientOptions::ACCEPT_CONTENT => HttpClient::ACCEPT_JSON]);
$curlResult = DI::httpClient()->get($gserver['noscrape'] . '/' . $data['nick'], [HttpClientOptions::ACCEPT_CONTENT => HttpClientAccept::JSON]);
if ($curlResult->isSuccess() && !empty($curlResult->getBody())) {
$noscrape = json_decode($curlResult->getBody(), true);
@ -2124,7 +2124,7 @@ class Probe
private static function updateFromFeed(array $data)
{
// Search for the newest entry in the feed
$curlResult = DI::httpClient()->get($data['poll'], [HttpClientOptions::ACCEPT_CONTENT => HttpClient::ACCEPT_ATOM_XML]);
$curlResult = DI::httpClient()->get($data['poll'], [HttpClientOptions::ACCEPT_CONTENT => HttpClientAccept::ATOM_XML]);
if (!$curlResult->isSuccess() || !$curlResult->getBody()) {
return '';
}