def find_friend(): session = db_session() return_msg = {'result': '0000', 'detail_info': {}} if request.method == 'POST': anid = request.form['anid'] if anid is None or len(anid) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string query = session.query(UserDetail) \ .filter(UserDetail.id == anid).all() if query is None: return_msg['result'] = '0002' else: for detail in query: detail_dict = { 'id': detail.id, 'name': detail.name, 'image': detail.image } return_msg['detail_info'] = detail_dict else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def users_get_info(): session = db_session() return_msg = {'result': '0000'} if request.method == 'POST': id = request.form['id'] if id is None or len(id) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string query = session.query(UserDetail) \ .filter(UserDetail.id == id).first() if query is None: return_msg['result'] = '0010' else: return_msg['name'] = query.name return_msg['image'] = query.image else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def set_token(): session = db_session() return_msg = {'result': '0000'} if request.method == 'POST': id = request.form['id'] token = request.form['token'] if id is None or len(id) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string if token is None or len(token) == 0: return_msg['result'] = '0002' json_string = json.dumps(return_msg) return json_string query = session.query(UserDetail) \ .filter(UserDetail.id == id).first() if query is None: return_msg['result'] = '0010' else: query.token = token session.commit() else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def chat_load(): session = db_session() return_msg = {'result': '0000', 'chat_load': []} if request.method == 'POST': room_num = request.form['room_num'] if room_num is None or len(room_num) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string query = session.query(ChatRoomDetail) \ .filter(ChatRoomDetail.room_num == room_num).order_by(ChatRoomDetail.date).all() for detail in query: query_user = session.query(UserDetail).filter( UserDetail.id == detail.id).first() if query_user is None: return_msg['result'] = '0010' else: log_dict = { 'id': detail.id, 'date': str(detail.date), 'msg': detail.msg, 'name': query_user.name, 'image': query_user.image } return_msg['chat_load'].append(log_dict) else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def friend_number(): session = db_session() return_msg = {'result': '0000', 'f_number': ''} if request.method == 'POST': id = request.form['id'] if id is None or len(id) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string query = session.query(FriendsList) \ .filter(FriendsList.id == id).first() if query.friendId is None: num = 0 else: num = len(query.friendId.split(',')) return_msg['f_number'] = num else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def get_quiz(): session = db_session() return_msg = {'result': '0000'} if request.method == 'POST': index = request.form['index'] totalCount = session.query(Quiz.index).count() if index is None or len(index) == 0: index = randint(1, totalCount) nonQuery = session.query(Quiz).filter(Quiz.index == index).first() return_msg['index'] = nonQuery.index return_msg['question'] = nonQuery.question return_msg['num1'] = nonQuery.numOne return_msg['num2'] = nonQuery.numTwo return_msg['num3'] = nonQuery.numThree return_msg['num4'] = nonQuery.numFour return_msg['answer'] = nonQuery.answer return_msg['isEnd'] = 0 else: indexSplit = index.split('||') counting = 0 while True: counting = counting + 1 if counting == totalCount: return_msg['example'] = { 'isEnd': 1 } break index = randint(1, totalCount) if str(index) in indexSplit: continue else: inQuery = session.query(Quiz).filter(Quiz.index == index).first() return_msg['index'] = inQuery.index return_msg['question'] = inQuery.question return_msg['num1'] = inQuery.numOne return_msg['num2'] = inQuery.numTwo return_msg['num3'] = inQuery.numThree return_msg['num4'] = inQuery.numFour return_msg['answer'] = inQuery.answer return_msg['isEnd'] = 0 break else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def chat_list(): session = db_session() return_msg = {'result': '0000', 'chat_list': []} if request.method == 'POST': id = request.form['id'] if id is None or len(id) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string query = session.query(ChatRoom) \ .filter(ChatRoom.id == id).all() if query is None: return_msg['result'] = '0002' else: for detail in query: query_recent = session.query(ChatRoomDetail) \ .filter(ChatRoomDetail.room_num == detail.room_num) \ .order_by(ChatRoomDetail.date.desc()).all() chat_detail = {} room_num_list = [] for detail_recent in query_recent: if room_num_list.count(detail_recent.room_num) == 0: room_num_list.append(detail_recent.room_num) friends_list = detail.member.split(',') friends_detail = [] for detail_user in friends_list: query_user = session.query(UserDetail) \ .filter(UserDetail.id == detail_user).first() friends_dict = { 'id': query_user.id, 'name': query_user.name, 'image': query_user.image } friends_detail.append(friends_dict) chat_detail = { 'room_num': str(detail_recent.room_num), 'date': str(detail_recent.date), 'msg': detail_recent.msg, 'friends_detail': friends_detail } return_msg['chat_list'].append(chat_detail) else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def sns_get_list(): session = db_session() return_msg = {'result': '0000', 'sns_list': []} if request.method == 'POST': start_num = request.form['startNum'] end_num = request.form['endNum'] if start_num is None or len(start_num) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string if end_num is None or len(end_num) == 0: return_msg['result'] = '0002' json_string = json.dumps(return_msg) return json_string int_start_num = int(start_num) - 1 int_end_num = int(end_num) - 1 query = session.query(SNSDetail).order_by( SNSDetail.date.desc()).all()[int_start_num:int_end_num] if query is None: return_msg['result'] = '0003' else: for detail in query: query_user = session.query(UserDetail) \ .filter(UserDetail.id == detail.id).first() query_count = session.query(SNSComment) \ .filter(SNSComment.index == detail.index).count() if query_user is None: return_msg['result'] = '0010' else: sns_dict = { 'index': detail.index, 'id': detail.id, 'name': query_user.name, 'user_image': query_user.image, 'prefer_language': query_user.prefer_language, 'date': str(detail.date), 'content_text': detail.content_text, 'content_image': detail.content_img, 'comment_count': query_count } return_msg['sns_list'].append(sns_dict) else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def rekognition(): session = db_session() return_msg = {'result': '0000', 'content': []} if request.method == 'POST': id = request.form['id'] compared_img = request.files['image'].read() if id is None or len(id) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string if compared_img is None: return_msg['result'] = '0002' json_string = json.dumps(return_msg) return json_string client = boto3.client('rekognition') query = session.query(UserImage).all() for detail in query: print(id + " || " + detail.id) if detail.id == id: continue target_img = open(detail.image, 'rb').read() compare_res = client.compare_faces( SourceImage={'Bytes': compared_img}, TargetImage={'Bytes': target_img}, SimilarityThreshold=20) for match in compare_res['FaceMatches']: detailQuery = session.query(UserDetail).filter( UserDetail.image == detail.id).first() contents = { "id": detailQuery.id, "name": detailQuery.name, "similarity": round(match['Similarity']), "image": detailQuery.image } return_msg['content'].append(contents) break else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def sns_photo(): session = db_session() id = request.args.get('id') if id is None or id == 'null': return 'fail' query = session.query(SNSImage.image) \ .filter(SNSImage.index == id).first() img = query[0] session.close() return img
def change_photo(): session = db_session() return_msg = {'result': '0000', 'image': ''} if request.method == 'POST': id = request.form['id'] image = request.files['image'].read() if id is None or len(id) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string if image is None: return_msg['result'] = '0002' json_string = json.dumps(return_msg) return json_string filename = "Image/" + id f = open(filename, "wb") f.write(image) f.close() query = session.query(UserDetail) \ .filter(UserDetail.id == id).all() for detail in query: if detail.image is None: query_id = session.query(UserImage.id).order_by( UserImage.id.desc()).first() if query_id is None: img_id = 1 else: query_img_id = query_id[0] img_id = int(query_img_id) + 1 image_data = UserImage(str(img_id), filename) session.add(image_data) detail.image = str(img_id) return_msg['image'] = str(img_id) else: return_msg['image'] = detail.image session.commit() else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def sns_insert_content(): session = db_session() return_msg = {'result': '0000'} if request.method == 'POST': id = request.form['id'] date = request.form['date'] content_text = request.form['content_text'] content_image = request.files['content_image'].read() if id is None or len(id) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string if date is None or len(date) == 0: return_msg['result'] = '0002' json_string = json.dumps(return_msg) return json_string if content_text is None or len(content_text) == 0: return_msg['result'] = '0003' json_string = json.dumps(return_msg) return json_string str_img = "none" if content_image is not None: query = session.query(SNSImage.index) \ .order_by(SNSImage.index.desc()).first() if query is None: str_img = "1" else: str_img = str(int(query[0]) + 1) s = SNSImage(str_img, content_image) session.add(s) t = SNSDetail(id, date, content_text, str_img) session.add(t) session.commit() else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def chat_open(): session = db_session() return_msg = {'result': '0000', 'room_num': 'none'} if request.method == 'POST': my_id = request.form['myid'] member = request.form['member'] if my_id is None or len(my_id) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string if member is None or len(member) == 0: return_msg['result'] = '0002' json_string = json.dumps(return_msg) return json_string query = session.query(ChatRoom) \ .filter(ChatRoom.id == my_id, ChatRoom.member == member).first() if query is None: query_recent_num = session.query(ChatRoomDetail) \ .order_by(ChatRoomDetail.room_num).first() if query_recent_num is None: next_room_num = "1" else: next_room_num = str(int(query_recent_num.room_num) + 1) member_list = member.split(',') for friend in member_list: t = ChatRoom(friend, next_room_num, member) session.add(t) session.commit() return_msg['room_num'] = next_room_num else: return_msg['room_num'] = query.room_num else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def set_quiz(): session = db_session() return_msg = {'result': '0000'} is_add_to_db = True if request.method == 'POST': question = request.form['question'] if question is None or len(question) == 0: return_msg['result'] = '0001' is_add_to_db = False numOne = request.form['numOne'] if numOne is None or len(numOne) == 0: return_msg['result'] = '0002' is_add_to_db = False numTwo = request.form['numTwo'] if numTwo is None or len(numTwo) == 0: return_msg['result'] = '0003' is_add_to_db = False numThree = request.form['numThree'] if numThree is None or len(numThree) == 0: return_msg['result'] = '0004' is_add_to_db = False numFour = request.form['numFour'] if numFour is None or len(numFour) == 0: return_msg['result'] = '0005' is_add_to_db = False answer = request.form['answer'] if answer is None or len(answer) == 0: return_msg['result'] = '0006' is_add_to_db = False if is_add_to_db: t = Quiz(question, numOne, numTwo, numThree, numFour, answer) session.add(t) session.commit() else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def sns_get_friend_list(): session = db_session() return_msg = {'result': '0000', 'sns_list': []} if request.method == 'POST': id = request.form['id'] if id is None or len(id) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string query = session.query(SNSDetail) \ .filter(SNSDetail.id == id).order_by(SNSDetail.date).all() if query is None: return_msg['result'] = '0010' else: for detail in query: query_count = session.query(SNSComment) \ .filter(SNSComment.index == detail.index).count() sns_dict = { 'index': detail.index, 'date': detail.date, 'content_text': detail.content_text, 'content_image': detail.content_image, 'comment_count': query_count } return_msg['sns_list'].append(sns_dict) query_user = session.query(UserDetail) \ .filter(UserDetail.id == id).first() if query_user is None: return_msg['result'] = '0011' else: return_msg['name'] = query_user.name return_msg['image'] = query_user.image else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def user_photo(): session = db_session() id = request.args.get('id') if id is None or id == 'null': return 'fail' query = session.query(UserImage) \ .filter(UserImage.id == id).first() img = query.image f = open(img, "rb") imgFile = f.read() f.close() session.close() return imgFile
def friend_list(): session = db_session() return_msg = {'result': '0000', 'friends_list': []} if request.method == 'POST': id = request.form['id'] if id is None or len(id) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string friends_query = session.query(FriendsList.friendId) \ .filter(FriendsList.id == id) \ .first() if friends_query[0] is not None: friends_list = friends_query[0].split(',') detail_query = session.query(UserDetail) \ .filter(UserDetail.id.in_([friend_id for friend_id in friends_list])) \ .order_by(UserDetail.name) \ .all() for detail in detail_query: detail_dict = { 'id': detail.id, 'name': detail.name, 'phone_number': detail.phone_number, 'email': detail.email, 'nation': detail.nation, 'location': detail.location, 'prefer_language': detail.prefer_language, 'status_msg': detail.status_msg, 'image': detail.image } return_msg['friends_list'].append(detail_dict) else: return_msg['result'] = '0002' else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def sns_get_comment_list(): session = db_session() return_msg = {'result': '0000', 'sns_comment_list': []} if request.method == 'POST': index = request.form['index'] if index is None or len(index) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string query = session.query(SNSComment) \ .filter(SNSComment.index == index).all() if query is None: return_msg['result'] = '0010' for detail in query: query_user = session.query(UserDetail) \ .filter(UserDetail.id == detail.id).first() if query_user is None: return_msg['result'] = '0011' else: comment_dict = { 'id': detail.id, 'name': query_user.name, 'user_image': query_user.image, 'date': str(detail.date), 'comment': detail.comment, } return_msg['sns_comment_list'].append(comment_dict) else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def sns_insert_comment(): session = db_session() return_msg = {'result': '0000'} if request.method == 'POST': index = request.form['index'] id = request.form['id'] date = request.form['date'] msg = request.form['msg'] if index is None or len(index) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string if id is None or len(id) == 0: return_msg['result'] = '0002' json_string = json.dumps(return_msg) return json_string if date is None or len(date) == 0: return_msg['result'] = '0003' json_string = json.dumps(return_msg) return json_string if msg is None or len(msg) == 0: return_msg['result'] = '0004' json_string = json.dumps(return_msg) return json_string t = SNSComment(index, id, date, msg) session.add(t) session.commit() else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def add_friend(): session = db_session() return_msg = {'result': '0000'} if request.method == 'POST': myid = request.form['myid'] anid = request.form['anid'] if myid is None or len(myid) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string if anid is None or len(anid) == 0: return_msg['result'] = '0002' json_string = json.dumps(return_msg) return json_string query = session.query(FriendsList) \ .filter(FriendsList.id == myid).first() if query is None: return_msg['result'] = '0003' else: if query.friendId is None: tmp_str = anid else: tmp_str = query.friendId + ',' + anid query.friendId = tmp_str session.commit() else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def id_check(): session = db_session() return_msg = {'result': '0000'} if request.method == 'POST': id = request.form['id'] if id is None or len(id) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string query = session.query( UserDetail.id).filter(UserDetail.id == id).first() if query is not None: return_msg['result'] = '0002' else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def translate(): session = db_session() return_msg = {'result': '0000', 'translate_msg': ''} if request.method == 'GET': id = request.args.get('id') msg = request.args.get('msg') if id is None or len(id) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string if msg is None or len(msg) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string enc_text = urllib.parse.quote(msg) detect_data = "query=" + enc_text detect_request = urllib.request.Request(detect_url) detect_request.add_header("X-Naver-Client-Id", detect_client_id) detect_request.add_header("X-Naver-Client-Secret", detect_client_secret) detect_response = urllib.request.urlopen(detect_request, data=detect_data.encode("utf-8")) detect_res_code = detect_response.getcode() if detect_res_code == 200: detect_response_body = json.loads(detect_response.read().decode('utf-8')) from_nation = detect_response_body['langCode'] if from_nation == 'ko': to_nation = 'en' else: to_nation = 'ko' trans_data = "source=" + from_nation + "&target=" + to_nation + "&text=" + enc_text trans_request = urllib.request.Request(papago_url) trans_request.add_header("X-Naver-Client-Id", detect_client_id) trans_request.add_header("X-Naver-Client-Secret", detect_client_secret) trans_response = urllib.request.urlopen(trans_request, data=trans_data.encode("utf-8")) trans_res_code = trans_response.getcode() if trans_res_code == 200: trans_response_body = json.loads(trans_response.read().decode('utf-8')) return_msg['translate_msg'] = trans_response_body['message']['result']['translatedText'] else: return_msg['result'] = '0011' else: return_msg['result'] = '0010' else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def register(): session = db_session() return_msg = {'result': '0000'} is_add_to_db = True if request.method == 'POST': id = request.form['id'] if id is None or len(id) == 0: return_msg['result'] = '0001' is_add_to_db = False passwd = request.form['passwd'] if passwd is None or len(passwd) == 0: return_msg['result'] = '0002' is_add_to_db = False phone_number = request.form['phone_number'] if phone_number is None or len(phone_number) == 0: return_msg['result'] = '0003' is_add_to_db = False name = request.form['name'] if name is None or len(name) == 0: return_msg['result'] = '0004' is_add_to_db = False email = request.form['email'] if email is None or len(email) == 0: return_msg['result'] = '0005' is_add_to_db = False nation = request.form['nation'] if nation is None or len(nation) == 0: return_msg['result'] = '0006' is_add_to_db = False location = request.form['location'] if location is None or len(location) == 0: return_msg['result'] = '0007' is_add_to_db = False prefer_language = request.form['prefer_language'] if prefer_language is None or len(prefer_language) == 0: return_msg['result'] = '0008' is_add_to_db = False if is_add_to_db: t = UserDetail(id, passwd, phone_number, name, email, nation, location, prefer_language) session.add(t) f = FriendsList(id) session.add(f) session.commit() else: return_msg['result'] = '0100' session.close() json_string = json.dumps(return_msg) return json_string
def chat_send(): session = db_session() return_msg = {'result': '0000', 'chat_log': []} if request.method == 'POST': id = request.form['myid'] room_num = request.form['room_num'] msg = request.form['msg'] date = request.form['date'] if id is None or len(id) == 0: return_msg['result'] = '0001' json_string = json.dumps(return_msg) return json_string if room_num is None or len(room_num) == 0: return_msg['result'] = '0002' json_string = json.dumps(return_msg) return json_string if msg is None or len(msg) == 0: return_msg['result'] = '0003' json_string = json.dumps(return_msg) return json_string if date is None or len(date) == 0: return_msg['result'] = '0004' json_string = json.dumps(return_msg) return json_string t = ChatRoomDetail(room_num, id, date, msg) session.add(t) query_friend = session.query(ChatRoom.member) \ .filter(ChatRoom.room_num == room_num).first() split_friend = query_friend[0].split(',') query_send_friend = session.query(UserDetail) \ .filter(UserDetail.id == id).first() for friend in split_friend: if friend == id: continue message_body = { 'id': id, 'date': date, 'msg': msg, 'name': query_send_friend.name, 'image': query_send_friend.image } print(message_body) query_user = session.query(UserDetail) \ .filter(UserDetail.id == friend).first() data = { 'to': query_user.token, 'data': { 'message_body': message_body, } } response = requests.post(fcm_url, headers=headers, data=json.dumps(data)) else: return_msg['result'] = '0100' session.commit() session.close() json_string = json.dumps(return_msg) return json_string