From 87dcc4c145cae992d7aa009c36fa45cf543cad55 Mon Sep 17 00:00:00 2001 From: marijus Date: Thu, 22 Jan 2015 22:50:38 +0100 Subject: possible performance improvement for sharedwithme update query --- mod/sharedwithme.php | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'mod/sharedwithme.php') diff --git a/mod/sharedwithme.php b/mod/sharedwithme.php index ff93051da..baaf41f61 100644 --- a/mod/sharedwithme.php +++ b/mod/sharedwithme.php @@ -12,7 +12,7 @@ function sharedwithme_content(&$a) { $is_owner = (local_user() && (local_user() == $channel['channel_id'])); - //maintenance - see if a file got dropped and remove it systemwide + //maintenance - see if a file got dropped and remove it systemwide - this should possibly go to include/poller $x = q("SELECT * FROM item WHERE verb = '%s' AND obj_type = '%s' AND uid = %d", dbesc(ACTIVITY_UPDATE), dbesc(ACTIVITY_OBJ_FILE), @@ -26,18 +26,21 @@ function sharedwithme_content(&$a) { $object = json_decode($xx['object'],true); $hash = $object['hash']; - //If object has a mid it's an update - the inlcuded mid is the latest and should not be removed + //If object has a mid it's an update activity - the inlcuded mid is the latest and should not be removed $update = (($object['mid']) ? true : false); if($update) { $mid = $object['mid']; - $y = q("DELETE FROM item WHERE (mid != '%s' AND obj_type = '%s' AND object LIKE '%s') AND (verb = '%s' OR verb = '%s')", + unset($object['mid']); //remove mid from object to match the post activity object + + $y = q("DELETE FROM item WHERE (mid != '%s' AND obj_type = '%s') AND (object = '%s' AND verb = '%s') OR (object = '%s' AND verb = '%s')", dbesc($mid), dbesc(ACTIVITY_OBJ_FILE), - dbesc('%"hash":"' . $hash . '"%'), + dbesc(json_encode($object)), dbesc(ACTIVITY_POST), + dbesc($xx['object']), dbesc(ACTIVITY_UPDATE) ); -- cgit v1.2.3