}
$url = Probe::cleanURI($_REQUEST['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);
-
- if ($result['success'] == false) {
- // Possibly it is a remote item and not an account
- follow_remote_item($url);
-
- if ($result['message']) {
- notice($result['message']);
- }
- DI::baseUrl()->redirect($return_path);
- } elseif ($result['cid']) {
- DI::baseUrl()->redirect('contact/' . $result['cid']);
- }
- notice(DI::l10n()->t('The contact could not be added.'));
-
- DI::baseUrl()->redirect($return_path);
- // NOTREACHED
+ follow_process($a, $url);
}
function follow_content(App $a)
}
$contact = Contact::getByURL($url, true);
+
+ // Possibly it is a mail contact
if (empty($contact)) {
+ $contact = Probe::uri($url, Protocol::MAIL, $uid);
+ }
+
+ if (empty($contact) || ($contact['network'] == Protocol::PHANTOM)) {
// Possibly it is a remote item and not an account
follow_remote_item($url);
$request = $contact['request'];
$tpl = Renderer::getMarkupTemplate('dfrn_request.tpl');
} else {
+ if (!empty($_REQUEST['auto'])) {
+ follow_process($a, $contact['url']);
+ }
+
$request = DI::baseUrl() . '/follow';
$tpl = Renderer::getMarkupTemplate('auto_request.tpl');
}
return $o;
}
+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);
+
+ if ($result['success'] == false) {
+ // Possibly it is a remote item and not an account
+ follow_remote_item($url);
+
+ if ($result['message']) {
+ notice($result['message']);
+ }
+ DI::baseUrl()->redirect($return_path);
+ } elseif ($result['cid']) {
+ DI::baseUrl()->redirect('contact/' . $result['cid']);
+ }
+
+ notice(DI::l10n()->t('The contact could not be added.'));
+
+ DI::baseUrl()->redirect($return_path);
+}
+
function follow_remote_item($url)
{
$item_id = Item::fetchByLink($url, local_user());