From 557ebe4700c477aeba043594f7b929b1129be191 Mon Sep 17 00:00:00 2001
From: Mike Macgirvin <mike@macgirvin.com>
Date: Mon, 26 Jul 2010 03:33:56 -0700
Subject: [PATCH] working on delete

---
 include/items.php   |  4 ++--
 include/poller.php  | 39 ++++++++++++++++++++++++++++++++++-----
 mod/dfrn_notify.php | 38 +++++++++++++++++++++++++++++++++-----
 3 files changed, 69 insertions(+), 12 deletions(-)

diff --git a/include/items.php b/include/items.php
index 2cb894f5ad..a0804bcbee 100644
--- a/include/items.php
+++ b/include/items.php
@@ -62,8 +62,8 @@ function get_feed_for(&$a,$dfrn_id,$owner_id,$last_update) {
 		`contact`.`thumb`, `contact`.`dfrn-id`, `contact`.`self`, 
 		`contact`.`id` AS `contact-id`, `contact`.`uid` AS `contact-uid`
 		FROM `item` LEFT JOIN `contact` ON `contact`.`id` = `item`.`contact-id`
-		WHERE `item`.`uid` = %d AND `item`.`visible` = 1 AND `item`.`deleted` = 0
-		AND NOT `item`.`type` IN ( 'remote', 'net-comment') AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
+		WHERE `item`.`uid` = %d AND `item`.`visible` = 1 
+		AND NOT `item`.`type` IN ( 'remote', 'net-comment' ) AND `contact`.`blocked` = 0 AND `contact`.`pending` = 0
 		AND `item`.`edited` > '%s'
 		$sql_extra
 		ORDER BY `parent` ASC, `created` ASC LIMIT 0, 300",
diff --git a/include/poller.php b/include/poller.php
index ab030a7091..c7108d13c0 100644
--- a/include/poller.php
+++ b/include/poller.php
@@ -74,16 +74,45 @@ echo "Length:" . strlen($xml) . "\r\n";
 
 		foreach($feed->get_items() as $item) {
 
+			$deleted = false;
+
 			$rawdelete = $item->get_item_tags("http://purl.org/atompub/tombstones/1.0", 'deleted-entry');
-			print_r($rawdelete);
+			if(isset($rawdelete[0]['attribs']['']['ref'])) {
+				$uri = $rawthread[0]['attribs']['']['ref'];
+				$deleted = true;
+				if(isset($rawdelete[0]['attribs']['']['when'])) {
+					$when = $rawthread[0]['attribs']['']['when'];
+					$when = datetime_convert('UTC','UTC', $when, 'Y-m-d H:i:s');
+				}
+				else
+					$when = datetime_convert('UTC','UTC','now','Y-m-d H:i:s');
+			}
 			if($deleted) {
-				// pick out ref and when from attribs
-				// check hasn't happened already, verify ownership and then process it
-
-
+				$r = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+					dbesc($uri),
+					intval($importer['uid'])
+				);
+				if(count($r)) {
+					if($r[0]['uri'] == $r[0]['parent-uri']) {
+						$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s'
+							WHERE `parent-uri` = '%s'"
+							dbesc($when),
+							dbesc($r[0]['uri'])
+						);
+					}
+					else {
+						$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s' 
+							WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+							dbesc($when),
+							dbesc($uri),
+							intval($importer['uid'])
+						);
+					}
+				}	
 				continue;
 			}
 
+
 			$is_reply = false;		
 			$item_id = $item->get_id();
 			$rawthread = $item->get_item_tags("http://purl.org/syndication/thread/1.0",'in-reply-to');
diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php
index 169ae7bb7c..ecab9ea72a 100644
--- a/mod/dfrn_notify.php
+++ b/mod/dfrn_notify.php
@@ -39,13 +39,41 @@ function dfrn_notify_post(&$a) {
 
 	foreach($feed->get_items() as $item) {
 
+		$deleted = false;
+
 		$rawdelete = $item->get_item_tags("http://purl.org/atompub/tombstones/1.0", 'deleted-entry');
-		print_r($rawdelete);
+		if(isset($rawdelete[0]['attribs']['']['ref'])) {
+			$uri = $rawthread[0]['attribs']['']['ref'];
+			$deleted = true;
+			if(isset($rawdelete[0]['attribs']['']['when'])) {
+				$when = $rawthread[0]['attribs']['']['when'];
+				$when = datetime_convert('UTC','UTC', $when, 'Y-m-d H:i:s');
+			}
+			else
+				$when = datetime_convert('UTC','UTC','now','Y-m-d H:i:s');
+		}
 		if($deleted) {
-			// pick out ref and when from attribs
-			// check hasn't happened already, verify ownership and then process it
-
-
+			$r = q("SELECT * FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+				dbesc($uri),
+				intval($importer['uid'])
+			);
+			if(count($r)) {
+				if($r[0]['uri'] == $r[0]['parent-uri']) {
+					$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s'
+						WHERE `parent-uri` = '%s'"
+						dbesc($when),
+						dbesc($r[0]['uri'])
+					);
+				}
+				else {
+					$r = q("UPDATE `item` SET `deleted` = 1, `edited` = '%s' 
+						WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
+						dbesc($when),
+						dbesc($uri),
+						intval($importer['uid'])
+					);
+				}
+			}	
 			continue;
 		}
 
-- 
2.39.5