From 68ba21fa009b9e52ba9f55b05a45160a101bc12a Mon Sep 17 00:00:00 2001 From: ngfchl Date: Tue, 3 Jan 2023 18:21:14 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8D=87=E7=BA=A7=20=E4=BF=AE=E6=94=B9ptools.y?= =?UTF-8?q?aml=E4=B8=BAptools.toml=E6=96=87=E4=BB=B6=EF=BC=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E7=BD=91=E9=A1=B5=E7=BC=96=E8=BE=91=E9=A1=B5=E9=9D=A2?= =?UTF-8?q?=EF=BC=8C=E8=A7=A3=E5=86=B3=E7=BC=A9=E8=BF=9B=E5=AE=B9=E6=98=93?= =?UTF-8?q?=E5=87=BA=E9=94=99=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- auto_pt/urls.py | 4 +- auto_pt/views.py | 63 +++++++++++++------ ptools/settings.py | 12 ++-- templates/auto_pt/settings.html | 104 +++++++++++++++++++++++++++++--- templates/auto_pt/showlog.html | 1 - 5 files changed, 149 insertions(+), 35 deletions(-) diff --git a/auto_pt/urls.py b/auto_pt/urls.py index 429ea14..b00f810 100644 --- a/auto_pt/urls.py +++ b/auto_pt/urls.py @@ -33,7 +33,9 @@ urlpatterns = [ path(r'show_log_list', views.show_log_list, name='show_log_list'), path(r'get_log_content', views.get_log_content, name='get_log_content'), path(r'download_log_file', views.download_log_file, name='download_log_file'), - path(r'get_config_setting', views.get_config_setting, name='get_config_setting'), + path(r'get_config_html', views.get_config_html, name='get_config_html'), + path(r'get_config_api', views.get_config_api, name='get_config_api'), + path(r'save_config_api', views.save_config_api, name='save_config_api'), path(r'remove_log_api', views.remove_log_api, name='remove_log_api'), path(r'get_site_list', views.get_site_list, name='get_site_list'), path(r'edit_my_site', views.edit_my_site, name='edit_my_site'), diff --git a/auto_pt/views.py b/auto_pt/views.py index 39831a9..eac794c 100644 --- a/auto_pt/views.py +++ b/auto_pt/views.py @@ -9,10 +9,11 @@ from datetime import datetime, timedelta import docker import git import qbittorrentapi +import toml import transmission_rpc import yaml from django.contrib.auth.decorators import login_required -from django.http import JsonResponse, FileResponse +from django.http import JsonResponse, FileResponse, HttpResponse, Http404 from django.shortcuts import render from pt_site.UtilityTool import MessageTemplate, FileSizeConvert @@ -1096,23 +1097,49 @@ def get_site_torrents(request): ).to_dict(), safe=False) -def get_config_setting(request): - file_path = os.path.join(BASE_DIR, 'db/ptools.yaml') +def get_config_api(request): + file_path = os.path.join(BASE_DIR, 'db/ptools.toml') + yaml_file_path = os.path.join(BASE_DIR, 'db/ptools.yaml') if not os.path.exists(file_path): - with open(file_path, 'r') as f: - f.write() + data = '' + if os.path.exists(yaml_file_path): + with open('db/ptools.yaml', 'r') as yaml_file: + data = yaml.load(yaml_file, Loader=yaml.FullLoader) + logger.info(f'原始文档{data}') + with open(file_path, 'w') as toml_f: + toml_f.write('') + toml.dump(data, toml_f) + logger.info(f'配置文件生成成功!') try: - with open(file_path, 'r') as f: - data = yaml.load(f, Loader=yaml.FullLoader) - print(data) - - with open(file_path, 'r') as f: - logs = f.readlines() - logger.info(f'日志行数:{len(logs)}') - return render(request, 'auto_pt/settings.html', context={ - 'config': logs - }) + with open(file_path, 'rb') as f: + response = HttpResponse(f) + logger.info(response) + return JsonResponse(data=CommonResponse.success( + data=response.content.decode('utf8') + ).to_dict(), safe=False) except Exception as e: - return render(request, 'auto_pt/settings.html', context={ - 'config': f'{e}' - }) + raise + return JsonResponse(data=CommonResponse.error( + msg='获取配置文件信息失败!' + ).to_dict(), safe=False) + + +def get_config_html(request): + return render(request, 'auto_pt/settings.html') + + +def save_config_api(request): + file_path = os.path.join(BASE_DIR, 'db/ptools.toml') + content = json.loads(request.body.decode()) + logger.info(content.get('settings')) + try: + with open(file_path, 'w') as f: + f.write(content.get('settings')) + return JsonResponse(data=CommonResponse.success( + msg='配置文件保存成功!' + ).to_dict(), safe=False) + except Exception as e: + raise + return JsonResponse(data=CommonResponse.error( + msg='获取配置文件信息失败!' + ).to_dict(), safe=False) diff --git a/ptools/settings.py b/ptools/settings.py index 44af1d0..9fdccf0 100644 --- a/ptools/settings.py +++ b/ptools/settings.py @@ -279,19 +279,19 @@ SIMPLEUI_CONFIG = { 'name': '站点导入', 'icon': 'fas fa-file-import', 'url': '/tasks/import_from_ptpp' - }, { - 'name': '日志查看', - 'icon': 'fab fa-blogger', - 'url': '/tasks/show_log_list' }, ] }, { 'app': 'update', 'name': '系统配置', 'icon': 'fas fa-cog', 'models': [{ - 'name': '修改配置', + 'name': '配置项', 'icon': 'fas fa-edit', - 'url': '/tasks/get_config_setting' + 'url': '/tasks/get_config_html' + }, { + 'name': '日志查看', + 'icon': 'fab fa-blogger', + 'url': '/tasks/show_log_list' }, ] }] } diff --git a/templates/auto_pt/settings.html b/templates/auto_pt/settings.html index 52c2390..8524c44 100644 --- a/templates/auto_pt/settings.html +++ b/templates/auto_pt/settings.html @@ -8,33 +8,119 @@ Title {% include 'admin/includes/css-part.html' %} -
- +
+
+ + 保存 + +
+ +
+ +
+
{% include 'admin/includes/js-part.html' %} diff --git a/templates/auto_pt/showlog.html b/templates/auto_pt/showlog.html index b60629a..d80765d 100644 --- a/templates/auto_pt/showlog.html +++ b/templates/auto_pt/showlog.html @@ -151,7 +151,6 @@ method: "get", headers: { "content-type": "application/json", // 默认值 - Authorization: "Bearer " + sessionStorage.getItem("access_token"), }, url: "{% url 'download_log_file' %}" + '?name=' + this.log, responseType: "blob",