-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathutils.py
More file actions
151 lines (122 loc) · 4.21 KB
/
Copy pathutils.py
File metadata and controls
151 lines (122 loc) · 4.21 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
import datetime
import os
from datetime import datetime, timedelta, timezone
DIR_RESOURCE = f"{os.path.abspath(os.path.join(__file__, os.pardir, os.pardir))}/resource"
time_format_ymdh = "%Y-%m-%dT%H"
HTTP_TIME_OUT = 5.0 # 请求超时,秒
# 背景 rgb颜色
dict_bg_rgb = {
"Turf War": (24, 200, 26),
"Ranked Challenge": (227, 68, 17),
"Ranked Open": (24, 200, 26),
"X Schedule": (14, 205, 147),
"打工": (14, 203, 146),
"活动": (223, 42, 119),
"祭典": (103, 103, 114),
"祭典时间-金黄": (234, 255, 61),
"上-武器卡片-黄": (234, 255, 61),
"下-武器卡片-蓝": (96, 58, 255),
"上-武器卡片": (255, 148, 157),
"下-武器卡片": (124, 217, 127),
"祭典结算项目卡片": (63, 63, 70, 70),
}
# def cf_http_get(url: str):
# """cf get"""
# # 实例化一个create_scraper对象
# scraper = cfscrape.create_scraper()
# # 请求报错,可以加上时延
# # scraper = cfscrape.create_scraper(delay = 6)
# if proxy_address:
# cf_proxies = {
# "http": "http://{}".format(proxy_address),
# "https": "http://{}".format(proxy_address),
# }
# # 获取网页内容 代理访问
# res = scraper.get(url, proxies=cf_proxies)
# else:
# # 获取网页内容
# res = scraper.get(url)
# return res
#
#
# async def async_http_get(url: str) -> Response:
# """async http_get"""
# async with httpx.AsyncClient(proxies=proxies) as client:
# response = await client.get(url, timeout=HTTP_TIME_OUT)
# return response
#
#
# def http_get(url: str) -> Response:
# """http_get"""
# response = httpx.get(url, proxies=proxies, timeout=HTTP_TIME_OUT)
# return response
def multiple_replace(text, _dict):
"""批量替换文本"""
for key in _dict:
text = text.replace(key, _dict[key])
return text
def get_expire_time() -> str:
"""计算过期时间 字符串 精确度为 ymdh"""
# 计算过期时间
time_now = get_time_now_china()
time_now_h = time_now.hour
# 计算过期时间字符串
# 判断当前小时是奇数还是偶数
expire_time: datetime
if (time_now_h % 2) == 0:
# 偶数
expire_time = time_now + datetime.timedelta(hours=2)
else:
expire_time = time_now + datetime.timedelta(hours=1)
expire_time_str = expire_time.strftime(time_format_ymdh).strip()
return expire_time_str
def time_converter(time_str) -> datetime:
"""时间转换 年-月-日 时:分:秒"""
# convert time to UTC+8
dt = datetime.datetime.strptime(time_str, "%Y-%m-%dT%H:%M:%SZ")
dt += datetime.timedelta(hours=8)
return dt
def time_converter_yd(time_str):
"""时间转换 月-日"""
dt = time_converter(time_str)
return datetime.datetime.strftime(dt, "%m.%d")
def time_converter_hm(time_str):
"""时间转换 时:分"""
dt = time_converter(time_str)
return datetime.datetime.strftime(dt, "%H:%M")
def time_converter_mdhm(time_str):
"""时间转换 月-日 时:分"""
dt = time_converter(time_str)
return datetime.datetime.strftime(dt, "%m-%d %H:%M")
def time_converter_weekday(time_str):
"""时间转换 周几,如周一"""
dt = time_converter(time_str)
weekday = dt.weekday()
return weekday
def get_time_ymd():
"""获取年月日"""
dt = get_time_now_china().strftime("%Y-%m-%d")
return dt
def get_time_y() -> int:
"""获取年"""
year = get_time_now_china().year
return year
def get_time_now_china() -> datetime:
"""获取中国所在东八区时间"""
"""获取中国所在的东八区时间"""
# 创建时区信息,东八区为 UTC+8
tz = timezone(timedelta(hours=8))
# 获取当前时间并设置时区信息为东八区
china_time = datetime.now().astimezone(tz)
return china_time
def convert_timezone(cls, dt, timezone="+0") -> datetime:
"""默认是utc时间,需要提供时区"""
result = cls.parse_timezone(timezone)
symbol = result["symbol"]
offset = result["offset"]
if symbol == "+":
return dt + timedelta(hours=offset)
elif symbol == "-":
return dt - timedelta(hours=offset)
else:
raise Exception("dont parse timezone format")