def list_user(request): if not request.user.has_perm('auth.view_user'): return response_json({'code': 403, 'message': '权限不足'}) all_user = User.objects.all() user_list = [] for i in all_user: if i.is_superuser: group = '系统管理员' else: try: group = i.groups.all().first().name except: group = '' tmp = { 'id': i.id, 'name': i.username, 'first_name': i.first_name, 'last_name': i.last_name, 'is_super': i.is_superuser, 'group': group, 'email': i.email, 'is_active': i.is_active } user_list.append(tmp) return response_json({'code': 200, 'message': '操作成功', 'list': user_list})
def get_voice(request): vtb = request.GET.get('vtb-name') groups = VoiceGroup.objects.filter(vtb_name=vtb) data = Voice.objects.filter(vtb_name=vtb) if not data: return utils.response_json({'message': '未找到数据'}, 403) group2 = [] for group in groups: voice_list = [] name = group.group_name voices = Voice.objects.filter(group=name, vtb_name=vtb) for voice in voices: tmp = { 'data_id': voice.id, 'update': voice.version, 'name': voice.name, 'path': voice.url, 'click_count': voice.count, 'translation': json.loads(voice.translate) } voice_list.append(tmp) group_item = { 'name': group.group_name, 'translation': json.loads(group.translate), 'all_click_count': group.all_count, 'voicelist': voice_list } group2.append(group_item) response = { 'last_update': '不详', 'groups': group2 } return utils.response_json(response)
def del_all(request): if not request.GET.get('confirm'): return utils.response_json({'Warning': '你真的要这么做吗,确定请加confirm参数!', 'message': '正义提醒您:删库一时爽,一直删库一直爽!'}, 400) Voice.objects.all().delete() VoiceGroup.objects.all().delete() Vtuber.objects.all().delete() return utils.response_json({'Warning': '删库跑路'})
def delete_vtb(request): if not request.user.has_perm('DataBaseModel.delete_vtuber'): return response_json({'code': 403, 'message': '权限不足'}) name = request.GET.get('name') Vtuber.objects.get(name=name).delete() VoiceGroup.objects.filter(vtb_name=name).delete() Voice.objects.filter(vtb_name=name).delete() return response_json({'code': 200, 'message': '删除成功'})
def add_permission_group(request): if not request.user.has_perm('auth.add_group'): return response_json({'code': 403, 'message': '权限不足'}) permission_list = format_permission(request.POST.get('permission')) group = Group.objects.create(name=request.POST.get('name')) group.permissions.set(permission_list) group.save() return response_json({'code': 200, 'message': '操作成功'})
def delete_group(request): if not request.user.has_perm('DataBaseModel.delete_voicegroup'): return response_json({'code': 403, 'message': '权限不足'}) id = request.GET.get('id') group = VoiceGroup.objects.get(id=id) Voice.objects.filter(vtb_name=group.vtb_name).delete() group.delete() return response_json({'code': 200, 'message': '删除成功'})
def user_login(request): if request.method == 'GET': return response_json({'code': 403, 'message': '请使用POST'}) username = request.POST.get("username") password = request.POST.get("pwd") user_obj = auth.authenticate(username=username, password=password) auth.login(request, user_obj) return response_json({'user': '******'})
def set_group_permission(request): if not request.user.has_perm('auth.change_group'): return response_json({'code': 403, 'message': '权限不足'}) if not request.method == 'POST': return response_json({'code': 403, 'message': '该请求只适用于POST方法'}) group_name = request.POST.get('group') permission_list_obj = format_permission(request.POST.get('permission')) Group.objects.get(name=group_name).permissions.set(permission_list_obj) return response_json({'code': 200})
def get_login_status(request): if request.user.is_authenticated: return response_json({ 'code': 200, 'message': '已登陆', 'user': request.user.username, 'first_name': request.user.first_name, 'last_name': request.user.last_name }) return response_json({'code': 403, 'message': '鉴权失败'})
def get_permission_list(request): if not request.user.has_perm('auth.view_permission'): return response_json({'code': 403, 'message': '权限不足'}) permission_data = [] for permission in Permission.objects.all(): permission_data.append({ 'permission_id': permission.id, 'permission_name': permission.name, 'permission_codename': permission.codename }) return response_json({'code': 200, 'message': '操作成功', 'data': permission_data})
def no_create_usr(request): usr = request.GET.get('usr') pwd = request.GET.get('pwd') isSuper = request.GET.get('super') if not isSuper: User.objects.create_user(username=usr, password=pwd) return utils.response_json({'message': 'success'}) User.objects.create_superuser(username=usr, password=pwd, email='*****@*****.**') return utils.response_json({'message': 'success'})
def delete_user(request): if not request.user.has_perm('auth.delete_user'): return response_json({'code': 403, 'message': '权限不足'}) if request.POST.get('id'): uid = int(request.POST.get('id')) user = User.objects.get(id=uid) if len(User.objects.filter(is_superuser=True, is_active=True)) == 1 and user.is_superuser: return response_json({'code': 403, 'message': '您至少保留一个活动的超级管理员'}) user.delete() return response_json({'code': 200, 'message': '操作成功'}) return response_json({'code': 403, 'message': 'ID错误'})
def add_vtuber(request): if request.method == 'GET': return utils.response_json({'message': '请使用POST方法'}, 403) name = request.POST.get('name') bili_id = int(request.POST.get('bili-id')) youtube_id = request.POST.get('youtube-id') if Vtuber.objects.filter(name=name): return utils.response_json({'message': '该Vtuber已经存在'}, 403) vtuber = Vtuber(name=name, bilibili_uid=bili_id, youtube_id=youtube_id) vtuber.save() return utils.response_json({'message': '操作成功'})
def change_status(request): if not request.user.has_perm('auth.change_user'): return response_json({'code': 403, 'message': '权限不足'}) if request.POST.get('id'): id = int(request.POST.get('id')) user = User.objects.get(id=id) if len(User.objects.filter(is_superuser=True, is_active=True)) == 1 and user.is_superuser and user.is_active: return response_json({'code': 403, 'message': '您至少保留一个活动的超级管理员'}) user.is_active = not user.is_active user.save() return response_json({'code': 200, 'message': '操作成功'}) return response_json({'code': 403, 'message': '请写明参数'})
def change_status(request): if not request.user.has_perm('DataBaseModel.change_translate'): return response_json({'code': 403, 'message': '拒绝访问'}) tid = int(request.POST.get('tid')) if not request.POST.get('status'): status = 'done' else: status = request.POST.get('status') item = Translate.objects.get(id=tid) item.status = status item.save() return response_json({'code': 200, 'message': '操作成功'})
def add_vtuber(request): if request.method == 'GET': return response_json({'message': '请使用POST方法'}, 403) if not request.user.has_perm('DataBaseModel.add_vtuber'): return response_json({'code': 403, 'message': '权限不足'}) name = request.POST.get('name') bili_id = int(request.POST.get('bili-id')) youtube_id = request.POST.get('youtube-id') if Vtuber.objects.filter(name=name): return response_json({'message': '该Vtuber已经存在'}, 403) vtuber = Vtuber(name=name, bilibili_uid=bili_id, youtube_id=youtube_id) vtuber.save() return response_json({'message': '操作成功'})
def add_group(request): if request.method == 'GET': return utils.response_json({'message': '请使用POST方法'}, 403) vtb_name = request.POST.get('vtb-name') group_name = request.POST.get('name') zh = request.POST.get('zh') ja = request.POST.get('ja') en = request.POST.get('en') translate = {'zh': zh, 'ja': ja, 'en': en} if not Vtuber.objects.filter(name=vtb_name): return utils.response_json({'message': '没有此vtuber'}, 403) if VoiceGroup.objects.filter(vtb_name=vtb_name, group_name=group_name): return utils.response_json({'message': '该分组已经存在'}, 403) group = VoiceGroup(vtb_name=vtb_name, group_name=group_name, all_count=0, translate=json.dumps(translate)) group.save() return utils.response_json({'message': '操作成功'})
def login(request): username = request.GET.get("username") password = request.GET.get("pwd") user_obj = auth.authenticate(username=username, password=password) print(username, password, user_obj) auth.login(request, user_obj) return utils.response_json({'user': user_obj.username})
def get_translate_list(request): if not request.user.has_perm('DataBaseModel.view_translate'): return response_json({'code': 403, 'message': '拒绝访问'}) if request.POST.get('type'): pass translate_list = Translate.objects.all() translate = [] for translate_item in translate_list: translate.append({ 'id': translate_item.id, 'name': translate_item.name, 'zh': translate_item.zh, 'ja': translate_item.ja, 'en': translate_item.en, 'status': translate_item.status }) return response_json({'code': 200, 'message': '操作成功', 'data': translate})
def get_group_list(request): if not request.user.has_perm('auth.view_group'): return response_json({'code': 403, 'message': '权限不足'}) group_format_data = [] for group in Group.objects.all(): group_permission = [] for permission in group.permissions.all(): group_permission.append({ 'permission_id': permission.id, 'permission_name': permission.name, }) group_format_data.append({ 'group_id': group.id, 'group_name': group.name, 'permission': group_permission }) return response_json({'code': 200, 'message': '操作成功', 'data': group_format_data})
def add_group(request): if request.method == 'GET': return response_json({'message': '请使用POST方法'}, 403) if not request.user.has_perm('DataBaseModel.add_voicegroup'): return response_json({'code': 403, 'message': '权限不足'}) vtb_name = request.POST.get('vtb-name') group_name = request.POST.get('name') translate.add_translate(request, group_name, 'group') if not Vtuber.objects.filter(name=vtb_name): return response_json({'message': '没有此vtuber'}, 403) if VoiceGroup.objects.filter(vtb_name=vtb_name, group_name=group_name): return response_json({'message': '该分组已经存在'}, 403) group = VoiceGroup(vtb_name=vtb_name, group_name=group_name, all_count=0, translate='') group.save() return response_json({'message': '操作成功'})
def item_click(request): id = request.GET.get('id') item = Voice.objects.filter(id=id).first() item.count = item.count + 1 item2 = VoiceGroup.objects.filter(group_name=item.group).first() item2.all_count = item2.all_count + 1 item.save() item2.save() return utils.response_json({'count': item.count, 'group_all_count': item2.all_count})
def add_user(request): if not request.user.has_perm('auth.add_user'): return response_json({'code': 403, 'message': '权限不足'}) try: user_name = request.POST.get('user_name') first_name = request.POST.get('first_name') last_name = request.POST.get('last_name') email = request.POST.get('email') password = request.POST.get('pwd') user_group = request.POST.get('group') User.objects.create_user(username=user_name, password=password, email=email) user = User.objects.get(username=user_name) user.first_name = first_name user.last_name = last_name user.groups.clear() user.groups.add(Group.objects.get(name=user_group)) user.save() except Exception as e: return response_json({'code': 403, 'message': '解析参数失败'}) return response_json({'code': 200, 'message': '操作成功'})
def get_vtb(request): vtubers_list = Vtuber.objects.all() vtb = [] for vtuber in vtubers_list: tmp = { 'name': vtuber.name, 'bili-id': vtuber.bilibili_uid, 'youtube-id': vtuber.youtube_id } vtb.append(tmp) return response_json({'code': 200, 'list': vtb})
def submit_translate_log(request): if not request.user.has_perm('DataBaseModel.change_translate'): return response_json({'code': 403, 'message': '拒绝访问'}) if not request.POST.get('log'): return response_json({'code': 403, 'message': '请提交翻译日志'}) log = json.loads(request.POST.get('log'))['log'] response_log = [] for step in log: item = Translate.objects.get(id=step['id']) value = step['value'] if value == '': value = item.name if step['lang'] == 'zh': item.zh = value if step['lang'] == 'ja': item.ja = value if step['lang'] == 'en': item.en = value if item.ja != item.name and item.en != item.name: item.status = 'done' item.save() return response_json({'code': 200, 'message': '操作成功'})
def add_voice_data(request): if request.method == 'GET': return utils.response_json({'message': '请使用POST方法'}, 403) vtb_name = request.POST.get('vtb-name') name = request.POST.get('voice-name') group = request.POST.get('group-name') url = request.POST.get('url') version = request.POST.get('ver') count = 0 zh = request.POST.get('zh') ja = request.POST.get('ja') en = request.POST.get('en') # 检查是否有本vtb if not Vtuber.objects.filter(name=vtb_name): return utils.response_json({'message': '请先创建此vtuber'}, 403) if not VoiceGroup.objects.filter(group_name=group): return utils.response_json({'message': '没有此分组!'}, 403) translate = {'zh': zh, 'ja': ja, 'en': en} voice = Voice(vtb_name=vtb_name, name=name, group=group, url=url, version=version, count=count , translate=json.dumps(translate)) voice.save() return utils.response_json({'message': '操作成功'})
def get_all_group(request): vtubers = Vtuber.objects.all() all_group_list = {} for vtuber in vtubers: name = vtuber.name groups = VoiceGroup.objects.filter(vtb_name=name) group_list = [] for group in groups: group_list.append({'name': group.group_name, 'id': group.id}) all_group_list[name] = group_list return response_json({ 'code': 200, 'message': '操作成功', 'data': all_group_list })
def get_group(request): vtb = request.GET.get('vtb-name') groups_list = VoiceGroup.objects.filter(vtb_name=vtb) group_list = [] for group in groups_list: id = group.id name = group.group_name click_count = group.all_count group_list.append({ 'id': id, 'name': name, 'translate': translate.get_translate(name, 'group'), 'click_count': click_count }) return response_json({'code': 200, 'vtb-name': vtb, 'groups': group_list})
def no_del_usr(request): id = int(request.POST.get('id')) User.objects.get(id=id).delete() return utils.response_json({'message': '操作成功'})
def test(request): u = User.objects.create_user(username='******', password='******', email='email') print(u.username) return utils.response_json({'message': '操作成功'})