From b0fb8455d4f71127557fb43a1e5b69ca3dd3c704 Mon Sep 17 00:00:00 2001 From: ngfchl Date: Sat, 17 Sep 2022 15:03:24 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=A7=E7=BB=AD=E6=B5=8B=E8=AF=95=E4=BB=BB?= =?UTF-8?q?=E5=8A=A1=E7=AE=A1=E7=90=86=E5=99=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- auto_pt/urls.py | 2 + auto_pt/views.py | 40 +++++++++++++- ptools/settings.py | 2 +- templates/auto_pt/downloading.html | 86 ++++++++++++++++++++++++++++++ 4 files changed, 127 insertions(+), 3 deletions(-) create mode 100644 templates/auto_pt/downloading.html diff --git a/auto_pt/urls.py b/auto_pt/urls.py index f26eb8e..4d10e61 100644 --- a/auto_pt/urls.py +++ b/auto_pt/urls.py @@ -12,5 +12,7 @@ urlpatterns = [ path(r'do_restart', views.do_restart, name='do_restart'), path(r'do_update', views.do_update, name='do_update'), path(r'import_from_ptpp', views.import_from_ptpp, name='import_from_ptpp'), + path(r'page_downloading', views.page_downloading, name='page_downloading'), + path(r'downloading', views.get_downloading, name='downloading'), path(r'do_sql', views.do_sql, name='do_sql'), ] diff --git a/auto_pt/views.py b/auto_pt/views.py index 01f1024..c21040f 100644 --- a/auto_pt/views.py +++ b/auto_pt/views.py @@ -5,11 +5,12 @@ from datetime import datetime import docker import git +import qbittorrentapi from django.http import JsonResponse from django.shortcuts import render from pt_site import views as tasks -from pt_site.models import SiteStatus, MySite, Site +from pt_site.models import SiteStatus, MySite, Site, Downloader from pt_site.views import scheduler, pt_spider from ptools.base import CommonResponse, StatusCodeEnum @@ -81,6 +82,41 @@ def do_sql(request): return JsonResponse('ok', safe=False) +def page_downloading(request): + return render(request, 'auto_pt/downloading.html') + + +def get_downloading(request): + downloader_list = Downloader.objects.all() + tasks = [] + for downloader in downloader_list: + qb_client = qbittorrentapi.Client(host=downloader.host, + port=downloader.port, + username=downloader.username, + password=downloader.password) + try: + qb_client.auth_log_in() + t_list = qb_client.torrents_info() + print(len(t_list)) + torrents = [] + for torrent in t_list: + # torrent.to_dict() + torrents.append(dict(torrent)) + tasks.append({ + 'downloader': { + 'name': downloader.name, + 'host': 'http://{}:{}'.format(downloader.host, downloader.port) + }, + 'torrents': torrents, + # 'torrents': t_list, + }) + except Exception as e: + print(e) + continue + print(tasks) + return JsonResponse(CommonResponse.success(data=json.dumps(tasks)).to_dict(), safe=False) + + def import_from_ptpp(request): if request.method == 'GET': return render(request, 'auto_pt/import_ptpp.html') @@ -116,7 +152,7 @@ def import_from_ptpp(request): 'msg': message, 'tag': 'warning' }) - raise + # raise return JsonResponse(CommonResponse.success(data={ 'messages': message_list }).to_dict(), safe=False) diff --git a/ptools/settings.py b/ptools/settings.py index e78a7e4..d04adb0 100644 --- a/ptools/settings.py +++ b/ptools/settings.py @@ -201,7 +201,7 @@ SIMPLEUI_CONFIG = { 'models': [{ 'name': '任务管理', 'icon': 'fa fa-user', - 'url': '/downloader/downloading/index' + 'url': '/tasks/page_downloading' }, { 'name': '查询种子', 'icon': 'fa fa-user', diff --git a/templates/auto_pt/downloading.html b/templates/auto_pt/downloading.html new file mode 100644 index 0000000..865484a --- /dev/null +++ b/templates/auto_pt/downloading.html @@ -0,0 +1,86 @@ +{% load static %} + + + + + 任务管理 + {% include 'admin/includes/css-part.html' %} + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + +
+ +{% include 'admin/includes/js-part.html' %} + + + + \ No newline at end of file