diff options
author | Christoph Wurst <christoph@winzerhof-wurst.at> | 2020-04-29 10:16:55 +0300 |
---|---|---|
committer | Christoph Wurst <christoph@winzerhof-wurst.at> | 2020-05-13 18:36:22 +0300 |
commit | 39489d14493d7fb8832b5ff1dccdd74aeaeb69af (patch) | |
tree | 8781ed6854e46f7cb76464e8d8d5e8063e2e4cd4 /lib/Listener | |
parent | 238f030b264b7b02a64f65582114c8ee7a449c91 (diff) |
Add a ML-based classifier for important messages
Signed-off-by: Christoph Wurst <christoph@winzerhof-wurst.at>
Diffstat (limited to 'lib/Listener')
-rw-r--r-- | lib/Listener/NewMessageClassificationListener.php | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/lib/Listener/NewMessageClassificationListener.php b/lib/Listener/NewMessageClassificationListener.php index a78e0298c..85c10aaa8 100644 --- a/lib/Listener/NewMessageClassificationListener.php +++ b/lib/Listener/NewMessageClassificationListener.php @@ -27,7 +27,7 @@ namespace OCA\Mail\Listener; use Horde_Imap_Client; use OCA\Mail\Events\NewMessagesSynchronized; -use OCA\Mail\Service\Classification\MessageClassifier; +use OCA\Mail\Service\Classification\ImportanceClassifier; use OCP\EventDispatcher\Event; use OCP\EventDispatcher\IEventListener; @@ -40,10 +40,10 @@ class NewMessageClassificationListener implements IEventListener { Horde_Imap_Client::SPECIALUSE_TRASH, ]; - /** @var MessageClassifier */ + /** @var ImportanceClassifier */ private $classifier; - public function __construct(MessageClassifier $classifier) { + public function __construct(ImportanceClassifier $classifier) { $this->classifier = $classifier; } @@ -59,8 +59,14 @@ class NewMessageClassificationListener implements IEventListener { } } + $predictions = $this->classifier->classifyImportance( + $event->getAccount(), + $event->getMailbox(), + $event->getMessages() + ); + foreach ($event->getMessages() as $message) { - if ($this->classifier->isImportant($event->getAccount(), $event->getMailbox(), $message)) { + if ($predictions[$message->getUid()] ?? false) { $message->setFlagImportant(true); } } |