Exemple #1
0
def login():
    form = LoginForm()
    print("novo metodo \o/")

    if form.is_submitted():
        print("Enviado!")

        if form.validate():
            print("Válido!")
            email = request.form['email']
            passwd = request.form['password']

            if email == '*****@*****.**' and passwd == 'admin':
                #session['user'] = User('admin', 'admin', 'normal_user')
                return redirect('/profile')
                return render_template(
                    'tests/todo.pug', message='Página interna da pourra toda!')
            else:
                return render_template('commons/login.pug',
                                       errors=[Error.defaultLoginError()],
                                       form=form)

        elif form.errors:
            print("Erros ao enviar D:")
            return render_template('commons/login.pug',
                                   errors=Error.reduceErrorDict(form.errors),
                                   form=form)

    print("Não enviado")
    return render_template('commons/login.pug', form=form)
    def get(self):
        logging.info("SummaryTask starting...")

        # init class and variables
        bucket_name = os.environ.get(
            'BUCKET_NAME', app_identity.get_default_gcs_bucket_name())
        bucket = '/' + bucket_name
        trendManager = TrendManager()
        dataModelConverter = DataModelConverter()
        csvUtils = CsvUtils()
        cloudStorageUtils = CloudStorageUtils()

        previous_day_timestamp = int(time.time()) - Globals._1_DAY
        q_futures = []
        for region in self.getRegions():
            try:
                date = TimezoneAwareDate(region, self.request.get('date'))
                trendsJson = self.getTrends(region, trendManager)
                self.saveToCloudStorage(dataModelConverter, csvUtils,
                                        cloudStorageUtils, trendsJson, region,
                                        bucket, date)
                self.saveToDatastore(q_futures, trendsJson, region, date)
                self.deleteFromDatastore(q_futures, region,
                                         previous_day_timestamp)

            except Exception, e:
                traceback.print_exc()
                Error(msg=str(e), timestamp=int(time.time())).put()
                SendEmail().send('Error on SummaryTask', str(e))
                self.retry()
Exemple #3
0
    def get(self):
        logging.info("Cron starting...")

        try:
            # authenticate to twitter
            client = twitter.Api(consumer_key=Globals.CONSUMER_KEY,
                                 consumer_secret=Globals.CONSUMER_SECRET,
                                 access_token_key=Globals.CLIENT_TOKEN,
                                 access_token_secret=Globals.CLIENT_SECRET,
                                 cache=None)

            q_futures = []
            for region in Globals.REGIONS:
                # make request
                response = client.GetTrendsWoeid(id=region)
                # get current timestamp in seconds
                timestamp = int(math.floor(time.time()))
                # put trends to db
                entityList = []
                for trend in response:
                    entityList.append(
                        Trend(name=trend.name,
                              woeid=region,
                              timestamp=timestamp,
                              time=10))
                q_futures.extend(ndb.put_multi_async(entityList))

            # wait all async put operations to finish.
            ndb.Future.wait_all(q_futures)
        except Exception, e:
            traceback.print_exc()
            Error(msg=str(e), timestamp=int(math.floor(time.time()))).put()
Exemple #4
0
class Base:
  def __init__(self, database):
    self.model = Error(database)

  def on_get(self, req, resp):
    if authorize_as(req.auth, 'player'):
      resp.body = dumps(self.model.all())
    else:
      raise HTTPUnauthorized('unauthorized', 'unauthorized')

  def on_post(self, req, resp):
    if authorize_as(req.auth, 'player'):
      body = loads(req.stream.read().decode('utf-8'))
      created = self.model.create(body)
      resp.status = HTTP_201
      resp.body = dumps({'id': created.inserted_id})
    else:
      raise HTTPUnauthorized('unauthorized', 'unauthorized')
def valid_age(line):
    """Everyone ordering must be 21 or older."""
    dob = line.o_DOB
    if not _is_21(dob):
        rule = 'Allowed age'
        new_row = Error(e_name=rule, order_key=line.primary_key)
        line.errors.append(new_row)
        return False
    return True
def valid_zip_sum(line):
    """The sum of digits in a zip code may not exceed 20
       ("90210": 9+0+2+1+0 = 12)."""
    zipcode = line.o_zip_code
    if not sum(int(x) for x in zipcode) <= 20:
        rule = 'Zipcode sum'
        new_row = Error(e_name=rule, order_key=line.primary_key)
        line.errors.append(new_row)
        return False
    return True
def valid_email(line):
    """ Email address must be valid."""
    email = line.o_email
    is_valid = validate_email(email)
    if not is_valid:
        rule = 'Email validation'
        new_row = Error(e_name=rule, order_key=line.primary_key)
        line.errors.append(new_row)
        return False
    return True
def valid_zipcode(line):
    """Valid zip codes must be 5 or 9 digits."""
    zipcode = line.o_zip_code
    invalid_zip = len(zipcode) not in [5, 9] and zipcode.isdigit()
    if invalid_zip:
        rule = 'Zipcode length'
        new_row = Error(e_name=rule, order_key=line.primary_key)
        line.errors.append(new_row)
        return False
    return True
def valid_state(line):  # line is an instance of Order class
    """No wine can ship to New Jersey, Connecticut, Pennsylvania, Massachusetts,
    Illinois, Idaho or Oregon."""
    state = line.o_state
    invalid_state = state in app.config.get('ALLOWED_STATES')
    if invalid_state:
        rule = 'Allowed states'
        new_row = Error(e_name=rule, order_key=line.primary_key)
        line.errors.append(new_row)
        return False
    return True
def valid_domain(line):
    """Customers from NY may not have .net email addresses."""
    email = line.o_email
    ln = len(email)
    invalid_domain = (email[ln - 4:] == '.net')
    invalid_state = (line.o_state == 'NY')
    if invalid_domain and invalid_state:
        rule = '.net domain'
        new_row = Error(e_name=rule, order_key=line.primary_key)
        line.errors.append(new_row)
        return False
    return True
Exemple #11
0
class Single:
  def __init__(self, database):
    self.model = Error(database)

  def on_get(self, req, resp, error_id):
    if authorize_as(req.auth, 'developer'):
      resource = self.model.find(error_id)
      if resource != None:
        resp.body = dumps(resource)
      else:
        resp.status = HTTP_404
    else:
      raise HTTPUnauthorized('unauthorized', 'unauthorized')

  def on_put(self, req, resp, error_id):
    if authorize_as(req.auth, 'developer'):
      body = loads(req.stream.read().decode('utf-8'))
      resource = self.model.update(body, error_id)
      if resource.modified_count == 1:
        resp.status = HTTP_204
    else:
      raise HTTPUnauthorized('unauthorized', 'unauthorized')
    def readDateInfo(self, retry=True):
        try:
            result = self.rpc.get_result()
            if result.status_code == 200:
                data = result.content
                jsonData = json.loads(data)
                return jsonData['formatted'].split()[0]
            else:
                if retry:
                    time.sleep(1)
                    return self.readDateInfo(False)
                else:
                    SendEmail().send('Error on TimezoneAwareDate',
                                     'Timezonedb api request error.')

        except Exception, e:
            traceback.print_exc()
            Error(msg=str(e), timestamp=int(time.time())).put()
            SendEmail().send('Error on TimezoneAwareDate', str(e))
    def get(self):
        logging.info("GetTrendsTask starting...")

        try:
            # create twitter client
            client = TwitterApi(
                consumer_key=Crenditals.CONSUMER_KEY,
                consumer_secret=Crenditals.CONSUMER_SECRET,
                access_token_key=Crenditals.CLIENT_TOKEN,
                access_token_secret=Crenditals.CLIENT_SECRET)

            q_futures = []
            for region in Globals.REGIONS:
                # request trends from twitter
                response = client.getTrendsByWoeid(woeid=region)
                # get current timestamp in seconds
                timestamp = int(time.time())
                # put trends to db
                entityList = []
                for trend in response:
                    entityList.append(
                        TrendWindow(
                            name=trend['name'],
                            woeid=region,
                            timestamp=timestamp,
                            time=10,
                            volume=trend['tweet_volume']))
                q_futures.extend(ndb.put_multi_async(entityList))
                self.updateCacheValues(region, entityList)

            # wait all async put operations to finish.
            ndb.Future.wait_all(q_futures)
        except ValueError as v_e:
            logging.error(v_e)
            # self.retry()
        except Exception, e:
            traceback.print_exc()
            Error(msg=str(e), timestamp=int(time.time())).put()
            SendEmail().send('Error on GetTrendsTask', str(e))
Exemple #14
0
 def __init__(self, database):
   self.model = Error(database)
Exemple #15
0
def get(p_min: int, p_max: int):
    p_max = 100 if p_max == 0 else p_max
    return NumberObject(minimum=p_min, maximum=p_max, type="integer", result=random.randint(p_min, p_max)).serialize() \
        if p_max >= p_min else (Error(code=400, description="Maximum should be higher than Minimum").serialize(), 400)