Merge pull request #8832 from annando/fix-db-error
authorHypolite Petovan <hypolite@mrpetovan.com>
Tue, 30 Jun 2020 18:55:52 +0000 (14:55 -0400)
committerGitHub <noreply@github.com>
Tue, 30 Jun 2020 18:55:52 +0000 (14:55 -0400)
Fix database error ""Unknown column 'parent-item.author-id'"

25 files changed:
include/api.php
include/enotify.php
mod/dfrn_confirm.php
mod/dfrn_poll.php
mod/events.php
mod/salmon.php
mod/settings.php
src/Content/Text/BBCode.php
src/Model/Contact.php
src/Model/Item.php
src/Module/Admin/Summary.php
src/Module/Diaspora/Receive.php
src/Module/Magic.php
src/Module/Owa.php
src/Network/CurlResult.php
src/Network/FKOAuth1.php
src/Network/Probe.php
src/Object/Image.php
src/Protocol/ActivityPub/Processor.php
src/Protocol/DFRN.php
src/Protocol/Diaspora.php
src/Protocol/Feed.php
src/Protocol/PortableContact.php
src/Protocol/Salmon.php
src/Util/Crypto.php

index 7a6769e..85a34d2 100644 (file)
@@ -1244,7 +1244,7 @@ function api_media_upload()
                                "image_type" => $media["type"],
                                "friendica_preview_url" => $media["preview"]];
 
-       Logger::log("Media uploaded: " . print_r($returndata, true), Logger::DEBUG);
+       Logger::info('Media uploaded', ['return' => $returndata]);
 
        return ["media" => $returndata];
 }
@@ -2233,12 +2233,7 @@ function api_statuses_user_timeline($type)
                throw new ForbiddenException();
        }
 
-       Logger::log(
-               "api_statuses_user_timeline: api_user: ". api_user() .
-                       "\nuser_info: ".print_r($user_info, true) .
-                       "\n_REQUEST:  ".print_r($_REQUEST, true),
-               Logger::DEBUG
-       );
+       Logger::info('api_statuses_user_timeline', ['api_user' => api_user(), 'user_info' => $user_info, '_REQUEST' => $_REQUEST]);
 
        $since_id        = $_REQUEST['since_id'] ?? 0;
        $max_id          = $_REQUEST['max_id'] ?? 0;
index 89a8183..6b3171d 100644 (file)
@@ -479,6 +479,11 @@ function notification($params)
                        'otype'         => $params['otype'] ?? '',
                ]);
 
+               // Notification insertion can be intercepted by an addon registering the 'enotify_store' hook
+               if (!$notification) {
+                       return false;
+               }
+
                $notification->msg = Renderer::replaceMacros($epreamble, ['$itemlink' => $notification->link]);
 
                DI::notify()->update($notification);
index c191d3e..cf6bd4a 100644 (file)
@@ -214,7 +214,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                        $params['page'] = 2;
                }
 
-               Logger::log('Confirm: posting data to ' . $dfrn_confirm . ': ' . print_r($params, true), Logger::DATA);
+               Logger::debug('Confirm: posting data', ['confirm'  => $dfrn_confirm, 'parameter' => $params]);
 
                /*
                 *
@@ -372,9 +372,9 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                $forum = (($page == 1) ? 1 : 0);
                $prv   = (($page == 2) ? 1 : 0);
 
-               Logger::log('dfrn_confirm: requestee contacted: ' . $node);
+               Logger::notice('requestee contacted', ['node' => $node]);
 
-               Logger::log('dfrn_confirm: request: POST=' . print_r($_POST, true), Logger::DATA);
+               Logger::debug('request', ['POST' => $_POST]);
 
                // If $aes_key is set, both of these items require unpacking from the hex transport encoding.
 
index 14221c7..8d50761 100644 (file)
@@ -379,7 +379,7 @@ function dfrn_poll_post(App $a)
                // NOTREACHED
        } else {
                // Update the writable flag if it changed
-               Logger::log('dfrn_poll: post request feed: ' . print_r($_POST, true), Logger::DATA);
+               Logger::debug('post request feed', ['post' => $_POST]);
                if ($dfrn_version >= 2.21) {
                        if ($perm === 'rw') {
                                $writable = 1;
@@ -521,7 +521,7 @@ function dfrn_poll_content(App $a)
                        if (strlen($s) && strstr($s, '<?xml')) {
                                $xml = XML::parseString($s);
 
-                               Logger::log('dfrn_poll: profile: parsed xml: ' . print_r($xml, true), Logger::DATA);
+                               Logger::debug(' profile: parsed', ['xml' => $xml]);
 
                                Logger::log('dfrn_poll: secure profile: challenge: ' . $xml->challenge . ' expecting ' . $hash);
                                Logger::log('dfrn_poll: secure profile: sec: ' . $xml->sec . ' expecting ' . $sec);
index 6c5c274..437cc16 100644 (file)
@@ -66,7 +66,7 @@ function events_init(App $a)
 function events_post(App $a)
 {
 
-       Logger::log('post: ' . print_r($_REQUEST, true), Logger::DATA);
+       Logger::debug('post', ['request' => $_REQUEST]);
 
        if (!local_user()) {
                return;
index 1932d3b..ea5c334 100644 (file)
@@ -120,7 +120,7 @@ function salmon_post(App $a, $xml = '') {
        $m = Strings::base64UrlDecode($key_info[1]);
        $e = Strings::base64UrlDecode($key_info[2]);
 
-       Logger::log('key details: ' . print_r($key_info,true), Logger::DEBUG);
+       Logger::info('key details', ['info' => $key_info]);
 
        $pubkey = Crypto::meToPem($m, $e);
 
index c4e2482..9b2f4f6 100644 (file)
@@ -183,7 +183,7 @@ function settings_post(App $a)
                                        intval($mail_pubmail),
                                        intval(local_user())
                                );
-                               Logger::log("mail: updating mailaccount. Response: ".print_r($r, true));
+                               Logger::notice('updating mailaccount', ['response' => $r]);
                                $r = q("SELECT * FROM `mailacct` WHERE `uid` = %d LIMIT 1",
                                        intval(local_user())
                                );
index a6eea10..d1a50da 100644 (file)
@@ -506,14 +506,14 @@ class BBCode
                                                        $Image->scaleDown(640);
                                                        $new_width = $Image->getWidth();
                                                        $new_height = $Image->getHeight();
-                                                       Logger::log('scale_external_images: ' . $orig_width . '->' . $new_width . 'w ' . $orig_height . '->' . $new_height . 'h' . ' match: ' . $mtch[0], Logger::DEBUG);
+                                                       Logger::info('External images scaled', ['orig_width' => $orig_width, 'new_width' => $new_width, 'orig_height' => $orig_height, 'new_height' => $new_height, 'match' => $mtch[0]]);
                                                        $s = str_replace(
                                                                $mtch[0],
                                                                '[img=' . $new_width . 'x' . $new_height. ']' . $mtch[1] . '[/img]'
                                                                . "\n",
                                                                $s
                                                        );
-                                                       Logger::log('scale_external_images: new string: ' . $s, Logger::DEBUG);
+                                                       Logger::info('New string', ['image' => $s]);
                                                }
                                        }
                                }
@@ -541,7 +541,7 @@ class BBCode
                // than the maximum, then don't waste time looking for the images
                if ($maxlen && (strlen($body) > $maxlen)) {
 
-                       Logger::log('the total body length exceeds the limit', Logger::DEBUG);
+                       Logger::info('the total body length exceeds the limit', ['maxlen' => $maxlen, 'body_len' => strlen($body)]);
 
                        $orig_body = $body;
                        $new_body = '';
@@ -561,7 +561,7 @@ class BBCode
 
                                        if (($textlen + $img_start) > $maxlen) {
                                                if ($textlen < $maxlen) {
-                                                       Logger::log('the limit happens before an embedded image', Logger::DEBUG);
+                                                       Logger::info('the limit happens before an embedded image');
                                                        $new_body = $new_body . substr($orig_body, 0, $maxlen - $textlen);
                                                        $textlen = $maxlen;
                                                }
@@ -575,7 +575,7 @@ class BBCode
 
                                        if (($textlen + $img_end) > $maxlen) {
                                                if ($textlen < $maxlen) {
-                                                       Logger::log('the limit happens before the end of a non-embedded image', Logger::DEBUG);
+                                                       Logger::info('the limit happens before the end of a non-embedded image');
                                                        $new_body = $new_body . substr($orig_body, 0, $maxlen - $textlen);
                                                        $textlen = $maxlen;
                                                }
@@ -598,11 +598,11 @@ class BBCode
 
                        if (($textlen + strlen($orig_body)) > $maxlen) {
                                if ($textlen < $maxlen) {
-                                       Logger::log('the limit happens after the end of the last image', Logger::DEBUG);
+                                       Logger::info('the limit happens after the end of the last image');
                                        $new_body = $new_body . substr($orig_body, 0, $maxlen - $textlen);
                                }
                        } else {
-                               Logger::log('the text size with embedded images extracted did not violate the limit', Logger::DEBUG);
+                               Logger::info('the text size with embedded images extracted did not violate the limit');
                                $new_body = $new_body . $orig_body;
                        }
 
index e83a11f..b11919b 100644 (file)
@@ -926,10 +926,10 @@ class Contact
                                return;
                        }
                } elseif (!isset($contact['url'])) {
-                       Logger::log('Empty contact: ' . json_encode($contact) . ' - ' . System::callstack(20), Logger::DEBUG);
+                       Logger::info('Empty contact', ['contact' => $contact, 'callstack' => System::callstack(20)]);
                }
 
-               Logger::log('Contact '.$contact['id'].' is marked for archival', Logger::DEBUG);
+               Logger::info('Contact is marked for archival', ['id' => $contact['id']]);
 
                // Contact already archived or "self" contact? => nothing to do
                if ($contact['archive'] || $contact['self']) {
@@ -988,7 +988,7 @@ class Contact
                        return;
                }
 
-               Logger::log('Contact '.$contact['id'].' is marked as vital again', Logger::DEBUG);
+               Logger::info('Contact is marked as vital again', ['id' => $contact['id']]);
 
                if (!isset($contact['url']) && !empty($contact['id'])) {
                        $fields = ['id', 'url', 'batch'];
@@ -1489,7 +1489,7 @@ class Contact
         */
        public static function getIdForURL($url, $uid = 0, $no_update = false, $default = [], $in_loop = false)
        {
-               Logger::log("Get contact data for url " . $url . " and user " . $uid . " - " . System::callstack(), Logger::DEBUG);
+               Logger::info('Get contact data', ['url' => $url, 'user' => $uid]);
 
                $contact_id = 0;
 
index 4228d1a..0872db3 100644 (file)
@@ -2167,9 +2167,9 @@ class Item
                $distributed = self::insert($item, $notify, true);
 
                if (!$distributed) {
-                       Logger::log("Distributed public item " . $itemid . " for user " . $uid . " wasn't stored", Logger::DEBUG);
+                       Logger::info("Distributed public item wasn't stored", ['id' => $itemid, 'user' => $uid]);
                } else {
-                       Logger::log("Distributed public item " . $itemid . " for user " . $uid . " with id " . $distributed, Logger::DEBUG);
+                       Logger::info('Distributed public item was stored', ['id' => $itemid, 'user' => $uid, 'stored' => $distributed]);
                }
        }
 
@@ -2233,7 +2233,7 @@ class Item
 
                        $public_shadow = self::insert($item, false, true);
 
-                       Logger::log("Stored public shadow for thread ".$itemid." under id ".$public_shadow, Logger::DEBUG);
+                       Logger::info('Stored public shadow', ['thread' => $itemid, 'id' => $public_shadow]);
                }
        }
 
@@ -2291,7 +2291,7 @@ class Item
 
                $public_shadow = self::insert($item, false, true);
 
-               Logger::log("Stored public shadow for comment ".$item['uri']." under id ".$public_shadow, Logger::DEBUG);
+               Logger::info('Stored public shadow', ['uri' => $item['uri'], 'id' => $public_shadow]);
 
                // If this was a comment to a Diaspora post we don't get our comment back.
                // This means that we have to distribute the comment by ourselves.
@@ -2602,29 +2602,29 @@ class Item
 
                // Prevent the forwarding of posts that are forwarded
                if (!empty($datarray["extid"]) && ($datarray["extid"] == Protocol::DFRN)) {
-                       Logger::log('Already forwarded', Logger::DEBUG);
+                       Logger::info('Already forwarded');
                        return false;
                }
 
                // Prevent to forward already forwarded posts
                if ($datarray["app"] == DI::baseUrl()->getHostname()) {
-                       Logger::log('Already forwarded (second test)', Logger::DEBUG);
+                       Logger::info('Already forwarded (second test)');
                        return false;
                }
 
                // Only forward posts
                if ($datarray["verb"] != Activity::POST) {
-                       Logger::log('No post', Logger::DEBUG);
+                       Logger::info('No post');
                        return false;
                }
 
                if (($contact['network'] != Protocol::FEED) && ($datarray['private'] == self::PRIVATE)) {
-                       Logger::log('Not public', Logger::DEBUG);
+                       Logger::info('Not public');
                        return false;
                }
 
                $datarray2 = $datarray;
-               Logger::log('remote-self start - Contact '.$contact['url'].' - '.$contact['remote_self'].' Item '.print_r($datarray, true), Logger::DEBUG);
+               Logger::info('remote-self start', ['contact' => $contact['url'], 'remote_self'=> $contact['remote_self'], 'item' => $datarray]);
                if ($contact['remote_self'] == 2) {
                        $self = DBA::selectFirst('contact', ['id', 'name', 'url', 'thumb'],
                                        ['uid' => $contact['uid'], 'self' => true]);
@@ -2663,7 +2663,7 @@ class Item
                if ($contact['network'] != Protocol::FEED) {
                        // Store the original post
                        $result = self::insert($datarray2);
-                       Logger::log('remote-self post original item - Contact '.$contact['url'].' return '.$result.' Item '.print_r($datarray2, true), Logger::DEBUG);
+                       Logger::info('remote-self post original item', ['contact' => $contact['url'], 'result'=> $result, 'item' => $datarray2]);
                } else {
                        $datarray["app"] = "Feed";
                        $result = true;
@@ -2695,7 +2695,7 @@ class Item
                        return $s;
                }
 
-               Logger::log('check for photos', Logger::DEBUG);
+               Logger::info('check for photos');
                $site = substr(DI::baseUrl(), strpos(DI::baseUrl(), '://'));
 
                $orig_body = $s;
@@ -2709,7 +2709,7 @@ class Item
                        $img_st_close++; // make it point to AFTER the closing bracket
                        $image = substr($orig_body, $img_start + $img_st_close, $img_len);
 
-                       Logger::log('found photo ' . $image, Logger::DEBUG);
+                       Logger::info('found photo', ['image' => $image]);
 
                        if (stristr($image, $site . '/photo/')) {
                                // Only embed locally hosted photos
@@ -2748,7 +2748,7 @@ class Item
                                                        $photo_img = Photo::getImageForPhoto($photo);
                                                        // If a custom width and height were specified, apply before embedding
                                                        if (preg_match("/\[img\=([0-9]*)x([0-9]*)\]/is", substr($orig_body, $img_start, $img_st_close), $match)) {
-                                                               Logger::log('scaling photo', Logger::DEBUG);
+                                                               Logger::info('scaling photo');
 
                                                                $width = intval($match[1]);
                                                                $height = intval($match[2]);
@@ -2759,9 +2759,9 @@ class Item
                                                        $data = $photo_img->asString();
                                                        $type = $photo_img->getType();
 
-                                                       Logger::log('replacing photo', Logger::DEBUG);
+                                                       Logger::info('replacing photo');
                                                        $image = 'data:' . $type . ';base64,' . base64_encode($data);
-                                                       Logger::log('replaced: ' . $image, Logger::DATA);
+                                                       Logger::debug('replaced', ['image' => $image]);
                                                }
                                        }
                                }
@@ -3141,7 +3141,7 @@ class Item
                if (!$onlyshadow) {
                        $result = DBA::insert('thread', $item);
 
-                       Logger::log("Add thread for item ".$itemid." - ".print_r($result, true), Logger::DEBUG);
+                       Logger::info('Add thread', ['item' => $itemid, 'result' => $result]);
                }
        }
 
@@ -3171,20 +3171,20 @@ class Item
 
                $result = DBA::update('thread', $fields, ['iid' => $itemid]);
 
-               Logger::log("Update thread for item ".$itemid." - guid ".$item["guid"]." - ".(int)$result, Logger::DEBUG);
+               Logger::info('Update thread', ['item' => $itemid, 'guid' => $item["guid"], 'result' => $result]);
        }
 
        private static function deleteThread($itemid, $itemuri = "")
        {
                $item = DBA::selectFirst('thread', ['uid'], ['iid' => $itemid]);
                if (!DBA::isResult($item)) {
-                       Logger::log('No thread found for id '.$itemid, Logger::DEBUG);
+                       Logger::info('No thread found', ['id' => $itemid]);
                        return;
                }
 
                $result = DBA::delete('thread', ['iid' => $itemid], ['cascade' => false]);
 
-               Logger::log("deleteThread: Deleted thread for item ".$itemid." - ".print_r($result, true), Logger::DEBUG);
+               Logger::info('Deleted thread', ['item' => $itemid, 'result' => $result]);
 
                if ($itemuri != "") {
                        $condition = ["`uri` = ? AND NOT `deleted` AND NOT (`uid` IN (?, 0))", $itemuri, $item["uid"]];
index 4d30f8e..4c94b6e 100644 (file)
@@ -202,7 +202,7 @@ class Summary extends BaseAdmin
                }
                DBA::close($pageFlagsCountStmt);
 
-               Logger::log('accounts: ' . print_r($accounts, true), Logger::DATA);
+               Logger::debug('accounts', ['accounts' => $accounts]);
 
                $pending = Register::getPendingCount();
 
index 01c04df..372e739 100644 (file)
@@ -148,7 +148,7 @@ class Receive extends BaseModule
                }
 
                self::$logger->info('Diaspora: Post decoded.');
-               self::$logger->debug('Diaspora: Decoded message.', ['msg' => print_r($msg, true)]);
+               self::$logger->debug('Diaspora: Decoded message.', ['msg' => $msg]);
 
                if (!is_array($msg)) {
                        throw new HTTPException\InternalServerErrorException('Message is not an array.');
index 85da8eb..f27ffea 100644 (file)
@@ -42,9 +42,9 @@ class Magic extends BaseModule
        {
                $a = DI::app();
                $ret = ['success' => false, 'url' => '', 'message' => ''];
-               Logger::log('magic mdule: invoked', Logger::DEBUG);
+               Logger::info('magic mdule: invoked');
 
-               Logger::log('args: ' . print_r($_REQUEST, true), Logger::DATA);
+               Logger::debug('args', ['request' => $_REQUEST]);
 
                $addr = $_REQUEST['addr'] ?? '';
                $dest = $_REQUEST['dest'] ?? '';
@@ -73,7 +73,7 @@ class Magic extends BaseModule
                                return $ret;
                        }
 
-                       Logger::log('Contact is already authenticated', Logger::DEBUG);
+                       Logger::info('Contact is already authenticated');
                        System::externalRedirect($dest);
                }
 
index 9a8d8fb..322cafa 100644 (file)
@@ -76,8 +76,7 @@ class Owa extends BaseModule
                                                        $verified = HTTPSignature::verifyMagic($contact['pubkey']);
 
                                                        if ($verified && $verified['header_signed'] && $verified['header_valid']) {
-                                                               Logger::log('OWA header: ' . print_r($verified, true), Logger::DATA);
-                                                               Logger::log('OWA success: ' . $contact['addr'], Logger::DATA);
+                                                               Logger::debug('OWA header', ['addr' => $contact['addr'], 'data' => $verified]);
 
                                                                $ret['success'] = true;
                                                                $token = Strings::getRandomHex(32);
@@ -94,10 +93,10 @@ class Owa extends BaseModule
                                                                openssl_public_encrypt($token, $result, $contact['pubkey']);
                                                                $ret['encrypted_token'] = Strings::base64UrlEncode($result);
                                                        } else {
-                                                               Logger::log('OWA fail: ' . $contact['id'] . ' ' . $contact['addr'] . ' ' . $contact['url'], Logger::DEBUG);
+                                                               Logger::info('OWA fail', ['id' => $contact['id'], 'addr' => $contact['addr'], 'url' => $contact['url']]);
                                                        }
                                                } else {
-                                                       Logger::log('Contact not found: ' . $handle, Logger::DEBUG);
+                                                       Logger::info('Contact not found', ['handle' => $handle]);
                                                }
                                        }
                                }
index d7e0e88..9f52edf 100644 (file)
@@ -131,7 +131,7 @@ class CurlResult
                $this->errorNumber = $errorNumber;
                $this->error = $error;
 
-               Logger::log($url . ': ' . $this->returnCode . " " . $result, Logger::DATA);
+               Logger::debug('construct', ['url' => $url, 'returncode' => $this->returnCode, 'result' => $result]);
 
                $this->parseBodyHeader($result);
                $this->checkSuccess();
@@ -167,7 +167,7 @@ class CurlResult
                }
 
                if (!$this->isSuccess) {
-                       Logger::error('error', ['url' => $this->url, 'code' => $this->returnCode, 'error'  => $this->error, 'callstack' => System::callstack(20)]);
+                       Logger::notice('http error', ['url' => $this->url, 'code' => $this->returnCode, 'error'  => $this->error, 'callstack' => System::callstack(20)]);
                        Logger::debug('debug', ['info' => $this->info]);
                }
 
index 642fab1..9833d5e 100644 (file)
@@ -51,12 +51,12 @@ class FKOAuth1 extends OAuthServer
         */
        public function loginUser($uid)
        {
-               Logger::log("FKOAuth1::loginUser $uid");
+               Logger::notice("FKOAuth1::loginUser $uid");
                $a = DI::app();
                $record = DBA::selectFirst('user', [], ['uid' => $uid, 'blocked' => 0, 'account_expired' => 0, 'account_removed' => 0, 'verified' => 1]);
 
                if (!DBA::isResult($record)) {
-                       Logger::log('FKOAuth1::loginUser failure: ' . print_r($_SERVER, true), Logger::DEBUG);
+                       Logger::info('FKOAuth1::loginUser failure', ['server' => $_SERVER]);
                        header('HTTP/1.0 401 Unauthorized');
                        die('This api requires login');
                }
index 4168257..76d9da0 100644 (file)
@@ -30,9 +30,9 @@ use Friendica\Core\Protocol;
 use Friendica\Core\System;
 use Friendica\Database\DBA;
 use Friendica\DI;
-use Friendica\Model\Contact;
 use Friendica\Model\GServer;
 use Friendica\Model\Profile;
+use Friendica\Model\User;
 use Friendica\Protocol\ActivityNamespace;
 use Friendica\Protocol\ActivityPub;
 use Friendica\Protocol\Email;
@@ -177,7 +177,7 @@ class Probe
                                $host_url = $host;
                        }
                } elseif ($curlResult->isTimeout()) {
-                       Logger::info('Probing timeout', ['url' => $ssl_url], Logger::DEBUG);
+                       Logger::info('Probing timeout', ['url' => $ssl_url]);
                        self::$istimeout = true;
                        return [];
                }
@@ -186,7 +186,7 @@ class Probe
                        $curlResult = Network::curl($url, false, ['timeout' => $xrd_timeout, 'accept_content' => 'application/xrd+xml']);
                        $connection_error = ($curlResult->getErrorNumber() == CURLE_COULDNT_CONNECT) || ($curlResult->getReturnCode() == 0);
                        if ($curlResult->isTimeout()) {
-                               Logger::info('Probing timeout', ['url' => $url], Logger::DEBUG);
+                               Logger::info('Probing timeout', ['url' => $url]);
                                self::$istimeout = true;
                                return [];
                        } elseif ($connection_error && $ssl_connection_error) {
@@ -199,13 +199,13 @@ class Probe
                        $host_url = 'http://'.$host;
                }
                if (!is_object($xrd)) {
-                       Logger::log("No xrd object found for ".$host, Logger::DEBUG);
+                       Logger::info('No xrd object found', ['host' => $host]);
                        return [];
                }
 
                $links = XML::elementToArray($xrd);
                if (!isset($links["xrd"]["link"])) {
-                       Logger::log("No xrd data found for ".$host, Logger::DEBUG);
+                       Logger::info('No xrd data found', ['host' => $host]);
                        return [];
                }
 
@@ -229,7 +229,7 @@ class Probe
 
                self::$baseurl = $host_url;
 
-               Logger::log("Probing successful for ".$host, Logger::DEBUG);
+               Logger::info('Probing successful', ['host' => $host]);
 
                return $lrdd;
        }
@@ -260,7 +260,7 @@ class Probe
                $profile_link = '';
 
                $links = self::lrdd($webbie);
-               Logger::log('webfingerDfrn: '.$webbie.':'.print_r($links, true), Logger::DATA);
+               Logger::debug('Result', ['url' => $webbie, 'links' => $links]);
                if (!empty($links) && is_array($links)) {
                        foreach ($links as $link) {
                                if ($link['@attributes']['rel'] === ActivityNamespace::DFRN) {
@@ -294,7 +294,7 @@ class Probe
                $webfinger = $data['webfinger'];
 
                if (empty($webfinger["links"])) {
-                       Logger::log("No webfinger links found for ".$uri, Logger::DEBUG);
+                       Logger::info('No webfinger links found', ['uri' => $uri]);
                        return [];
                }
 
@@ -892,7 +892,7 @@ class Probe
                }
                if (!empty($json['public_forum'])) {
                        $data['community'] = $json['public_forum'];
-                       $data['account-type'] = Contact::PAGE_COMMUNITY;
+                       $data['account-type'] = User::PAGE_FLAGS_COMMUNITY;
                }
 
                if (!empty($json['profile'])) {
@@ -948,7 +948,7 @@ class Probe
                $webfinger = json_decode($data, true);
                if (!empty($webfinger)) {
                        if (!isset($webfinger["links"])) {
-                               Logger::log("No json webfinger links for ".$url, Logger::DEBUG);
+                               Logger::info('No json webfinger links', ['url' => $url]);
                                return [];
                        }
                        return $webfinger;
@@ -957,13 +957,13 @@ class Probe
                // If it is not JSON, maybe it is XML
                $xrd = XML::parseString($data, true);
                if (!is_object($xrd)) {
-                       Logger::log("No webfinger data retrievable for ".$url, Logger::DEBUG);
+                       Logger::info('No webfinger data retrievable', ['url' => $url]);
                        return [];
                }
 
                $xrd_arr = XML::elementToArray($xrd);
                if (!isset($xrd_arr["xrd"]["link"])) {
-                       Logger::log("No XML webfinger links for ".$url, Logger::DEBUG);
+                       Logger::info('No XML webfinger links', ['url' => $url]);
                        return [];
                }
 
@@ -1014,13 +1014,13 @@ class Probe
                }
                $content = $curlResult->getBody();
                if (!$content) {
-                       Logger::log("Empty body for ".$noscrape_url, Logger::DEBUG);
+                       Logger::info('Empty body', ['url' => $noscrape_url]);
                        return [];
                }
 
                $json = json_decode($content, true);
                if (!is_array($json)) {
-                       Logger::log("No json data for ".$noscrape_url, Logger::DEBUG);
+                       Logger::info('No json data', ['url' => $noscrape_url]);
                        return [];
                }
 
@@ -1134,7 +1134,7 @@ class Probe
        {
                $data = [];
 
-               Logger::log("Check profile ".$profile_link, Logger::DEBUG);
+               Logger::info('Check profile', ['link' => $profile_link]);
 
                // Fetch data via noscrape - this is faster
                $noscrape_url = str_replace(["/hcard/", "/profile/"], "/noscrape/", $profile_link);
@@ -1168,7 +1168,7 @@ class Probe
                $prof_data["fn"]           = $data['name']    ?? null;
                $prof_data["key"]          = $data['pubkey']  ?? null;
 
-               Logger::log("Result for profile ".$profile_link.": ".print_r($prof_data, true), Logger::DEBUG);
+               Logger::debug('Result', ['link' => $profile_link, 'data' => $prof_data]);
 
                return $prof_data;
        }
@@ -1919,7 +1919,7 @@ class Probe
                }
 
                $msgs = Email::poll($mbox, $uri);
-               Logger::log('searching '.$uri.', '.count($msgs).' messages found.', Logger::DEBUG);
+               Logger::info('Messages found', ['uri' => $uri, 'count' => count($msgs)]);
 
                if (!count($msgs)) {
                        return [];
@@ -2002,7 +2002,7 @@ class Probe
 
                $fixed = $scheme.$host.$port.$path.$query.$fragment;
 
-               Logger::log('Base: '.$base.' - Avatar: '.$avatar.' - Fixed: '.$fixed, Logger::DATA);
+               Logger::debug('Avatar fixed', ['base' => $base, 'avatar' => $avatar, 'fixed' => $fixed]);
 
                return $fixed;
        }
index 4d064f3..8787db0 100644 (file)
@@ -456,7 +456,6 @@ class Image
                                break;
                }
 
-               //      Logger::log('exif: ' . print_r($exif,true));
                return $exif;
        }
 
index c5cda04..f541e4a 100644 (file)
@@ -219,7 +219,7 @@ class Processor
        {
                $owner = Contact::getIdForURL($activity['actor']);
 
-               Logger::log('Deleting item ' . $activity['object_id'] . ' from ' . $owner, Logger::DEBUG);
+               Logger::info('Deleting item', ['object' => $activity['object_id'], 'owner'  => $owner]);
                Item::markForDeletion(['uri' => $activity['object_id'], 'owner-id' => $owner]);
        }
 
@@ -336,7 +336,7 @@ class Processor
                }
 
                $event_id = Event::store($event);
-               Logger::log('Event '.$event_id.' was stored', Logger::DEBUG);
+               Logger::info('Event was stored', ['id' => $event_id]);
        }
 
        /**
@@ -487,7 +487,8 @@ class Processor
 
                $item['created'] = DateTimeFormat::utc($activity['published']);
                $item['edited'] = DateTimeFormat::utc($activity['updated']);
-               $item['guid'] = $activity['diaspora:guid'] ?: $activity['sc:identifier'] ?: self::getGUIDByURL($item['uri']);
+               $guid = $activity['sc:identifier'] ?: self::getGUIDByURL($item['uri']);
+               $item['guid'] = $activity['diaspora:guid'] ?: $guid;
 
                $item['uri-id'] = ItemURI::insert(['uri' => $item['uri'], 'guid' => $item['guid']]);
 
@@ -560,7 +561,7 @@ class Processor
                        $author = APContact::getByURL($item['owner-link'], false);
                        // We send automatic follow requests for reshared messages. (We don't need though for forum posts)
                        if ($author['type'] != 'Group') {
-                               Logger::log('Send follow request for ' . $item['uri'] . ' (' . $stored . ') to ' . $item['author-link'], Logger::DEBUG);
+                               Logger::info('Send follow request', ['uri' => $item['uri'], 'stored' => $stored, 'to' => $item['author-link']]);
                                ActivityPub\Transmitter::sendFollowObject($item['uri'], $item['author-link']);
                        }
                }
@@ -803,7 +804,7 @@ class Processor
                        return;
                }
 
-               Logger::log('Updating profile for ' . $activity['object_id'], Logger::DEBUG);
+               Logger::info('Updating profile', ['object' => $activity['object_id']]);
                Contact::updateFromProbeByURL($activity['object_id'], true);
        }
 
@@ -816,12 +817,12 @@ class Processor
        public static function deletePerson($activity)
        {
                if (empty($activity['object_id']) || empty($activity['actor'])) {
-                       Logger::log('Empty object id or actor.', Logger::DEBUG);
+                       Logger::info('Empty object id or actor.');
                        return;
                }
 
                if ($activity['object_id'] != $activity['actor']) {
-                       Logger::log('Object id does not match actor.', Logger::DEBUG);
+                       Logger::info('Object id does not match actor.');
                        return;
                }
 
@@ -831,7 +832,7 @@ class Processor
                }
                DBA::close($contacts);
 
-               Logger::log('Deleted contact ' . $activity['object_id'], Logger::DEBUG);
+               Logger::info('Deleted contact', ['object' => $activity['object_id']]);
        }
 
        /**
@@ -850,7 +851,7 @@ class Processor
 
                $cid = Contact::getIdForURL($activity['actor'], $uid);
                if (empty($cid)) {
-                       Logger::log('No contact found for ' . $activity['actor'], Logger::DEBUG);
+                       Logger::info('No contact found', ['actor' => $activity['actor']]);
                        return;
                }
 
@@ -865,7 +866,7 @@ class Processor
 
                $condition = ['id' => $cid];
                DBA::update('contact', $fields, $condition);
-               Logger::log('Accept contact request from contact ' . $cid . ' for user ' . $uid, Logger::DEBUG);
+               Logger::info('Accept contact request', ['contact' => $cid, 'user' => $uid]);
        }
 
        /**
@@ -884,7 +885,7 @@ class Processor
 
                $cid = Contact::getIdForURL($activity['actor'], $uid);
                if (empty($cid)) {
-                       Logger::log('No contact found for ' . $activity['actor'], Logger::DEBUG);
+                       Logger::info('No contact found', ['actor' => $activity['actor']]);
                        return;
                }
 
@@ -892,9 +893,9 @@ class Processor
 
                if (DBA::exists('contact', ['id' => $cid, 'rel' => Contact::SHARING])) {
                        Contact::remove($cid);
-                       Logger::log('Rejected contact request from contact ' . $cid . ' for user ' . $uid . ' - contact had been removed.', Logger::DEBUG);
+                       Logger::info('Rejected contact request - contact removed', ['contact' => $cid, 'user' => $uid]);
                } else {
-                       Logger::log('Rejected contact request from contact ' . $cid . ' for user ' . $uid . '.', Logger::DEBUG);
+                       Logger::info('Rejected contact request', ['contact' => $cid, 'user' => $uid]);
                }
        }
 
@@ -941,7 +942,7 @@ class Processor
 
                $cid = Contact::getIdForURL($activity['actor'], $uid);
                if (empty($cid)) {
-                       Logger::log('No contact found for ' . $activity['actor'], Logger::DEBUG);
+                       Logger::info('No contact found', ['actor' => $activity['actor']]);
                        return;
                }
 
@@ -953,7 +954,7 @@ class Processor
                }
 
                Contact::removeFollower($owner, $contact);
-               Logger::log('Undo following request from contact ' . $cid . ' for user ' . $uid, Logger::DEBUG);
+               Logger::info('Undo following request', ['contact' => $cid, 'user' => $uid]);
        }
 
        /**
index 10541c0..cd9fc0c 100644 (file)
@@ -1341,7 +1341,7 @@ class DFRN
                }
 
 
-               Logger::log('dfrn_deliver: ' . "SENDING: " . print_r($postvars, true), Logger::DATA);
+               Logger::debug('dfrn_deliver', ['post' => $postvars]);
 
                $postResult = Network::post($contact['notify'], $postvars);
 
index 0115814..b579f92 100644 (file)
@@ -293,37 +293,6 @@ class Diaspora
                return $contacts;
        }
 
-       /**
-        * repairs a signature that was double encoded
-        *
-        * The function is unused at the moment. It was copied from the old implementation.
-        *
-        * @param string  $signature The signature
-        * @param string  $handle    The handle of the signature owner
-        * @param integer $level     This value is only set inside this function to avoid endless loops
-        *
-        * @return string the repaired signature
-        * @throws \Exception
-        */
-       private static function repairSignature($signature, $handle = "", $level = 1)
-       {
-               if ($signature == "") {
-                       return ($signature);
-               }
-
-               if (base64_encode(base64_decode(base64_decode($signature))) == base64_decode($signature)) {
-                       $signature = base64_decode($signature);
-                       Logger::log("Repaired double encoded signature from Diaspora/Hubzilla handle ".$handle." - level ".$level, Logger::DEBUG);
-
-                       // Do a recursive call to be able to fix even multiple levels
-                       if ($level < 10) {
-                               $signature = self::repairSignature($signature, $handle, ++$level);
-                       }
-               }
-
-               return($signature);
-       }
-
        /**
         * verify the envelope and return the verified data
         *
@@ -542,7 +511,7 @@ class Diaspora
                $basedom = XML::parseString($xml);
 
                if (!is_object($basedom)) {
-                       Logger::log("XML is not parseable.");
+                       Logger::notice('XML is not parseable.');
                        return false;
                }
                $children = $basedom->children('https://joindiaspora.com/protocol');
@@ -556,7 +525,7 @@ class Diaspora
                } else {
                        // This happens with posts from a relais
                        if (empty($privKey)) {
-                               Logger::log("This is no private post in the old format", Logger::DEBUG);
+                               Logger::info('This is no private post in the old format');
                                return false;
                        }
 
@@ -575,7 +544,7 @@ class Diaspora
 
                        $decrypted = self::aesDecrypt($outer_key, $outer_iv, $ciphertext);
 
-                       Logger::log('decrypted: '.$decrypted, Logger::DEBUG);
+                       Logger::info('decrypted', ['data' => $decrypted]);
                        $idom = XML::parseString($decrypted);
 
                        $inner_iv = base64_decode($idom->iv);
@@ -724,7 +693,7 @@ class Diaspora
 
                $type = $fields->getName();
 
-               Logger::log("Received message type ".$type." from ".$sender." for user ".$importer["uid"], Logger::DEBUG);
+               Logger::info('Received message', ['type' => $type, 'sender' => $sender, 'user' => $importer["uid"]]);
 
                switch ($type) {
                        case "account_migration":
@@ -816,7 +785,7 @@ class Diaspora
                $data = XML::parseString($msg["message"]);
 
                if (!is_object($data)) {
-                       Logger::log("No valid XML ".$msg["message"], Logger::DEBUG);
+                       Logger::info('No valid XML', ['message' => $msg['message']]);
                        return false;
                }
 
@@ -928,7 +897,7 @@ class Diaspora
                if (isset($parent_author_signature)) {
                        $key = self::key($msg["author"]);
                        if (empty($key)) {
-                               Logger::log("No key found for parent author ".$msg["author"], Logger::DEBUG);
+                               Logger::info('No key found for parent', ['author' => $msg["author"]]);
                                return false;
                        }
 
@@ -940,7 +909,7 @@ class Diaspora
 
                $key = self::key($fields->author);
                if (empty($key)) {
-                       Logger::log("No key found for author ".$fields->author, Logger::DEBUG);
+                       Logger::info('No key found', ['author' => $fields->author]);
                        return false;
                }
 
@@ -994,7 +963,7 @@ class Diaspora
                }
 
                if (DBA::isResult($person)) {
-                       Logger::debug("In cache " . print_r($person, true));
+                       Logger::debug('In cache', ['person' => $person]);
 
                        if (is_null($update)) {
                                // update record occasionally so it doesn't get stale
@@ -1108,7 +1077,7 @@ class Diaspora
         */
        public static function urlFromContactGuid($fcontact_guid)
        {
-               Logger::log("fcontact guid is ".$fcontact_guid, Logger::DEBUG);
+               Logger::info('fcontact', ['guid' => $fcontact_guid]);
 
                $r = q(
                        "SELECT `url` FROM `fcontact` WHERE `url` != '' AND `network` = '%s' AND `guid` = '%s'",
@@ -3427,7 +3396,7 @@ class Diaspora
                                "profile" => $profile,
                                "signature" => $signature];
 
-               Logger::log("Send account migration ".print_r($message, true), Logger::DEBUG);
+               Logger::info('Send account migration', ['msg' => $message]);
 
                return self::buildAndTransmit($owner, $contact, "account_migration", $message);
        }
@@ -3471,7 +3440,7 @@ class Diaspora
                                "following" => "true",
                                "sharing" => "true"];
 
-               Logger::log("Send share ".print_r($message, true), Logger::DEBUG);
+               Logger::info('Send share', ['msg' => $message]);
 
                return self::buildAndTransmit($owner, $contact, "contact", $message);
        }
@@ -3492,7 +3461,7 @@ class Diaspora
                                "following" => "false",
                                "sharing" => "false"];
 
-               Logger::log("Send unshare ".print_r($message, true), Logger::DEBUG);
+               Logger::info('Send unshare', ['msg' => $message]);
 
                return self::buildAndTransmit($owner, $contact, "contact", $message);
        }
@@ -4054,7 +4023,7 @@ class Diaspora
 
                $message["parent_author_signature"] = self::signature($owner, $message);
 
-               Logger::log("Relayed data ".print_r($message, true), Logger::DEBUG);
+               Logger::info('Relayed data', ['msg' => $message]);
 
                return self::buildAndTransmit($owner, $contact, $type, $message, $public_batch, $item["guid"]);
        }
@@ -4089,7 +4058,7 @@ class Diaspora
                                "target_guid" => $item['guid'],
                                "target_type" => $target_type];
 
-               Logger::log("Got message ".print_r($message, true), Logger::DEBUG);
+               Logger::info('Got message', ['msg' => $message]);
 
                return self::buildAndTransmit($owner, $contact, $msg_type, $message, $public_batch, $item["guid"]);
        }
@@ -4330,7 +4299,7 @@ class Diaspora
        {
                $owner = User::getOwnerDataById($uid);
                if (empty($owner)) {
-                       Logger::log("No owner post, so not storing signature", Logger::DEBUG);
+                       Logger::info('No owner post, so not storing signature');
                        return false;
                }
 
@@ -4361,7 +4330,7 @@ class Diaspora
        {
                $owner = User::getOwnerDataById($uid);
                if (empty($owner)) {
-                       Logger::log("No owner post, so not storing signature", Logger::DEBUG);
+                       Logger::info('No owner post, so not storing signature');
                        return false;
                }
 
index c4cb62a..3518298 100644 (file)
@@ -556,7 +556,7 @@ class Feed
                                $items[] = $item;
                                break;
                        } else {
-                               Logger::info("Stored feed: " . print_r($item, true));
+                               Logger::info('Stored feed', ['item' => $item]);
 
                                $notify = Item::isRemoteSelf($contact, $item);
 
index 70acf50..f255347 100644 (file)
@@ -116,7 +116,7 @@ class PortableContact
 
                $j = json_decode($s, true);
 
-               Logger::log('load: json: ' . print_r($j, true), Logger::DATA);
+               Logger::debug('load', ['json'  => $j]);
 
                if (!isset($j['entry'])) {
                        return;
index d082909..7708459 100644 (file)
@@ -78,7 +78,7 @@ class Salmon
                }
 
 
-               Logger::log('Key located: ' . print_r($ret, true));
+               Logger::notice('Key located', ['ret' => $ret]);
 
                if (count($ret) == 1) {
                        // We only found one one key so we don't care if the hash matches.
index 1b84a92..d44800e 100644 (file)
@@ -393,7 +393,7 @@ class Crypto
                        // log the offending call so we can track it down
                        if (!openssl_public_encrypt($key, $k, $pubkey)) {
                                $x = debug_backtrace();
-                               Logger::log('RSA failed. ' . print_r($x[0], true));
+                               Logger::notice('RSA failed', ['trace' => $x[0]]);
                        }
 
                        $result['alg'] = $alg;