use Friendica\Database\DBA;
use Friendica\DI;
use Friendica\Model\Item;
+use Friendica\Network\HTTPClient\Client\HttpClientAccept;
use Friendica\Network\HTTPException;
use Friendica\Network\Probe;
use Friendica\Protocol\ActivityNamespace;
$apcontact['discoverable'] = JsonLD::fetchElement($compacted, 'toot:discoverable', '@value');
if (!empty($apcontact['photo'])) {
- $apcontact['photo'] = trim($apcontact['photo']);
- }
+ $apcontact['photo'] = Network::addBasePath($apcontact['photo'], $apcontact['url']);
- if (!empty($apcontact['photo']) && !Network::isValidHttpUrl($apcontact['photo'])) {
- Logger::warning('Invalid URL for photo', ['url' => $apcontact['url'], 'photo' => $apcontact['photo']]);
- $apcontact['photo'] = '';
+ if (!Network::isValidHttpUrl($apcontact['photo'])) {
+ Logger::warning('Invalid URL for photo', ['url' => $apcontact['url'], 'photo' => $apcontact['photo']]);
+ $apcontact['photo'] = '';
+ }
}
// When the photo is too large, try to shorten it by removing parts
$numeric_fields = ['gsid', 'hide', 'account-type', 'manually-approve'];
- if (!empty($data['photo']) && !Network::isValidHttpUrl($data['photo'])) {
- Logger::warning('Invalid URL for photo', ['url' => $data['url'], 'photo' => $data['photo']]);
- unset($data['photo']);
+ if (!empty($data['photo'])) {
+ $data['photo'] = Network::addBasePath($data['photo'], $data['url']);
+
+ if (!Network::isValidHttpUrl($data['photo'])) {
+ Logger::warning('Invalid URL for photo', ['url' => $data['url'], 'photo' => $data['photo']]);
+ unset($data['photo']);
+ }
}
$newdata = [];
}
if ($avatar) {
foreach ($avatar->attributes as $attribute) {
- if ($attribute->name == 'src') {
- $data['photo'] = trim($attribute->value);
- if (!empty($data['photo']) && !parse_url($data['photo'], PHP_URL_SCHEME) && !parse_url($data['photo'], PHP_URL_HOST)) {
- $data['photo'] = $baseurl . $data['photo'];
- }
+ if (($attribute->name == 'src') && !empty($attribute->value)) {
+ $data['photo'] = Network::addBasePath($attribute->value, $baseurl);
}
}
}