a issue parser of email
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
import os
|
||||
import logging
|
||||
import json
|
||||
import string
|
||||
from knowledge import *
|
||||
from aios_kernel.storage import AIStorage
|
||||
from .mail import Mail, MailStorage
|
||||
|
||||
|
||||
class LocalEmail:
|
||||
def __init__(self, env: KnowledgePipelineEnvironment, config:dict):
|
||||
self.config = config
|
||||
self.env = env
|
||||
path = string.Template(config["path"]).substitute(myai_dir=AIStorage.get_instance().get_myai_dir())
|
||||
self.mail_storage = MailStorage(path, config.get("watch"))
|
||||
|
||||
async def next(self):
|
||||
while True:
|
||||
parsed = None
|
||||
journals = self.env.journal.latest_journals(1)
|
||||
if len(journals) == 1:
|
||||
latest_journal = journals[0]
|
||||
if latest_journal.is_finish():
|
||||
yield None
|
||||
continue
|
||||
parsed = str(latest_journal.get_object_id())
|
||||
|
||||
mail_id = self.mail_storage.next_mail_id(parsed)
|
||||
if mail_id is None:
|
||||
yield (None, None)
|
||||
else:
|
||||
yield (mail_id, str(mail_id))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user