diff options
author | Christoph Wurst <christoph@winzerhof-wurst.at> | 2020-11-03 18:16:13 +0300 |
---|---|---|
committer | Christoph Wurst <christoph@winzerhof-wurst.at> | 2020-11-03 18:44:11 +0300 |
commit | 0ce28beba11707e394c806775b5765d26dece4d0 (patch) | |
tree | 64d97656035db2ae2895f3afc4b43abf307113ec /lib/Mailbox.php | |
parent | f93c487a900c1398e51ed6974c4ff822e9850395 (diff) |
Remove dead methods from the Mailbox class
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'lib/Mailbox.php')
-rw-r--r-- | lib/Mailbox.php | 228 |
1 files changed, 1 insertions, 227 deletions
diff --git a/lib/Mailbox.php b/lib/Mailbox.php index 98e5f8f80..777f82ee4 100644 --- a/lib/Mailbox.php +++ b/lib/Mailbox.php @@ -32,7 +32,6 @@ namespace OCA\Mail; use Horde_Imap_Client; -use Horde_Imap_Client_Exception; use Horde_Imap_Client_Mailbox; use Horde_Imap_Client_Socket; use OCA\Mail\Model\IMAPMessage; @@ -45,26 +44,6 @@ class Mailbox { protected $conn; /** - * @var array - */ - private $attributes; - - /** - * @var string - */ - private $specialRole; - - /** - * @var string - */ - private $displayName; - - /** - * @var string - */ - private $delimiter; - - /** * @var Horde_Imap_Client_Mailbox */ protected $mailBox; @@ -72,26 +51,10 @@ class Mailbox { /** * @param Horde_Imap_Client_Socket $conn * @param Horde_Imap_Client_Mailbox $mailBox - * @param array $attributes - * @param string $delimiter */ - public function __construct($conn, $mailBox, $attributes, $delimiter = '/') { + public function __construct($conn, $mailBox) { $this->conn = $conn; $this->mailBox = $mailBox; - $this->attributes = $attributes; - $this->delimiter = $delimiter; - $this->getSpecialRoleFromAttributes(); - if ($this->specialRole === null) { - $this->guessSpecialRole(); - } - $this->makeDisplayName(); - } - - /** - * @return array - */ - public function attributes() { - return $this->attributes; } /** @@ -105,195 +68,6 @@ class Mailbox { } /** - * @return array - */ - public function getStatus(int $flags = Horde_Imap_Client::STATUS_ALL): array { - return $this->conn->status($this->mailBox, $flags); - } - - /** - * @return int - */ - public function getTotalMessages() { - $status = $this->getStatus(\Horde_Imap_Client::STATUS_MESSAGES); - return (int) $status['messages']; - } - - protected function makeDisplayName(): void { - $parts = explode($this->delimiter, $this->mailBox->utf8, 2); - - if (count($parts) > 1) { - $displayName = $parts[1]; - } elseif (strtolower($this->mailBox->utf8) === 'inbox') { - $displayName = 'Inbox'; - } else { - $displayName = $this->mailBox->utf8; - } - - $this->displayName = $displayName; - } - - public function getFolderId(): string { - return $this->mailBox->utf8; - } - - /** - * @return null|string - */ - public function getParent(): ?string { - $folderId = $this->getFolderId(); - $parts = explode($this->delimiter, $folderId, 2); - - if (count($parts) > 1) { - return $parts[0]; - } - - return null; - } - - /** - * @return string - */ - public function getSpecialRole() { - return $this->specialRole; - } - - /** - * @return string - */ - public function getDisplayName() { - return $this->displayName; - } - - /** - * @param string $displayName - * - * @return void - */ - public function setDisplayName($displayName): void { - $this->displayName = $displayName; - } - - /** - * @param integer $accountId - * @return array - */ - public function serialize($accountId, $status = null) { - $displayName = $this->getDisplayName(); - try { - if (is_null($status)) { - $status = $this->getStatus(); - } - $total = $status['messages']; - $specialRole = $this->getSpecialRole(); - $unseen = ($specialRole === 'trash') ? 0 : $status['unseen']; - $isEmpty = ($total === 0); - $noSelect = in_array('\\noselect', $this->attributes); - $parentId = $this->getParent(); - $parentId = ($parentId !== null) ? base64_encode($parentId) : null; - return [ - 'id' => base64_encode($this->getFolderId()), - 'parent' => $parentId, - 'name' => $displayName, - 'specialRole' => $specialRole, - 'unseen' => $unseen, - 'total' => $total, - 'isEmpty' => $isEmpty, - 'accountId' => $accountId, - 'noSelect' => $noSelect, - 'uidvalidity' => $status['uidvalidity'], - 'uidnext' => $status['uidnext'], - 'delimiter' => $this->delimiter - ]; - } catch (Horde_Imap_Client_Exception $e) { - return [ - 'id' => base64_encode($this->getFolderId()), - 'parent' => null, - 'name' => $displayName, - 'specialRole' => null, - 'unseen' => 0, - 'total' => 0, - 'error' => $e->getMessage(), - 'isEmpty' => true, - 'accountId' => $accountId, - 'noSelect' => true - ]; - } - } - - /** - * Get the special use role of the mailbox - * - * This method reads the attributes sent by the server - * - * @return void - */ - protected function getSpecialRoleFromAttributes(): void { - /* - * @todo: support multiple attributes on same folder - * "any given server or message store may support - * any combination of the attributes" - * https://tools.ietf.org/html/rfc6154 - */ - $result = null; - if (is_array($this->attributes)) { - /* Convert attributes to lowercase, because gmail - * returns them as lowercase (eg. \trash and not \Trash) - */ - $specialUseAttributes = [ - strtolower(Horde_Imap_Client::SPECIALUSE_ALL), - strtolower(Horde_Imap_Client::SPECIALUSE_ARCHIVE), - strtolower(Horde_Imap_Client::SPECIALUSE_DRAFTS), - strtolower(Horde_Imap_Client::SPECIALUSE_FLAGGED), - strtolower(Horde_Imap_Client::SPECIALUSE_JUNK), - strtolower(Horde_Imap_Client::SPECIALUSE_SENT), - strtolower(Horde_Imap_Client::SPECIALUSE_TRASH) - ]; - - $attributes = array_map(function ($n) { - return strtolower($n); - }, $this->attributes); - - foreach ($specialUseAttributes as $attr) { - if (in_array($attr, $attributes)) { - $result = ltrim($attr, '\\'); - break; - } - } - } - - $this->specialRole = $result; - } - - /** - * Assign a special role to this mailbox based on its name - * - * @return void - */ - protected function guessSpecialRole(): void { - $specialFoldersDict = [ - 'inbox' => ['inbox'], - 'sent' => ['sent', 'sent items', 'sent messages', 'sent-mail', 'sentmail'], - 'drafts' => ['draft', 'drafts'], - 'archive' => ['archive', 'archives'], - 'trash' => ['deleted messages', 'trash'], - 'junk' => ['junk', 'spam', 'bulk mail'], - ]; - - $lowercaseExplode = explode($this->delimiter, $this->getFolderId(), 2); - $lowercaseId = strtolower(array_pop($lowercaseExplode)); - $result = null; - foreach ($specialFoldersDict as $specialRole => $specialNames) { - if (in_array($lowercaseId, $specialNames)) { - $result = $specialRole; - break; - } - } - - $this->specialRole = $result; - } - - /** * @param int $messageUid * @param string $attachmentId * |