]> git.mxchange.org Git - friendica.git/blobdiff - include/message.php
Merge pull request #4246 from zeroadam/Widget-#3878
[friendica.git] / include / message.php
index 59146214164f92c92094eacc22bf563308e436dd..4404163dc3f27e492721ac7759146468239b931f 100644 (file)
@@ -4,30 +4,35 @@
 
 use Friendica\App;
 use Friendica\Core\System;
+use Friendica\Core\Worker;
+use Friendica\Database\DBM;
 
-function send_message($recipient=0, $body='', $subject='', $replyto=''){
-
+function send_message($recipient = 0, $body = '', $subject = '', $replyto = '')
+{
        $a = get_app();
 
-       if (! $recipient) return -1;
+       if (!$recipient) {
+               return -1;
+       }
 
-       if (! strlen($subject))
+       if (!strlen($subject)) {
                $subject = t('[no subject]');
+       }
 
        $me = q("SELECT * FROM `contact` WHERE `uid` = %d AND `self` = 1 LIMIT 1",
                intval(local_user())
        );
        $contact = q("SELECT * FROM `contact` WHERE `id` = %d AND `uid` = %d LIMIT 1",
-                       intval($recipient),
-                       intval(local_user())
+               intval($recipient),
+               intval(local_user())
        );
 
-       if (! (count($me) && (count($contact)))) {
+       if (!(count($me) && (count($contact)))) {
                return -2;
        }
 
        $guid = get_guid(32);
-       $uri = 'urn:X-dfrn:' . System::baseUrl() . ':' . local_user() . ':' . $guid;
+       $uri = 'urn:X-dfrn:' . System::baseUrl() . ':' . local_user() . ':' . $guid;
 
        $convid = 0;
        $reply = false;
@@ -36,51 +41,48 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
 
        if (strlen($replyto)) {
                $reply = true;
-               $r = q("select convid from mail where uid = %d and ( uri = '%s' or `parent-uri` = '%s' ) limit 1",
+               $r = q("SELECT `convid` FROM `mail` WHERE `uid` = %d AND (`uri` = '%s' OR `parent-uri` = '%s') LIMIT 1",
                        intval(local_user()),
                        dbesc($replyto),
                        dbesc($replyto)
                );
-               if (dbm::is_result($r))
+               if (DBM::is_result($r)) {
                        $convid = $r[0]['convid'];
+               }
        }
 
-       if (! $convid) {
-
+       if (!$convid) {
                // create a new conversation
-
-               $recip_host = substr($contact[0]['url'],strpos($contact[0]['url'],'://')+3);
-               $recip_host = substr($recip_host,0,strpos($recip_host,'/'));
+               $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(System::baseUrl(), strpos(System::baseUrl(),'://') + 3);
+               $sender_handle = $a->user['nickname'] . '@' . substr(System::baseUrl(), strpos(System::baseUrl(), '://') + 3);
 
                $conv_guid = get_guid(32);
-               $convuri = $recip_handle.':'.$conv_guid;
+               $convuri = $recip_handle . ':' . $conv_guid;
 
                $handles = $recip_handle . ';' . $sender_handle;
 
                $fields = array('uid' => local_user(), 'guid' => $conv_guid, 'creator' => $sender_handle,
-                               'created' => datetime_convert(), 'updated' => datetime_convert(),
-                               'subject' => $subject, 'recips' => $handles);
-               $r = dba::insert('conv', $fields);
-
-               $r = dba::select('conv', array('id', array('guid' => $conv_guid, 'uid' => local_user())), array('limit' => 1));
-               if (dbm::is_result($r))
-                       $convid = $r['id'];
+                       'created' => datetime_convert(), 'updated' => datetime_convert(),
+                       'subject' => $subject, 'recips' => $handles);
+               if (dba::insert('conv', $fields)) {
+                       $convid = dba::lastInsertId();
+               }
        }
 
-       if (! $convid) {
+       if (!$convid) {
                logger('send message: conversation not found.');
                return -4;
        }
 
-       if (! strlen($replyto)) {
+       if (!strlen($replyto)) {
                $replyto = $convuri;
        }
 
-
-       $r = q("INSERT INTO `mail` ( `uid`, `guid`, `convid`, `from-name`, `from-photo`, `from-url`,
+       $post_id = null;
+       $result = 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()),
@@ -99,14 +101,9 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
                dbesc($replyto),
                datetime_convert()
        );
-
-
-       $r = q("SELECT * FROM `mail` WHERE `uri` = '%s' AND `uid` = %d LIMIT 1",
-               dbesc($uri),
-               intval(local_user())
-       );
-       if (dbm::is_result($r))
-               $post_id = $r[0]['id'];
+       if ($result) {
+               $post_id = dba::lastInsertId();
+       }
 
        /**
         *
@@ -119,19 +116,17 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
         * post and set them to the same permissions as the post itself.
         *
         */
-
        $match = null;
-
-       if (preg_match_all("/\[img\](.*?)\[\/img\]/",$body,$match)) {
+       if (preg_match_all("/\[img\](.*?)\[\/img\]/", $body, $match)) {
                $images = $match[1];
                if (count($images)) {
                        foreach ($images as $image) {
-                               if (! stristr($image,System::baseUrl() . '/photo/')) {
+                               if (!stristr($image, System::baseUrl() . '/photo/')) {
                                        continue;
                                }
-                               $image_uri = substr($image,strrpos($image,'/') + 1);
-                               $image_uri = substr($image_uri,0, strpos($image_uri,'-'));
-                               $r = q("UPDATE `photo` SET `allow_cid` = '%s'
+                               $image_uri = substr($image, strrpos($image, '/') + 1);
+                               $image_uri = substr($image_uri, 0, strpos($image_uri, '-'));
+                               q("UPDATE `photo` SET `allow_cid` = '%s'
                                        WHERE `resource-id` = '%s' AND `album` = '%s' AND `uid` = %d ",
                                        dbesc('<' . $recipient . '>'),
                                        dbesc($image_uri),
@@ -143,63 +138,57 @@ function send_message($recipient=0, $body='', $subject='', $replyto=''){
        }
 
        if ($post_id) {
-               proc_run(PRIORITY_HIGH, "include/notifier.php", "mail", $post_id);
+               Worker::add(PRIORITY_HIGH, "Notifier", "mail", $post_id);
                return intval($post_id);
        } else {
                return -3;
        }
-
 }
 
-function send_wallmessage($recipient='', $body='', $subject='', $replyto=''){
-
-       if (! $recipient) {
+function send_wallmessage($recipient = '', $body = '', $subject = '', $replyto = '')
+{
+       if (!$recipient) {
                return -1;
        }
 
-       if (! strlen($subject)) {
+       if (!strlen($subject)) {
                $subject = t('[no subject]');
        }
 
        $guid = get_guid(32);
-       $uri = 'urn:X-dfrn:' . System::baseUrl() . ':' . local_user() . ':' . $guid;
+       $uri = 'urn:X-dfrn:' . System::baseUrl() . ':' . local_user() . ':' . $guid;
 
-       $convid = 0;
-       $reply = false;
+       $me = Probe::uri($replyto);
 
-       require_once 'include/probe.php';
-
-       $me = probe_url($replyto);
-
-       if (! $me['name']) {
+       if (!$me['name']) {
                return -2;
        }
 
        $conv_guid = get_guid(32);
 
-       $recip_handle = $recipient['nickname'] . '@' . substr(System::baseUrl(), strpos(System::baseUrl(),'://') + 3);
+       $recip_handle = $recipient['nickname'] . '@' . substr(System::baseUrl(), strpos(System::baseUrl(), '://') + 3);
 
        $sender_nick = basename($replyto);
-       $sender_host = substr($replyto,strpos($replyto,'://')+3);
-       $sender_host = substr($sender_host,0,strpos($sender_host,'/'));
+       $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;
 
+       $convid = null;
        $fields = array('uid' => $recipient['uid'], 'guid' => $conv_guid, 'creator' => $sender_handle,
-                       'created' => datetime_convert(), 'updated' => datetime_convert(),
-                       'subject' => $subject, 'recips' => $handles);
-       $r = dba::insert('conv', $fields);
-
-       $r = dba::select('conv', array('id', array('guid' => $conv_guid, 'uid' => $recipient['uid'])), array('limit' => 1));
-       if (!dbm::is_result($r)) {
+               'created' => datetime_convert(), 'updated' => datetime_convert(),
+               'subject' => $subject, 'recips' => $handles);
+       if (dba::insert('conv', $fields)) {
+               $convid = dba::lastInsertId();
+       }
+       
+       if (!$convid) {
                logger('send message: conversation not found.');
                return -4;
        }
 
-       $convid = $r['id'];
-
-       $r = q("INSERT INTO `mail` ( `uid`, `guid`, `convid`, `from-name`, `from-photo`, `from-url`,
+       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']),
@@ -221,5 +210,4 @@ function send_wallmessage($recipient='', $body='', $subject='', $replyto=''){
        );
 
        return 0;
-
 }