def post(self): """Notify subscribers that a service changed status.""" address = self.request.get('address') service = Service.get(self.request.get('service')) oldstatus = Status.get(self.request.get('oldstatus')) number = self.request.get('number') logging.info("Service: %s" % service) logging.info("Service name: %s" % service.name) msg = "%s changed state from %s to %s (%s)" % ( service.name, oldstatus.name, service.current_event().status.name, service.current_event().message) user = Subscription.get_by_email(address) if user.status == "available" or not number: status_code = xmpp.send_message(address, msg) chat_message_sent = (status_code == xmpp.NO_ERROR) logging.info("Notified: %s\nmessage: %s code: %d" % (address, msg, status_code)) elif user.status == "unavailable" and number: sms = smsgw(to = number, msg = msg) sms.send() logging.info("Offline SMS: %s\nmessage: %s" % (number, msg))
def txn(): user = Subscription.get_by_email(from_jid) if user: user.is_friend = is_friend return user.put() else: return Subscription(key_name=hashlib.sha1(from_jid).hexdigest(), address=from_jid, is_friend=is_friend).put()
def txn(): user = Subscription.get_by_email(from_jid) if user: if presence == "probe": return xmpp.send_presence(from_jid, presence_type=xmpp.PRESENCE_TYPE_PROBE) else: user.status = presence return user.put()
def get(self): if users.get_current_user() is None: self.redirect(users.create_login_url( self.request.uri)) return user_address = users.get_current_user().email() user = Subscription.get_by_email(user_address) if user.address in settings.XMPP_FILTER: if user.status == "available": xmpp.send_message(user_address, "test msg") self.response.out.write("A message sent.") elif user.status == "unavailable": self.response.out.write("The user is offline.") else: self.response.out.write("unkown status: %" % user.status) else: xmpp.send_invite(user_address) self.response.out.write("An invitation sent.")