From 42430ea111a1e72eff81bf9fa2282160d9b05dce Mon Sep 17 00:00:00 2001 From: han0 Date: Thu, 23 Feb 2023 15:25:13 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=20get=5Ftime/get=5Ff?= =?UTF-8?q?ile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- nc_http/core/request/func.py | 66 ++++++++++++++++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/nc_http/core/request/func.py b/nc_http/core/request/func.py index e5f99bd..3b6ca69 100644 --- a/nc_http/core/request/func.py +++ b/nc_http/core/request/func.py @@ -1,5 +1,7 @@ import json import zlib +from datetime import datetime +from time import mktime from flask import request, g @@ -70,3 +72,67 @@ def get_client_ip(request): ips = x_forwarded_for.split(',') return ips[0].strip() return request.headers.get('X-Real-Ip', request.remote_addr) + + +def get_time(data, is_datetime=False): + if data: + if isinstance(data, int): + return data + + if isinstance(data, datetime): + return int(mktime(data.timetuple())) + + _data = None + if data.isdigit(): + _data = int(data) + if is_datetime: + _data = datetime.fromtimestamp(_data) + else: + if data.count('-') == 2: + date_format = '%Y-%m-%d' + elif data.count('-') == 1: + date_format = '%Y-%m' + elif data.count('/') == 2: + date_format = '%Y/%m/%d' + + else: + date_format = '' + + if data.count(':') == 2: + time_format = '%H:%M:%S' + elif data.count(':') == 1: + time_format = '%H:%M' + else: + time_format = '' + + if date_format or time_format: + if ' ' in data: + datetime_format = '{} {}'.format(date_format, time_format) + else: + datetime_format = '{}{}'.format(date_format, time_format) + + _data = datetime.strptime(data, datetime_format) + if is_datetime is False: + _data = int(mktime(_data.timetuple())) + else: + if is_datetime: + return None + return 0 + else: + if is_datetime: + return None + return 0 + + return _data + + +def get_file(): + file_handler = None + for key in request.files: + f = request.files[key] + file_handler = f + break + if not file_handler: + return None + + return file_handler