Package emma :: Package module :: Package reminder
[hide private]
[frames] | no frames]

Source Code for Package emma.module.reminder

 1  """ 
 2  program emails to be sent as reminder 
 3   
 4  @copyright: (c) 2011 hackmeeting U{http://sindominio.net/hackmeeting} 
 5  @author: Ruben Pollan 
 6  @organization: hackmeeting U{http://sindominio.net/hackmeeting} 
 7  @contact: meskio@sindominio.net 
 8  @license: 
 9    This program is free software; you can redistribute it and/or 
10    modify it under the terms of the Do What The Fuck You Want To 
11    Public License, Version 2, as published by Sam Hocevar. See 
12    U{http://sam.zoy.org/projects/COPYING.WTFPL} for more details. 
13  """ 
14   
15  from emma.events import Event, subscribe 
16  from emma.sched import at 
17  from emma.module import Module 
18  from emma.interface.message import Message 
19   
20   
21 -class reminder(Module):
22 - def run(self):
23 help_event = Event(event="help") 24 subscribe(help_event, self.help_handler) 25 cmd_event = Event(event="command") 26 subscribe(cmd_event, self.cmd_handler)
27
28 - def help_handler(self, event, data):
29 if not data: 30 if event.interface in ("irc", "xmpp"): 31 return _(" * remind 23/11/2011 08:17;" \ 32 "hackmeeting@listas.sindominio.net;subject;text\n" \ 33 " Schelude a reminder at certain date\n") 34 elif event.interface == "email": 35 return _(" * _.remind 23/11/2011 08:17;" \ 36 "hackmeeting@listas.sindominio.net;subject;text._\n" \ 37 " Schelude a reminder at certan date\n") 38 elif data in ('remind', _('remind')): 39 return _("You can program reminders to be send by %s at a " \ 40 "given date.\n It takes three or four parameters " \ 41 "separated by ';': date;email;subject;body\n" \ 42 "The subject is optional") % (self.conf['interface']) 43 return ""
44
45 - def cmd_handler(self, event, data):
46 cmd, args = data[0] 47 if cmd not in ('remind', _('remind')): 48 return 49 50 s = args.split(';') 51 if len(s) == 4: 52 date, to, subject, body = s 53 elif len(s) == 3: 54 date, to, body = s 55 subject = _("reminder") 56 else: 57 self.log(_("args not well formed")) 58 return 59 60 msg = Message(body, to) 61 msg['Subject'] = subject 62 send_event = Event('send', self.conf['interface'], 63 self.conf['identifier']) 64 at(send_event, msg, date)
65