mirror of
https://git.sekbaer.de/Friendica/friendica.git
synced 2025-06-10 17:14:26 +02:00
Merge remote-tracking branch 'upstream/develop' into server-detection
This commit is contained in:
commit
8b7cb5d9ef
328 changed files with 13242 additions and 10211 deletions
|
@ -101,7 +101,7 @@ class Network
|
|||
* @param string $addr The email address
|
||||
* @return boolean True if it's a valid email address, false if it's not
|
||||
*/
|
||||
public static function isEmailDomainValid(string $addr)
|
||||
public static function isEmailDomainValid(string $addr): bool
|
||||
{
|
||||
if (DI::config()->get('system', 'disable_email_validation')) {
|
||||
return true;
|
||||
|
@ -132,7 +132,7 @@ class Network
|
|||
* @param string $url URL which get tested
|
||||
* @return boolean True if url is allowed otherwise return false
|
||||
*/
|
||||
public static function isUrlAllowed(string $url)
|
||||
public static function isUrlAllowed(string $url): bool
|
||||
{
|
||||
$h = @parse_url($url);
|
||||
|
||||
|
@ -177,7 +177,7 @@ class Network
|
|||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public static function isUrlBlocked(string $url)
|
||||
public static function isUrlBlocked(string $url): bool
|
||||
{
|
||||
$host = @parse_url($url, PHP_URL_HOST);
|
||||
if (!$host) {
|
||||
|
@ -206,7 +206,7 @@ class Network
|
|||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public static function isRedirectBlocked(string $url)
|
||||
public static function isRedirectBlocked(string $url): bool
|
||||
{
|
||||
$host = @parse_url($url, PHP_URL_HOST);
|
||||
if (!$host) {
|
||||
|
@ -237,7 +237,7 @@ class Network
|
|||
* or if allowed list is not configured
|
||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||
*/
|
||||
public static function isEmailDomainAllowed(string $email)
|
||||
public static function isEmailDomainAllowed(string $email): bool
|
||||
{
|
||||
$domain = strtolower(substr($email, strpos($email, '@') + 1));
|
||||
if (!$domain) {
|
||||
|
@ -261,7 +261,7 @@ class Network
|
|||
* @param array $domain_list
|
||||
* @return boolean
|
||||
*/
|
||||
public static function isDomainAllowed(string $domain, array $domain_list)
|
||||
public static function isDomainAllowed(string $domain, array $domain_list): bool
|
||||
{
|
||||
$found = false;
|
||||
|
||||
|
@ -276,7 +276,7 @@ class Network
|
|||
return $found;
|
||||
}
|
||||
|
||||
public static function lookupAvatarByEmail(string $email)
|
||||
public static function lookupAvatarByEmail(string $email): string
|
||||
{
|
||||
$avatar['size'] = 300;
|
||||
$avatar['email'] = $email;
|
||||
|
@ -299,11 +299,12 @@ class Network
|
|||
* @param string $url Any user-submitted URL that may contain tracking params
|
||||
* @return string The same URL stripped of tracking parameters
|
||||
*/
|
||||
public static function stripTrackingQueryParams(string $url)
|
||||
public static function stripTrackingQueryParams(string $url): string
|
||||
{
|
||||
$urldata = parse_url($url);
|
||||
if (!empty($urldata["query"])) {
|
||||
$query = $urldata["query"];
|
||||
|
||||
if (!empty($urldata['query'])) {
|
||||
$query = $urldata['query'];
|
||||
parse_str($query, $querydata);
|
||||
|
||||
if (is_array($querydata)) {
|
||||
|
@ -311,30 +312,32 @@ class Network
|
|||
if (in_array(
|
||||
$param,
|
||||
[
|
||||
"utm_source", "utm_medium", "utm_term", "utm_content", "utm_campaign",
|
||||
"wt_mc", "pk_campaign", "pk_kwd", "mc_cid", "mc_eid",
|
||||
"fb_action_ids", "fb_action_types", "fb_ref",
|
||||
"awesm", "wtrid",
|
||||
"woo_campaign", "woo_source", "woo_medium", "woo_content", "woo_term"]
|
||||
'utm_source', 'utm_medium', 'utm_term', 'utm_content', 'utm_campaign',
|
||||
// As seen from Purism
|
||||
'mtm_source', 'mtm_medium', 'mtm_term', 'mtm_content', 'mtm_campaign',
|
||||
'wt_mc', 'pk_campaign', 'pk_kwd', 'mc_cid', 'mc_eid',
|
||||
'fb_action_ids', 'fb_action_types', 'fb_ref',
|
||||
'awesm', 'wtrid',
|
||||
'woo_campaign', 'woo_source', 'woo_medium', 'woo_content', 'woo_term']
|
||||
)
|
||||
) {
|
||||
$pair = $param . "=" . urlencode($value);
|
||||
$url = str_replace($pair, "", $url);
|
||||
$pair = $param . '=' . urlencode($value);
|
||||
$url = str_replace($pair, '', $url);
|
||||
|
||||
// Second try: if the url isn't encoded completely
|
||||
$pair = $param . "=" . str_replace(" ", "+", $value);
|
||||
$url = str_replace($pair, "", $url);
|
||||
$pair = $param . '=' . str_replace(' ', '+', $value);
|
||||
$url = str_replace($pair, '', $url);
|
||||
|
||||
// Third try: Maybey the url isn't encoded at all
|
||||
$pair = $param . "=" . $value;
|
||||
$url = str_replace($pair, "", $url);
|
||||
$pair = $param . '=' . $value;
|
||||
$url = str_replace($pair, '', $url);
|
||||
|
||||
$url = str_replace(["?&", "&&"], ["?", ""], $url);
|
||||
$url = str_replace(['?&', '&&'], ['?', ''], $url);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (substr($url, -1, 1) == "?") {
|
||||
if (substr($url, -1, 1) == '?') {
|
||||
$url = substr($url, 0, -1);
|
||||
}
|
||||
}
|
||||
|
@ -355,8 +358,10 @@ class Network
|
|||
return $url;
|
||||
}
|
||||
|
||||
$base = ['scheme' => parse_url($basepath, PHP_URL_SCHEME),
|
||||
'host' => parse_url($basepath, PHP_URL_HOST)];
|
||||
$base = [
|
||||
'scheme' => parse_url($basepath, PHP_URL_SCHEME),
|
||||
'host' => parse_url($basepath, PHP_URL_HOST),
|
||||
];
|
||||
|
||||
$parts = array_merge($base, parse_url('/' . ltrim($url, '/')));
|
||||
return self::unparseURL($parts);
|
||||
|
@ -367,12 +372,12 @@ class Network
|
|||
*
|
||||
* @param string $url1
|
||||
* @param string $url2
|
||||
* @return string The matching part
|
||||
* @return string The matching part or empty string on error
|
||||
*/
|
||||
public static function getUrlMatch(string $url1, string $url2)
|
||||
public static function getUrlMatch(string $url1, string $url2): string
|
||||
{
|
||||
if (($url1 == "") || ($url2 == "")) {
|
||||
return "";
|
||||
if (($url1 == '') || ($url2 == '')) {
|
||||
return '';
|
||||
}
|
||||
|
||||
$url1 = Strings::normaliseLink($url1);
|
||||
|
@ -381,67 +386,67 @@ class Network
|
|||
$parts1 = parse_url($url1);
|
||||
$parts2 = parse_url($url2);
|
||||
|
||||
if (!isset($parts1["host"]) || !isset($parts2["host"])) {
|
||||
return "";
|
||||
if (!isset($parts1['host']) || !isset($parts2['host'])) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (empty($parts1["scheme"])) {
|
||||
$parts1["scheme"] = '';
|
||||
if (empty($parts1['scheme'])) {
|
||||
$parts1['scheme'] = '';
|
||||
}
|
||||
if (empty($parts2["scheme"])) {
|
||||
$parts2["scheme"] = '';
|
||||
if (empty($parts2['scheme'])) {
|
||||
$parts2['scheme'] = '';
|
||||
}
|
||||
|
||||
if ($parts1["scheme"] != $parts2["scheme"]) {
|
||||
return "";
|
||||
if ($parts1['scheme'] != $parts2['scheme']) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (empty($parts1["host"])) {
|
||||
$parts1["host"] = '';
|
||||
if (empty($parts1['host'])) {
|
||||
$parts1['host'] = '';
|
||||
}
|
||||
if (empty($parts2["host"])) {
|
||||
$parts2["host"] = '';
|
||||
if (empty($parts2['host'])) {
|
||||
$parts2['host'] = '';
|
||||
}
|
||||
|
||||
if ($parts1["host"] != $parts2["host"]) {
|
||||
return "";
|
||||
if ($parts1['host'] != $parts2['host']) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (empty($parts1["port"])) {
|
||||
$parts1["port"] = '';
|
||||
if (empty($parts1['port'])) {
|
||||
$parts1['port'] = '';
|
||||
}
|
||||
if (empty($parts2["port"])) {
|
||||
$parts2["port"] = '';
|
||||
if (empty($parts2['port'])) {
|
||||
$parts2['port'] = '';
|
||||
}
|
||||
|
||||
if ($parts1["port"] != $parts2["port"]) {
|
||||
return "";
|
||||
if ($parts1['port'] != $parts2['port']) {
|
||||
return '';
|
||||
}
|
||||
|
||||
$match = $parts1["scheme"]."://".$parts1["host"];
|
||||
$match = $parts1['scheme'] . '://' . $parts1['host'];
|
||||
|
||||
if ($parts1["port"]) {
|
||||
$match .= ":".$parts1["port"];
|
||||
if ($parts1['port']) {
|
||||
$match .= ':' . $parts1['port'];
|
||||
}
|
||||
|
||||
if (empty($parts1["path"])) {
|
||||
$parts1["path"] = '';
|
||||
if (empty($parts1['path'])) {
|
||||
$parts1['path'] = '';
|
||||
}
|
||||
if (empty($parts2["path"])) {
|
||||
$parts2["path"] = '';
|
||||
if (empty($parts2['path'])) {
|
||||
$parts2['path'] = '';
|
||||
}
|
||||
|
||||
$pathparts1 = explode("/", $parts1["path"]);
|
||||
$pathparts2 = explode("/", $parts2["path"]);
|
||||
$pathparts1 = explode('/', $parts1['path']);
|
||||
$pathparts2 = explode('/', $parts2['path']);
|
||||
|
||||
$i = 0;
|
||||
$path = "";
|
||||
$path = '';
|
||||
do {
|
||||
$path1 = $pathparts1[$i] ?? '';
|
||||
$path2 = $pathparts2[$i] ?? '';
|
||||
|
||||
if ($path1 == $path2) {
|
||||
$path .= $path1."/";
|
||||
$path .= $path1 . '/';
|
||||
}
|
||||
} while (($path1 == $path2) && ($i++ <= count($pathparts1)));
|
||||
|
||||
|
@ -454,11 +459,10 @@ class Network
|
|||
* Glue url parts together
|
||||
*
|
||||
* @param array $parsed URL parts
|
||||
*
|
||||
* @return string The glued URL.
|
||||
* @return string|null The glued URL or null on error
|
||||
* @deprecated since version 2021.12, use GuzzleHttp\Psr7\Uri::fromParts($parts) instead
|
||||
*/
|
||||
public static function unparseURL(array $parsed)
|
||||
public static function unparseURL(array $parsed): string
|
||||
{
|
||||
$get = function ($key) use ($parsed) {
|
||||
return isset($parsed[$key]) ? $parsed[$key] : null;
|
||||
|
@ -471,15 +475,15 @@ class Network
|
|||
$scheme = $get('scheme');
|
||||
$query = $get('query');
|
||||
$fragment = $get('fragment');
|
||||
$authority = ($userinfo !== null ? $userinfo."@" : '') .
|
||||
$authority = ($userinfo !== null ? $userinfo . '@' : '') .
|
||||
$get('host') .
|
||||
($port ? ":$port" : '');
|
||||
|
||||
return (strlen($scheme) ? $scheme.":" : '') .
|
||||
(strlen($authority) ? "//".$authority : '') .
|
||||
return (strlen($scheme) ? $scheme . ':' : '') .
|
||||
(strlen($authority) ? '//' . $authority : '') .
|
||||
$get('path') .
|
||||
(strlen($query) ? "?".$query : '') .
|
||||
(strlen($fragment) ? "#".$fragment : '');
|
||||
(strlen($query) ? '?' . $query : '') .
|
||||
(strlen($fragment) ? '#' . $fragment : '');
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -509,11 +513,10 @@ class Network
|
|||
/**
|
||||
* Switch the scheme of an url between http and https
|
||||
*
|
||||
* @param string $url URL
|
||||
*
|
||||
* @return string switched URL
|
||||
* @param string $url
|
||||
* @return string Switched URL
|
||||
*/
|
||||
public static function switchScheme(string $url)
|
||||
public static function switchScheme(string $url): string
|
||||
{
|
||||
$scheme = parse_url($url, PHP_URL_SCHEME);
|
||||
if (empty($scheme)) {
|
||||
|
@ -536,7 +539,7 @@ class Network
|
|||
* @param array $additionalParams Associative array of parameters
|
||||
* @return string
|
||||
*/
|
||||
public static function appendQueryParam(string $path, array $additionalParams)
|
||||
public static function appendQueryParam(string $path, array $additionalParams): string
|
||||
{
|
||||
$parsed = parse_url($path);
|
||||
|
||||
|
@ -560,6 +563,7 @@ class Network
|
|||
*
|
||||
* @param string $etag The page etag
|
||||
* @param string $last_modified The page last modification UTC date
|
||||
* @return void
|
||||
* @throws \Exception
|
||||
*/
|
||||
public static function checkEtagModified(string $etag, string $last_modified)
|
||||
|
@ -599,7 +603,7 @@ class Network
|
|||
* @param string $url
|
||||
* @return bool
|
||||
*/
|
||||
public static function isLocalLink(string $url)
|
||||
public static function isLocalLink(string $url): bool
|
||||
{
|
||||
return (strpos(Strings::normaliseLink($url), Strings::normaliseLink(DI::baseUrl())) !== false);
|
||||
}
|
||||
|
@ -610,7 +614,7 @@ class Network
|
|||
* @param string $url
|
||||
* @return bool
|
||||
*/
|
||||
public static function isValidHttpUrl(string $url)
|
||||
public static function isValidHttpUrl(string $url): bool
|
||||
{
|
||||
$scheme = parse_url($url, PHP_URL_SCHEME);
|
||||
return !empty($scheme) && in_array($scheme, ['http', 'https']) && parse_url($url, PHP_URL_HOST);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue