From cf4a40b96031042253ba24b73c7b75da861707b5 Mon Sep 17 00:00:00 2001 From: caoqianming Date: Sun, 6 Aug 2023 23:28:43 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20=E6=B8=85=E7=90=86=E9=94=99=E8=AF=AF?= =?UTF-8?q?=E5=AE=9A=E6=97=B6=E7=AD=96=E7=95=A5=E5=B9=B6=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E7=94=9F=E6=88=90cron=E6=96=87=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- requirements.txt | Bin 2190 -> 2268 bytes safesite/services.py | 42 +++++++++++++++++++++++++ safesite/templates/schedulesetadd.html | 6 ++-- safesite/views.py | 15 +++++++-- 4 files changed, 58 insertions(+), 5 deletions(-) create mode 100644 safesite/services.py diff --git a/requirements.txt b/requirements.txt index 60d44ddc80f32294eabe6f850c6f06246075eef5..bc854d1ec7096b5ed25c81011d7e1c66e59aac2e 100644 GIT binary patch delta 111 zcmeAZydyZ_8ml3L9)sb;+dCPJCSPO}pS*@qh0$p9MaI2se#s0)4EYRs4Dk#p45dftP^`EDutj2~?4aroxZ`0Cy@FEdT%j delta 32 ocmca3*e5vQ8mke59)tPB+dCPJCtqX~pS*@qh0$d5MaI2s0KHZVMF0Q* diff --git a/safesite/services.py b/safesite/services.py new file mode 100644 index 00000000..c58f7c28 --- /dev/null +++ b/safesite/services.py @@ -0,0 +1,42 @@ +import locale +from croniter import croniter +from cron_descriptor import get_description +from safesite.models import MySchedule, GridTaskSet, PeriodicTask +period_dict = { + "days": "天", + "hours": "小时", + "minutes": "分钟", + "seconds": "秒", + "microseconds": "毫秒" + } +def get_chinese_description(type:str = 'interval', data: dict = {}): + """转换为汉语描述 + """ + if type == 'interval': + return f"每隔{data['every']}{period_dict[data['period']]}" + elif type == 'crontab': + exp = f"{data['minute']} {data['hour']} {data['day_of_month']} {data['month_of_year']} {data['day_of_week']}" + try: + croniter(exp) + except ValueError: + return '' + locale.setlocale(locale.LC_ALL, 'zh_CN.UTF-8') + return get_description(exp) + return '' + +def correct_myschedule(): + qs = MySchedule.objects.all() + for ind, item in enumerate(qs): + typeset = item.typeset + if typeset == 'interval': + interval = item.interval + item.name = get_chinese_description(typeset, {'every': interval.every, 'period': interval.period}) + item.save() + elif typeset == 'crontab': + crontab = item.crontab + item.name = get_chinese_description(typeset, + {"minute": crontab.minute, "hour": crontab.hour, "day_of_month": crontab.day_of_month, + "month_of_year": crontab.month_of_year, "day_of_week": crontab.day_of_week}) + if item.name == '': + crontab.delete() + item.delete() \ No newline at end of file diff --git a/safesite/templates/schedulesetadd.html b/safesite/templates/schedulesetadd.html index da0d11c3..0dbb894b 100644 --- a/safesite/templates/schedulesetadd.html +++ b/safesite/templates/schedulesetadd.html @@ -7,11 +7,11 @@
-
+ {% comment %}
-
+
{% endcomment %}