]> git.mxchange.org Git - friendica.git/commitdiff
Issue 3571 and Diaspora mail bugfix
authorMichael <heluecht@pirati.ca>
Mon, 10 Jul 2017 22:35:32 +0000 (22:35 +0000)
committerMichael <heluecht@pirati.ca>
Mon, 10 Jul 2017 22:35:32 +0000 (22:35 +0000)
include/diaspora.php
src/Network/Probe.php

index 762018b170c4f1f9ec35ff498b143f319427b051..58a77dca8654f4f225dae35e69f444cdb3f58d6c 100644 (file)
@@ -1529,6 +1529,8 @@ class Diaspora {
 
                $person = self::person_by_handle($msg_author);
 
+               dba::lock('mail');
+
                $r = q("SELECT `id` FROM `mail` WHERE `guid` = '%s' AND `uid` = %d LIMIT 1",
                        dbesc($msg_guid),
                        intval($importer["uid"])
@@ -1556,6 +1558,8 @@ class Diaspora {
                        dbesc($msg_created_at)
                );
 
+               dba::unlock();
+
                q("UPDATE `conv` SET `updated` = '%s' WHERE `id` = %d",
                        dbesc(datetime_convert()),
                        intval($conversation["id"])
@@ -1832,6 +1836,12 @@ class Diaspora {
                        return false;
                }
 
+               $body = diaspora2bb($text);
+
+               $body = self::replace_people_guid($body, $person["url"]);
+
+               dba::lock('mail');
+
                $r = q("SELECT `id` FROM `mail` WHERE `guid` = '%s' AND `uid` = %d LIMIT 1",
                        dbesc($guid),
                        intval($importer["uid"])
@@ -1841,10 +1851,6 @@ class Diaspora {
                        return false;
                }
 
-               $body = diaspora2bb($text);
-
-               $body = self::replace_people_guid($body, $person["url"]);
-
                q("INSERT INTO `mail` (`uid`, `guid`, `convid`, `from-name`,`from-photo`,`from-url`,`contact-id`,`title`,`body`,`seen`,`reply`,`uri`,`parent-uri`,`created`)
                                VALUES ( %d, '%s', %d, '%s', '%s', '%s', %d, '%s', '%s', %d, %d, '%s','%s','%s')",
                        intval($importer["uid"]),
@@ -1863,6 +1869,8 @@ class Diaspora {
                        dbesc($created_at)
                );
 
+               dba::unlock();
+
                q("UPDATE `conv` SET `updated` = '%s' WHERE `id` = %d",
                        dbesc(datetime_convert()),
                        intval($conversation["id"])
index f0bb17dacd2548104715862d237725783e0b4bea..9b559304d66cbc19c0ce60f112976733b63d9386 100644 (file)
@@ -827,6 +827,12 @@ class Probe {
                        }
                }
 
+               foreach ($webfinger["aliases"] as $alias) {
+                       if (substr($alias, 0, 5) == 'acct:') {
+                               $data["addr"] = substr($alias, 5);
+                       }
+               }
+
                if (!isset($data["network"]) || ($hcard_url == "")) {
                        return false;
                }