]> git.mxchange.org Git - friendica.git/blobdiff - include/message.php
regenerated credits.txt
[friendica.git] / include / message.php
index 7ad80ae9c61f23ea42212e42289c2164e8bc132c..0f4b53c626964a8122b1494032a000326f94990b 100644 (file)
@@ -1,15 +1,16 @@
 <?php
+
        // send a private message
-       
 
 
 
-function send_message($recipient=0, $body='', $subject='', $replyto=''){ 
+
+function send_message($recipient=0, $body='', $subject='', $replyto=''){
 
        $a = get_app();
 
        if(! $recipient) return -1;
-       
+
        if(! strlen($subject))
                $subject = t('[no subject]');
 
@@ -25,8 +26,8 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
                return -2;
        }
 
-       $hash = random_string();
-       $uri = 'urn:X-dfrn:' . $a->get_baseurl() . ':' . local_user() . ':' . $hash ;
+       $guid = get_guid(32);
+       $uri = 'urn:X-dfrn:' . $a->get_baseurl() . ':' . local_user() . ':' . $guid;
 
        $convid = 0;
        $reply = false;
@@ -42,20 +43,21 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
                );
                if(count($r))
                        $convid = $r[0]['convid'];
-       }               
+       }
 
        if(! $convid) {
 
                // create a new conversation
 
-               $conv_guid = get_guid();
-
                $recip_host = substr($contact[0]['url'],strpos($contact[0]['url'],'://')+3);
                $recip_host = substr($recip_host,0,strpos($recip_host,'/'));
 
                $recip_handle = (($contact[0]['addr']) ? $contact[0]['addr'] : $contact[0]['nick'] . '@' . $recip_host);
                $sender_handle = $a->user['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3);
 
+               $conv_guid = get_guid(32);
+               $convuri = $recip_handle.':'.$conv_guid;
+
                $handles = $recip_handle . ';' . $sender_handle;
 
                $r = q("insert into conv (uid,guid,creator,created,updated,subject,recips) values(%d, '%s', '%s', '%s', '%s', '%s', '%s') ",
@@ -82,15 +84,15 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
        }
 
        if(! strlen($replyto)) {
-               $replyto = $uri;
+               $replyto = $convuri;
        }
 
 
-       $r = q("INSERT INTO `mail` ( `uid`, `guid`, `convid`, `from-name`, `from-photo`, `from-url`, 
+       $r = q("INSERT INTO `mail` ( `uid`, `guid`, `convid`, `from-name`, `from-photo`, `from-url`,
                `contact-id`, `title`, `body`, `seen`, `reply`, `replied`, `uri`, `parent-uri`, `created`)
                VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, '%s', '%s', %d, %d, %d, '%s', '%s', '%s' )",
                intval(local_user()),
-               dbesc(get_guid()),
+               dbesc($guid),
                intval($convid),
                dbesc($me[0]['name']),
                dbesc($me[0]['thumb']),
@@ -116,7 +118,7 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
 
        /**
         *
-        * When a photo was uploaded into the message using the (profile wall) ajax 
+        * When a photo was uploaded into the message using the (profile wall) ajax
         * uploader, The permissions are initially set to disallow anybody but the
         * owner from seeing it. This is because the permissions may not yet have been
         * set for the post. If it's private, the photo permissions should be set
@@ -142,11 +144,11 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
                                        dbesc($image_uri),
                                        dbesc( t('Wall Photos')),
                                        intval(local_user())
-                               ); 
+                               );
                        }
                }
        }
-       
+
        if($post_id) {
                proc_run('php',"include/notifier.php","mail","$post_id");
                return intval($post_id);
@@ -155,3 +157,88 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
        }
 
 }
+
+
+
+
+
+function send_wallmessage($recipient='', $body='', $subject='', $replyto=''){
+
+       $a = get_app();
+
+
+       if(! $recipient) return -1;
+
+       if(! strlen($subject))
+               $subject = t('[no subject]');
+
+       $guid = get_guid(32);
+       $uri = 'urn:X-dfrn:' . $a->get_baseurl() . ':' . local_user() . ':' . $guid;
+
+       $convid = 0;
+       $reply = false;
+
+       require_once('include/Scrape.php');
+
+       $me = probe_url($replyto);
+
+       if(! $me['name'])
+               return -2;
+
+       $conv_guid = get_guid(32);
+
+       $recip_handle = $recipient['nickname'] . '@' . substr($a->get_baseurl(), strpos($a->get_baseurl(),'://') + 3);
+
+       $sender_nick = basename($replyto);
+       $sender_host = substr($replyto,strpos($replyto,'://')+3);
+       $sender_host = substr($sender_host,0,strpos($sender_host,'/'));
+       $sender_handle = $sender_nick . '@' . $sender_host;
+
+       $handles = $recip_handle . ';' . $sender_handle;
+
+       $r = q("insert into conv (uid,guid,creator,created,updated,subject,recips) values(%d, '%s', '%s', '%s', '%s', '%s', '%s') ",
+               intval($recipient['uid']),
+               dbesc($conv_guid),
+               dbesc($sender_handle),
+               dbesc(datetime_convert()),
+               dbesc(datetime_convert()),
+               dbesc($subject),
+               dbesc($handles)
+       );
+
+       $r = q("select * from conv where guid = '%s' and uid = %d limit 1",
+               dbesc($conv_guid),
+               intval($recipient['uid'])
+       );
+       if(count($r))
+               $convid = $r[0]['id'];
+
+       if(! $convid) {
+               logger('send message: conversation not found.');
+               return -4;
+       }
+
+       $r = q("INSERT INTO `mail` ( `uid`, `guid`, `convid`, `from-name`, `from-photo`, `from-url`,
+               `contact-id`, `title`, `body`, `seen`, `reply`, `replied`, `uri`, `parent-uri`, `created`, `unknown`)
+               VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, '%s', '%s', %d, %d, %d, '%s', '%s', '%s', %d )",
+               intval($recipient['uid']),
+               dbesc($guid),
+               intval($convid),
+               dbesc($me['name']),
+               dbesc($me['photo']),
+               dbesc($me['url']),
+               0,
+               dbesc($subject),
+               dbesc($body),
+               0,
+               0,
+               0,
+               dbesc($uri),
+               dbesc($replyto),
+               datetime_convert(),
+               1
+       );
+
+       return 0;
+
+}