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
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())
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.')
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'))
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())
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, '请上传图片!')
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])
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)
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)
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)
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)