1
0
Fork 0

Merge branch 'develop' into improvement/move-app-to-src-2

This commit is contained in:
Hypolite Petovan 2017-05-07 12:58:11 -04:00 committed by GitHub
commit 86cae070f2
21 changed files with 5720 additions and 5348 deletions

View file

@ -175,6 +175,9 @@ class Probe {
return array();
$host = $parts["host"];
if (isset($parts["port"])) {
$host .= ':'.$parts["port"];
}
$path_parts = explode("/", trim($parts["path"], "/"));
@ -335,8 +338,10 @@ class Probe {
if (isset($parts["scheme"]) AND isset($parts["host"]) AND isset($parts["path"])) {
/// @todo: Ports?
$host = $parts["host"];
if (isset($parts["port"])) {
$host .= ':'.$parts["port"];
}
if ($host == 'twitter.com') {
return array("network" => NETWORK_TWITTER);
@ -789,7 +794,7 @@ class Probe {
if (sizeof($avatar)) {
ksort($avatar);
$data["photo"] = array_pop($avatar);
$data["photo"] = self::fix_avatar(array_pop($avatar), $data["baseurl"]);
}
if ($dfrn) {
@ -960,7 +965,7 @@ class Probe {
$data["nick"] = $feed_data["header"]["author-nick"];
}
if ($feed_data["header"]["author-avatar"] != "") {
$data["photo"] = ostatus::fix_avatar($feed_data["header"]["author-avatar"], $data["url"]);
$data["photo"] = self::fix_avatar($feed_data["header"]["author-avatar"], $data["url"]);
}
if ($feed_data["header"]["author-id"] != "") {
$data["alias"] = $feed_data["header"]["author-id"];
@ -1219,4 +1224,41 @@ class Probe {
return $data;
}
/**
* @brief Mix two paths together to possibly fix missing parts
*
* @param string $avatar Path to the avatar
* @param string $base Another path that is hopefully complete
*
* @return string fixed avatar path
*/
public static function fix_avatar($avatar, $base) {
$base_parts = parse_url($base);
// Remove all parts that could create a problem
unset($base_parts['path']);
unset($base_parts['query']);
unset($base_parts['fragment']);
$avatar_parts = parse_url($avatar);
// Now we mix them
$parts = array_merge($base_parts, $avatar_parts);
// And put them together again
$scheme = isset($parts['scheme']) ? $parts['scheme'] . '://' : '';
$host = isset($parts['host']) ? $parts['host'] : '';
$port = isset($parts['port']) ? ':' . $parts['port'] : '';
$path = isset($parts['path']) ? $parts['path'] : '';
$query = isset($parts['query']) ? '?' . $parts['query'] : '';
$fragment = isset($parts['fragment']) ? '#' . $parts['fragment'] : '';
$fixed = $scheme.$host.$port.$path.$query.$fragment;
logger('Base: '.$base.' - Avatar: '.$avatar.' - Fixed: '.$fixed, LOGGER_DATA);
return $fixed;
}
}