卡片按钮实现站点更新数据

This commit is contained in:
ngfchl
2022-12-05 09:42:37 +08:00
parent 59afdaec9a
commit 9840a1ae58
4 changed files with 65 additions and 27 deletions

View File

@@ -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):

View File

@@ -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:

View File

@@ -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,

View File

@@ -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
//});
//})