+function follow_process(App $a, string $url)
+{
+ $return_path = 'follow?url=' . urlencode($url);
+
+ $result = Contact::createFromProbeForUser($a->getLoggedInUserId(), $url);
+
+ 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);
+}
+