Remotely commenting on Peertube posts now does work

pull/8148/head
Michael 2020-01-21 06:26:07 +00:00
parent 34b813bbfa
commit fbe5de7c55
1 changed files with 23 additions and 0 deletions

View File

@ -8,6 +8,7 @@ use Friendica\Core\Renderer;
use Friendica\DI; use Friendica\DI;
use Friendica\Model\Contact; use Friendica\Model\Contact;
use Friendica\Model\Profile; use Friendica\Model\Profile;
use Friendica\Model\Item;
use Friendica\Network\Probe; use Friendica\Network\Probe;
use Friendica\Database\DBA; use Friendica\Database\DBA;
use Friendica\Util\Strings; use Friendica\Util\Strings;
@ -33,6 +34,9 @@ function follow_post(App $a)
$result = Contact::createFromProbe($uid, $url, true); $result = Contact::createFromProbe($uid, $url, true);
if ($result['success'] == false) { if ($result['success'] == false) {
// Possibly it is a remote item and not an account
follow_remote_item($url);
if ($result['message']) { if ($result['message']) {
notice($result['message']); notice($result['message']);
} }
@ -108,6 +112,9 @@ function follow_content(App $a)
} }
if ($protocol == Protocol::PHANTOM) { if ($protocol == Protocol::PHANTOM) {
// Possibly it is a remote item and not an account
follow_remote_item($url);
notice(DI::l10n()->t("The network type couldn't be detected. Contact can't be added.")); notice(DI::l10n()->t("The network type couldn't be detected. Contact can't be added."));
$submit = ''; $submit = '';
//$a->internalRedirect($_SESSION['return_path']); //$a->internalRedirect($_SESSION['return_path']);
@ -199,3 +206,19 @@ function follow_content(App $a)
return $o; return $o;
} }
function follow_remote_item($url)
{
$item_id = Item::fetchByLink($url, local_user());
if (!$item_id) {
// If the user-specific search failed, we search and probe a public post
$item_id = Item::fetchByLink($url);
}
if (!empty($item_id)) {
$item = Item::selectFirst(['guid'], ['id' => $item_id]);
if (DBA::isResult($item)) {
DI::baseUrl()->redirect('display/' . $item['guid']);
}
}
}