X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=mod%2Fdfrn_notify.php;h=ecab9ea72a9515a46863feb21f9e0f2869982e7b;hb=557ebe4700c477aeba043594f7b929b1129be191;hp=ed2222d6aaa86279ebd88aa29eb99a2c634176ba;hpb=21f0cd206d1f533af8754542821f18c82e5c8df5;p=friendica.git diff --git a/mod/dfrn_notify.php b/mod/dfrn_notify.php index ed2222d6aa..ecab9ea72a 100644 --- a/mod/dfrn_notify.php +++ b/mod/dfrn_notify.php @@ -5,7 +5,7 @@ require_once('include/items.php'); function dfrn_notify_post(&$a) { -dbg(3); + $dfrn_id = notags(trim($_POST['dfrn_id'])); $challenge = notags(trim($_POST['challenge'])); $data = $_POST['data']; @@ -39,13 +39,41 @@ dbg(3); 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; } @@ -54,7 +82,7 @@ dbg(3); $rawthread = $item->get_item_tags("http://purl.org/syndication/thread/1.0",'in-reply-to'); if(isset($rawthread[0]['attribs']['']['ref'])) { $is_reply = true; - $parent_urn = $rawthread[0]['attribs']['']['ref']; + $parent_uri = $rawthread[0]['attribs']['']['ref']; } @@ -64,7 +92,7 @@ dbg(3); $datarray = get_atom_elements($item); $urn = explode(':',$parent_urn); $datarray['type'] = 'remote-comment'; - $datarray['parent_hash'] = $urn[5]; + $datarray['parent-uri'] = $parent_uri; $datarray['uid'] = $importer['uid']; $datarray['contact-id'] = $importer['id']; $posted_id = post_remote($a,$datarray); @@ -84,7 +112,7 @@ dbg(3); intval($posted_id) ); - $url = bin2hex($a->get_baseurl()); + $url = $a->get_baseurl(); proc_close(proc_open("php include/notifier.php $url comment-import $posted_id > remote-notify.log &", array(),$foo)); @@ -97,7 +125,7 @@ dbg(3); $item_id = $item->get_id(); - $r = q("SELECT `uid`, `last-child`, `edited` FROM `item` WHERE `remote-id` = '%s' AND `uid` = %d LIMIT 1", + $r = q("SELECT `uid`, `last-child`, `edited` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1", dbesc($item_id), intval($importer['uid']) ); @@ -105,7 +133,7 @@ dbg(3); if(count($r)) { $allow = $item->get_item_tags('http://purl.org/macgirvin/dfrn/1.0','comment-allow'); if($allow && $allow[0]['data'] != $r[0]['last-child']) { - $r = q("UPDATE `item` SET `last-child` = %d WHERE `remote-id` = '%s' AND `uid` = %d LIMIT 1", + $r = q("UPDATE `item` SET `last-child` = %d WHERE `uri` = '%s' AND `uid` = %d LIMIT 1", intval($allow[0]['data']), dbesc($item_id), intval($importer['uid']) @@ -114,7 +142,7 @@ dbg(3); continue; } $datarray = get_atom_elements($item); - $datarray['parent_urn'] = $parent_urn; + $datarray['parent-uri'] = $parent_uri; $datarray['uid'] = $importer['uid']; $datarray['contact-id'] = $importer['id']; $r = post_remote($a,$datarray); @@ -125,14 +153,14 @@ dbg(3); // Head post of a conversation. Have we seen it? If not, import it. $item_id = $item->get_id(); - $r = q("SELECT `uid`, `last-child`, `edited` FROM `item` WHERE `remote-id` = '%s' AND `uid` = %d LIMIT 1", + $r = q("SELECT `uid`, `last-child`, `edited` FROM `item` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1", dbesc($item_id), intval($importer['uid']) ); if(count($r)) { $allow = $item->get_item_tags('http://purl.org/macgirvin/dfrn/1.0','comment-allow'); if($allow && $allow[0]['data'] != $r[0]['last-child']) { - $r = q("UPDATE `item` SET `last-child` = %d WHERE `remote-id` = '%s' AND `uid` = %d LIMIT 1", + $r = q("UPDATE `item` SET `last-child` = %d WHERE `uri` = '%s' AND `uid` = %d LIMIT 1", intval($allow[0]['data']), dbesc($item_id), intval($importer['uid']) @@ -143,7 +171,7 @@ dbg(3); $datarray = get_atom_elements($item); - $datarray['parent_urn'] = $item_id; + $datarray['parent-uri'] = $item_id; $datarray['uid'] = $importer['uid']; $datarray['contact-id'] = $importer['id']; $r = post_remote($a,$datarray); @@ -176,7 +204,7 @@ function dfrn_notify_content(&$a) { intval(time() + 60 ) ); - $r = q("SELECT * FROM `contact` WHERE `issued-id` = '%s' AND `blocked` = 0 LIMIT 1", + $r = q("SELECT * FROM `contact` WHERE `issued-id` = '%s' AND `blocked` = 0 AND `pending` = 0 LIMIT 1", dbesc($_GET['dfrn_id'])); if((! count($r)) || (! strlen($r[0]['prvkey']))) $status = 1;