Merge pull request #13226 from annando/lemmy

Better support for "audience" / simplified Lemmy processing
This commit is contained in:
Hypolite Petovan 2023-06-23 17:12:38 -04:00 committed by GitHub
commit b731f8a0ad
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
25 changed files with 1123 additions and 802 deletions

View file

@ -219,8 +219,7 @@ class Contact extends BaseModule
DI::page()['aside'] .= $vcard_widget . $findpeople_widget . $follow_widget . $rel_widget . $circles_widget . $networks_widget . $account_widget;
$tpl = Renderer::getMarkupTemplate('contacts-head.tpl');
DI::page()['htmlhead'] .= Renderer::replaceMacros($tpl, [
]);
DI::page()['htmlhead'] .= Renderer::replaceMacros($tpl, []);
$o = '';
Nav::setSelected('contact');
@ -412,20 +411,41 @@ class Contact extends BaseModule
$tabs_html = Renderer::replaceMacros($tabs_tpl, ['$tabs' => $tabs]);
switch ($rel) {
case 'followers': $header = DI::l10n()->t('Followers'); break;
case 'following': $header = DI::l10n()->t('Following'); break;
case 'mutuals': $header = DI::l10n()->t('Mutual friends'); break;
case 'nothing': $header = DI::l10n()->t('No relationship'); break;
default: $header = DI::l10n()->t('Contacts');
case 'followers':
$header = DI::l10n()->t('Followers');
break;
case 'following':
$header = DI::l10n()->t('Following');
break;
case 'mutuals':
$header = DI::l10n()->t('Mutual friends');
break;
case 'nothing':
$header = DI::l10n()->t('No relationship');
break;
default:
$header = DI::l10n()->t('Contacts');
}
switch ($type) {
case 'pending': $header .= ' - ' . DI::l10n()->t('Pending'); break;
case 'blocked': $header .= ' - ' . DI::l10n()->t('Blocked'); break;
case 'hidden': $header .= ' - ' . DI::l10n()->t('Hidden'); break;
case 'ignored': $header .= ' - ' . DI::l10n()->t('Ignored'); break;
case 'collapsed': $header .= ' - ' . DI::l10n()->t('Collapsed'); break;
case 'archived': $header .= ' - ' . DI::l10n()->t('Archived'); break;
case 'pending':
$header .= ' - ' . DI::l10n()->t('Pending');
break;
case 'blocked':
$header .= ' - ' . DI::l10n()->t('Blocked');
break;
case 'hidden':
$header .= ' - ' . DI::l10n()->t('Hidden');
break;
case 'ignored':
$header .= ' - ' . DI::l10n()->t('Ignored');
break;
case 'collapsed':
$header .= ' - ' . DI::l10n()->t('Collapsed');
break;
case 'archived':
$header .= ' - ' . DI::l10n()->t('Archived');
break;
}
$header .= $nets ? ' - ' . ContactSelector::networkToName($nets) : '';
@ -512,7 +532,8 @@ class Contact extends BaseModule
'id' => 'media-tab',
'accesskey' => 'd',
],
['label' => DI::l10n()->t('Contacts'),
[
'label' => DI::l10n()->t('Contacts'),
'url' => 'contact/' . $pcid . '/contacts',
'sel' => (($active_tab == self::TAB_CONTACTS) ? 'active' : ''),
'title' => DI::l10n()->t('View all known contacts'),
@ -522,7 +543,8 @@ class Contact extends BaseModule
];
if (!empty($contact['network']) && in_array($contact['network'], [Protocol::FEED, Protocol::MAIL]) && ($cid != $pcid)) {
$tabs[] = ['label' => DI::l10n()->t('Advanced'),
$tabs[] = [
'label' => DI::l10n()->t('Advanced'),
'url' => 'contact/' . $cid . '/advanced/',
'sel' => (($active_tab == self::TAB_ADVANCED) ? 'active' : ''),
'title' => DI::l10n()->t('Advanced Contact Settings'),

View file

@ -93,7 +93,7 @@ class Unfollow extends \Friendica\BaseModule
Strings::normaliseLink($url), Strings::normaliseLink($url), $url,
];
$contact = $this->database->selectFirst('contact', ['url', 'id', 'uid', 'network', 'addr', 'name'], $condition);
$contact = $this->database->selectFirst('contact', ['url', 'alias', 'id', 'uid', 'network', 'addr', 'name'], $condition);
if (!$this->database->isResult($contact)) {
$this->systemMessages->addNotice($this->t("You aren't following this contact."));
$this->baseUrl->redirect($base_return_path);

View file

@ -29,12 +29,14 @@ use Friendica\Core\Session\Capability\IHandleUserSessions;
use Friendica\Core\System;
use Friendica\Database\Database;
use Friendica\Model\Contact;
use Friendica\Model\GServer;
use Friendica\Model\User;
use Friendica\Network\HTTPClient\Capability\ICanSendHttpRequests;
use Friendica\Network\HTTPClient\Client\HttpClientOptions;
use Friendica\Util\HTTPSignature;
use Friendica\Util\Profiler;
use Friendica\Util\Strings;
use GuzzleHttp\Psr7\Uri;
use Psr\Log\LoggerInterface;
/**
@ -83,6 +85,8 @@ class Magic extends BaseModule
$this->logger->debug('bdest detected', ['dest' => $dest]);
}
$target = $dest ?: $addr;
if ($addr ?: $dest) {
$contact = Contact::getByURL($addr ?: $dest);
}
@ -110,14 +114,21 @@ class Magic extends BaseModule
// OpenWebAuth
$owner = User::getOwnerDataById($this->userSession->getLocalUserId());
$gserver = $this->dba->selectFirst('gserver', ['url'], ['id' => $contact['gsid']]);
if (empty($gserver)) {
$this->logger->notice('Server not found, redirecting to destination.', ['gsid' => $contact['gsid'], 'dest' => $dest]);
if (!empty($contact['gsid'])) {
$gserver = $this->dba->selectFirst('gserver', ['url'], ['id' => $contact['gsid']]);
if (empty($gserver)) {
$this->logger->notice('Server not found, redirecting to destination.', ['gsid' => $contact['gsid'], 'dest' => $dest]);
System::externalRedirect($dest);
}
$basepath = $gserver['url'];
} elseif (GServer::check($target)) {
$basepath = (string)GServer::cleanUri(new Uri($target));
} else {
$this->logger->notice('The target is not a server path, redirecting to destination.', ['target' => $target]);
System::externalRedirect($dest);
}
$basepath = $gserver['url'];
$header = [
'Accept' => 'application/x-dfrn+json, application/x-zot+json',
'X-Open-Web-Auth' => Strings::getRandomHex()