send messages returned by ICapMessagesReply.post_reply()

This commit is contained in:
Romain Bignon 2010-05-03 19:32:18 +02:00
commit f776214507
2 changed files with 5 additions and 15 deletions

View file

@ -98,7 +98,8 @@ class Monboob(ConsoleApplication):
return 1 return 1
thread_id, msg_id = id.rsplit('.', 1) thread_id, msg_id = id.rsplit('.', 1)
backend.post_reply(thread_id, msg_id, title, content) for m in backend.post_reply(thread_id, msg_id, title, content):
self.send_email(backend, m)
@ConsoleApplication.command("run daemon") @ConsoleApplication.command("run daemon")
def command_run(self): def command_run(self):

View file

@ -46,17 +46,12 @@ class AuMBackend(BaseBackend, ICapMessages, ICapMessagesReply, ICapDating):
# Private # Private
_browser = None _browser = None
_profiles_walker = None _profiles_walker = None
_queue_messages = None
def __getattr__(self, name): def __getattr__(self, name):
if name == 'browser': if name == 'browser':
if not self._browser: if not self._browser:
self._browser = AdopteUnMec(self.config['username'], self.config['password']) self._browser = AdopteUnMec(self.config['username'], self.config['password'])
return self._browser return self._browser
if name == 'queue_messages':
if self._queue_messages is None:
self._queue_messages = []
return self._queue_messages
raise AttributeError, name raise AttributeError, name
def iter_messages(self, thread=None): def iter_messages(self, thread=None):
@ -64,11 +59,6 @@ class AuMBackend(BaseBackend, ICapMessages, ICapMessagesReply, ICapDating):
yield message yield message
def iter_new_messages(self, thread=None): def iter_new_messages(self, thread=None):
for message in self.queue_messages:
if not thread or message.get_thread_id() == thread:
yield message
self.queue_messages = []
for message in self._iter_messages(thread, True): for message in self._iter_messages(thread, True):
yield message yield message
@ -101,26 +91,25 @@ class AuMBackend(BaseBackend, ICapMessages, ICapMessagesReply, ICapDating):
def post_reply(self, thread_id, reply_id, title, message): def post_reply(self, thread_id, reply_id, title, message):
# Enqueue current awaiting messages # Enqueue current awaiting messages
for mail in self._iter_messages(thread_id, True): for mail in self._iter_messages(thread_id, True):
self.queue_messages.append(mail) yield mail
with self.browser: with self.browser:
try: try:
self.browser.post(thread_id, message) self.browser.post(thread_id, message)
except AdopteCantPostMail, e: except AdopteCantPostMail, e:
mail = Message(thread_id, yield Message(thread_id,
reply_id, reply_id,
'Unable to send mail to %s' % thread_id, 'Unable to send mail to %s' % thread_id,
'AuM', 'AuM',
datetime.now(), datetime.now(),
content=u'Unable to send message to %s:\n\t%s\n\n---\n%s' (thread_id, unicode(e), message), content=u'Unable to send message to %s:\n\t%s\n\n---\n%s' (thread_id, unicode(e), message),
is_html=False) is_html=False)
self.queue_messages.append(mail)
else: else:
# Enqueue my messages and every next messages. # Enqueue my messages and every next messages.
mails = self.browser.get_thread_mails(thread_id) mails = self.browser.get_thread_mails(thread_id)
my_name = self.browser.get_my_name() my_name = self.browser.get_my_name()
for mail in mails: for mail in mails:
self.queue_messages.append(mail) yield mail
if mail.get_from() == my_name: if mail.get_from() == my_name:
break break