def post(self): out = self.response.write try: param = self.request.get('json') json = simplejson.loads(param) user = json['user'] sender = Listener.all().filter("mail", json['from']).get() msg = urllib.unquote(json['message']) if '@' in user: taskqueue.add(url='/notify', params={'from': sender.mail, 'user': user, 'message': msg}, queue_name='notify') else: users = Listener.all().filter("groups", user.upper()).fetch(limit=None) for u in users: if sender.mute == 0 and u.mail != sender.mail: taskqueue.add(url='/notify', params={'from': sender.mail, 'user': u.talk, 'message': msg}, queue_name='notify') out('{"success":true}') except Exception, e: out('{"success": false, "msg":"' + str(e) + '"}')
def buscar_grupos(): users = Listener.all().fetch(limit=None) grupos = Set([]) for u in users: for g in u.groups: grupos.add(g) return grupos
def post(self): param = self.request.get('json', '{"mail":"None"}') json = simplejson.loads(param) user = Listener.all().filter("mail", json['mail']).get() if not user is None: user.groups = user.groups + json['grupos'] user.put()
def parse_message(self, fields, sender): if '@' in fields[0]: usu = Listener.all().filter("mail", fields[0]).fetch(1)[0] if len(fields) == 3: self.notify(sender, usu, fields[1], fields[2]) else: self.notify(sender, usu, 'talk', fields[1]) else: users = Listener.all().filter("groups", fields[0].upper()).fetch(limit=None) for user in users: if user.talk != sender: if len(fields) == 3: self.notify(sender, user, fields[1], '[' + fields[0].upper() + '] ' + fields[2]) else: self.notify(sender, user, 'talk', '[' + fields[0].upper() + ']' + fields[1])
def get(self): out = self.response.write users = Listener.all().fetch(limit=None) grupos = Set([]) for u in users: for g in u.groups: grupos.add(g) resp = {'mail': '*****@*****.**'} resp['grupos'] = list(grupos) out(json.encode(resp))
def get(self): usuario = users.get_current_user().email() user = Listener.all().filter("mail", usuario).get() if user is None: user = Listener(mail=usuario, talk=usuario, groups=[], mute=0) user.put() taskqueue.add(url='/invite', params={'mail': usuario}, queue_name='invite') todos = list(buscar_grupos().difference(user.groups)) self.render('index.html', usuario=usuario, user_groups=user.groups, all_groups=todos)
def receive(self, mail_message): log.warn("Receiving mail " + mail_message.sender) sender = '' if '<' in mail_message.sender: init = mail_message.sender.index('<') end = mail_message.sender.index('>') sender = mail_message.sender[init + 1:end] else: sender = mail_message.sender usu = Listener.all().filter("mail", sender).fetch(1)[0] if not usu is None: acao = mail_message.subject if acao == 'enable': usu.mute = 1 elif acao == 'disable': usu.mute = 0 usu.put()
def post(self): out = self.response.write try: param = self.request.get('json') json = simplejson.loads(param) for user in json['notify']: exists = Listener.all().filter("mail", user['mail']).get() if exists is None: listener = Listener(mail=user['mail'], talk=user.get('talk', user['mail']), groups=user['groups'], mute=0) listener.put() taskqueue.add(url='/invite', params={'mail': user['mail']}, queue_name='invite') except Exception, e: out('Erro no gae ' + str(e))
def get(self): users = Listener.all().fetch(limit=None) self.render('usuarios.html', usuarios=users)