aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/attach.php18
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'] = '';