]> git.mxchange.org Git - friendica.git/blobdiff - mod/follow.php
Deprecated the notify table/classes
[friendica.git] / mod / follow.php
index d47cec76de735472f9f6e66dc3353d17066c889c..818a1ae5e95c7dd6ac0291655a2d50799ef5d526 100644 (file)
@@ -1,6 +1,6 @@
 <?php
 /**
- * @copyright Copyright (C) 2020, Friendica
+ * @copyright Copyright (C) 2010-2022, the Friendica project
  *
  * @license GNU AGPL version 3 or any later version
  *
@@ -20,6 +20,7 @@
  */
 
 use Friendica\App;
+use Friendica\Content\Widget;
 use Friendica\Core\Protocol;
 use Friendica\Core\Renderer;
 use Friendica\DI;
@@ -28,6 +29,7 @@ use Friendica\Model\Profile;
 use Friendica\Model\Item;
 use Friendica\Network\Probe;
 use Friendica\Database\DBA;
+use Friendica\Model\Post;
 use Friendica\Model\User;
 use Friendica\Util\Strings;
 
@@ -58,8 +60,7 @@ function follow_content(App $a)
 
        $uid = local_user();
 
-       // Issue 4815: Silently removing a prefixing @
-       $url = ltrim(Strings::escapeTags(trim($_REQUEST['url'] ?? '')), '@!');
+       $url = Probe::cleanURI(trim($_REQUEST['url'] ?? ''));
 
        // Issue 6874: Allow remote following from Peertube
        if (strpos($url, 'acct:') === 0) {
@@ -74,7 +75,7 @@ function follow_content(App $a)
 
        // Don't try to add a pending contact
        $user_contact = DBA::selectFirst('contact', ['pending'], ["`uid` = ? AND ((`rel` != ?) OR (`network` = ?)) AND
-               (`nurl` = ? OR `alias` = ? OR `alias` = ?) AND `network` != ?", 
+               (`nurl` = ? OR `alias` = ? OR `alias` = ?) AND `network` != ?",
                $uid, Contact::FOLLOWER, Protocol::DFRN, Strings::normaliseLink($url),
                Strings::normaliseLink($url), $url, Protocol::STATUSNET]);
 
@@ -117,14 +118,13 @@ function follow_content(App $a)
                $contact['url'] = $contact['addr'];
        }
 
-       if (($protocol === Protocol::DFRN) && !DBA::isResult($contact)) {
-               $request = $contact['request'];
-               $tpl = Renderer::getMarkupTemplate('dfrn_request.tpl');
-       } else {
-               $request = DI::baseUrl() . '/follow';
-               $tpl = Renderer::getMarkupTemplate('auto_request.tpl');
+       if (!empty($_REQUEST['auto'])) {
+               follow_process($a, $contact['url']);
        }
 
+       $request = DI::baseUrl() . '/follow';
+       $tpl = Renderer::getMarkupTemplate('auto_request.tpl');
+
        $owner = User::getOwnerDataById($uid);
        if (empty($owner)) {
                notice(DI::l10n()->t('Permission denied.'));
@@ -134,13 +134,6 @@ function follow_content(App $a)
 
        $myaddr = $owner['url'];
 
-       // Makes the connection request for friendica contacts easier
-       $_SESSION['fastlane'] = $contact['url'];
-
-       if (!empty($_REQUEST['auto'])) {
-               follow_process($a, $contact['url']);
-       }
-
        $o = Renderer::replaceMacros($tpl, [
                '$header'        => DI::l10n()->t('Connect/Follow'),
                '$pls_answer'    => DI::l10n()->t('Please answer the following:'),
@@ -163,8 +156,8 @@ function follow_content(App $a)
 
        DI::page()['aside'] = '';
 
-       if ($protocol != Protocol::PHANTOM) {
-               Profile::load($a, '', $contact, false);
+       if (!in_array($protocol, [Protocol::PHANTOM, Protocol::MAIL])) {
+               DI::page()['aside'] = Widget\VCard::getHTML($contact);
 
                $o .= Renderer::replaceMacros(Renderer::getMarkupTemplate('section_title.tpl'),
                        ['$title' => DI::l10n()->t('Status Messages and Posts')]
@@ -181,11 +174,7 @@ function follow_process(App $a, string $url)
 {
        $return_path = 'follow?url=' . urlencode($url);
 
-       // Makes the connection request for friendica contacts easier
-       // This is just a precaution if maybe this page is called somewhere directly via POST
-       $_SESSION['fastlane'] = $url;
-
-       $result = Contact::createFromProbe($a->user, $url, true);
+       $result = Contact::createFromProbeForUser($a->getLoggedInUserId(), $url);
 
        if ($result['success'] == false) {
                // Possibly it is a remote item and not an account
@@ -213,7 +202,7 @@ function follow_remote_item($url)
        }
 
        if (!empty($item_id)) {
-               $item = Item::selectFirst(['guid'], ['id' => $item_id]);
+               $item = Post::selectFirst(['guid'], ['id' => $item_id]);
                if (DBA::isResult($item)) {
                        DI::baseUrl()->redirect('display/' . $item['guid']);
                }