From 9840a1ae5808706a0fb32b724fe518785d87a30a Mon Sep 17 00:00:00 2001 From: ngfchl Date: Mon, 5 Dec 2022 09:42:37 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=A1=E7=89=87=E6=8C=89=E9=92=AE=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E7=AB=99=E7=82=B9=E6=9B=B4=E6=96=B0=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- auto_pt/views.py | 38 +++++++++++++++++++++++++++++--- pt_site/UtilityTool.py | 7 +++--- pt_site/admin.py | 6 +++-- templates/auto_pt/status.html | 41 +++++++++++++++++++---------------- 4 files changed, 65 insertions(+), 27 deletions(-) diff --git a/auto_pt/views.py b/auto_pt/views.py index de55916..6b506e1 100644 --- a/auto_pt/views.py +++ b/auto_pt/views.py @@ -14,6 +14,7 @@ from django.contrib.auth.decorators import login_required from django.http import JsonResponse from django.shortcuts import render +from pt_site.UtilityTool import MessageTemplate, FileSizeConvert from pt_site.models import SiteStatus, MySite, Site, Downloader, TorrentInfo from pt_site.views import scheduler, pt_spider from ptools.base import CommonResponse, StatusCodeEnum, DownloaderCategory @@ -721,9 +722,40 @@ def sign_in_api(request): def update_site_api(request): - return JsonResponse(data=CommonResponse.success( - msg='ok' - ).to_dict(), safe=False) + try: + my_site = MySite.objects.filter(id=request.GET.get('id')).first() + res_status = pt_spider.send_status_request(my_site) + message_template = MessageTemplate.status_message_template + if res_status.code == StatusCodeEnum.OK.code: + res = pt_spider.parse_status_html(my_site, res_status.data) + status = res.data[0] + if isinstance(status, SiteStatus): + message = message_template.format( + my_site.site.name, + my_site.my_level, + status.my_sp, + my_site.sp_hour, + status.my_bonus, + status.ratio, + FileSizeConvert.parse_2_file_size(status.seed_vol), + FileSizeConvert.parse_2_file_size(status.uploaded), + FileSizeConvert.parse_2_file_size(status.downloaded), + my_site.seed, + my_site.leech, + my_site.invitation, + my_site.my_hr + ) + return JsonResponse(data=CommonResponse.success( + msg=message + ).to_dict(), safe=False) + return res + else: + return res_status + except Exception as e: + logger.error(f'数据更新失败:{e}') + return JsonResponse(data=CommonResponse.error( + msg=f'数据更新失败:{e}' + ).to_dict(), safe=False) def edit_site_api(request): diff --git a/pt_site/UtilityTool.py b/pt_site/UtilityTool.py index 5114087..5d2c3ef 100644 --- a/pt_site/UtilityTool.py +++ b/pt_site/UtilityTool.py @@ -17,6 +17,7 @@ import opencc import qbittorrentapi import requests import transmission_rpc +import urllib3.util.ssl_ from django.db.models import QuerySet from lxml import etree from pypushdeer import PushDeer @@ -29,8 +30,6 @@ from auto_pt.models import Notify, OCR from pt_site.models import MySite, SignIn, TorrentInfo, SiteStatus, Site from ptools.base import TorrentBaseInfo, PushConfig, CommonResponse, StatusCodeEnum, DownloaderCategory -import urllib3.util.ssl_ - urllib3.util.ssl_.DEFAULT_CIPHERS = 'ALL' @@ -87,7 +86,9 @@ class FileSizeConvert: class MessageTemplate: """消息模板""" - status_message_template = "等级:{} 魔力:{} 时魔:{} 积分:{} 分享率:{} 下载量:{} 上传量:{} 上传数:{} 下载数:{} 邀请:{} H&R:{}\n" + status_message_template = "{} 等级:{} 魔力:{} 时魔:{} 积分:{} 分享率:{} " \ + "做重量:{} 上传量:{} 下载量:{} 上传数:{} 下载数:{} " \ + "邀请:{} H&R:{}\n" class PtSpider: diff --git a/pt_site/admin.py b/pt_site/admin.py index 3e3ecc5..668bcf3 100644 --- a/pt_site/admin.py +++ b/pt_site/admin.py @@ -279,7 +279,7 @@ class MySiteAdmin(AjaxAdmin): # instead of ModelAdmin if obj.sp_hour == '': obj.sp_hour = 0 obj.save() - + def bonus(self, obj: MySite): status_today = obj.sitestatus_set.order_by('-pk').first() return format_html( @@ -564,13 +564,15 @@ class MySiteAdmin(AjaxAdmin): # instead of ModelAdmin # status = my_site.sitestatus_set.filter(created_at__date__gte=datetime.today()).first() # print(status.ratio) message += message_template.format( + my_site.site.name, my_site.my_level, site_status.my_sp, my_site.sp_hour, site_status.my_bonus, site_status.ratio, - FileSizeConvert.parse_2_file_size(site_status.downloaded), + FileSizeConvert.parse_2_file_size(site_status.seed_vol), FileSizeConvert.parse_2_file_size(site_status.uploaded), + FileSizeConvert.parse_2_file_size(site_status.downloaded), my_site.seed, my_site.leech, my_site.invitation, diff --git a/templates/auto_pt/status.html b/templates/auto_pt/status.html index 5c5c0c8..2ad5db4 100644 --- a/templates/auto_pt/status.html +++ b/templates/auto_pt/status.html @@ -258,13 +258,13 @@ } }, - beforeMount() { + beforeMount() { - }, - mounted() { - {#this.chart = this.$refs.charts.chart#} - this.getData() - }, + }, + mounted() { + {#this.chart = this.$refs.charts.chart#} + this.getData() + }, watch: { obj: { option(newValue, oldValue) { @@ -281,7 +281,7 @@ "{% url 'sign_in_api' %}" + '?id=' + id ).then(res => { console.log('获取数据列表成功', res.data) - let data = res.data + {#let data = res.data#} {#console.log(typeof res.data.data)#} if (res.data.code === 0) { this.$message({ @@ -309,13 +309,14 @@ "{% url 'update_site_api' %}" + '?id=' + id ).then(res => { console.log('获取数据列表成功', res.data) - let data = res.data + {#let data = res.data#} {#console.log(typeof res.data.data)#} if (res.data.code === 0) { this.$message({ type: 'success', message: res.data.msg }); + this.getData() } else { this.loading = false this.$message({ @@ -336,13 +337,15 @@ "{% url 'edit_site_api' %}" + '?id=' + id ).then(res => { console.log('获取数据列表成功', res.data) - let data = res.data + {#let data = res.data#} {#console.log(typeof res.data.data)#} if (res.data.code === 0) { this.$message({ type: 'success', message: res.data.msg }); + this.getData() + } else { this.loading = false this.$message({ @@ -377,16 +380,16 @@ this.setLine(data.data) } else { this.loading = false - this.$message({ - type: 'warning', - message: '获取数据列表失败!' - }); - } - }) - //.catch(res => { - //console.log('获取数据列表失败', res) - // this.$message({ - // type: 'warning', + this.$message({ + type: 'warning', + message: '获取数据列表失败!' + }); + } + }) + //.catch(res => { + //console.log('获取数据列表失败', res) + // this.$message({ + // type: 'warning', // message: '获取数据列表失败!' + res //}); //})