Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/nextcloud/mail.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph Wurst <christoph@winzerhof-wurst.at>2020-04-29 10:16:55 +0300
committerChristoph Wurst <christoph@winzerhof-wurst.at>2020-05-13 18:36:22 +0300
commit39489d14493d7fb8832b5ff1dccdd74aeaeb69af (patch)
tree8781ed6854e46f7cb76464e8d8d5e8063e2e4cd4 /lib/Listener
parent238f030b264b7b02a64f65582114c8ee7a449c91 (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.php14
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);
}
}