diff --git a/auto_pt/urls.py b/auto_pt/urls.py index 4d10e61..199c723 100644 --- a/auto_pt/urls.py +++ b/auto_pt/urls.py @@ -13,6 +13,7 @@ urlpatterns = [ 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'get_downloader', views.get_downloader, name='get_downloader'), 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 c21040f..7cab239 100644 --- a/auto_pt/views.py +++ b/auto_pt/views.py @@ -86,35 +86,35 @@ def page_downloading(request): return render(request, 'auto_pt/downloading.html') +def get_downloader(request): + downloader_list = Downloader.objects.values('id', 'name', 'host') + return JsonResponse(CommonResponse.success(data=list(downloader_list)).to_dict(), safe=False) + + 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) + id = request.GET.get('id') + print(id) + downloader = Downloader.objects.filter(id=id).first() + + 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)) + print(torrents) + return JsonResponse(CommonResponse.success(data=torrents).to_dict(), safe=False) + except Exception as e: + print(e) + return JsonResponse(CommonResponse.error( + msg='连接下载器出错咯!' + ).to_dict(), safe=False) def import_from_ptpp(request): diff --git a/templates/auto_pt/downloading.html b/templates/auto_pt/downloading.html index 865484a..93ba3f9 100644 --- a/templates/auto_pt/downloading.html +++ b/templates/auto_pt/downloading.html @@ -10,46 +10,71 @@