Bugfix: Public posts to Diaspora could fail

This commit is contained in:
Michael Vogel 2016-01-10 23:08:25 +01:00
parent d7410f9e47
commit 8d9a905c80
2 changed files with 22 additions and 3 deletions

View file

@ -559,10 +559,11 @@ function probe_url($url, $mode = PROBE_NORMAL, $level = 1) {
$pubkey = $hcard_key; $pubkey = $hcard_key;
} }
} }
if($diaspora && $diaspora_base && $diaspora_guid) { if($diaspora && $diaspora_base && $diaspora_guid) {
if($mode == PROBE_DIASPORA || ! $notify) { $diaspora_notify = $diaspora_base.'receive/users/'.$diaspora_guid;
$notify = $diaspora_base . 'receive/users/' . $diaspora_guid;
if($mode == PROBE_DIASPORA || ! $notify || ($notify == $diaspora_notify)) {
$notify = $diaspora_notify;
$batch = $diaspora_base . 'receive/public' ; $batch = $diaspora_base . 'receive/public' ;
} }
if(strpos($url,'@')) if(strpos($url,'@'))

View file

@ -229,6 +229,24 @@ function cron_run(&$argv, &$argc){
set_config('system','cache_last_cleared', time()); 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; $manual_id = 0;
$generation = 0; $generation = 0;
$force = false; $force = false;