Merge pull request #11334 from annando/guid-style
Use a nicer GUID style format
This commit is contained in:
commit
61e023d448
|
@ -1773,7 +1773,10 @@ class Item
|
|||
}
|
||||
|
||||
/**
|
||||
* Creates an unique guid out of a given uri
|
||||
* Creates an unique guid out of a given uri.
|
||||
* This function is used for messages outside the fediverse (Connector posts, feeds, Mails, ...)
|
||||
* Posts that are created on this system are using System::createUUID.
|
||||
* Received ActivityPub posts are using Processor::getGUIDByURL.
|
||||
*
|
||||
* @param string $uri uri of an item entry
|
||||
* @param string $host hostname for the GUID prefix
|
||||
|
@ -1785,19 +1788,14 @@ class Item
|
|||
// We have to avoid that different routines could accidentally create the same value
|
||||
$parsed = parse_url($uri);
|
||||
|
||||
// We use a hash of the hostname as prefix for the guid
|
||||
$guid_prefix = hash("crc32", $host);
|
||||
|
||||
// Remove the scheme to make sure that "https" and "http" doesn't make a difference
|
||||
unset($parsed["scheme"]);
|
||||
|
||||
// Glue it together to be able to make a hash from it
|
||||
$host_id = implode("/", $parsed);
|
||||
|
||||
// We could use any hash algorithm since it isn't a security issue
|
||||
$host_hash = hash("ripemd128", $host_id);
|
||||
|
||||
return $guid_prefix.$host_hash;
|
||||
// Use a mixture of several hashes to provide some GUID like experience
|
||||
return hash("crc32", $host) . '-'. hash('joaat', $host_id) . '-'. hash('fnv164', $host_id);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -553,7 +553,7 @@ class Processor
|
|||
}
|
||||
|
||||
/**
|
||||
* Generate a GUID out of an URL
|
||||
* Generate a GUID out of an URL of an ActivityPub post.
|
||||
*
|
||||
* @param string $url message URL
|
||||
* @return string with GUID
|
||||
|
|
Loading…
Reference in a new issue