AP: Create a GUID out of an URL
This commit is contained in:
parent
af88c2daa3
commit
bb253ceeaa
1 changed files with 21 additions and 1 deletions
|
@ -389,6 +389,26 @@ class Processor
|
|||
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
|
||||
*
|
||||
|
@ -431,7 +451,7 @@ class Processor
|
|||
|
||||
$item['created'] = DateTimeFormat::utc($activity['published']);
|
||||
$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);
|
||||
if (empty($item)) {
|
||||
|
|
Loading…
Reference in a new issue