Exemplo n.º 1
0
    def __load_data__(self):
        """Query the user data"""
        email = self.__user.email
        measurements = Measurement.query.filter_by(email=email).all()
        tSTART = DateUtil.date_to_datetime(config.DT_STRT)
        tSTOP = DateUtil.date_to_datetime(config.DT_STOP)

        measurements = [
            m for m in Measurement.query.filter_by(email=email).all()
            if m.timestamp >= tSTART and m.timestamp <= tSTOP
        ]
        weights = np.array([])
        dates = np.array([])
        if len(measurements):
            dates = np.array([m.timestamp for m in measurements])
            weights = np.array([m.weight for m in measurements])

            weights = np.array([x for _, x in sorted(zip(dates, weights))])
            dates = DateUtil.convert_datetimes(np.array(sorted(dates)),
                                               convert_to_date=True)

            days = np.array(
                [td.total_seconds() / 3600. / 24. for td in dates - dates[0]])

            self.__x_dates = dates
            self.__x_days = days
            self.__y_data = weights

            yerr = getattr(config, 'WT_ERROR', None)

            if yerr is not None:
                self.__y_err = np.ones_like(self.__y_data) * yerr
            else:
                self.do_errors = False
Exemplo n.º 2
0
def user(username):

    tSTART = DateUtil.date_to_datetime(cfg.DT_STRT)
    tSTOP = DateUtil.date_to_datetime(cfg.DT_STOP)

    measurements = [
        m for m in Measurement.query.filter_by(email=current_user.email).all()
        if m.timestamp >= tSTART and m.timestamp <= tSTOP
    ]

    ianauser = ana.AnaData(current_user)

    fname = plot_user("{}-plot.png".format(current_user.first_name.lower()),
                      ianauser)

    date = cfg.DT_STOP
    proj_weight, proj_weight_err = ianauser.get_projected_weight(date)
    return render_template('user.html',
                           measurements=measurements,
                           title="{}'s Page".format(current_user.first_name),
                           fname=fname,
                           user=ianauser,
                           date=date,
                           proj_weight=proj_weight,
                           proj_weight_err=proj_weight_err,
                           image=get_image())
Exemplo n.º 3
0
Arquivo: api.py Projeto: hustcc/TODO
def save(user_id):
    id = RequestUtil.get_parameter(request, 'id', None)
    title = RequestUtil.get_parameter(request, 'title', None)
    completed = RequestUtil.get_parameter(request, 'completed', None)
    if completed == 'true':
        completed = True
    else:
        completed = False
    if id:
        todo = Todo.query.filter_by(id=id).first()
    else:
        todo = Todo(user_id=user_id,
                    add_time=DateUtil.now_datetime())  # new todo

    if todo and todo.user_id == user_id:
        # update it.
        if title:
            todo.title = title
        if completed is not None:
            todo.completed = completed


#         print todo.dict()
        todo.save()
        return ResponseUtil.standard_response(1, todo.dict())
    else:
        return ResponseUtil.standard_response(0, 'save error.')
Exemplo n.º 4
0
def github_authorized(oauth_token):
    if oauth_token is None:
        flash("Authorization failed.")
        return redirect(url_for('index'))

    session['oauth_token'] = oauth_token

    me = github.get('user')
    user_id = me['login']

    # is user exist
    user = User.query.get(user_id)

    if user is None:
        # not exist, add
        user = User(id=user_id)

    # update github user information
    user.last_login = DateUtil.now_datetime()
    user.name = me.get('name', user_id)
    user.location = me.get('location', '')
    user.avatar = me.get('avatar_url', '')

    user.save()

    RequestUtil.login_user(user.dict())

    return redirect(url_for('index'))
Exemplo n.º 5
0
def loginApi(username, password):
    user = User.query.filter_by(username=username).first()
    if not user or not user.verify_password(password):
        return ResponseUtil.standard_response(0, '用户名不存在或密码错误')
    user.last_login = DateUtil.now_datetime()
    user.save()
    RequestUtil.login_user(user.dict())
    return ResponseUtil.standard_response(1, user.dict())
Exemplo n.º 6
0
def upload_file():
    file = request.files['image']
    if file and allowed_file(file.filename):
        filename = secure_filename(file.filename)
        unix_time = DateUtil.now_timestamp()
        ext = filename.rsplit('.', 1)[1]
        new_filename = str(unix_time) + '.' + ext
        file.save(os.path.join(app.config['UPLOAD_FOLDER'], new_filename))
        return ResponseUtil.standard_response(0, IMAGE_URL + new_filename)
    return ResponseUtil.standard_response(0, '请上传图片!')
Exemplo n.º 7
0
def index():
    days_left = np.abs((cfg.DT_STOP - DateUtil.now().date()).days)
    users = get_active_users()
    leaders = []
    if users:
        leaders.append(users[0])
        for user in users[1:]:
            if np.isclose(user.get_ydata()[-1], leaders[0].get_ydata()[-1]):
                leaders.append(user)
    return render_template('index.html',
                           title='Home',
                           image=get_image(),
                           days_left=days_left,
                           leaders=[l.get_user().first_name for l in leaders])
Exemplo n.º 8
0
def weigh_in():
    form = WeighInForm()
    #Shouldnt be possible
    if not current_user.is_authenticated:
        return redirect(url_for('index'))
    if form.validate_on_submit():
        email = current_user.email
        #Measurement wants a datetime, form only gives date
        date = form.timestamp.data
        #Form provides the date Easter Time Zone
        #Form doesnt provide a time
        #This is a work around
        #Get the time in the same TZ as the form
        time = DateUtil.now().time()
        #Now get the datetime object and convert it back to UTC
        dt = datetime.datetime.combine(date, time) - DateUtil.get_utc_offset()

        weight = form.weight.data

        measurement = Measurement(timestamp=dt, email=email, weight=weight)
        db.session.add(measurement)
        db.session.commit()
        return redirect(url_for('user', username=current_user.first_name))
    return render_template('weigh_in.html', title='Weigh In', form=form)
Exemplo n.º 9
0
def add_redis(host, port, psw, email):
    '''
    info: 添加一个redis信息到数据库
    '''
    add_time = DateUtil.now_datetime()
    md5 = StringUtil.md5(host + str(port))
    r = get_redis(md5)
    if r:
        #存在,update
        sql = "update redis_info set redis_host = ?, redis_port = ?, redis_pass = ?, email = ?, add_time = ? where md5 = ?"
        params = (host, port, psw, email, add_time, md5)
        return SqliteHandler().exec_update(sql, params)
    else:
        sql = "insert into redis_info (redis_host, redis_port, redis_pass, email, add_time, md5) values (?, ?, ?, ?, ?, ?)"
        params = (host, port, psw, email, add_time, md5)
        return SqliteHandler().exec_insert(sql, params)
Exemplo n.º 10
0
def add_redis(host, port, psw, email):
    '''
    info: 添加一个redis信息到数据库
    '''
    add_time = DateUtil.now_datetime()
    md5 = StringUtil.md5(host + str(port))
    r = get_redis(md5)
    if r:
        #存在,update
        sql = "update redis_info set redis_host = ?, redis_port = ?, redis_pass = ?, email = ?, add_time = ? where md5 = ?"
        params = (host, port, psw, email, add_time, md5)
        return SqliteHandler().exec_update(sql, params)
    else:
        sql = "insert into redis_info (redis_host, redis_port, redis_pass, email, add_time, md5) values (?, ?, ?, ?, ?, ?)"
        params = (host, port, psw, email, add_time, md5)
        return SqliteHandler().exec_insert(sql, params)
Exemplo n.º 11
0
def authorized(oauth_token):
    next_url = request.args.get('next') or url_for('index')
    if oauth_token is None:
        flash("Authorization failed.")
        return redirect(next_url)

    session['oauth_token'] = oauth_token

    me = github.get('user')
    user_id = me['login']

    user = User.query.filter_by(id=user_id).first()
    if user is None:
        user = User(id=user_id, uid=user_id, name=me['name'], source='github')

    user.last_login = DateUtil.now_datetime()
    user.save()

    RequestUtil.login(session, user_id)

    return redirect(next_url)
Exemplo n.º 12
0
def log_invalid(request, ext_text):
    log = '%s - - [%s] %s %s %s' % (request.remote_addr, DateUtil.now_datetime(), request.method, request.path, ext_text)
    append_log('record_invaild_log.log', log)
Exemplo n.º 13
0
def log_invalid(request, ext_text):
    log = '%s - - [%s] %s %s %s' % (request.remote_addr,
                                    DateUtil.now_datetime(), request.method,
                                    request.path, ext_text)
    append_log('record_invaild_log.log', log)