From d1209d83023aaae7b844f4fc3b3668643718de14 Mon Sep 17 00:00:00 2001 From: Carl Schwan Date: Mon, 21 Nov 2022 16:44:55 +0100 Subject: Rename mastodon to fediverse Signed-off-by: Carl Schwan --- lib/private/Profile/Actions/FediverseAction.php | 90 +++++++++++++++++++++++++ lib/private/Profile/Actions/MastodonAction.php | 90 ------------------------- lib/private/Profile/ProfileManager.php | 4 +- 3 files changed, 92 insertions(+), 92 deletions(-) create mode 100644 lib/private/Profile/Actions/FediverseAction.php delete mode 100644 lib/private/Profile/Actions/MastodonAction.php (limited to 'lib/private/Profile') diff --git a/lib/private/Profile/Actions/FediverseAction.php b/lib/private/Profile/Actions/FediverseAction.php new file mode 100644 index 00000000000..ed3fcd80b52 --- /dev/null +++ b/lib/private/Profile/Actions/FediverseAction.php @@ -0,0 +1,90 @@ + + * + * @author Christopher Ng + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ + +namespace OC\Profile\Actions; + +use function Safe\substr; +use OCP\Accounts\IAccountManager; +use OCP\IURLGenerator; +use OCP\IUser; +use OCP\L10N\IFactory; +use OCP\Profile\ILinkAction; + +class FediverseAction implements ILinkAction { + private ?string $value = null; + private IAccountManager $accountManager; + private IFactory $l10nFactory; + private IURLGenerator $urlGenerator; + + public function __construct( + IAccountManager $accountManager, + IFactory $l10nFactory, + IURLGenerator $urlGenerator + ) { + $this->accountManager = $accountManager; + $this->l10nFactory = $l10nFactory; + $this->urlGenerator = $urlGenerator; + } + + public function preload(IUser $targetUser): void { + $account = $this->accountManager->getAccount($targetUser); + $this->value = $account->getProperty(IAccountManager::PROPERTY_FEDIVERSE)->getValue(); + } + + public function getAppId(): string { + return 'core'; + } + + public function getId(): string { + return IAccountManager::PROPERTY_FEDIVERSE; + } + + public function getDisplayId(): string { + return $this->l10nFactory->get('lib')->t('Fediverse'); + } + + public function getTitle(): string { + $displayUsername = $this->value[0] === '@' ? $this->value : '@' . $this->value; + return $this->l10nFactory->get('lib')->t('View %s on the fediverse', [$displayUsername]); + } + + public function getPriority(): int { + return 50; + } + + public function getIcon(): string { + return $this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/mastodon.svg')); + } + + public function getTarget(): ?string { + if (empty($this->value)) { + return null; + } + $username = $this->value[0] === '@' ? substr($this->value, 1) : $this->value; + [$username, $instance] = explode('@', $username); + return 'https://' . $instance . '/@' . $username; + } +} diff --git a/lib/private/Profile/Actions/MastodonAction.php b/lib/private/Profile/Actions/MastodonAction.php deleted file mode 100644 index c6c9bc6ade7..00000000000 --- a/lib/private/Profile/Actions/MastodonAction.php +++ /dev/null @@ -1,90 +0,0 @@ - - * - * @author Christopher Ng - * - * @license GNU AGPL version 3 or any later version - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU Affero General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Affero General Public License for more details. - * - * You should have received a copy of the GNU Affero General Public License - * along with this program. If not, see . - * - */ - -namespace OC\Profile\Actions; - -use function Safe\substr; -use OCP\Accounts\IAccountManager; -use OCP\IURLGenerator; -use OCP\IUser; -use OCP\L10N\IFactory; -use OCP\Profile\ILinkAction; - -class MastodonAction implements ILinkAction { - private ?string $value = null; - private IAccountManager $accountManager; - private IFactory $l10nFactory; - private IURLGenerator $urlGenerator; - - public function __construct( - IAccountManager $accountManager, - IFactory $l10nFactory, - IURLGenerator $urlGenerator - ) { - $this->accountManager = $accountManager; - $this->l10nFactory = $l10nFactory; - $this->urlGenerator = $urlGenerator; - } - - public function preload(IUser $targetUser): void { - $account = $this->accountManager->getAccount($targetUser); - $this->value = $account->getProperty(IAccountManager::PROPERTY_MASTODON)->getValue(); - } - - public function getAppId(): string { - return 'core'; - } - - public function getId(): string { - return IAccountManager::PROPERTY_MASTODON; - } - - public function getDisplayId(): string { - return $this->l10nFactory->get('lib')->t('Mastodon'); - } - - public function getTitle(): string { - $displayUsername = $this->value[0] === '@' ? $this->value : '@' . $this->value; - return $this->l10nFactory->get('lib')->t('View %s on Mastodon', [$displayUsername]); - } - - public function getPriority(): int { - return 50; - } - - public function getIcon(): string { - return $this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/mastodon.svg')); - } - - public function getTarget(): ?string { - if (empty($this->value)) { - return null; - } - $username = $this->value[0] === '@' ? substr($this->value, 1) : $this->value; - [$username, $instance] = explode('@', $username); - return 'https://' . $instance . '/@' . $username; - } -} diff --git a/lib/private/Profile/ProfileManager.php b/lib/private/Profile/ProfileManager.php index 35cb8c20fa9..ab1af1c1c16 100644 --- a/lib/private/Profile/ProfileManager.php +++ b/lib/private/Profile/ProfileManager.php @@ -35,7 +35,7 @@ use OC\KnownUser\KnownUserService; use OC\Profile\Actions\EmailAction; use OC\Profile\Actions\PhoneAction; use OC\Profile\Actions\TwitterAction; -use OC\Profile\Actions\MastodonAction; +use OC\Profile\Actions\FediverseAction; use OC\Profile\Actions\WebsiteAction; use OCP\Accounts\IAccountManager; use OCP\Accounts\PropertyDoesNotExistException; @@ -96,7 +96,7 @@ class ProfileManager { PhoneAction::class, WebsiteAction::class, TwitterAction::class, - MastodonAction::class, + FediverseAction::class, ]; /** -- cgit v1.2.3