aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorzotlabs <mike@macgirvin.com>2017-07-10 20:18:33 -0700
committerzotlabs <mike@macgirvin.com>2017-07-10 20:18:33 -0700
commit2d63bbb91e97d3a54440564620ef3093ecbe71fb (patch)
tree2f0828a83cfd34cb1303d18034e1c9e1d197c7be /include
parente3734328eb7393bbdb76ce195d735ab48aa87324 (diff)
downloadvolse-hubzilla-2d63bbb91e97d3a54440564620ef3093ecbe71fb.tar.gz
volse-hubzilla-2d63bbb91e97d3a54440564620ef3093ecbe71fb.tar.bz2
volse-hubzilla-2d63bbb91e97d3a54440564620ef3093ecbe71fb.zip
prevent expiration of conversations you are involved with - allows you to find your own comments months from now
Diffstat (limited to 'include')
-rw-r--r--include/import.php8
-rwxr-xr-xinclude/items.php2
-rw-r--r--include/zot.php12
3 files changed, 20 insertions, 2 deletions
diff --git a/include/import.php b/include/import.php
index 277d6618c..2199400af 100644
--- a/include/import.php
+++ b/include/import.php
@@ -627,6 +627,14 @@ function import_items($channel, $items, $sync = false, $relocate = null) {
$item_result = item_store($item,$allow_code,$deliver);
}
+ // preserve conversations you've been involved in from being expired
+
+ $stored = $item_result['item'];
+ if((is_array($stored)) && ($stored['id'] != $stored['parent'])
+ && ($stored['author_xchan'] === $channel['channel_hash'])) {
+ retain_item($stored['item']['parent']);
+ }
+
fix_attached_photo_permissions($channel['channel_id'],$item['author_xchan'],$item['body'],$item['allow_cid'],$item['allow_gid'],$item['deny_cid'],$item['deny_gid']);
fix_attached_file_permissions($channel,$item['author_xchan'],$item['body'],$item['allow_cid'],$item['allow_gid'],$item['deny_cid'],$item['deny_gid']);
diff --git a/include/items.php b/include/items.php
index b313193fb..386c25922 100755
--- a/include/items.php
+++ b/include/items.php
@@ -1737,7 +1737,7 @@ logger('revision: ' . $arr['revision']);
if($r[0]['owner_xchan'] !== $arr['owner_xchan']) {
$arr['owner_xchan'] = $r[0]['owner_xchan'];
-// $uplinked_comment = true;
+ // $uplinked_comment = true;
}
// if the parent is private, force privacy for the entire conversation
diff --git a/include/zot.php b/include/zot.php
index a8aecc6fa..05475d051 100644
--- a/include/zot.php
+++ b/include/zot.php
@@ -1761,7 +1761,7 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $
$result[] = $DR->get();
}
else {
- update_imported_item($sender,$arr,$r[0],$channel['channel_id'],$tag_delivery);
+ $item_result = update_imported_item($sender,$arr,$r[0],$channel['channel_id'],$tag_delivery);
$DR->update('updated');
$result[] = $DR->get();
if(! $relay)
@@ -1810,6 +1810,14 @@ function process_delivery($sender, $arr, $deliveries, $relay, $public = false, $
}
}
+ // preserve conversations with which you are involved from expiration
+
+ $stored = (($item_result && $item_result['item']) ? $item_result['item'] : false);
+ if((is_array($stored)) && ($stored['id'] != $stored['parent'])
+ && ($stored['author_xchan'] === $channel['channel_hash'])) {
+ retain_item($stored['item']['parent']);
+ }
+
if($relay && $item_id) {
logger('process_delivery: invoking relay');
Zotlabs\Daemon\Master::Summon(array('Notifier','relay',intval($item_id)));
@@ -1946,6 +1954,8 @@ function update_imported_item($sender, $item, $orig, $uid, $tag_delivery) {
logger('update_imported_item: failed: ' . $x['message']);
else
logger('update_imported_item');
+
+ return $x;
}
/**