]> git.mxchange.org Git - friendica.git/blobdiff - include/diaspora.php
warning cleanup
[friendica.git] / include / diaspora.php
index dca857a19833369cf9f5d43eca1e41e8e5820b41..104ccadf2ec51a378d3627264bd21184eafd0489 100755 (executable)
@@ -688,9 +688,9 @@ function diaspora_post($importer,$xml) {
 
                                // don't link tags that are already embedded in links
 
-                               if(preg_match('/\[(.*?)' . preg_quote($tag) . '(.*?)\]/',$body))
+                               if(preg_match('/\[(.*?)' . preg_quote($tag,'/') . '(.*?)\]/',$body))
                                        continue;
-                               if(preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag) . '(.*?)\)/',$body))
+                               if(preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag,'/') . '(.*?)\)/',$body))
                                        continue;
 
                                $basetag = str_replace('_',' ',substr($tag,1));
@@ -853,9 +853,9 @@ function diaspora_reshare($importer,$xml) {
 
                                // don't link tags that are already embedded in links
 
-                               if(preg_match('/\[(.*?)' . preg_quote($tag) . '(.*?)\]/',$body))
+                               if(preg_match('/\[(.*?)' . preg_quote($tag,'/') . '(.*?)\]/',$body))
                                        continue;
-                               if(preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag) . '(.*?)\)/',$body))
+                               if(preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag,'/') . '(.*?)\)/',$body))
                                        continue;
 
 
@@ -1094,9 +1094,9 @@ function diaspora_comment($importer,$xml,$msg) {
 
                                // don't link tags that are already embedded in links
 
-                               if(preg_match('/\[(.*?)' . preg_quote($tag) . '(.*?)\]/',$body))
+                               if(preg_match('/\[(.*?)' . preg_quote($tag,'/') . '(.*?)\]/',$body))
                                        continue;
-                               if(preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag) . '(.*?)\)/',$body))
+                               if(preg_match('/\[(.*?)\]\((.*?)' . preg_quote($tag,'/') . '(.*?)\)/',$body))
                                        continue;
 
 
@@ -1159,6 +1159,48 @@ function diaspora_comment($importer,$xml,$msg) {
 
                proc_run('php','include/notifier.php','comment',$message_id);
        }
+
+       $myconv = q("SELECT `author-link`, `author-avatar`, `parent` FROM `item` WHERE `parent-uri` = '%s' AND `uid` = %d AND `parent` != 0 ",
+               dbesc($parent_item['uri']),
+               intval($importer['uid'])
+       );
+
+       if(count($myconv)) {
+               $importer_url = $a->get_baseurl() . '/profile/' . $importer['nickname'];
+
+               foreach($myconv as $conv) {
+
+                       // now if we find a match, it means we're in this conversation
+       
+                       if(! link_compare($conv['author-link'],$importer_url))
+                               continue;
+
+                       require_once('include/enotify.php');
+                                                               
+                       $conv_parent = $conv['parent'];
+
+                       notification(array(
+                               'type'         => NOTIFY_COMMENT,
+                               'notify_flags' => $importer['notify-flags'],
+                               'language'     => $importer['language'],
+                               'to_name'      => $importer['username'],
+                               'to_email'     => $importer['email'],
+                               'uid'          => $importer['uid'],
+                               'item'         => $datarray,
+                               'link'             => $a->get_baseurl() . '/display/' . $importer['nickname'] . '/' . $message_id,
+                               'source_name'  => $datarray['author-name'],
+                               'source_link'  => $datarray['author-link'],
+                               'source_photo' => $datarray['author-avatar'],
+                               'verb'         => ACTIVITY_POST,
+                               'otype'        => 'item',
+                               'parent'       => $conv_parent,
+
+                       ));
+
+                       // only send one notification
+                       break;
+               }
+       }
        return;
 }
 
@@ -1695,7 +1737,7 @@ function diaspora_retraction($importer,$xml) {
                contact_remove($contact['id']);
        }
        elseif($type === 'Post') {
-               $r = q("select * from item where guid = '%s' and uid = %d limit 1",
+               $r = q("select * from item where guid = '%s' and uid = %d and not file like '%%[%%' limit 1",
                        dbesc('guid'),
                        intval($importer['uid'])
                );
@@ -1743,7 +1785,7 @@ function diaspora_signed_retraction($importer,$xml,$msg) {
        }
 
        if($type === 'StatusMessage') {
-               $r = q("select * from item where guid = '%s' and uid = %d limit 1",
+               $r = q("select * from item where guid = '%s' and uid = %d and not file like '%%[%%' limit 1",
                        dbesc($guid),
                        intval($importer['uid'])
                );