if ($item["plink"] == "") {
$item["plink"] = $xpath->evaluate('rss:link/text()', $entry)->item(0)->nodeValue;
}
- $item["plink"] = original_url($item["plink"]);
$item["uri"] = $xpath->evaluate('atom:id/text()', $entry)->item(0)->nodeValue;
if ($item["uri"] == "") {
$item["uri"] = $item["plink"];
}
+
+ $orig_plink = $item["plink"];
+
+ $item["plink"] = original_url($item["plink"]);
+
$item["parent-uri"] = $item["uri"];
if (!$simulate) {
$r = q("SELECT `id` FROM `item` WHERE `uid` = %d AND `uri` = '%s' AND `network` IN ('%s', '%s')",
intval($importer["uid"]), dbesc($item["uri"]), dbesc(NETWORK_FEED), dbesc(NETWORK_DFRN));
- if ($r) {
+ if (dbm::is_result($r)) {
logger("Item with uri ".$item["uri"]." for user ".$importer["uid"]." already existed under id ".$r[0]["id"], LOGGER_DEBUG);
continue;
}
// Distributed items should have a well formatted URI.
// Additionally we have to avoid conflicts with identical URI between imported feeds and these items.
if ($notify) {
+ $item['guid'] = uri_to_guid($orig_plink, $a->get_hostname());
unset($item['uri']);
unset($item['parent-uri']);
}
// We have to avoid duplicates. So we create the GUID in form of a hash of the plink or uri.
// In difference to the call to "uri_to_guid" several lines below we add the hash of our own host.
// This is done because our host is the original creator of the post.
- if (isset($arr['plink'])) {
- $arr['guid'] = uri_to_guid($arr['plink'], $a->get_hostname());
- } elseif (isset($arr['uri'])) {
- $arr['guid'] = uri_to_guid($arr['uri'], $a->get_hostname());
+ if (!isset($arr['guid'])) {
+ if (isset($arr['plink'])) {
+ $arr['guid'] = uri_to_guid($arr['plink'], $a->get_hostname());
+ } elseif (isset($arr['uri'])) {
+ $arr['guid'] = uri_to_guid($arr['uri'], $a->get_hostname());
+ }
}
}