Only process feed and dfrn items when they aren't already stored
This commit is contained in:
parent
44bd890645
commit
2424cb78d1
3 changed files with 65 additions and 47 deletions
|
|
@ -177,18 +177,6 @@ function feed_import($xml,$importer,&$contact, &$hub, $simulate = false) {
|
|||
foreach (array_reverse($entrylist) AS $entry) {
|
||||
$item = array_merge($header, $author);
|
||||
|
||||
$item["title"] = $xpath->evaluate('atom:title/text()', $entry)->item(0)->nodeValue;
|
||||
|
||||
if ($item["title"] == "")
|
||||
$item["title"] = $xpath->evaluate('title/text()', $entry)->item(0)->nodeValue;
|
||||
|
||||
if ($item["title"] == "")
|
||||
$item["title"] = $xpath->evaluate('rss:title/text()', $entry)->item(0)->nodeValue;
|
||||
|
||||
$alternate = $xpath->query("atom:link[@rel='alternate']", $entry)->item(0)->attributes;
|
||||
if (!is_object($alternate))
|
||||
$alternate = $xpath->query("atom:link", $entry)->item(0)->attributes;
|
||||
|
||||
if (is_object($alternate))
|
||||
foreach($alternate AS $attributes)
|
||||
if ($attributes->name == "href")
|
||||
|
|
@ -212,6 +200,27 @@ function feed_import($xml,$importer,&$contact, &$hub, $simulate = false) {
|
|||
|
||||
$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) {
|
||||
logger("Item with uri ".$item["uri"]." for user ".$importer["uid"]." already existed under id ".$r[0]["id"], LOGGER_DEBUG);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
$item["title"] = $xpath->evaluate('atom:title/text()', $entry)->item(0)->nodeValue;
|
||||
|
||||
if ($item["title"] == "")
|
||||
$item["title"] = $xpath->evaluate('title/text()', $entry)->item(0)->nodeValue;
|
||||
|
||||
if ($item["title"] == "")
|
||||
$item["title"] = $xpath->evaluate('rss:title/text()', $entry)->item(0)->nodeValue;
|
||||
|
||||
$alternate = $xpath->query("atom:link[@rel='alternate']", $entry)->item(0)->attributes;
|
||||
if (!is_object($alternate))
|
||||
$alternate = $xpath->query("atom:link", $entry)->item(0)->attributes;
|
||||
|
||||
$published = $xpath->query('atom:published/text()', $entry)->item(0)->nodeValue;
|
||||
|
||||
if ($published == "")
|
||||
|
|
@ -250,15 +259,6 @@ function feed_import($xml,$importer,&$contact, &$hub, $simulate = false) {
|
|||
if ($creator != "")
|
||||
$item["author-name"] = $creator;
|
||||
|
||||
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) {
|
||||
logger("Item with uri ".$item["uri"]." for user ".$importer["uid"]." already existed under id ".$r[0]["id"], LOGGER_DEBUG);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
/// @TODO ?
|
||||
// <category>Ausland</category>
|
||||
// <media:thumbnail width="152" height="76" url="http://www.taz.de/picture/667875/192/14388767.jpg"/>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue