diff options
author | friendica <info@friendica.com> | 2014-10-30 19:15:03 -0700 |
---|---|---|
committer | friendica <info@friendica.com> | 2014-10-30 19:15:03 -0700 |
commit | 28a35261dbc8c21e27ca4a449ff5cd6cb0501c8a (patch) | |
tree | ae912b6d5a5963bd5cbbdc29329ec542ba6c5e7c /mod | |
parent | e219268a6e968d4024bb72c7990b3f00639d73b7 (diff) | |
download | volse-hubzilla-28a35261dbc8c21e27ca4a449ff5cd6cb0501c8a.tar.gz volse-hubzilla-28a35261dbc8c21e27ca4a449ff5cd6cb0501c8a.tar.bz2 volse-hubzilla-28a35261dbc8c21e27ca4a449ff5cd6cb0501c8a.zip |
What this checkin does is catch the case where a comment arrived and there's a missing top-level post to match it with. So we'll send a request back to the sender that you've never seen this thread and please send a fresh copy of the entire conversation to date. We could soon have posts in the matrix from different platforms from days gone by, which have been migrated into the modern world. We'll be polite and not deliver these to everybody. However, if someone comments on one of these antique threads we wouldn't be able to see it in our own matrix because we won't have a copy of the parent post. So this rectifies that situation. Be aware that item deletion may need to change to keep "hard deleted" items indefinitely so that they don't keep coming back. We'll have to null out the important data of the former item to accomplish the deletion aspect.
Diffstat (limited to 'mod')
-rw-r--r-- | mod/post.php | 16 | ||||
-rw-r--r-- | mod/zotfeed.php | 2 |
2 files changed, 16 insertions, 2 deletions
diff --git a/mod/post.php b/mod/post.php index d62233ca1..8ffd3b5ad 100644 --- a/mod/post.php +++ b/mod/post.php @@ -507,6 +507,7 @@ function post_post(&$a) { json_return_and_die($ret); } + if($msgtype === 'pickup') { /** @@ -597,7 +598,14 @@ function post_post(&$a) { $ret['success'] = true; $ret['pickup'] = array(); foreach($r as $rr) { - $ret['pickup'][] = array('notify' => json_decode($rr['outq_notify'],true),'message' => json_decode($rr['outq_msg'],true)); + $x = json_decode($rr['outq_msg'],true); + + if(array_key_exists('message_list',$x)) { + foreach($x['message_list'] as $xx) + $ret['pickup'][] = array('notify' => json_decode($rr['outq_notify'],true),'message' => $xx); + } + else + $ret['pickup'][] = array('notify' => json_decode($rr['outq_notify'],true),'message' => $x); $x = q("delete from outq where outq_hash = '%s' limit 1", dbesc($rr['outq_hash']) @@ -796,6 +804,12 @@ function post_post(&$a) { json_return_and_die($ret); } + if($msgtype === 'request') { + // request a particular post/conversation by message_id + $x = zot_process_message_request($data); + json_return_and_die($x); + } + if($msgtype === 'purge') { if($recipients) { diff --git a/mod/zotfeed.php b/mod/zotfeed.php index 480e886cd..c730e4162 100644 --- a/mod/zotfeed.php +++ b/mod/zotfeed.php @@ -38,7 +38,7 @@ function zotfeed_init(&$a) { logger('zotfeed request: ' . $r[0]['channel_name'], LOGGER_DEBUG); - $result['messages'] = zot_feed($r[0]['channel_id'],$observer['xchan_hash'],$mindate); + $result['messages'] = zot_feed($r[0]['channel_id'],$observer['xchan_hash'],array('mindate' => $mindate)); $result['success'] = true; json_return_and_die($result); |