def load_users(): """Load users from u.user into database.""" print("Users") # Delete all rows in table, so if we need to run this a second time, # we won't be trying to add duplicate users Log.query.delete() Dog.query.delete() User.query.delete() user1 = User( fname="Vaishali", lname="Cooner", email="*****@*****.**", password= "******", apt=1) user2 = User(fname="Heather", lname="Mahan", email="*****@*****.**", password=123, apt=1) # We need to add to the session or it won't ever be stored db.session.add_all([user1, user2]) print("dogs") dog1 = Dog(dogname="Fluffy", age=3, breed="Havanese", gender="female", size="small", pic="1abc.jpg", user=user1) dog2 = Dog(dogname="Boris", age=2, breed="Minpin", gender="male", size="small", pic="2def.jpg", user=user2) # We need to add to the session or it won't ever be smovies (movie_id, title, released_at, imdb_url) VALUES (%(movie_id)s, %(title)s, %(released_at)s, %(imdb_url)s)'] [parameters: ({'movie_id': '1', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '2', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '3', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '4', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '5', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '6', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '7', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '8', 'title': None, 'released_at': datetime.datetime(1995, 1, 1, 0, 0), 'imdb_url': None} ... displaying 10 of 1681 total bound parameter sets ... {'movie_id': '1681', 'title': None, 'released_at': datetime.datetime(1994, 1, 1, 0, 0), 'imdb_url': None}, {'movie_id': '1682tored db.session.add_all([dog1, dog2]) print("logs") log1 = Log(checkin='2018-10-09 2:40:10 PM', checkout='2018-10-09 2:30:10 PM', dog=dog1) log2 = Log(checkin='2018-10-09 2:42:20 PM', checkout='2018-10-09 2:58:10 PM', dog=dog2) # We need to add to the session or it won't ever be stored db.session.add_all([log1, log2]) # Once we're done, we should commit our work db.session.commit()
def new_message(lti=lti): #def new_message(): content = request.get_json(silent=True) logging.info(content) studentId = cgi.escape(content['studentId']) #From Field courseId = cgi.escape(content['courseId']) text = cgi.escape(content['text']) student_key = ndb.Key('Student', courseId + studentId) student = student_key.get() message = Log(type='text', courseId=courseId, student=studentId) message.content = text message.put() fullName = student.fullName if student else 'Unknown student' avatarUrl = student.avatarUrl if student else '' newMessage(courseId, { 'student': studentId, #Broadcast message from: 'courseId': courseId, 'id': message.key.id(), 'type': 'text', 'content': text, 'info': student.info(), 'date': '' }) return "Message received"
def trigger_loaded(courseId, studentId): loaded = Log(type='loaded', courseId=courseId, student=studentId) loaded.put() loadedUpdated(courseId, { 'student': studentId })
def test_normal_login(self): """测试正常登陆,接口地址:/api/auth_center/v3/login""" l1 = self.l l2 = read_yaml()[1]['url'] url = l1 + l2 # 拼接url username = read_yaml()[1]['account'] pwd = read_yaml()[1]['password'] result = logging(url, username, pwd) if result['code'] == 0: # 正常登陆状态 token = result['data']['token'] fixconfig("token", token) # 修改token的值为本次登录的token member_id = result['data']['member_id'] fixconfig("member_id", str(member_id)) # 修改member_id的值为本次登录的,需要改一下字符類型 company_id = result['data']['company_id'] fixconfig("company_id", str(company_id)) # 修改company_id的值为本次登录的 elif result['code'] == 1005102105: # 此账号未注册,请检查输入的账号是否正确 print(result['msg']) elif result['code'] == 1005001006: # 账号未注册或密码错误 print(result['msg']) else: print(coloring()['YELLOW'] + '登陆报错……') # 打印日志到logs log = Log() log.debug('正常登录接口返回信息:%s' % result)
def trigger_help(lti=lti): #def trigger_help(): content = request.get_json(silent=True) logging.info(content) studentId = cgi.escape(content['studentId']) studentName = cgi.escape(content['studentName']) courseId = cgi.escape(content['courseId']) student = ndb.Key('Student', courseId + studentId).get() help = Log(type='help', courseId=courseId, student=studentId) help.put() fullName = student.fullName if student else 'Unknown student' avatarUrl = student.avatarUrl if student else '' feedUpdated(courseId, { 'student': studentId, 'fullName': fullName, 'avatarUrl': avatarUrl }) newMessage(courseId, { 'student': studentId, 'courseId': courseId, 'id': help.key.id(), 'type': 'help', 'content': '', 'info': student.info(), 'date': DateTimeJSONEncoder().encode(help.date).replace('"', '') }) return "Help received"
def _logToDb(module, message, data=None, priority='Debug'): dbsess = Session() log = Log(priority=priority, message=message, module=module) log.add_data(data) dbsess.add(log) dbsess.commit() dbsess.close()
def trigger_help(): studentId = cgi.escape(request.form['studentId']) help = Log(type=LogType.HELP_NEEDED, student=studentId) help.put() p.trigger('private-status', 'help', {'studentId': studentId}) return "Help received"
def trigger_register(): studentId = cgi.escape(request.form['studentId']) register = Log(type=LogType.REGISTERED, student=studentId) register.put() p.trigger('private-status', 'registered', {'studentId': studentId}) return "Registration received"
def trigger_reward(): studentId = cgi.escape(request.form['studentId']) reward = Log(type=LogType.REWARD, student=studentId) reward.put() p.trigger('private-status', 'client-reward', {'studentId': studentId}) return "Reward received"
def get_starter_info(): studentId = cgi.escape(request.form['studentId']) rewards = Log.get_by_type(studentId, LogType.REWARD) weeklyrewards = Log.get_by_type_weekly(studentId, LogType.REWARD) info = {} info["totaltickets"] = rewards.count() info["weeklytickets"] = weeklyrewards.count() return json.dumps(info)
def trigger_ping(): studentId = cgi.escape(request.form['studentId']) pinged = Log(type=LogType.PINGED, student=studentId) pinged.put() p.trigger('private-status', 'client-ping', {'studentId': studentId}) return "Ping received" #endregion
def trigger_register(lti=lti): content = request.get_json(silent=True) studentId = cgi.escape(content['studentId']) courseId = cgi.escape(content['courseId']) register = Log(type='registered', courseId=courseId, student=studentId) register.put() registerUpdated(courseId, { 'student': studentId }) return "Registration received"
def trigger_reward(): studentId = cgi.escape(request.form['studentId']) student = getStudent(studentId) reward = Log(type='reward', student=studentId) reward.put() p.trigger('private-status', 'client-reward', { 'studentId': studentId, 'student': student }) return "Reward received"
def test_contact(self): """测试联系人列表,接口地址:/api/scrm/contacts""" l2 = read_yaml()[2]['url'] url = self.l + l2 token = readconfig('token') result = contact_required(_url=url, _token=token) self.assertEqual(result['code'], 0) # 打印日志到logs log = Log() log.debug('联系人列表返回信息:%s' % result) fixconfig(key='contact_total', value=str(result['page_info']['total'])) return result
def contact_required(_url, _token): data = { '_gouuse_token': _token, 'page_size': '50', } r = requests.post(url=_url, data=data) result = r.json() # 打印日志到logs log = Log() log.debug('联系人筛选返回信息:%s' % result) return result
def test_custmoser(self): # 获取客户列表 """获取客户列表,接口地址:/api/scrm/contacts""" l2 = read_yaml()[5]['url'] url = self.l + l2 token = readconfig('token') result = customer_required(_url=url, _token=token) self.assertEqual(result['code'], '0') # 打印日志到logs log = Log() log.debug('客户列表返回信息:%s' % result) fixconfig(key='customer_total', value=str(result['data']['page_info']['total'])) return result
def customer_required(_url, _token): data = { 'page': 1, 'page_size': '15', 'source': 1 } header = {'Authorization': _token} r = requests.post(url=_url, headers=header, data=data) result = r.json() # 打印日志到logs log = Log() log.debug('联系人筛选返回信息:%s' % result) return result
def trigger_ping(): studentId = cgi.escape(request.form['studentId']) student = getStudent(studentId) pinged = Log(type='ping', student=studentId) pinged.put() p.trigger('private-status', 'client-ping', { 'studentId': studentId, 'student': student }) return "Ping received" #endregion
def fetch_logs(level=None, limit=100, offset=0): from model import Log query = Log.all() if level is not None: query.filter("l_level =", level) query.order("-logged_time") return query.fetch(limit=limit, offset=offset, paging=True)
def post(self): """ Logins user according to JSON object data. Headers: Content-Type: application/json JSON Request format: { "email": email, "senha": senha } """ data = sign_in_parser.parse_args() # Email exists/Verify password hash if not email_exists(data['email']) or \ not User.verify_hash(data['senha'], get_user_hash(data['email'])): return {'mensagem': 'Usuário e/ou senha inválidos.'}, 401 # Generate token user = get_user_by_email(data['email']) token = Log.generate_token( { 'sub': user.uuid, 'name': user.name, 'exp': datetime.datetime.utcnow() + datetime.timedelta(minutes=30) }, app.config['SECRET_KEY']) log = Log(user, token) # Registering login session.add(log) session.commit() # User logged in successfully return { 'id': user.uuid, 'email': user.email, 'data_criacao': user.creation_date.isoformat(), 'data_atualizacao': user.update_date.isoformat(), 'ultimo_login': user_last_login(user.email).date.isoformat(), 'token': token.decode('UTF-8') }, 201
def create_log(log_date, student_id, minutes_practiced, pieces_practiced, practice_notes): """Creates a new practice log record""" log = Log(log_date=log_date, student_id=student_id, minutes_practiced=minutes_practiced, pieces_practiced=pieces_practiced, practice_notes=practice_notes) db.session.add(log) db.session.commit() return log
def get_feed(lti=lti): #def get_feed(): content = request.get_json(silent=True) courseId = cgi.escape(content['courseId']) feeds = Log.get_by_course(courseId) jsonfeeds = [] for feed in feeds: jsonfeed = entity_to_dict(feed, ['student', 'type'], ['date', 'key']) jsonfeed["date"] = DateTimeJSONEncoder().encode(feed.date).replace('"', '') student = ndb.Key('Student', courseId + feed.student).get() if (student): jsonfeed["fullName"] = student.fullName jsonfeed["avatarUrl"] = student.avatarUrl jsonfeeds.append(jsonfeed) return json.dumps(jsonfeeds)
def new_student_message(lti=lti): #def new_student_message(): content = request.get_json(silent=True) logging.info(content) studentId = cgi.escape(content['studentId']) courseId = cgi.escape(content['courseId']) text = cgi.escape(content['text']) student_key = ndb.Key('Student', courseId + studentId) student = student_key.get() message = Log(type='text', courseId=courseId, student=studentId) message.content = text message.put() fullName = student.fullName if student else 'Unknown student' avatarUrl = student.avatarUrl if student else '' newStudentMessage(courseId, studentId, { 'student': studentId, 'courseId': courseId, 'id': message.key.id(), 'type': 'text', 'content': text, 'info': student.info(), 'date': DateTimeJSONEncoder().encode(message.date).replace('"', '') }) newMessage(courseId, { 'student': studentId, 'courseId': courseId, 'id': message.key.id(), 'type': 'text', 'info': student.info(), 'content': text, 'date': DateTimeJSONEncoder().encode(message.date).replace('"', '') }) return "Message received"
def get_messages(lti=lti): #def get_messages(): after_id = request.args.get('after_id', 0) courseId = request.args.get('courseId', 0) messages = Log.get_by_course(courseId) messagefeeds = [] for message in messages: messagefeed = entity_to_dict(message, ['student', 'type', 'content'], ['date', 'key']) messagefeed["date"] = DateTimeJSONEncoder().encode(message.date).replace('"', '') student = ndb.Key('Student', courseId + (message.teacher if message.teacher else message.student)).get() if (student): messagefeed['info'] = student.info() messagefeeds.append(messagefeed) return json.dumps(messagefeeds)
def log_art(art_id): """log page for art""" file = request.files['image'] image_resize = process_image(file) img_filename = handle_img_upload(file) comment = request.form["comment"] log = Log(art_id=art_id, user_id = current_user.user_id, comment=comment, img=img_filename) db.session.add(log) db.session.commit() s3_resource.put_object(Bucket=bucket_name, Key=img_filename, Body=image_resize) return "Your site has been logged"
def dashboard(): students = getStudents() for student in students: student['rewardcount'] = Log.get_by_type(student['studentId'], LogType.REWARD).count() entries = Poll.get_todays().fetch(5) for entry in entries: entry.answers = PollAnswer.query(PollAnswer.parent == entry.key) if entry.type == "poll": entry.yes = PollAnswer.query(PollAnswer.parent == entry.key, PollAnswer.answer == "yes").count() entry.no = PollAnswer.query(PollAnswer.parent == entry.key, PollAnswer.answer == "no").count() config = app.config.get('config') jsonconfig = json.dumps(app.config.get('config')) return render_template('admin/dashboard.html', appconfig=config, config=jsonconfig, entries=entries, students=students)
def decorated(*args, **kwargs): try: token = request.headers.get('Authorization')[7:].encode('UTF-8') if not session.query(Log).filter(Log.token == token).first(): raise ValueError("ValueError: Token not registered.") data = Log.verify_token(token, app.config['SECRET_KEY']) except jwt.exceptions.ExpiredSignatureError: return { 'mensagem': 'Sessão inválida.' }, 403 except Exception as e: print(e.__class__) return { 'mensagem': 'Não autorizado.' }, 403 return f(*args, **kwargs)
def dashboard(): students = getStudents() meetings = getMeetings() for student in students: student['rewardcount'] = Log.get_by_type(student['studentId'], 'reward').count() entries = Poll.get_todays().fetch(5) for entry in entries: entry.answers = PollAnswer.query(PollAnswer.parent == entry.key) for answer in entry.answers: answer.student = getStudent(answer.studentId) answer.studentName = getStudentName(answer.student) if entry.type == "poll": entry.yes = PollAnswer.query(PollAnswer.parent == entry.key, PollAnswer.answer == "yes").count() entry.no = PollAnswer.query(PollAnswer.parent == entry.key, PollAnswer.answer == "no").count() jsonconfig = json.dumps(app.config.get('config')) return render_template('admin/dashboard.html', jsconfig=jsonconfig, entries=entries, students=students, meetings=meetings)
def new_teacher_message(lti=lti): #def new_teacher_message(): content = request.get_json(silent=True) logging.info(content) studentId = cgi.escape(content['studentId']) teacherId = cgi.escape(content['teacherId']) courseId = cgi.escape(content['courseId']) text = cgi.escape(content['text']) student_key = ndb.Key('Student', courseId + studentId) student = student_key.get() teacher_key = ndb.Key('Student', courseId + teacherId) teacher = teacher_key.get() message = Log(type='text', courseId=courseId, student=studentId) message.content = text message.teacher = teacherId message.put() newStudentMessage(courseId, studentId, { 'student': teacherId, 'courseId': courseId, 'id': message.key.id(), 'type': 'text', 'content': text, 'info': teacher.info(), 'teacherinfo': student.info(), 'date': DateTimeJSONEncoder().encode(message.date).replace('"', '') }) newMessage(courseId, { 'student': studentId, 'courseId': courseId, 'id': message.key.id(), 'type': 'text', 'content': text, 'info': teacher.info(), 'teacherinfo': student.info(), 'date': DateTimeJSONEncoder().encode(message.date).replace('"', '') }) return "Message received"
def emit(self,record): """ Store the record to the collection. Async insert """ l = Log() l.msg = str(record.msg)+ str(record.args)+str(traceback.format_exc()) l.filename = record.filename l.name = record.name l.levelno = record.levelno l.levelname = record.levelname if flask.request: w = flask.request l.json = dumps(w.json,ensure_ascii=False) l.url = w.url l.session = str(flask.session.items()) l.ua = w.user_agent.string l.ip = w.remote_addr l.save()
# Get yo student my_student = session.query(Student).filter_by(student_email=rec['student_email']).first() # make sure your student exists assert my_student # Check if note already exists: if log_already_exists(my_student.student_id, rec['log_date']): continue my_log = Log( student_id = my_student.student_id, log_date = rec['log_date'], minutes_practiced = rec['minutes_practiced'], pieces_practiced = rec['pieces_practiced'], practice_notes = rec['practice_notes'] ) # Add to the session session.add(my_log) # Finally, commit session.commit() #
# bars = parse_csv("data\EURUSD_D1_HistoricalSSI.csv") # bars = parse_csv("data\EURUSD_H4_HistoricalSSI.csv") # bars = parse_csv("data\EURUSD_H1_HistoricalSSI.csv") base_unit = 100000 THRESHOLD = 4 trader = Trader() logs = LogManager() for bar in bars.bars: ssi = bar.ssi if trader.stock > 0: if ssi >= -THRESHOLD: trader.close(bar) logs.add( Log( timestamp=bar.timestamp, equity=trader.equity, stock=trader.stock, )) elif trader.stock < 0: if ssi <= -THRESHOLD: trader.close(bar) logs.add( Log( timestamp=bar.timestamp, equity=trader.equity, stock=trader.stock, )) if trader.stock == 0: if ssi >= THRESHOLD: unit = base_unit trader.sell(bar, unit)
# Find existing log or create a new one. try: log = mysql.query(Log).filter(Log.url==chat).one() try: <<<<<<< HEAD latest_page_query = mysql.query(LogPage).filter(LogPage.log_id==log.id).order_by(LogPage.number.asc()) latest_page = latest_page_query[-1] # XXX Is IndexError the right exception? except IndexError: ======= latest_page = mysql.query(LogPage).filter(LogPage.log_id == log.id).order_by(LogPage.number.desc()).limit(1).one() except NoResultFound: >>>>>>> 68ff6b3af88cb4d1d46a949b61b7e3086f286404 latest_page = new_page(mysql, log) except NoResultFound: log = Log(url=chat) mysql.add(log) mysql.flush() latest_page = new_page(mysql, log) return log, latest_page def new_page(mysql, log, last=0): new_page_number = last+1 latest_page = LogPage(log_id=log.id, number=new_page_number, content=u'') mysql.add(latest_page) # XXX COMMIT HERE? log.page_count = new_page_number return latest_page def archive_chat(redis, mysql, chat, backlog=0): log, latest_page = get_or_create_log(redis, mysql, chat)