Browse Source

Merge pull request #8137 from annando/ap-guid

AP: Create a GUID out of an URL
tags/2020.03
Hypolite Petovan 8 months ago
committed by GitHub
parent
commit
7d35cc6a09
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 21 additions and 1 deletions
  1. +21
    -1
      src/Protocol/ActivityPub/Processor.php

+ 21
- 1
src/Protocol/ActivityPub/Processor.php View File

@@ -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…
Cancel
Save