%PDF- %PDF-
Direktori : /www/varak.net/nextcloud.varak.net/apps_old/apps/passwords/lib/Provider/Words/ |
Current File : /www/varak.net/nextcloud.varak.net/apps_old/apps/passwords/lib/Provider/Words/AutoWordsProvider.php |
<?php /* * @copyright 2023 Passwords App * * @author Marius David Wieschollek * @license AGPL-3.0 * * This file is part of the Passwords App * created by Marius David Wieschollek. */ namespace OCA\Passwords\Provider\Words; use OCA\Passwords\Services\LoggingService; class AutoWordsProvider extends AbstractWordsProvider { protected LeipzigCorporaProvider $leipzigCorporaHelper; protected LocalWordsProvider $localWordsHelper; protected RandomCharactersProvider $randomCharactersHelper; protected LoggingService $logger; /** * @param LeipzigCorporaProvider $leipzigCorporaHelper * @param LocalWordsProvider $localWordsHelper * @param RandomCharactersProvider $randomCharactersHelper * @param LoggingService $logger */ public function __construct( LeipzigCorporaProvider $leipzigCorporaHelper, LocalWordsProvider $localWordsHelper, RandomCharactersProvider $randomCharactersHelper, LoggingService $logger, ) { $this->leipzigCorporaHelper = $leipzigCorporaHelper; $this->localWordsHelper = $localWordsHelper; $this->randomCharactersHelper = $randomCharactersHelper; $this->logger = $logger; } public function getWords(int $strength, bool $addNumbers, bool $addSpecial): ?array { try { $result = $this->leipzigCorporaHelper->getWords($strength, $addNumbers, $addSpecial); if($result !== null) { return $result; } } catch(\Throwable $e) { $this->logger->logException($e); } try { if($this->localWordsHelper->isAvailable()) { $result = $this->localWordsHelper->getWords($strength, $addNumbers, $addSpecial); if($result !== null) { return $result; } } } catch(\Throwable $e) { $this->logger->logException($e); } return $this->randomCharactersHelper->getWords($strength, $addNumbers, $addSpecial); } /** * @inheritDoc */ public function isAvailable(): bool { return $this->randomCharactersHelper->isAvailable() || $this->localWordsHelper->isAvailable() || $this->leipzigCorporaHelper->isAvailable(); } }