From 99ce67558ec09edd0bcfbd103ce8929c770b07af Mon Sep 17 00:00:00 2001 From: ngfchl Date: Tue, 27 Dec 2022 22:25:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9E=E7=8E=B0=E6=88=91=E7=9A=84=E7=AB=99?= =?UTF-8?q?=E7=82=B9=E4=BF=A1=E6=81=AF=E7=9A=84=E5=A2=9E=E5=88=A0=E6=94=B9?= =?UTF-8?q?=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- auto_pt/urls.py | 4 +- auto_pt/views.py | 88 +++++++++++- static/js/utils.js | 9 +- templates/auto_pt/status.html | 260 ++++++++++++++++++++++++++++++---- 4 files changed, 327 insertions(+), 34 deletions(-) diff --git a/auto_pt/urls.py b/auto_pt/urls.py index dca4a7b..713348f 100644 --- a/auto_pt/urls.py +++ b/auto_pt/urls.py @@ -26,13 +26,15 @@ urlpatterns = [ path(r'site_data_api', views.site_data_api, name='site_data_api'), path(r'sign_in_api', views.sign_in_api, name='sign_in_api'), path(r'update_site_api', views.update_site_api, name='update_site_api'), - path(r'edit_site_api', views.edit_site_api, name='edit_site_api'), + path(r'remove_my_site', views.remove_my_site, name='remove_my_site'), path(r'show_sign_api', views.show_sign_api, name='show_sign_api'), path(r'site_sort_api', views.site_sort_api, name='site_sort_api'), path(r'get_log_list', views.get_log_list, name='get_log_list'), path(r'show_log_list', views.show_log_list, name='show_log_list'), path(r'get_log_content', views.get_log_content, name='get_log_content'), path(r'remove_log_api', views.remove_log_api, name='remove_log_api'), + path(r'get_site_list', views.get_site_list, name='get_site_list'), + path(r'edit_my_site', views.edit_my_site, name='edit_my_site'), path(r'get_helper_license', views.get_helper_license, name='get_helper_license'), path(r'downloading_status', views.downloading_status, name='downloading_status'), path(r'do_sql', views.do_sql, name='do_sql'), diff --git a/auto_pt/views.py b/auto_pt/views.py index 12c4d97..5a63d82 100644 --- a/auto_pt/views.py +++ b/auto_pt/views.py @@ -532,7 +532,7 @@ def site_status_api(request): logger.info(f'P龄:{round(p_years, 4)}年') for my_site in my_site_list: site_info_list = my_site.sitestatus_set.order_by('-pk').all() - logger.info(f'{my_site.site.name}: {len(site_info_list)}') + # logger.info(f'{my_site.site.name}: {len(site_info_list)}') sign_in_support = my_site.site.sign_in_support and my_site.sign_in if len(site_info_list) <= 0: logger.info(f'{my_site.site.name}: 获取站点信息列表错误!') @@ -893,12 +893,6 @@ def update_site_api(request): ).to_dict(), safe=False) -def edit_site_api(request): - return JsonResponse(data=CommonResponse.success( - msg='ok' - ).to_dict(), safe=False) - - def show_sign_api(request): try: my_site_id = request.GET.get('id') @@ -1014,3 +1008,83 @@ def get_helper_license(request): return JsonResponse(data=CommonResponse.error( msg='License更新失败!' ).to_dict(), safe=False) + + +def get_site_list(request): + site_id = request.GET.get('id') + logger.info(site_id) + if int(site_id) == 0: + site_list = [site for site in Site.objects.all().order_by('id').values('id', 'name') if + MySite.objects.filter(site=site.get('id')).count() < 1] + return JsonResponse(CommonResponse.success(data={ + 'site_list': site_list + }).to_dict(), safe=False) + else: + site_list = Site.objects.filter(id=site_id).order_by('id').values('id', 'name') + logger.info(site_list) + return JsonResponse(CommonResponse.success(data={ + 'site_list': list(site_list) + }).to_dict(), safe=False) + + +def edit_my_site(request): + if request.method == 'POST': + my_site_params = json.loads(request.body) + my_site_id = my_site_params.get('id') + site_id = my_site_params.get('site') + site = Site.objects.get(id=site_id) + my_site_params['site'] = site + logger.info(my_site_params) + if my_site_id == 0: + del my_site_params['id'] + my_site = MySite.objects.create(**my_site_params) + return JsonResponse(CommonResponse.success(msg=f'{my_site.site.name} 信息添加成功!').to_dict(), safe=False) + else: + + my_site_list = MySite.objects.filter(site_id=site_id) + if len(my_site_list) <= 0: + my_site_res = MySite.objects.update_or_create(id=my_site_id, defaults=my_site_params) + logger.info(my_site_res) + return JsonResponse(CommonResponse.success( + msg=f'{my_site_res[0].site.name} 信息更新成功!' + ).to_dict(), safe=False) + return JsonResponse(data=CommonResponse.error( + msg=f'{my_site_list.first().site.name} 站点信息已存在,请勿重复添加!' + ).to_dict(), safe=False) + else: + my_site_id = request.GET.get('id') + my_site_list = MySite.objects.filter(id=my_site_id) + if len(my_site_list) == 1: + my_site = my_site_list.values( + 'id', 'site', 'sign_in', 'hr', 'search', 'user_id', 'passkey', 'user_agent', 'cookie', 'time_join' + ).first() + return JsonResponse(CommonResponse.success(data={ + 'my_site': my_site + }).to_dict(), safe=False) + return JsonResponse(data=CommonResponse.error( + msg='参数有误,请确认后重试!!' + ).to_dict(), safe=False) + + +def remove_my_site(request): + my_site_id = request.GET.get('id') + my_site_list = MySite.objects.filter(id=my_site_id) + if len(my_site_list) == 1: + try: + my_site = my_site_list.first().delete() + logger.info(my_site) + if my_site[0] == 1: + return JsonResponse(data=CommonResponse.success( + msg='站点信息删除成功!' + ).to_dict(), safe=False) + return JsonResponse(data=CommonResponse.error( + msg='参数有误,请确认后重试!!' + ).to_dict(), safe=False) + except: + logger.info(traceback.format_exc(3)) + return JsonResponse(data=CommonResponse.error( + msg='参数有误,请确认后重试!!' + ).to_dict(), safe=False) + return JsonResponse(data=CommonResponse.error( + msg='参数有误,请确认后重试!!' + ).to_dict(), safe=False) diff --git a/static/js/utils.js b/static/js/utils.js index 1862917..1bbe761 100644 --- a/static/js/utils.js +++ b/static/js/utils.js @@ -7,7 +7,7 @@ function renderSize(value) { var srcsize = parseFloat(value); index = Math.floor(Math.log(srcsize) / Math.log(1024)); var size = srcsize / Math.pow(1024, index); - size = size.toFixed(3);//保留的小数位数 + size = size.toFixed(2);//保留的小数位数 return size + ' ' + unitArr[index]; } @@ -16,10 +16,17 @@ function shuffle() { } function numberFormat(value) { + if (('' + value).toLowerCase() == 'infinity') { + return value + } + // if (!isNaN(parseFloat(value))) { + // return value + // } let param = {} let k = 10000 let sizes = ['', 'W', 'E'] let i + if (value < k) { param.value = value param.unit = '' diff --git a/templates/auto_pt/status.html b/templates/auto_pt/status.html index 236b072..6fe076c 100644 --- a/templates/auto_pt/status.html +++ b/templates/auto_pt/status.html @@ -17,7 +17,11 @@ .site-logo:hover { cursor: pointer; transform: scale(1.5); - transition: all 0.6s; + transition: all 0.2s; + text-underline: #000b16; + color: orange; + margin-top: -25px; + } .info-card { @@ -82,7 +86,7 @@ - 添加 + 添加 #} {#
#} {# #} -

数据汇总

+

+ 数据汇总 + +

+ {#
#} {# #} @@ -207,17 +216,26 @@
-
- +
+ + + + +
- - {} - + + +
- +
@@ -282,10 +300,11 @@
保种分享: - + v-text="renderSize(site.seeding_size)"> + | + {# #} + v-text="numberFormat((site.uploaded / site.downloaded).toFixed(2))">

@@ -313,7 +332,7 @@ style="color: darkorange" title="魔力/积分">

@@ -419,6 +438,77 @@
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
{% include 'admin/includes/js-part.html' %} @@ -450,6 +540,35 @@ dataLength: -7, showSignList: false, signInList: [], + showAddMySite: false, + site_list: [], + addMySiteForm: { + id: 0, + site: 0, + sign_in: true, + hr: false, + search: true, + user_id: '', + passkey: '', + time_join: '2023-01-01 12:00:00', + user_agent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/107.0.0.0 Safari/537.36 Edg/107.0.1418.52', + cookie: '' + }, + addMySiteFormRules: { + site: [ + {required: true, message: '请选择要添加的站点', trigger: 'change'}, + ], + user_id: [ + {required: true, message: '请输入数字UID,指定站点请输入用户名', trigger: 'blur'}, + ], + passkey: [ + {required: true, message: '请输入Passkey', trigger: 'blur'}, + {min: 16, max: 32, message: '长度为32位', trigger: 'blur'} + ], + cookie: [ + {required: true, message: '请输入站点Cookies,与UA搭配使用效果更佳', trigger: 'change'} + ] + } } }, beforeMount() { @@ -595,17 +714,15 @@ }, editSite(id) { axios.get( - "{% url 'edit_site_api' %}" + '?id=' + id + "{% url 'edit_my_site' %}" + '?id=' + id ).then(res => { console.log('获取数据列表成功', res.data.data) {#let data = res.data#} {#console.log(typeof res.data.data)#} if (res.data.code === 0) { - this.getData() - this.$message({ - type: 'success', - message: res.data.data.msg - }); + this.addMySiteForm = res.data.data.my_site + this.getSiteList(this.addMySiteForm.site) + this.showAddMySite = true } else { this.$message({ type: 'warning', @@ -620,6 +737,35 @@ }); }) }, + removeMySite(id) { + axios.get( + "{% url 'remove_my_site' %}" + '?id=' + id + ).then(res => { + console.log('获取数据列表成功', res.data.data) + {#let data = res.data#} + {#console.log(typeof res.data.data)#} + if (res.data.code === 0) { + this.addMySiteForm = {} + this.getData() + this.showAddMySite = false + this.$message({ + type: 'success', + message: res.data.msg + }); + } else { + this.$message({ + type: 'warning', + message: res.data.msg + }); + } + }).catch(res => { + console.log('删除失败', res) + this.$message({ + type: 'warning', + message: '删除失败!' + res + }); + }) + }, showHistoryList(id) { if (!id) { id = 0 @@ -651,11 +797,75 @@ }); }) }, - addSite() { - this.$message({ - type: 'warning', - message: '开发中,敬请期待!' + getSiteList(id) { + axios.get( + "{% url 'get_site_list' %}" + '?id=' + id + ).then(res => { + console.log('获取数据列表成功', res.data) + {#console.log(typeof res.data.data)#} + if (res.data.code === 0) { + {#this.ptData = res.data.data#} + this.site_list = res.data.data.site_list + } else { + this.$message({ + type: 'warning', + message: res.data.msg + }); + } + }).catch(res => { + console.log('获取数据列表失败', res) + this.$message({ + type: 'warning', + message: '获取数据列表失败!' + res + }); + }) + }, + editMySite(formName) { + this.$refs[formName].validate((valid) => { + if (valid) { + const options = { + method: 'POST', + headers: {'content-type': 'application/json;charset=utf-8'}, + data: this.addMySiteForm, + url: "{% url 'edit_my_site' %}" + } + + axios(options).then(res => { + console.log('获取数据列表成功', res.data) + {#console.log(typeof res.data.data)#} + if (res.data.code === 0) { + {#this.ptData = res.data.data#} + {#this.site_list = res.data.data.site_list#} + this.addMySiteForm = {} + this.showAddMySite = false + this.getData() + this.$message({ + type: 'success', + message: res.data.msg + }); + } else { + this.$message({ + type: 'warning', + message: res.data.msg + }); + } + }).catch(res => { + console.log('获取数据列表失败', res) + this.$message({ + type: 'warning', + message: '获取数据列表失败!' + res + }); + }) + } else { + this.$message({ + type: 'warning', + message: '数据验证失败!请认真填写' + }); + return false; + } }); + + }, showAllIncrementHistory($event) { console.log($event)