]> git.mxchange.org Git - friendica.git/commitdiff
Bugfix: Public posts to Diaspora could fail
authorMichael Vogel <icarus@dabo.de>
Sun, 10 Jan 2016 22:08:25 +0000 (23:08 +0100)
committerMichael Vogel <icarus@dabo.de>
Sun, 10 Jan 2016 22:08:25 +0000 (23:08 +0100)
include/Scrape.php
include/cron.php

index cb192c77c2cd5c8c21580a51efe36920b8474076..9cc7086157516c01f0050abe3d4a25f260026bf5 100644 (file)
@@ -559,10 +559,11 @@ function probe_url($url, $mode = PROBE_NORMAL, $level = 1) {
                                $pubkey = $hcard_key;
                }
        }
-
        if($diaspora && $diaspora_base && $diaspora_guid) {
-               if($mode == PROBE_DIASPORA || ! $notify) {
-                       $notify = $diaspora_base . 'receive/users/' . $diaspora_guid;
+               $diaspora_notify = $diaspora_base.'receive/users/'.$diaspora_guid;
+
+               if($mode == PROBE_DIASPORA || ! $notify || ($notify == $diaspora_notify)) {
+                       $notify = $diaspora_notify;
                        $batch  = $diaspora_base . 'receive/public' ;
                }
                if(strpos($url,'@'))
index a6e81f6bfd2710b2ecbedd8fff3751071697c74a..78d5ca1541d12605ea66cf96dc90551bcb46bf06 100644 (file)
@@ -229,6 +229,24 @@ function cron_run(&$argv, &$argc){
                set_config('system','cache_last_cleared', time());
        }
 
+       // Repair missing Diaspora settings
+       $r = q("SELECT `id`, `url` FROM `contact`
+               WHERE `uid` > 0 AND `network` = '%s' AND (`batch` = '' OR `notify` = '' OR `poll` = '' OR pubkey = '')
+                       ORDER BY RAND() LIMIT 50", dbesc(NETWORK_DIASPORA));
+       if ($r) {
+               foreach ($r AS $contact) {
+                       if (poco_reachable($contact["url"])) {
+                               $data = probe_url($contact["url"]);
+                               if ($data["network"] == NETWORK_DIASPORA) {
+                                       logger("Repair contact ".$contact["id"]." ".$contact["url"], LOGGER_DEBUG);
+                                       q("UPDATE `contact` SET `batch` = '%s', `notify` = '%s', `poll` = '%s', pubkey = '%s' WHERE `id` = %d",
+                                               dbesc($data["batch"]), dbesc($data["notify"]), dbesc($data["poll"]), dbesc($data["pubkey"]),
+                                               intval($contact["id"]));
+                               }
+                       }
+               }
+       }
+
        $manual_id  = 0;
        $generation = 0;
        $force      = false;