X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FModule%2FRemoteFollow.php;h=ee13ce065181721ea9ef4ddc624eddfff11a602e;hb=f70650f8248b80915c051ffeefb723a23e0d4da7;hp=2a4d6bc1ed36173b0c24c3f116fd58fefed92fd8;hpb=2eebeeaa329584244e414eaa41fc6ac9ed3e1cac;p=friendica.git diff --git a/src/Module/RemoteFollow.php b/src/Module/RemoteFollow.php index 2a4d6bc1ed..ee13ce0651 100644 --- a/src/Module/RemoteFollow.php +++ b/src/Module/RemoteFollow.php @@ -1,4 +1,23 @@ . + * + */ namespace Friendica\Module; @@ -9,6 +28,7 @@ use Friendica\Core\Protocol; use Friendica\Core\Renderer; use Friendica\Core\Search; use Friendica\Core\System; +use Friendica\Model\Contact; use Friendica\Model\Profile; use Friendica\Network\Probe; @@ -19,10 +39,6 @@ class RemoteFollow extends BaseModule { public static function init(array $parameters = []) { - if (empty($parameters['profile'])) { - return; - } - Profile::load(DI::app(), $parameters['profile']); } @@ -30,39 +46,36 @@ class RemoteFollow extends BaseModule { $a = DI::app(); - if (empty($parameters['profile']) || !empty($_POST['cancel']) || empty($_POST['dfrn_url'])) { + if (!empty($_POST['cancel']) || empty($_POST['dfrn_url'])) { DI::baseUrl()->redirect(); } if (empty($a->profile['uid'])) { - notice(DI::l10n()->t('Profile unavailable.') . EOL); + notice(DI::l10n()->t('Profile unavailable.')); return; } - $url = trim($_POST['dfrn_url']); + $url = Probe::cleanURI($_POST['dfrn_url']); if (!strlen($url)) { - notice(DI::l10n()->t("Invalid locator") . EOL); + notice(DI::l10n()->t("Invalid locator")); return; } // Detect the network, make sure the provided URL is valid - $data = Probe::uri($url); - if ($data['network'] == Protocol::PHANTOM) { + $data = Contact::getByURL($url); + if (!$data) { notice(DI::l10n()->t("The provided profile link doesn't seem to be valid")); return; } - // Fetch link for the "remote follow" functionality of the given profile - $follow_link_template = Probe::getRemoteFollowLink($url); - - if (empty($follow_link_template)) { + if (empty($data['subscribe'])) { notice(DI::l10n()->t("Remote subscription can't be done for your network. Please subscribe directly on your system.")); return; } - Logger::notice('Remote request', ['url' => $url, 'follow' => $a->profile['url'], 'remote' => $follow_link_template]); + Logger::notice('Remote request', ['url' => $url, 'follow' => $a->profile['url'], 'remote' => $data['subscribe']]); - // Substitute our user's feed URL into $follow_link_template + // Substitute our user's feed URL into $data['subscribe'] // Send the subscriber home to subscribe // Diaspora needs the uri in the format user@domain.tld if ($data['network'] == Protocol::DIASPORA) { @@ -71,7 +84,7 @@ class RemoteFollow extends BaseModule $uri = urlencode($a->profile['url']); } - $follow_link = str_replace('{uri}', $uri, $follow_link_template); + $follow_link = str_replace('{uri}', $uri, $data['subscribe']); System::externalRedirect($follow_link); } @@ -79,7 +92,7 @@ class RemoteFollow extends BaseModule { $a = DI::app(); - if (empty($parameters['profile']) || empty($a->profile)) { + if (empty($a->profile)) { return ''; } @@ -98,8 +111,8 @@ class RemoteFollow extends BaseModule '$request' => 'remote_follow/' . $parameters['profile'], '$name' => $a->profile['name'], - '$myaddr' => '', //Profile::getMyURL(), + '$myaddr' => Profile::getMyURL(), ]); return $o; } -} \ No newline at end of file +}