初步完成站点历史数据图表生成,需要优化

This commit is contained in:
ngfchl
2022-12-03 22:07:43 +08:00
parent 845cf24fb9
commit 7b7a0d3da6
3 changed files with 596 additions and 412 deletions

View File

@@ -23,6 +23,7 @@ urlpatterns = [
path(r'get_torrent_info_list', views.get_torrent_info_list, name='get_torrent_info_list'),
path(r'site_status_api', views.site_status_api, name='site_status_api'),
path(r'site_status', views.site_status, name='site_status'),
path(r'site_data_api', views.site_data_api, name='site_data_api'),
path(r'downloading_status', views.downloading_status, name='downloading_status'),
path(r'do_sql', views.do_sql, name='do_sql'),
]

View File

@@ -601,6 +601,7 @@ def get_status(ids: list = None):
weeks = (now - my_site.time_join).days // 7
days = (now - my_site.time_join).days % 7
site_info = {
'id': my_site.id,
'name': my_site.site.name,
'icon': my_site.site.logo,
'url': my_site.site.url,
@@ -608,7 +609,7 @@ def get_status(ids: list = None):
'invite': my_site.invitation,
'sp_hour': my_site.sp_hour,
'sp_hour_full': '{:.2%}'.format(
float(my_site.sp_hour) / my_site.site.sp_full) if my_site.site.sp_full != 0 else 0,
float(my_site.sp_hour) / my_site.site.sp_full) if my_site.site.sp_full != 0 else '0%',
'seeding': my_site.seed,
'leeching': my_site.leech,
'weeks': f'{weeks}{days}',
@@ -623,11 +624,12 @@ def get_status(ids: list = None):
'uploaded': site_info.uploaded,
'downloaded': site_info.downloaded,
'seeding_size': site_info.seed_vol,
'last_active': datetime.strftime(site_info.updated_at, '%Y年%m月%d%H:%M:%S'),
}
status_list.append(site_info)
# 按上传量排序
# status_list.sort(key=lambda x: x['mail'], reverse=False)
# status_list.sort(key=lambda x: x['mail'], reverse=True)
status_list.sort(key=lambda x: (x['mail'], x['uploaded']), reverse=True)
# sorted(status_list, key=lambda x: x['uploaded'])
# 随机乱序
# random.shuffle(status_list)
@@ -653,7 +655,40 @@ def site_status(request):
return render(request, 'auto_pt/status.html')
def user_data(request):
my_site_list = MySite.objects.all()
return render(request, 'auto_pt/userdata.html')
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()
if not my_site:
return JsonResponse(data=CommonResponse.error(
msg='访问出错咯!'
).to_dict(), safe=False)
site_info_list = my_site.sitestatus_set.order_by('pk').all()
site_status_list = []
site = {
'id': my_site.id,
'name': my_site.site.name,
'icon': my_site.site.logo,
'url': my_site.site.url,
'class': my_site.my_level,
'seeding': my_site.seed,
'leeching': my_site.leech,
'last_active': datetime.strftime(my_site.updated_at, '%Y年%m月%d%H:%M:%S'),
}
for site_info in site_info_list:
my_site_status = {
'uploaded': site_info.uploaded,
'downloaded': site_info.downloaded,
'ratio': site_info.ratio,
'seedingSize': site_info.seed_vol,
'sp': site_info.my_sp,
'bonus': site_info.my_bonus,
'date': site_info.created_at.date()
}
site_status_list.append(my_site_status)
return JsonResponse(data=CommonResponse.success(
data={
'site': site,
'site_status_list': site_status_list
}
).to_dict(), safe=False)

File diff suppressed because it is too large Load Diff