Follow/Unfollow contact with a single click

This commit is contained in:
Michael
2020-10-20 03:49:58 +00:00
parent 5232a8583f
commit 33575a94fa
6 changed files with 88 additions and 76 deletions

View File

@@ -41,31 +41,7 @@ function follow_post(App $a)
DI::baseUrl()->redirect('contact');
}
$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);
}
function follow_content(App $a)
@@ -92,6 +68,10 @@ function follow_content(App $a)
DI::baseUrl()->redirect($return_path);
}
if (!empty($_REQUEST['auto'])) {
follow_process($a);
}
$submit = DI::l10n()->t('Submit Request');
// Don't try to add a pending contact
@@ -195,6 +175,34 @@ function follow_content(App $a)
return $o;
}
function follow_process(App $a)
{
$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);
}
function follow_remote_item($url)
{
$item_id = Item::fetchByLink($url, local_user());