aboutsummaryrefslogtreecommitdiffstats
path: root/mod/post.php
diff options
context:
space:
mode:
authorfriendica <info@friendica.com>2014-10-30 19:15:03 -0700
committerfriendica <info@friendica.com>2014-10-30 19:15:03 -0700
commit28a35261dbc8c21e27ca4a449ff5cd6cb0501c8a (patch)
treeae912b6d5a5963bd5cbbdc29329ec542ba6c5e7c /mod/post.php
parente219268a6e968d4024bb72c7990b3f00639d73b7 (diff)
downloadvolse-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/post.php')
-rw-r--r--mod/post.php16
1 files changed, 15 insertions, 1 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) {