diff options
author | Friendika <info@friendika.com> | 2011-02-08 04:25:27 -0800 |
---|---|---|
committer | Friendika <info@friendika.com> | 2011-02-08 04:25:27 -0800 |
commit | d8cd693f1149dc2fb14a7527553b45e8a3b1b62f (patch) | |
tree | 12d617083c676d3b968de7cb15cf5ca6e2990199 /include | |
parent | d280184b875bb55e39b0e73fd64db036b254bc2c (diff) | |
download | volse-hubzilla-d8cd693f1149dc2fb14a7527553b45e8a3b1b62f.tar.gz volse-hubzilla-d8cd693f1149dc2fb14a7527553b45e8a3b1b62f.tar.bz2 volse-hubzilla-d8cd693f1149dc2fb14a7527553b45e8a3b1b62f.zip |
rework remote deletion
Diffstat (limited to 'include')
-rw-r--r-- | include/items.php | 45 |
1 files changed, 28 insertions, 17 deletions
diff --git a/include/items.php b/include/items.php index 5d9eaaaf3..5185e74dc 100644 --- a/include/items.php +++ b/include/items.php @@ -1031,25 +1031,18 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0) { } - // Now process the feed - if($feed->get_item_quantity()) { - // in inverse date order - if ($datedir) - $items = array_reverse($feed->get_items()); - else - $items = $feed->get_items(); - - foreach($items as $item) { + // process any deleted entries + $del_entries = $feed->get_feed_tags(NAMESPACE_TOMB, 'deleted-entry'); + if(is_array($del_entries) && count($del_entries)) { + foreach($del_entries as $dentry) { $deleted = false; - - $rawdelete = $item->get_item_tags( NAMESPACE_TOMB, 'deleted-entry'); - if(isset($rawdelete[0]['attribs']['']['ref'])) { - $uri = $rawthread[0]['attribs']['']['ref']; + if(isset($dentry['attribs']['']['ref'])) { + $uri = $dentry['attribs']['']['ref']; $deleted = true; - if(isset($rawdelete[0]['attribs']['']['when'])) { - $when = $rawthread[0]['attribs']['']['when']; + if(isset($dentry['attribs']['']['when'])) { + $when = $dentry['attribs']['']['when']; $when = datetime_convert('UTC','UTC', $when, 'Y-m-d H:i:s'); } else @@ -1063,6 +1056,10 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0) { ); if(count($r)) { $item = $r[0]; + + if(! $item['deleted']) + logger('dfrn_notify: deleting item ' . $item['id'] . ' uri=' . $item['uri'], LOGGER_DEBUG); + if($item['uri'] == $item['parent-uri']) { $r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s', `changed` = '%s', `body` = '', `title` = '' @@ -1103,10 +1100,25 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0) { } } } - continue; } + } + } + + // Now process the feed + + if($feed->get_item_quantity()) { + + logger('consume_feed: feed item count = ' . $feed->get_item_quantity()); + + // in inverse date order + if ($datedir) + $items = array_reverse($feed->get_items()); + else + $items = $feed->get_items(); + foreach($items as $item) { + $is_reply = false; $item_id = $item->get_id(); $rawthread = $item->get_item_tags( NAMESPACE_THREAD,'in-reply-to'); @@ -1115,7 +1127,6 @@ function consume_feed($xml,$importer,&$contact, &$hub, $datedir = 0) { $parent_uri = $rawthread[0]['attribs']['']['ref']; } - if(($is_reply) && is_array($contact)) { // Have we seen it? If not, import it. |