]> git.mxchange.org Git - friendica.git/blobdiff - mod/dfrn_confirm.php
Uncommon logger levels in Friendica (#5453)
[friendica.git] / mod / dfrn_confirm.php
index a712e439f725e5ee72c5049040c29b2d6e739174..317eb9e2e7bceb3b8c606271e1582e910df7bdd6 100644 (file)
@@ -20,9 +20,8 @@
 use Friendica\App;
 use Friendica\Core\Config;
 use Friendica\Core\L10n;
-use Friendica\Core\PConfig;
 use Friendica\Core\System;
-use Friendica\Core\Worker;
+use Friendica\Database\DBA;
 use Friendica\Database\DBM;
 use Friendica\Model\Contact;
 use Friendica\Model\Group;
@@ -30,6 +29,9 @@ use Friendica\Model\User;
 use Friendica\Network\Probe;
 use Friendica\Protocol\Diaspora;
 use Friendica\Util\Crypto;
+use Friendica\Util\DateTimeFormat;
+use Friendica\Util\Network;
+use Friendica\Util\XML;
 
 require_once 'include/enotify.php';
 require_once 'include/items.php';
@@ -65,7 +67,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                        return;
                }
 
-               $user = dba::selectFirst('user', [], ['uid' => $uid]);
+               $user = DBA::selectFirst('user', [], ['uid' => $uid]);
                if (!DBM::is_result($user)) {
                        notice(L10n::t('Profile not found.') . EOL);
                        return;
@@ -79,14 +81,12 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                        $duplex   = $handsfree['duplex'];
                        $cid      = 0;
                        $hidden   = intval(defaults($handsfree, 'hidden'  , 0));
-                       $activity = intval(defaults($handsfree, 'activity', 0));
                } else {
                        $dfrn_id  = notags(trim(defaults($_POST, 'dfrn_id'   , '')));
                        $intro_id =      intval(defaults($_POST, 'intro_id'  , 0));
                        $duplex   =      intval(defaults($_POST, 'duplex'    , 0));
                        $cid      =      intval(defaults($_POST, 'contact_id', 0));
                        $hidden   =      intval(defaults($_POST, 'hidden'    , 0));
-                       $activity =      intval(defaults($_POST, 'activity'  , 0));
                }
 
                /*
@@ -220,7 +220,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                         *
                         */
 
-                       $res = post_url($dfrn_confirm, $params, null, $redirects, 120);
+                       $res = Network::post($dfrn_confirm, $params, null, $redirects, 120);
 
                        logger(' Confirm: received data: ' . $res, LOGGER_DATA);
 
@@ -251,7 +251,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                                return;
                        }
 
-                       $xml = parse_xml_string($res);
+                       $xml = XML::parseString($res);
                        $status = (int) $xml->status;
                        $message = unxmlify($xml->message);   // human readable text of what may have gone wrong.
                        switch ($status) {
@@ -279,12 +279,14 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                                notice(L10n::t('Remote site reported: ') . $message . EOL);
                        }
 
-                       if (($status == 0) && ($intro_id)) {
+                       if (($status == 0) && $intro_id) {
+                               $intro = DBA::selectFirst('intro', ['note'], ['id' => $intro_id]);
+                               if (DBM::is_result($intro)) {
+                                       DBA::update('contact', ['reason' => $intro['note']], ['id' => $contact_id]);
+                               }
+
                                // Success. Delete the notification.
-                               q("DELETE FROM `intro` WHERE `id` = %d AND `uid` = %d",
-                                       intval($intro_id),
-                                       intval($uid)
-                               );
+                               DBA::delete('intro', ['id' => $intro_id]);
                        }
 
                        if ($status != 0) {
@@ -323,8 +325,8 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                                `network` = '%s' WHERE `id` = %d
                        ",
                                intval($new_relation),
-                               dbesc(datetime_convert()),
-                               dbesc(datetime_convert()),
+                               dbesc(DateTimeFormat::utcNow()),
+                               dbesc(DateTimeFormat::utcNow()),
                                intval($duplex),
                                intval($hidden),
                                dbesc(NETWORK_DFRN),
@@ -356,10 +358,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                                }
                        }
 
-                       q("DELETE FROM `intro` WHERE `id` = %d AND `uid` = %d",
-                               intval($intro_id),
-                               intval($uid)
-                       );
+                       DBA::delete('intro', ['id' => $intro_id]);
 
                        $r = q("UPDATE `contact` SET `name-date` = '%s',
                                `uri-date` = '%s',
@@ -374,8 +373,8 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                                `rel` = %d
                                WHERE `id` = %d
                        ",
-                               dbesc(datetime_convert()),
-                               dbesc(datetime_convert()),
+                               dbesc(DateTimeFormat::utcNow()),
+                               dbesc(DateTimeFormat::utcNow()),
                                dbesc($addr),
                                dbesc($notify),
                                dbesc($poll),
@@ -387,62 +386,17 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                        );
                }
 
-               /// @TODO is DBM::is_result() working here?
                if (!DBM::is_result($r)) {
                        notice(L10n::t('Unable to set contact photo.') . EOL);
                }
 
                // reload contact info
-               $contact = dba::selectFirst('contact', [], ['id' => $contact_id]);
+               $contact = DBA::selectFirst('contact', [], ['id' => $contact_id]);
                if ((isset($new_relation) && $new_relation == CONTACT_IS_FRIEND)) {
                        if (DBM::is_result($contact) && ($contact['network'] === NETWORK_DIASPORA)) {
                                $ret = Diaspora::sendShare($user, $contact);
                                logger('share returns: ' . $ret);
                        }
-
-                       // Send a new friend post if we are allowed to...
-                       $profile = dba::selectFirst('profile', ['hide-friends'], ['is-default' => true, 'uid' => $uid]);
-                       if (x($profile, 'hide-friends') === 0 && $activity && !$hidden) {
-                               $self = dba::selectFirst('contact', [], ['self' => true, 'uid' => $uid]);
-                               if (DBM::is_result($self)) {
-                                       $arr = [];
-                                       $arr['guid'] = get_guid(32);
-                                       $arr['uri'] = $arr['parent-uri'] = item_new_uri($a->get_hostname(), $uid);
-                                       $arr['uid'] = $uid;
-                                       $arr['contact-id'] = $self['id'];
-                                       $arr['wall'] = 1;
-                                       $arr['type'] = 'wall';
-                                       $arr['gravity'] = 0;
-                                       $arr['origin'] = 1;
-                                       $arr['author-name']   = $arr['owner-name']   = $self['name'];
-                                       $arr['author-link']   = $arr['owner-link']   = $self['url'];
-                                       $arr['author-avatar'] = $arr['owner-avatar'] = $self['thumb'];
-
-                                       $A = '[url=' . $self['url'] . ']' . $self['name'] . '[/url]';
-                                       $B = '[url=' . $contact['url'] . ']' . $contact['name'] . '[/url]';
-                                       $BPhoto = '[url=' . $contact['url'] . ']' . '[img]' . $contact['thumb'] . '[/img][/url]';
-
-                                       $arr['verb'] = ACTIVITY_FRIEND;
-                                       $arr['object-type'] = ACTIVITY_OBJ_PERSON;
-                                       $arr['body'] = L10n::t('%1$s is now friends with %2$s', $A, $B) . "\n\n\n" . $BPhoto;
-
-                                       $arr['object'] = '<object><type>' . ACTIVITY_OBJ_PERSON . '</type><title>' . $contact['name'] . '</title>'
-                                               . '<id>' . $contact['url'] . '/' . $contact['name'] . '</id>';
-                                       $arr['object'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $contact['url'] . '" />' . "\n");
-                                       $arr['object'] .= xmlify('<link rel="photo" type="image/jpeg" href="' . $contact['thumb'] . '" />' . "\n");
-                                       $arr['object'] .= '</link></object>' . "\n";
-
-                                       $arr['allow_cid'] = $user['allow_cid'];
-                                       $arr['allow_gid'] = $user['allow_gid'];
-                                       $arr['deny_cid']  = $user['deny_cid'];
-                                       $arr['deny_gid']  = $user['deny_gid'];
-
-                                       $i = item_store($arr);
-                                       if ($i) {
-                                               Worker::add(PRIORITY_HIGH, "Notifier", "activity", $i);
-                                       }
-                               }
-                       }
                }
 
                Group::addMember(User::getDefaultGroup($uid, $contact["network"]), $contact['id']);
@@ -489,10 +443,10 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                }
 
                // Find our user's account
-               $user = dba::selectFirst('user', [], ['nickname' => $node]);
+               $user = DBA::selectFirst('user', [], ['nickname' => $node]);
                if (!DBM::is_result($user)) {
                        $message = L10n::t('No user record found for \'%s\' ', $node);
-                       xml_status(3, $message); // failure
+                       System::xmlExit(3, $message); // failure
                        // NOTREACHED
                }
 
@@ -502,7 +456,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
 
                if (!strstr($my_prvkey, 'PRIVATE KEY')) {
                        $message = L10n::t('Our site encryption key is apparently messed up.');
-                       xml_status(3, $message);
+                       System::xmlExit(3, $message);
                }
 
                // verify everything
@@ -513,11 +467,11 @@ function dfrn_confirm_post(App $a, $handsfree = null)
 
                if (!strlen($decrypted_source_url)) {
                        $message = L10n::t('Empty site URL was provided or URL could not be decrypted by us.');
-                       xml_status(3, $message);
+                       System::xmlExit(3, $message);
                        // NOTREACHED
                }
 
-               $contact = dba::selectFirst('contact', [], ['url' => $decrypted_source_url, 'uid' => $local_uid]);
+               $contact = DBA::selectFirst('contact', [], ['url' => $decrypted_source_url, 'uid' => $local_uid]);
                if (!DBM::is_result($contact)) {
                        if (strstr($decrypted_source_url, 'http:')) {
                                $newurl = str_replace('http:', 'https:', $decrypted_source_url);
@@ -525,11 +479,11 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                                $newurl = str_replace('https:', 'http:', $decrypted_source_url);
                        }
 
-                       $contact = dba::selectFirst('contact', [], ['url' => $newurl, 'uid' => $local_uid]);
+                       $contact = DBA::selectFirst('contact', [], ['url' => $newurl, 'uid' => $local_uid]);
                        if (!DBM::is_result($contact)) {
                                // this is either a bogus confirmation (?) or we deleted the original introduction.
                                $message = L10n::t('Contact record was not found for you on our site.');
-                               xml_status(3, $message);
+                               System::xmlExit(3, $message);
                                return; // NOTREACHED
                        }
                }
@@ -543,7 +497,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
 
                if (!$foreign_pubkey) {
                        $message = L10n::t('Site public key not available in contact record for URL %s.', $decrypted_source_url);
-                       xml_status(3, $message);
+                       System::xmlExit(3, $message);
                }
 
                $decrypted_dfrn_id = "";
@@ -557,9 +511,9 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                        $dfrn_pubkey = $public_key;
                }
 
-               if (dba::exists('contact', ['dfrn-id' => $decrypted_dfrn_id])) {
+               if (DBA::exists('contact', ['dfrn-id' => $decrypted_dfrn_id])) {
                        $message = L10n::t('The ID provided by your system is a duplicate on our system. It should work if you try again.');
-                       xml_status(1, $message); // Birthday paradox - duplicate dfrn-id
+                       System::xmlExit(1, $message); // Birthday paradox - duplicate dfrn-id
                        // NOTREACHED
                }
 
@@ -570,7 +524,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                );
                if (!DBM::is_result($r)) {
                        $message = L10n::t('Unable to set your contact credentials on our system.');
-                       xml_status(3, $message);
+                       System::xmlExit(3, $message);
                }
 
                // It's possible that the other person also requested friendship.
@@ -583,7 +537,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                }
 
                // We're good but now we have to scrape the profile photo and send notifications.
-               $contact = dba::selectFirst('contact', ['photo'], ['id' => $dfrn_record]);
+               $contact = DBA::selectFirst('contact', ['photo'], ['id' => $dfrn_record]);
                if (DBM::is_result($contact)) {
                        $photo = $contact['photo'];
                } else {
@@ -615,8 +569,8 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                        `network` = '%s' WHERE `id` = %d
                ",
                        intval($new_relation),
-                       dbesc(datetime_convert()),
-                       dbesc(datetime_convert()),
+                       dbesc(DateTimeFormat::utcNow()),
+                       dbesc(DateTimeFormat::utcNow()),
                        intval($duplex),
                        intval($forum),
                        intval($prv),
@@ -625,7 +579,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                );
                if (!DBM::is_result($r)) {      // indicates schema is messed up or total db failure
                        $message = L10n::t('Unable to update your contact profile details on our system');
-                       xml_status(3, $message);
+                       System::xmlExit(3, $message);
                }
 
                // Otherwise everything seems to have worked and we are almost done. Yay!
@@ -663,50 +617,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
                        }
                }
 
-               // Send a new friend post if we are allowed to...
-               if ($page && intval(PConfig::get($local_uid, 'system', 'post_joingroup'))) {
-                       $profile = dba::selectFirst('profile', ['hide-friends'], ['is-default' => true, 'uid' => $local_uid]);
-                       if (x($profile, 'hide-friends') === 0) {
-                               $self = dba::selectFirst('contact', [], ['self' => true, 'uid' => $local_uid]);
-                               if (DBM::is_result($self)) {
-                                       $arr = [];
-                                       $arr['uri'] = $arr['parent-uri'] = item_new_uri($a->get_hostname(), $local_uid);
-                                       $arr['uid'] = $local_uid;
-                                       $arr['contact-id'] = $self['id'];
-                                       $arr['wall'] = 1;
-                                       $arr['type'] = 'wall';
-                                       $arr['gravity'] = 0;
-                                       $arr['origin'] = 1;
-                                       $arr['author-name']   = $arr['owner-name']   = $self['name'];
-                                       $arr['author-link']   = $arr['owner-link']   = $self['url'];
-                                       $arr['author-avatar'] = $arr['owner-avatar'] = $self['thumb'];
-
-                                       $A = '[url=' . $self['url'] . ']' . $self['name'] . '[/url]';
-                                       $B = '[url=' . $combined['url'] . ']' . $combined['name'] . '[/url]';
-                                       $BPhoto = '[url=' . $combined['url'] . ']' . '[img]' . $combined['thumb'] . '[/img][/url]';
-
-                                       $arr['verb'] = ACTIVITY_JOIN;
-                                       $arr['object-type'] = ACTIVITY_OBJ_GROUP;
-                                       $arr['body'] = L10n::t('%1$s has joined %2$s', $A, $B) . "\n\n\n" . $BPhoto;
-                                       $arr['object'] = '<object><type>' . ACTIVITY_OBJ_GROUP . '</type><title>' . $combined['name'] . '</title>'
-                                               . '<id>' . $combined['url'] . '/' . $combined['name'] . '</id>';
-                                       $arr['object'] .= '<link>' . xmlify('<link rel="alternate" type="text/html" href="' . $combined['url'] . '" />' . "\n");
-                                       $arr['object'] .= xmlify('<link rel="photo" type="image/jpeg" href="' . $combined['thumb'] . '" />' . "\n");
-                                       $arr['object'] .= '</link></object>' . "\n";
-
-                                       $arr['allow_cid'] = $user['allow_cid'];
-                                       $arr['allow_gid'] = $user['allow_gid'];
-                                       $arr['deny_cid']  = $user['deny_cid'];
-                                       $arr['deny_gid']  = $user['deny_gid'];
-
-                                       $i = item_store($arr);
-                                       if ($i) {
-                                               Worker::add(PRIORITY_HIGH, "Notifier", "activity", $i);
-                                       }
-                               }
-                       }
-               }
-               xml_status(0); // Success
+               System::xmlExit(0); // Success
                return; // NOTREACHED
                ////////////////////// End of this scenario ///////////////////////////////////////////////
        }