*/
private static function getUriFromGuid($author, $guid, $onlyfound = false)
{
- $r = q("SELECT `uri` FROM `item` WHERE `guid` = '%s' LIMIT 1", dbesc($guid));
- if (DBM::is_result($r)) {
- return $r[0]["uri"];
+ $item = dba::selectFirst('item', ['uri'], ['guid' => $guid]);
+ if (DBM::is_result($item)) {
+ return $item["uri"];
} elseif (!$onlyfound) {
- return $author.":".$guid;
+ $contact = Contact::getDetailsByAddr($author, 0);
+ if (!empty($contact['network'])) {
+ $prefix = 'urn:X-' . $contact['network'] . ':';
+ } else {
+ // This fallback should happen most unlikely
+ $prefix = 'urn:X-dspr:';
+ }
+
+ $author_parts = explode('@', $author);
+
+ return $prefix . $author_parts[1] . ':' . $author_parts[0] . ':'. $guid;
}
return "";
while ($item = dba::fetch($r)) {
// Fetch the parent item
- $parent = dba::selectFirst('item', ['author-link', 'origin'], ['id' => $item["parent"]]);
+ $parent = dba::selectFirst('item', ['author-link'], ['id' => $item["parent"]]);
// Only delete it if the parent author really fits
if (!link_compare($parent["author-link"], $contact["url"]) && !link_compare($item["author-link"], $contact["url"])) {
continue;
}
- Item::deleteById($item["id"]);
+ Item::delete(['id' => $item['id']]);
logger("Deleted target ".$target_guid." (".$item["id"].") from user ".$item["uid"]." parent: ".$item["parent"], LOGGER_DEBUG);
}