示例#1
0
 def get_token(access_token=None, refresh_token=None):
     if access_token:
         logger.debug('get token - access_token: {}\n'.format(access_token))
         return next(Token.query(access_token=access_token))
     if refresh_token:
         return next(Token.query(refresh_token=refresh_token))
     return None
示例#2
0
    def get(self):
        apid = self.request.get("apid")
        email = self.request.get("email",'').lower()
        version = int(self.request.get("version", "0"))
        q = Token.query(Token.email == email)
        token = q.get()
        if token:
            token.apid = apid
            token.email = email
            token.version = version
        else:
            q = Token.query(Token.apid == apid)
            token = q.get()
            if token:
                token.apid = apid
                token.email = email
                token.version=version
            else:token = Token(apid=apid, email=email, version=version)
        token.put()

        cb = self.request.get('callback')
        self.response.headers['Content-Type'] = 'application/json'
        if cb:
            self.response.out.write(cb+'(' + json.dumps({}) +');')
        else:
            self.response.out.write(json.dumps({}))
示例#3
0
def load_token(access_token=None, refresh_token=None):
    if access_token:
        current_access_token = Token.query(
            Token.access_token == access_token).fetch(1)
        if current_access_token:
            return current_access_token[0]
    elif refresh_token:
        return Token.query(Token.refresh_token == refresh_token).fetch(1)[0]
示例#4
0
def push_to_all(text, count):

    ios_tokens = Token.query(Token.os!='android').fetch()
    and_tokens = Token.query(Token.os=='android').fetch()

    for token in ios_tokens:
        push_to_apns(token.token, text, count)

    push_to_gcm(list(token.token for token in and_tokens), text, count)
示例#5
0
    def get(self):
        user = users.get_current_user()
        if user:
            q = Token.query(Token.email == user.email().lower())
            token = q.get()
            if token and token.version:
                template = jinja_environment.get_template('templates/index_with_contact.html')
            else:
                template = jinja_environment.get_template('templates/index.html')
            status = 100
            if token:status = 200
            chat_token = self.request.cookies.get('token2', None)
            if not chat_token:
                chat_token = channel.create_channel(user.email().lower(), 1440)
                expires = time.time() + 86400
                self.response.headers.add_header(
                    'Set-Cookie', 
                    'token2=%s; expires=%s' \
                      % (chat_token, time.strftime("%a, %d-%b-%Y %T GMT", time.gmtime(expires))))

            self.response.out.write(template.render({'status':status, 
                'logout':users.create_logout_url("/"), 'token':chat_token}))
        else:
            template = jinja_environment.get_template('templates/landing.html')
            self.response.out.write(template.render({"path": users.create_login_url("/")}))
示例#6
0
    def post(self):
        isajax = self.request.get('isajax')
        phone = self.request.get('phone')
        msg = self.request.get('msg')
        contact_name = self.request.get('contact_name')

        user = users.get_current_user()
        email = user.email().lower()
        q = Token.query(Token.email == email)
        token = q.get()
        status = 100
        hist=''
        logging.debug(email + ' ' + phone + ' ' + msg + ' ' + contact_name)
        if token:
            status = 101
            if len(phone) and len(msg):
                status = 200
                hist = History(email=email, msg=msg, phone=phone, contact_name = contact_name)
                hist.put()
                airship.push({
                    "android": {
                         "extra": {"msgid": str(hist.key.id()), "phone": phone, "msg":msg}
                    }
                }, apids=[token.apid])
                id = hist.key.id()
                hist = hist.to_dict()
                hist['created']=hist['created'].isoformat();
                hist['id'] = id
                hist['type'] = 'sms'        
        self.response.out.write(json.dumps({'status':status, 'msg':hist}))
示例#7
0
    def regist_token(self, request):
        if Token.query(Token.token==request.token).fetch():
          return RegistTokenResult(result="DUP")

        token = Token(token=request.token, os='ios');
        token.put();

        push_to(token, u"환영합니다! 벙커원 교회 주보 알림목록에 등록되었습니다!", 0)

        return RegistTokenResult(result="OK")
示例#8
0
    def regist_token(self, request):
        if Token.query(Token.token == request.token).fetch():
            return RegistTokenResult(result="DUP")

        token = Token(token=request.token, os='ios')
        token.put()

        push_to(token, u"환영합니다! 벙커원 교회 주보 알림목록에 등록되었습니다!", 0)

        return RegistTokenResult(result="OK")
示例#9
0
    def regist_token(self, request):
        if Token.query(Token.token==request.token).fetch():
          return RegistTokenResult(result="DUP")

        token = urllib.unquote(request.token)
        token = Token(token=request.token, os=request.os, width=request.width, height=request.height);
        token.put();

        push_to(token, u"환영합니다! 벙커원 교회 주보 알림목록에 등록되었습니다!", 0)

        return RegistTokenResult(result="OK")
示例#10
0
 def post(self):
     user = users.get_current_user()
     q = Token.query(Token.email == user.email())
     token = q.get()
     
     airship.push({
         "android": {
              "extra": {"phone": self.request.get('phone'), "msg":self.request.get('msg')}
         }
     }, apids=[token.apid])
     template = jinja_environment.get_template('templates/index.html')
     self.response.out.write(template.render({}))
示例#11
0
    def regist_token(self, request):
        if Token.query(Token.token == request.token).fetch():
            return RegistTokenResult(result="DUP")

        token = urllib.unquote(request.token)
        token = Token(token=request.token,
                      os=request.os,
                      width=request.width,
                      height=request.height)
        token.put()

        push_to(token, u"환영합니다! 벙커원 교회 주보 알림목록에 등록되었습니다!", 0)

        return RegistTokenResult(result="OK")
示例#12
0
def save_token(token, request, *args, **kwargs):
    current_token = Token.query(Token.client_id == request.client.client_id,
                                Token.user == request.user).fetch(1)
    if current_token:
        logging.info('current token {}'.format(current_token))
        current_token[0].key.delete()
    expires_in = token.pop('expires_in')
    expires = datetime.utcnow() + timedelta(seconds=expires_in)
    token = Token(
        access_token=token['access_token'],
        refresh_token=token['refresh_token'],
        token_type=token['token_type'],
        scopes=str(token['scope']).split(),
        expires=expires,
        client_id=request.client.client_id,
        user=request.user,
    )
    token.put()
    return token
示例#13
0
	def get(self, url_token=None):

		try:
			if url_token is not None:

				token = Token.query(Token.urlsafe_key==url_token).get()
				if token is None:
					self.error(404)
					return

				#Trouve, c'est OK
				self.response.set_status(200)

		except (db.BadValueError, ValueError, KeyError):
			logging.error('%s', traceback.format_exc())
			self.error(400)

		except Exception:
			logging.error('%s', traceback.format_exc())
			self.error(500)
示例#14
0
    def get(self, url_token=None):

        try:
            if url_token is not None:

                token = Token.query(Token.urlsafe_key == url_token).get()
                if token is None:
                    self.error(404)
                    return

                #Trouve, c'est OK
                self.response.set_status(200)

        except (db.BadValueError, ValueError, KeyError):
            logging.error('%s', traceback.format_exc())
            self.error(400)

        except Exception:
            logging.error('%s', traceback.format_exc())
            self.error(500)
示例#15
0
    def get(self, username=None, password=None):

        try:
            if (username is not None) and (password is not None):

                # Verification du user.
                user = User.query(
                    ndb.AND(User.str_username == username,
                            User.str_password == password)).get()

                if user is None:
                    self.error(404)
                    return

                # Voir s'il y a deja un token, si oui, on le recréé.
                token = Token.query(Token.key_user == user.key).get()

                if token is not None:
                    token.key.delete()

                token = Token(id=GetTimeInt(),
                              key_user=user.key,
                              b_valide=True)

                token.urlsafe_key = token.key.urlsafe()

                token.put()

                self.response.headers['Content-Type'] = ('text/plain')
                self.response.write(token.key.urlsafe())
                self.response.set_status(200)

        except (db.BadValueError, ValueError, KeyError):
            logging.error('%s', traceback.format_exc())
            self.error(400)

        except Exception:
            logging.error('%s', traceback.format_exc())
            self.error(500)
示例#16
0
	def get(self, username=None, password=None):

		try:
			if (username is not None) and (password is not None):

				# Verification du user.
				user = User.query(ndb.AND(User.str_username==username,User.str_password==password)).get()

				if user is None:
					self.error(404)
					return

				# Voir s'il y a deja un token, si oui, on le recréé.
				token = Token.query(Token.key_user==user.key).get()

				if token is not None:
					token.key.delete()

				token = Token(id=GetTimeInt(),
					key_user=user.key,
					b_valide=True)

				token.urlsafe_key = token.key.urlsafe()

				token.put()

				self.response.headers['Content-Type'] = ('text/plain')
				self.response.write(token.key.urlsafe())
				self.response.set_status(200)

		except (db.BadValueError, ValueError, KeyError):
			logging.error('%s', traceback.format_exc())
			self.error(400)

		except Exception:
			logging.error('%s', traceback.format_exc())
			self.error(500)
示例#17
0
    def get(self):

        and_tokens = Token.query(Token.os=='android').fetch()
        push_to_gcm(list(token.token for token in and_tokens), 'push test', 1)