def get_campus(): moodle = request.headers['moodle'] wstoken = g.wstoken result = moodle_sv.get_campus(moodle, wstoken) campus = [{'id': x['campus']} for x in result] return response(200, 'success', campus)
def verify(): moodle = request.headers['moodle'] wstoken = g.wstoken key = g.key username = g.username if not face_sv.exist(key, username): raise ErrorAPI(404, 'user not registered') sessionid = request.form.get('sessionid') if not sessionid: raise ErrorAPI(400, 'missing sessionid') front = request.form.get('front') if not front: raise ErrorAPI(400, 'missing front') left = request.form.get('left') if not front: raise ErrorAPI(400, 'missing left') right = request.form.get('right') if not front: raise ErrorAPI(400, 'missing right') result = face_sv.verify(key, username, [front, left, right]) moodle_sv.verify(moodle=moodle, wstoken=wstoken, username=username, sessionid=sessionid, image_front=front, image_left=left, image_right=right, result=int(result)) if not result: raise ErrorAPI(400, 'invalid faces') return response(200, 'success')
def face_feedback(): moodle = request.headers['moodle'] wstoken = g.wstoken key = g.key if 'image' not in request.json: raise ErrorAPI(400, 'missing image') if 'roomid' not in request.json: raise ErrorAPI(400, 'missing roomid') if 'usertaken' not in request.json: raise ErrorAPI(400, 'missing usertaken') if 'userbetaken' not in request.json: raise ErrorAPI(400, 'missing userbetaken') description = 'mistaken in face recognition' if 'description' in request.json: description = request.json['description'] if not face_sv.exist(key, request.json['usertaken']): raise ErrorAPI(404, 'user not registered') moodle_sv.create_feedback(moodle=moodle, wstoken=wstoken, roomid=request.json['roomid'], usertaken=request.json['usertaken'], userbetaken=request.json['userbetaken'], description=description, image=request.json['image']) return response(200, 'success')
def login(): moodle = request.headers['moodle'] wstoken = g.wstoken if 'username' not in request.json: raise ErrorAPI(400, 'missing "username"') if 'password' not in request.json: raise ErrorAPI(400, 'missing "password"') username = request.json['username'] password = request.json['password'] user = moodle_sv.user_info( moodle=moodle, wstoken=wstoken, username=username ) if not user: raise ErrorAPI(404, 'userinfo not found') user['token'] = moodle_sv.login( moodle=moodle, username=username, password=password ) return response(200, 'success', user)
def checkin(roomid): moodle = request.headers['moodle'] wstoken = g.wstoken if 'usernames' not in request.json: raise ErrorAPI(400, 'missing usernames') usernames = request.json['usernames'] users = [] for username in usernames: user = { 'username': username, 'status': 200 } res = moodle_sv.checkin( moodle=moodle, wstoken=wstoken, roomid=roomid, username=username ) if 'status' in res: user['status'] = res['status'] user['message'] = res['message'] users.append(user) return response(200, 'success', users)
def update_user(): moodle = request.headers['moodle'] wstoken = g.wstoken key = g.key username = g.username front = request.form.get('front') if not front: raise ErrorAPI(400, 'missing front') left = request.form.get('left') if not left: raise ErrorAPI(400, 'missing left') right = request.form.get('right') if not right: raise ErrorAPI(400, 'missing right') replace = request.form.get('replace') if not replace: raise ErrorAPI(400, 'missing replace') if not moodle_sv.user_info( moodle=moodle, wstoken=wstoken, username=username): raise ErrorAPI(404, 'user not found') exist = face_sv.exist(key, username) val_t = time() user = {'id': username, 'front': front, 'left': left, 'right': right} if not exist: code = 201 message = 'created' face = face_sv.create(key, user) else: code = 200 message = 'success' face = face_sv.update(key, user) core_t = time() res = moodle_sv.create_image(moodle=moodle, wstoken=wstoken, username=user['id'], image_front=user['front'], image_left=user['left'], image_right=user['right'], replace=replace) if not res: code = 500 message = 'failed to create image' face_sv.remove(key, username) t = { 'face': face, 'valid': val_t - g.start, 'core': core_t - val_t, 'moodle': time() - core_t, 'total': time() - g.start } return response(code, message, t=t)
def remove_user(): key = g.key username = g.username if not face_sv.exist(key, username): raise ErrorAPI(404, 'user not registered') face_sv.remove(key, username) return response(200, 'success')
def get_student(username): moodle = request.headers['moodle'] wstoken = g.wstoken user = moodle_sv.user_info( moodle=moodle, wstoken=wstoken, username=username ) if not user: raise ErrorAPI(404, 'userinfo not found') return response(200, 'success', user)
def get_sessions(courseid): moodle = request.headers['moodle'] wstoken = g.wstoken sessions = moodle_sv.sessions( moodle=moodle, wstoken=wstoken, courseid=courseid ) if not sessions: sessions = None return response(200, 'success', sessions)
def get_session(sessionid): moodle = request.headers['moodle'] wstoken = g.wstoken session = moodle_sv.session( moodle=moodle, wstoken=wstoken, sessionid=sessionid ) if not session: session = None return response(200, 'success', session)
def get_log_by_course(courseid): moodle = request.headers['moodle'] wstoken = g.wstoken reports = moodle_sv.log_by_course( moodle=moodle, wstoken=wstoken, courseid=courseid ) if not reports: reports = None return response(200, 'success', reports)
def get_schedules(): moodle = request.headers['moodle'] userid = g.userid token = request.headers['Authorization'] schedules = moodle_sv.schedules( moodle=moodle, token=token, userid=userid ) if not schedules: schedules = None return response(200, 'success', schedules)
def get_rooms(): moodle = request.headers['moodle'] wstoken = g.wstoken if 'campus' not in request.args: raise ErrorAPI(400, 'missing "campus"') campus = request.args['campus'] rooms = moodle_sv.room_by_campus( moodle=moodle, wstoken=wstoken, campus=campus ) if not rooms: rooms = None return response(200, 'success', rooms)
def get_user(): moodle = request.headers['moodle'] wstoken = g.wstoken key = g.key username = g.username if not face_sv.exist(key, username): raise ErrorAPI(404, 'user not registered') user = {} data = moodle_sv.get_image(moodle=moodle, wstoken=wstoken, username=username) user['front'] = data['image_front'] user['left'] = data['image_left'] user['right'] = data['image_right'] return response(200, 'success', user)
def find(message): raw = message.text if len(raw) < 6 : bot.reply_to(message, "Oops! You didn't say anything! Try /help to learn more.") else: info = raw[5: len(raw)] info = info.split("-") artist = info[0] song = info[1] _json = utilities.fetch_from_wiki(artist, song) response = utilities.response(_json) if song == 'Roshani' or song == 'roshani' or song == ' roshani' or song == ' Roshani': with open('sina.txt', 'r') as sina: roshani = sina.read().strip() bot.reply_to(message, roshani) else: bot.reply_to(message, response)
def manual_check(sessionid): moodle = request.headers['moodle'] wstoken = g.wstoken if 'students' not in request.json: raise ErrorAPI(400, 'missing "students"') if not isinstance(request.json['students'], list): raise ErrorAPI(400, '"students" type list') students = request.json['students'] for student in students: moodle_sv.update_log( moodle=moodle, wstoken=wstoken, sessionid=sessionid, username=student['username'], statusid=student['statusid'] ) return response(200, 'success')
def room_schedule(): moodle = request.headers['moodle'] wstoken = g.wstoken if 'roomid' not in request.args: raise ErrorAPI(400, 'missing "roomid"') if 'date' not in request.args: raise ErrorAPI(400, 'missing "date"') roomid = request.args['roomid'] date = request.args['date'] schedule = moodle_sv.room_schedule( moodle=moodle, wstoken=wstoken, roomid=roomid, date=date ) if not schedule: schedule = None return response(200, 'success', schedule)
def get_student_log(): moodle = request.headers['moodle'] wstoken = g.wstoken if 'username' not in request.args: raise ErrorAPI(400, 'missing "username"') if 'courseid' not in request.args: raise ErrorAPI(400, 'missing "courseid"') username = request.args['username'] courseid = request.args['courseid'] reports = moodle_sv.student_log( moodle=moodle, wstoken=wstoken, username=username, courseid=courseid ) if not reports: reports = None return response(200, 'success', reports)
def find(): moodle = request.headers['moodle'] wstoken = g.wstoken key = g.key if 'images' not in request.json: raise ErrorAPI(400, 'missing images') images = request.json['images'] if not isinstance(images, list): raise ErrorAPI(400, 'images not list') val_t = time() data = face_sv.find(key, images) core_t = time() usernames = data['users'] if not usernames: raise ErrorAPI(400, 'no user registered') users = [] for username in usernames: if not username: users.append({'status': 404, 'message': 'not registered'}) continue user = moodle_sv.user_info(moodle=moodle, wstoken=wstoken, username=username) user['status'] = 200 user['message'] = 'registered' users.append(user) t = { 'face': data, 'valid': val_t - g.start, 'core': core_t - val_t, 'moodle': time() - core_t, 'total': time() - g.start } return response(200, 'success', users, t=t)
def count(): key = g.key res = face_sv.count(key) return response(200, 'success', res)
def exception(e): log.exception(e) return response(500, 'internal server error')
def page_not_found(e): return response(404, str(e))
def root(): return response(200, 'ok')