Hubzilla doesn't send a width attribute in the avatar picure in the hcard

This commit is contained in:
Michael 2017-01-15 19:46:04 +00:00
parent 63e2695d22
commit e63e241f8f

View File

@ -715,13 +715,21 @@ class Probe {
$photos = $xpath->query("//*[contains(concat(' ', @class, ' '), ' photo ') or contains(concat(' ', @class, ' '), ' avatar ')]", $vcard); // */ $photos = $xpath->query("//*[contains(concat(' ', @class, ' '), ' photo ') or contains(concat(' ', @class, ' '), ' avatar ')]", $vcard); // */
foreach ($photos AS $photo) { foreach ($photos AS $photo) {
$attr = array(); $attr = array();
foreach ($photo->attributes as $attribute) foreach ($photo->attributes as $attribute) {
$attr[$attribute->name] = trim($attribute->value); $attr[$attribute->name] = trim($attribute->value);
}
if (isset($attr["src"]) AND isset($attr["width"])) if (isset($attr["src"]) AND isset($attr["width"])) {
$avatar[$attr["width"]] = $attr["src"]; $avatar[$attr["width"]] = $attr["src"];
} }
// We don't have a width. So we just take everything that we got.
// This is a Hubzilla workaround which doesn't send a width.
if ((sizeof($avatar) == 0) AND isset($attr["src"])) {
$avatar[] = $attr["src"];
}
}
if (sizeof($avatar)) { if (sizeof($avatar)) {
ksort($avatar); ksort($avatar);
$data["photo"] = array_pop($avatar); $data["photo"] = array_pop($avatar);