def user_bind(): verify_code = int(request_value(request, 'code')) pwd = request_value(request, 'pwd') email = request_value(request, 'email').strip() username = request_value(request, 'username').strip() auth, user_id, pass_email, auth_username = RGUIController.do_auth_more_info( need_request_email=False) if not auth or username != auth_username: return jsonify(form_res(RGResCode.auth_fail)) uid, res = user.verify_user(username=username, email=email, pwd=pwd, verify_code=verify_code, verify_type=RGVerifyType.bind) if uid is not None: token = RGUIController.token_session(uid=uid, token_type=session['type'], username=username, email=email, remember=None) return jsonify(form_res(RGResCode.ok, {'token': token})) else: return jsonify(form_res(res, None))
def user_file_del(user_id): user_file_id = request_value(request, 'id') if user_file_id is None: return jsonify(form_res(RGResCode.lack_param)) conn = None try: conn = dao.get() delete_files = files.user_file_del_and_return_files(user_id=user_id, id=user_file_id, conn=conn) if len(delete_files) > 0: executor.submit(do_del_file, delete_files) conn.commit() return jsonify(form_res(RGResCode.ok, None)) except Exception as e: print(e) conn.rollback() conn.commit() return jsonify(form_res(RGResCode.del_fail, None)) finally: if conn: conn.close()
def ui_render_template(template_name_or_list, **context): art_user_id = request_value(request, 'user_id', None) need_user = int(request_value(request, 'needUserInfo', 0)) if need_user > 0 and (art_user_id is None or is_int_number(art_user_id) is False): return jsonify(form_res(RGResCode.lack_param)) params = dict({"js_ver": RGJSVersion, "css_ver": RGCSSVersion}, **context) render = render_template(template_name_or_list, **params) if need_user > 0: from Model import user auth, view_user_id = do_auth() relation = user.get_relation(view_user_id, art_user_id) re_relation = user.get_relation(art_user_id, view_user_id) t = { "user": user.get_user(art_user_id).__dict__, "home": user.isHome(view_user_id, art_user_id), "auth": view_user_id is not None, "relation": relation, "re_relation": re_relation, 'render': render } return jsonify(form_res(RGResCode.ok, t)) return render
def user_password(): username = request_value(request, 'username') if username is not None: username = username.strip() pwd = request_value(request, 'pwd') verify_code = int(request_value(request, 'code', default='0')) uid, res = user.verify_user(username=username, email=None, pwd=pwd, verify_code=verify_code, verify_type=RGVerifyType.forget_pwd) if uid is not None: _user = user.get_user_with_username(username=username, need_email=True) remember = int(request_value(request, 'remember', default='0')) token_type = int(request_value(request, 'type', default='0')) token = RGUIController.token_session(uid=uid, token_type=token_type, username=username, email=_user.email, remember=remember) return jsonify(form_res(RGResCode.ok, {'token': token})) else: return jsonify(form_res(res, None))
def user_file_directory_list(user_id): directory_id = request_value(request, 'directory_id', -1) try: result = files.user_file_directory_list(user_id=user_id, directory_id=directory_id) return jsonify(form_res(RGResCode.ok, result)) except: return jsonify(form_res(RGResCode.database_error))
def user_file_search(user_id): name = request_value(request, 'name') if name is None or len(name) <= 0: return jsonify(form_res(RGResCode.lack_param)) try: result = files.user_file_list_with_name(user_id=user_id, name=name) return jsonify(form_res(RGResCode.ok, result)) except: return jsonify(form_res(RGResCode.database_error))
def user_logout(user_id): t = get_data_with_request(request) token_type = int(t['type']) result = tokens.destroy_token(user_id=user_id, token_type=token_type) if result: RGUIController.token_session_remove() return jsonify(form_res(RGResCode.ok, None)) else: return jsonify(form_res(RGResCode.del_fail, None))
def user_file_size(user_id): user_file_id = request_value(request, 'id', -1) if user_file_id is None: return jsonify(form_res(RGResCode.lack_param)) user_file_id = int(user_file_id) error, file_size = files.user_file_size(user_id=user_id, id=user_file_id) if error is None: code = RGResCode.ok else: code = RGResCode.database_error return jsonify(form_res(code, {"size": file_size}))
def user_file_info(user_id): file_id = request_value(request, 'id') if file_id is None: return jsonify(form_res(RGResCode.lack_param)) info = files.user_file_info(user_id=user_id, id=file_id) if info is not None: del info['filename'] code = RGResCode.ok else: code = RGResCode.database_error return jsonify(form_res(code, {"file": info}))
def user_edit_title(user_id): t = get_data_with_request(request) if 'name' in t: name = t['name'] flag = user.update_title(user_id, name) if flag is True: code = RGResCode.ok else: code = RGResCode.not_existed return jsonify(form_res(code, None)) else: return jsonify(form_res(RGResCode.lack_param, None))
def user_file_open_code_cancel(user_id): file_id = request_value(request, 'id') if file_id is None: return jsonify(form_res(RGResCode.lack_param)) flag = files.user_file_set(user_id=user_id, id=file_id, args={"open_code": None}) if flag: code = RGResCode.ok else: code = RGResCode.database_error return jsonify(form_res(code))
def user_file_share_code(user_id): file_id = request_value(request, 'id') if file_id is None: return jsonify(form_res(RGResCode.lack_param)) share_code = RGRequestHelp.fid_encode(file_id, user_id) flag = files.user_file_set(user_id=user_id, id=file_id, args={"open_code": share_code}) if flag: code = RGResCode.ok else: share_code = None code = RGResCode.database_error return jsonify(form_res(code, {"shareCode": share_code}))
def user_visit_page_info(view_user_id): art_user_id = request_value(request, 'user_id', None) if art_user_id is None or is_int_number(art_user_id) is False: return jsonify(form_res(RGResCode.lack_param)) relation = user.get_relation(view_user_id, art_user_id) re_relation = user.get_relation(art_user_id, view_user_id) t = { "user": user.get_user(art_user_id).__dict__, "home": user.isHome(view_user_id, art_user_id), "auth": view_user_id is not None, "relation": relation, "re_relation": re_relation, } return jsonify(form_res(RGResCode.ok, t))
def user_file_path_get(user_file_id, path): if user_file_id is None: return jsonify(form_res(RGResCode.lack_param)) user_file_id = re.sub("[^A-Za-z0-9].*", "", user_file_id) if not is_int_number(user_file_id): return jsonify(form_res(RGResCode.lack_param)) auth, user_id = RGUIController.do_auth() session.removeVaryCookie = True file = files.user_file_info(user_id=user_id, id=user_file_id, type=0) if path is not None: file['filename'] = file['filename'] + '/' + path file['name'] = path.split('/')[-1] del file['mime'] return __get_file_stream(file, max_age=86400)
def user_check(): username = request_value(request, 'username', default=None) if username is None: return jsonify(form_res(RGResCode.lack_param)) exist = False _user = user.login_sign_check(username) if _user is None: code, _users = User.RGOpenIdController.user_list(username) if code == RGResCode.ok and len(_users) > 0: exist = True else: exist = True code = RGResCode.ok if exist else RGResCode.not_existed return jsonify(form_res(code, _user))
def user_file_move(user_id): user_file_id = request_value(request, 'id') if user_file_id is None: return jsonify(form_res(RGResCode.lack_param)) to_id = request_value(request, 'to_id') if to_id is None: return jsonify(form_res(RGResCode.lack_param)) flag = files.user_file_move(user_id=user_id, move_id=user_file_id, to_id=to_id) if flag is True: code = RGResCode.ok else: code = RGResCode.del_fail return jsonify(form_res(code, None))
def art_group_edit(user_id): t = get_data_with_request(request) if 'id' in t: group_id = t['id'] else: group_id = None if 'name' in t: name = t['name'] else: name = None if 'level' in t: level = t['level'] else: level = None flag = article.update_group_info(user_id=user_id, g_id=group_id, name=name, level=level) code = RGResCode.ok if flag is True else RGResCode.update_fail res = form_res(code, None) return jsonify(res)
def art_month_view(user_id): t = get_data_with_request(request) if 'user_id' in t: art_user = int(t['user_id']) else: art_user = None if 'timezone' in t: timezone = int(t['timezone']) else: timezone = 8 if 'group_id' in t: group_id = t['group_id'] if len(group_id) > 0: group_id = int(group_id) else: group_id = None else: group_id = None result = article.months_list_view(art_user=art_user, other_id=user_id, group_id=group_id, timezone=timezone) res = form_res(1000, result) return jsonify(res)
def pic_edit(user_id): t = get_data_with_request(request) title = None desc = None level = None p_id = None if 'title' in t: title = t['title'] if 'desc' in t: desc = t['desc'] if 'level' in t: level = t['level'] if 'id' in t: p_id = t['id'] flag = pic.update_info(p_id=p_id, user_id=user_id, title=title, desc=desc, level=level) if flag is True: code = RGResCode.ok else: code = RGResCode.update_fail return jsonify(form_res(code, None))
def album_new(user_id): t = get_data_with_request(request) title = None desc = None level = None cover = None if 'title' in t: title = t['title'] if 'desc' in t: desc = t['desc'] if 'level' in t: level = t['level'] if 'cover' in t: cover = t['cover'] flag = album.new_album(user_id=user_id, title=title, desc=desc, cover=cover, level=level) if flag is not None: code = RGResCode.ok else: code = RGResCode.update_fail return jsonify(form_res(code, flag))
def user_file_set(user_id): user_file_id = request_value(request, 'id') if user_file_id is None: return jsonify(form_res(RGResCode.lack_param)) args = {} personal_name = request_value(request, 'name') if personal_name is not None: args['personal_name'] = personal_name flag = files.user_file_set(user_id=user_id, id=user_file_id, args=args) if flag is True: code = RGResCode.ok else: code = RGResCode.update_fail return jsonify(form_res(code, None))
def apply_read_count(): if request_ip(request, default=request.remote_addr) != '127.0.0.1': return jsonify(form_res(-1)) ids = [] counts = [] for art_id, read_item in ReadCountMap.items(): # readers = read_item['readers'] count = read_item['count'] if count > 0: counts.append(count) ids.append(art_id) read_item['count'] = 0 article.add_art_read_count(ids, counts) res = form_res(1000) return jsonify(res)
def pic_delete(user_id): t = get_data_with_request(request) if 'id' in t: p_id = t['id'] pic.delete(user_id=user_id, p_id=p_id) code = RGResCode.ok else: code = RGResCode.lack_param return jsonify(form_res(code, None))
def user_login(): username = request_value(request, 'username').strip() pwd = request_value(request, 'pwd') _user = user.user_login(username, pwd) remember = int(request_value(request, 'remember', default='0')) token_type = int(request_value(request, 'type', default='0')) if _user is not None: token = RGUIController.token_session(uid=_user.ID, token_type=token_type, username=_user.username, email=_user.email, remember=remember) resp = jsonify(form_res(RGResCode.ok, {'token': token})) return resp else: return jsonify(form_res(RGResCode.not_existed, None))
def user_file_open_list(**params): """ 根据 openCode 获取文件列表 """ result, error = files.user_file_files_relative_with_id( user_id=params['u_id'], id=params['f_id'], conn=params['conn']) if error is not None: raise error return jsonify(form_res(RGResCode.ok, result))
def cancel_follow(user_id): t = get_data_with_request(request) flag, relation = user.cancel_follow(user_id, t['id']) if flag is True: code = RGResCode.ok else: code = RGResCode.del_fail return jsonify(form_res(code, None))
def user_file_relative_list(user_id): code = request_value(request, 'code') if code is None: return jsonify(form_res(RGResCode.lack_param)) u_id = None try: directory_id, u_id = RGRequestHelp.did_decode(code) except Exception as e: return jsonify(form_res(RGResCode.param_error)) finally: if u_id != user_id: return jsonify(form_res(RGResCode.auth_fail)) try: result, error = files.user_file_files_relative_with_id(user_id=user_id, id=directory_id) if error is not None: raise error return jsonify(form_res(RGResCode.ok, result)) except: return jsonify(form_res(RGResCode.database_error))
def art_del(user_id): t = get_data_with_request(request) if 'id' in t: art_id = t['id'] else: art_id = None flag, art = article.del_art(user_id, art_id) code = RGResCode.ok if flag is True else RGResCode.insert_fail res = form_res(code, None) return jsonify(res)
def __get_file_stream(file, max_age=604800): filename = file[ 'filename'] if file is not None and 'filename' in file else None mime = file['mime'] if file is not None and 'mime' in file else None name = file['name'] if file is not None and 'name' in file else None img_quality = request_value(request, 'img_quality', 'original') if img_quality == 'low': filename = name_fix(filename=filename, thumb=True, gif_activity=False) if filename is None: return jsonify(form_res(RGResCode.not_existed)) return handle_download_file(filename, name, mime=mime, max_age=max_age)
def new_file(user_id): """ 上传文件 body 参数: fileUpInfo 文件信息 {file} 文件流 """ re_files = request.files file_up_info = request_value(request, 'fileUpInfo') if file_up_info is None: return jsonify(form_res(RGResCode.lack_param)) file_up_info = json.loads(file_up_info, encoding="utf-8") for file_key in re_files: up_info = file_up_info.get(file_key, None) if up_info is None: return jsonify(form_res(RGResCode.lack_param)) if up_info.get('md5', None) is None: return jsonify(form_res(RGResCode.lack_param)) if up_info.get('in_file', 0): if not files.capacity_enough( user_id=user_id, new_file_size=request_file_size(request)): return jsonify(form_res(RGResCode.full_size)) code, result = do_new_file() if code != RGResCode.ok: return jsonify(form_res(code)) data = {} for up_res in result: file_key = up_res['key'] up_info = file_up_info.get(file_key) set_name = up_info.get('name', '') in_album = up_info.get('in_album', 0) album_id = up_info.get('album_id', -1) in_file = up_info.get('in_file', 0) did = up_info.get('directory_id', -1) handle = handler_upload_res(user_id, up_res=up_res, set_name=set_name, in_album=in_album, album_id=album_id, in_file=in_file, directory_id=did) code = handle['code'] data[file_key] = { 'code': code, 'file': handle['data'], } if code != RGResCode.ok and 'path' in up_res: del_filename = up_res['path'] executor.submit(do_del_file, [del_filename]) return jsonify(form_res(RGResCode.ok, data))