예제 #1
0
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})
예제 #2
0
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)
예제 #3
0
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': '删库跑路'})
예제 #4
0
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': '删除成功'})
예제 #5
0
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': '操作成功'})
예제 #6
0
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': '删除成功'})
예제 #7
0
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': '******'})
예제 #8
0
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})
예제 #9
0
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': '鉴权失败'})
예제 #10
0
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})
예제 #11
0
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'})
예제 #12
0
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错误'})
예제 #13
0
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': '操作成功'})
예제 #14
0
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': '请写明参数'})
예제 #15
0
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': '操作成功'})
예제 #16
0
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': '操作成功'})
예제 #17
0
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': '操作成功'})
예제 #18
0
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})
예제 #19
0
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})
예제 #20
0
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})
예제 #21
0
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': '操作成功'})
예제 #22
0
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})
예제 #23
0
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': '操作成功'})
예제 #24
0
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})
예제 #25
0
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': '操作成功'})
예제 #26
0
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': '操作成功'})
예제 #27
0
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
    })
예제 #28
0
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})
예제 #29
0
def no_del_usr(request):
    id = int(request.POST.get('id'))
    User.objects.get(id=id).delete()
    return utils.response_json({'message': '操作成功'})
예제 #30
0
def test(request):
    u = User.objects.create_user(username='******',
                                 password='******',
                                 email='email')
    print(u.username)
    return utils.response_json({'message': '操作成功'})