示例#1
0
 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)
示例#2
0
    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))
示例#3
0
    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()
示例#4
0
    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()