完善数据汇总卡片按钮功能,并优化卡片显示内容

This commit is contained in:
ngfchl
2022-12-05 16:24:06 +08:00
parent ee2baad3ae
commit e63f16b983
2 changed files with 67 additions and 51 deletions

View File

@@ -19,6 +19,7 @@ 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
from ptools.settings import BASE_DIR
from pt_site import views as pt_site
logger = logging.getLogger('ptools')
@@ -49,23 +50,23 @@ def add_task(request):
def get_tasks(request):
# print(dir(tasks))
# logger.info(dir(tasks))
data = [key for key in dir(download_tasks) if key.startswith('auto')]
print(data)
# print(tasks.__getattr__)
# print(tasks.auto_get_status.__doc__)
logger.info(data)
# logger.info(tasks.__getattr__)
# logger.info(tasks.auto_get_status.__doc__)
# inspect.getmembers(tasks, inspect.isfunction)
# inspect.getmodule(tasks)
# print(sys.modules[__name__])
# print(sys.modules.values())
# print(sys.modules.keys())
# print(sys.modules.items())
# logger.info(sys.modules[__name__])
# logger.info(sys.modules.values())
# logger.info(sys.modules.keys())
# logger.info(sys.modules.items())
return JsonResponse('ok', safe=False)
def exec_task(request):
# res = AutoPt.auto_sign_in()
# print(res)
# logger.info(res)
# tasks.auto_sign_in
return JsonResponse('ok!', safe=False)
@@ -73,7 +74,7 @@ def exec_task(request):
def test_field(request):
my_site = MySite.objects.get(pk=1)
list1 = SiteStatus.objects.filter(site=my_site, created_at__date__gte=datetime.today())
print(list1)
logger.info(list1)
return JsonResponse('ok!', safe=False)
@@ -81,12 +82,12 @@ def test_notify(request):
# res = NotifyDispatch().send_text(text='66666')
res = pt_spider.send_text('666')
print(res)
logger.info(res)
return JsonResponse(res, safe=False)
def do_sql(request):
print('exit')
logger.info('exit')
return JsonResponse('ok', safe=False)
@@ -131,8 +132,8 @@ def downloading_status(request):
username=downloader.username, password=downloader.password
)
session = transmission_rpc.session.Session(client=client)
print(type(session))
# print(client.get_torrents())
logger.info(type(session))
# logger.info(client.get_torrents())
session_list = client.get_session()
session = {item: value for item, value in session_list.items()}
tr_info = {
@@ -155,7 +156,7 @@ def downloading_status(request):
def get_trackers(request):
"""从已支持的站点获取tracker关键字列表"""
tracker_list = Site.objects.all().values('id', 'name', 'tracker')
# print(tracker_filters)
# logger.info(tracker_filters)
return JsonResponse(CommonResponse.success(data={
'tracker_list': list(tracker_list)
}).to_dict(), safe=False)
@@ -198,8 +199,8 @@ def get_downloading(request):
torrent_list = main_data.get('torrents')
torrents = []
for index, torrent in torrent_list.items():
# print(type(torrent))
# print(torrent)
# logger.info(type(torrent))
# logger.info(torrent)
# torrent = json.loads(torrent)
# 时间处理
# 添加于
@@ -258,7 +259,7 @@ def control_torrent(request):
enable = request.POST.get('enable')
downloader_id = request.POST.get('downloader_id')
logger.info(request.POST)
# print(command, type(ids), downloader_id)
# logger.info(command, type(ids), downloader_id)
downloader = Downloader.objects.filter(id=downloader_id).first()
qb_client = qbittorrentapi.Client(
host=downloader.host,
@@ -297,13 +298,13 @@ def import_from_ptpp(request):
res = pt_spider.parse_ptpp_cookies(data_list)
if res.code == StatusCodeEnum.OK.code:
cookies = res.data
# print(cookies)
# logger.info(cookies)
else:
return JsonResponse(res.to_dict(), safe=False)
message_list = []
for data in cookies:
try:
# print(data)
# logger.info(data)
res = pt_spider.get_uid_and_passkey(data)
msg = res.msg
logger.info(msg)
@@ -512,7 +513,7 @@ def do_restart(request):
logger.info('重启中')
reboot = subprocess.Popen('docker restart {}'.format(cid), shell=True, stdout=subprocess.PIPE, )
# out = reboot.stdout.readline().decode('utf8')
# print(out)
# logger.info(out)
# client.api.inspect_container(cid)
# StartedAt = client.api.inspect_container(cid).get('State').get('StartedAt')
return JsonResponse(data=CommonResponse.error(
@@ -654,7 +655,7 @@ def site_status_api(request):
'bonus': bonus,
'ratio': round(uploaded / downloaded, 3),
'now': datetime.strftime(
SiteStatus.objects.order_by('updated_at').first().updated_at,
SiteStatus.objects.order_by('-updated_at').first().updated_at,
'%Y年%m月%d%H:%M:%S'),
}
# return render(request, 'auto_pt/status.html')
@@ -679,9 +680,15 @@ def site_status(request):
def site_data_api(request):
site_id = request.GET.get('id')
logger.info(f'前端传来的站点ID{site_id}')
my_site = MySite.objects.filter(id=site_id).first()
my_site_id = request.GET.get('id')
logger.info(f'ID{type(my_site_id)}')
if int(my_site_id) == 0:
# pt_site.auto_sign_in()
return JsonResponse(data=CommonResponse.error(
msg='全站数据展示功能还未完成,敬请期待!'
).to_dict(), safe=False)
logger.info(f'前端传来的站点ID{my_site_id}')
my_site = MySite.objects.filter(id=my_site_id).first()
if not my_site:
return JsonResponse(data=CommonResponse.error(
msg='访问出错咯!'
@@ -700,7 +707,6 @@ def site_data_api(request):
'last_active': datetime.strftime(my_site.updated_at, '%Y年%m月%d%H:%M:%S'),
}
for site_info in site_info_list:
print(site_info.ratio != float('inf'))
my_site_status = {
'uploaded': site_info.uploaded,
'downloaded': site_info.downloaded,
@@ -723,7 +729,14 @@ def site_data_api(request):
def sign_in_api(request):
try:
my_site = MySite.objects.filter(id=request.GET.get('id')).first()
my_site_id = request.GET.get('id')
logger.info(f'ID值{type(my_site_id)}')
if int(my_site_id) == 0:
pt_site.auto_sign_in()
return JsonResponse(data=CommonResponse.success(
msg='签到指令已发送,请注意查收推送消息!'
).to_dict(), safe=False)
my_site = MySite.objects.filter(id=my_site_id).first()
sign_state = pt_spider.sign_in(my_site)
if sign_state.code == StatusCodeEnum.OK.code:
return JsonResponse(data=CommonResponse.success(
@@ -733,6 +746,7 @@ def sign_in_api(request):
return sign_state
except Exception as e:
logger.error(f'签到失败:{e}')
logger.error(traceback.format_exc(limit=3))
return JsonResponse(data=CommonResponse.error(
msg=f'签到失败:{e}'
).to_dict(), safe=False)
@@ -740,7 +754,14 @@ def sign_in_api(request):
def update_site_api(request):
try:
my_site = MySite.objects.filter(id=request.GET.get('id')).first()
my_site_id = request.GET.get('id')
logger.info(f'ID值{type(my_site_id)}')
if int(my_site_id) == 0:
pt_site.auto_get_status()
return JsonResponse(data=CommonResponse.success(
msg='更新指令已发送,请注意查收推送消息!'
).to_dict(), safe=False)
my_site = MySite.objects.filter(id=my_site_id).first()
res_status = pt_spider.send_status_request(my_site)
message_template = MessageTemplate.status_message_template
if res_status.code == StatusCodeEnum.OK.code:
@@ -770,6 +791,7 @@ def update_site_api(request):
return res_status
except Exception as e:
logger.error(f'数据更新失败:{e}')
logger.error(traceback.format_exc(limit=3))
return JsonResponse(data=CommonResponse.error(
msg=f'数据更新失败:{e}'
).to_dict(), safe=False)
@@ -783,12 +805,12 @@ def edit_site_api(request):
def get_log_list(request):
path = os.path.join(BASE_DIR, 'db')
print(path)
print(os.listdir(path))
logger.info(path)
logger.info(os.listdir(path))
names = [name for name in os.listdir(path)
if os.path.isfile(os.path.join(path, name)) and name.startswith('logs')]
print(names)
logger.info(names)
return JsonResponse(data=CommonResponse.success(
data={
'path': path,
@@ -802,7 +824,7 @@ def get_log_content(request):
path = os.path.join(BASE_DIR, 'db/' + name)
with open(path, 'r') as f:
logs = f.readlines()
print(logs)
logger.info(logs)
return JsonResponse(data=CommonResponse.success(
data={
'path': path,

View File

@@ -106,12 +106,12 @@
</div>
<div class="text item" style="font-size: 13px;text-align: right;">
<div>
<el-button type="primary" size="mini">
<el-button type="primary" size="mini" @click="signIn(0)">
签到
</el-button>
<el-button type="info" size="mini">更新
<el-button type="info" size="mini" @click="updateSite(0)">更新
</el-button>
<el-button type="success" size="mini">历史
<el-button type="success" size="mini" @click="showHistoryList(0)">历史
</el-button>
</div>
<hr>
@@ -121,7 +121,7 @@
v-text="' ' + renderSize(ptData.total_data.seeding_size)"></i>
<el-divider direction="vertical"></el-divider>
<i class="el-icon-share" style="color: saddlebrown" title="分享率"
v-text="' ' + ptData.total_data.ratio"></i>
v-text="' ' + ptData.total_data.ratio.toFixed(3)"></i>
</div>
<hr>
<div>
@@ -256,7 +256,7 @@
v-text="' ' + numberFormat(site.sp) + ' / ' + numberFormat(site.bonus)"
style="color: darkorange" title="魔力/积分"></i>
<br>
<i class="el-icon-lollipop" v-text="' ' + site.sp_hour + ' / ' + site.sp_hour_full"
<i class="el-icon-lollipop" v-text="' ' + site.sp_hour.toFixed(3) + ' / ' + site.sp_hour_full"
style="color: coral" title="时魔"></i>
</div>
<hr>
@@ -448,33 +448,27 @@
"{% url 'site_data_api' %}" + '?id=' + id
).then(res => {
console.log('获取数据列表成功', res.data)
let data = res.data
if ((typeof res.data) == "string") {
data = JSON.parse(data)
}
{#console.log(typeof res.data.data)#}
if (res.data.code === 0) {
{#this.ptData = res.data.data#}
{#this.ptData = res.data.data#}
{#this.setPie()#}
{#this.setCard()#}
this.setLine(data.data)
this.setLine(res.data.data)
} else {
this.loading = false
this.$message({
type: 'warning',
message: '获取数据列表失败!'
message: res.data.msg
});
}
}).catch(res => {
console.log('获取数据列表失败', res)
this.$message({
type: 'warning',
message: '获取数据列表失败!' + res
});
})
//.catch(res => {
//console.log('获取数据列表失败', res)
// this.$message({
// type: 'warning',
// message: '获取数据列表失败!' + res
//});
//})
},
begInviteMode() {
this.begInvite = !this.begInvite