Diaspora: Posts from Diaspora relais are transmitted the old way

This commit is contained in:
Michael 2017-09-25 04:24:47 +00:00
parent 0e4845b58a
commit 66515ed85e
3 changed files with 16 additions and 3 deletions

View file

@ -3,6 +3,9 @@
/** /**
* @file include/Smilies.php * @file include/Smilies.php
* @brief This file contains the Smilies class which contains functions to handle smiles * @brief This file contains the Smilies class which contains functions to handle smiles
*
* @todo Use the shortcodes from here:
* https://github.com/iamcal/emoji-data/blob/master/emoji_pretty.json?raw=true
*/ */
use Friendica\App; use Friendica\App;

View file

@ -287,6 +287,11 @@ class Diaspora {
$public = true; $public = true;
$author_link = str_replace('acct:','',$children->header->author_id); $author_link = str_replace('acct:','',$children->header->author_id);
} else { } else {
// This happens with posts from a relais
if (!$importer) {
logger("This is no private post in the old format", LOGGER_DEBUG);
return false;
}
$encrypted_header = json_decode(base64_decode($children->encrypted_header)); $encrypted_header = json_decode(base64_decode($children->encrypted_header));

View file

@ -17,11 +17,11 @@ function receive_post(App $a) {
http_status_exit(500); http_status_exit(500);
} }
$public = false;
if (($a->argc == 2) && ($a->argv[1] === 'public')) { if (($a->argc == 2) && ($a->argv[1] === 'public')) {
$public = true; $public = true;
$importer = false;
} else { } else {
$public = false;
if ($a->argc != 3 || $a->argv[1] !== 'users') { if ($a->argc != 3 || $a->argv[1] !== 'users') {
http_status_exit(500); http_status_exit(500);
@ -49,8 +49,13 @@ function receive_post(App $a) {
logger('mod-diaspora: message is in the new format', LOGGER_DEBUG); logger('mod-diaspora: message is in the new format', LOGGER_DEBUG);
$msg = Diaspora::decode_raw($importer, $postdata); $msg = Diaspora::decode_raw($importer, $postdata);
} else { } else {
logger('mod-diaspora: message is in the old format', LOGGER_DEBUG); logger('mod-diaspora: decode message in the old format', LOGGER_DEBUG);
$msg = Diaspora::decode($importer, $xml); $msg = Diaspora::decode($importer, $xml);
if ($public && !$msg) {
logger('mod-diaspora: decode message in the new format', LOGGER_DEBUG);
$msg = Diaspora::decode_raw($importer, $xml);
}
} }
logger('mod-diaspora: decoded', LOGGER_DEBUG); logger('mod-diaspora: decoded', LOGGER_DEBUG);