aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorredmatrix <redmatrix@redmatrix.me>2015-10-15 20:40:24 -0700
committerredmatrix <redmatrix@redmatrix.me>2015-10-15 20:40:24 -0700
commit3f7ee613fcecb57f68d55905fef886c9ad8453d6 (patch)
tree18b473e842ea9815a0dac6f34acdb59117d0477c
parent93f061f78a8b914a731838058a38354a62d002de (diff)
downloadvolse-hubzilla-3f7ee613fcecb57f68d55905fef886c9ad8453d6.tar.gz
volse-hubzilla-3f7ee613fcecb57f68d55905fef886c9ad8453d6.tar.bz2
volse-hubzilla-3f7ee613fcecb57f68d55905fef886c9ad8453d6.zip
mail sync debugging
-rw-r--r--include/message.php63
-rw-r--r--mod/mail.php9
2 files changed, 60 insertions, 12 deletions
diff --git a/include/message.php b/include/message.php
index b5e805d4a..820d814b6 100644
--- a/include/message.php
+++ b/include/message.php
@@ -95,6 +95,7 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
);
if($r) {
$retconv = $r[0];
+ $retconv['subject'] = base64url_decode(str_rot47($retconv['subject']));
}
}
@@ -105,6 +106,7 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
);
if($r) {
$retconv = $r[0];
+ $retconv['subject'] = base64url_decode(str_rot47($retconv['subject']));
}
}
@@ -209,7 +211,8 @@ function send_message($uid = 0, $recipient='', $body='', $subject='', $replyto='
);
if($r) {
$post_id = $r[0]['id'];
- $retmail = $r;
+ $retmail = $r[0];
+ xchan_mail_query($retmail);
}
else {
$ret['message'] = t('Stored post could not be verified.');
@@ -382,31 +385,67 @@ function private_messages_fetch_message($channel_id, $messageitem_id, $updatesee
function private_messages_drop($channel_id, $messageitem_id, $drop_conversation = false) {
- if($drop_conversation) {
- // find the parent_id
- $p = q("SELECT parent_mid, conv_guid FROM mail WHERE id = %d AND channel_id = %d LIMIT 1",
- intval($messageitem_id),
+
+ $x = q("select * from mail where id = %d and channel_id = %d limit 1",
+ intval($messageitem_id),
+ intval($channel_id)
+ );
+ if(! $x)
+ return false;
+
+ $conversation = null;
+
+ if($x[0]['conv_guid']) {
+ $y = q("select * from conv where guid = '%s' and uid = %d limit 1",
+ dbesc($x[0]['conv_guid']),
intval($channel_id)
);
- if($p) {
+ if($y) {
+ $conversation = $y[0];
+ $conversation['subject'] = base64url_decode(str_rot47($conversation['subject']));
+ }
+ }
- $r = q("DELETE FROM mail WHERE parent_mid = '%s' AND channel_id = %d ",
- dbesc($p[0]['parent_mid']),
+ if($drop_conversation) {
+ $m = array();
+ $m['conv'] = array($conversation);
+ $m['conv'][0]['deleted'] = 1;
+
+ $z = q("select * from mail where parent_mid = '%s' and channel_id = %d",
+ dbesc($x[0]['parent_mid']),
+ intval($channel_id)
+ );
+ if($z) {
+ q("delete from conv where guid = '%s' and uid = %d limit 1",
+ dbesc($x[0]['conv_guid']),
+ intval($channel_id)
+ );
+ $m['mail'] = array();
+ foreach($z as $zz) {
+ xchan_mail_query($zz);
+ $zz['mail_deleted'] = 1;
+ $m['mail'][] = encode_mail($zz,true);
+ }
+ q("DELETE FROM mail WHERE parent_mid = '%s' AND channel_id = %d ",
+ dbesc($x[0]['parent_mid']),
intval($channel_id)
);
- if($r)
- return true;
}
+ build_sync_packet($channel_id,$m);
+ return true;
}
else {
+ xchan_mail_query($x[0]);
+ $x[0]['mail_deleted'] = true;
$r = q("DELETE FROM mail WHERE id = %d AND channel_id = %d",
intval($messageitem_id),
intval($channel_id)
);
- if($r)
- return true;
+ build_sync_packet($channel_id,array('mail' => array(encode_mail($x,true))));
+ return true;
}
return false;
+
}
diff --git a/mod/mail.php b/mod/mail.php
index 2fbd96fdb..884c41565 100644
--- a/mod/mail.php
+++ b/mod/mail.php
@@ -98,6 +98,7 @@ function mail_post(&$a) {
$ret = send_message(0, $recipient, $body, $subject, $replyto, $expires);
if($ret['success']) {
+ xchan_mail_query($ret['mail']);
build_sync_packet(0,array('conv' => array($ret['conv']),'mail' => array(encode_mail($ret['mail'],true))));
}
else {
@@ -152,6 +153,14 @@ function mail_content(&$a) {
intval(argv(3)),
intval(local_channel())
);
+ $x = q("select * from mail where id = %d and channel_id = %d",
+ intval(argv(3)),
+ intval(local_channel())
+ );
+ if($x) {
+ build_sync_packet(local_channel(),array('mail' => encode_mail($x[0],true)));
+ }
+
proc_run('php','include/notifier.php','mail',intval(argv(3)));
if($r) {