diff options
Diffstat (limited to 'include/attach.php')
-rw-r--r-- | include/attach.php | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/include/attach.php b/include/attach.php index 9c71beb23..c7216df7a 100644 --- a/include/attach.php +++ b/include/attach.php @@ -981,17 +981,25 @@ function file_activity($channel_id, $object, $allow_cid, $allow_gid, $deny_cid, $jsonobject = json_encode($object); //check if item for this object exists - $y = q("SELECT * FROM item WHERE verb = '%s' AND obj_type = '%s' AND object = '%s' LIMIT 1", + $y = q("SELECT * FROM item WHERE verb = '%s' AND obj_type = '%s' AND resource_id = '%s' AND uid = %d LIMIT 1", dbesc(ACTIVITY_POST), dbesc($objtype), - dbesc($jsonobject) + dbesc($object['hash']), + intval(local_user()) ); - if($y) { $update = true; $object['d_mid'] = $y[0]['mid']; //attach mid of the old object $u_jsonobject = json_encode($object); + + //we have got the relevant info - delete the old item before we create the new one + $z = q("DELETE FROM item WHERE obj_type = '%s' AND verb = '%s' AND mid = '%s'", + dbesc(ACTIVITY_OBJ_FILE), + dbesc(ACTIVITY_POST), + dbesc($y[0]['mid']) + ); + } if($update && $verb == 'post' ) { @@ -1019,6 +1027,8 @@ function file_activity($channel_id, $object, $allow_cid, $allow_gid, $deny_cid, $arr['verb'] = ACTIVITY_UPDATE; $arr['obj_type'] = $objtype; $arr['object'] = $u_jsonobject; + $arr['resource_id'] = $object['hash']; + $arr['resource_type'] = 'attach'; $arr['body'] = ''; $post = item_store($arr); @@ -1057,6 +1067,8 @@ function file_activity($channel_id, $object, $allow_cid, $allow_gid, $deny_cid, $arr['item_private'] = $private; $arr['verb'] = (($update) ? ACTIVITY_UPDATE : ACTIVITY_POST); $arr['obj_type'] = $objtype; + $arr['resource_id'] = $object['hash']; + $arr['resource_type'] = 'attach'; $arr['object'] = (($update) ? $u_jsonobject : $jsonobject); $arr['body'] = ''; |