def sendGcmToUser(self, irssiuser_key, message): logging.debug("Sending gcm message to user %s" % irssiuser_key) if GCM.authkey is None: logging.error("No auth key for GCM!") return tokens = GcmToken.all() tokens.ancestor(irssiuser_key) tokens.filter("enabled =", True) tokensList = tokens.fetch(10) self.sendGcm(tokensList, message)
def get(self): logging.debug("WebController.get()") user = Login().getIrssiUser(self.request.params) tokens = [] irssi_script_version = 0 registration_date = 'Aeons ago' last_notification_time = 'Never' notification_count = 0 if user is not None: tokens = GcmToken.all() tokens.ancestor(user.key()) tokens = tokens.fetch(10) for token in tokens: if token.registration_date is not None: token.registration_date_string = token.registration_date else: token.registration_date_string = 'Yesterday?' irssi_script_version = user.irssi_script_version if irssi_script_version == None: irssi_script_version = 0 if user.registration_date is not None: registration_date = user.registration_date if user.last_notification_time is not None: last_notification_time = user.last_notification_time if user.notification_count is not None: notification_count = user.notification_count template_values = { 'user': user, 'tokens': tokens, 'token_count': len(tokens), 'logged_in': user is not None, 'login_url': users.create_login_url("#profile").replace("&", "&"), 'logout_url': users.create_logout_url("").replace("&", "&"), 'irssi_working': last_notification_time != 'Never', 'irssi_latest': irssi_script_version >= 13, 'registration_date': registration_date, 'last_notification_time': last_notification_time, 'notification_count': notification_count } template = jinja_environment.get_template('html/index.html') self.response.out.write(template.render(template_values))
def handle(self, user): logging.info("Wiping everything for user %s" % user.user_id) query = GcmToken.all() query.ancestor(user) db.delete(query) query = Message.all() query.ancestor(user) db.delete(query) query = AuthKey.all() query.ancestor(user) db.delete(query) user.delete()
def handle(self, user, array): logging.info("SettingsHandler.handle()") newToken = array["RegistrationId"] tokens = GcmToken.all() tokens.ancestor(user.key()) tokens.filter("gcm_token =", newToken) t = tokens.get() if not t: logging.debug("Adding new token: " + newToken) tokenToAdd = GcmToken(parent = user.key()) tokenToAdd.gcm_token = newToken tokenToAdd.enabled = bool(int(array["Enabled"])) tokenToAdd.name = array["Name"] tokenToAdd.registration_date = int(time.time()) tokenToAdd.put() else: logging.debug("Updating token: " + newToken) t.enabled = bool(int(array["Enabled"])) t.name = array["Name"] t.put()