1
0
Fork 0

Merge pull request #8137 from annando/ap-guid

AP: Create a GUID out of an URL
This commit is contained in:
Hypolite Petovan 2020-01-19 09:54:47 -05:00 committed by GitHub
commit 7d35cc6a09
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -389,6 +389,26 @@ class Processor
return $item; return $item;
} }
/**
* Generate a GUID out of an URL
*
* @param string $url message URL
* @return string with GUID
*/
private static function getGUIDByURL(string $url)
{
$parsed = parse_url($url);
$host_hash = hash('crc32', $parsed['host']);
unset($parsed["scheme"]);
unset($parsed["host"]);
$path = implode("/", $parsed);
return $host_hash . '-'. hash('fnv164', $path) . '-'. hash('joaat', $path);
}
/** /**
* Creates an item post * Creates an item post
* *
@ -431,7 +451,7 @@ class Processor
$item['created'] = DateTimeFormat::utc($activity['published']); $item['created'] = DateTimeFormat::utc($activity['published']);
$item['edited'] = DateTimeFormat::utc($activity['updated']); $item['edited'] = DateTimeFormat::utc($activity['updated']);
$item['guid'] = $activity['diaspora:guid']; $item['guid'] = $activity['diaspora:guid'] ?: self::getGUIDByURL($item['uri']);
$item = self::processContent($activity, $item); $item = self::processContent($activity, $item);
if (empty($item)) { if (empty($item)) {