oafuncs 0.0.59__py2.py3-none-any.whl → 0.0.61__py2.py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- oafuncs/oa_cmap.py +8 -14
- oafuncs/oa_data.py +23 -41
- oafuncs/oa_down/hycom_3hourly.py +57 -118
- oafuncs/oa_down/refs_pdf.py +14 -25
- oafuncs/oa_draw.py +23 -47
- oafuncs/oa_file.py +34 -35
- oafuncs/oa_help.py +6 -7
- oafuncs/oa_nc.py +18 -34
- oafuncs/oa_python.py +6 -5
- oafuncs/oa_sign/meteorological.py +7 -14
- oafuncs/oa_sign/ocean.py +7 -12
- {oafuncs-0.0.59.dist-info → oafuncs-0.0.61.dist-info}/METADATA +4 -4
- oafuncs-0.0.61.dist-info/RECORD +22 -0
- oafuncs-0.0.59.dist-info/RECORD +0 -22
- {oafuncs-0.0.59.dist-info → oafuncs-0.0.61.dist-info}/LICENSE.txt +0 -0
- {oafuncs-0.0.59.dist-info → oafuncs-0.0.61.dist-info}/WHEEL +0 -0
- {oafuncs-0.0.59.dist-info → oafuncs-0.0.61.dist-info}/top_level.txt +0 -0
oafuncs/oa_python.py
CHANGED
@@ -4,8 +4,8 @@
|
|
4
4
|
Author: Liu Kun && 16031215@qq.com
|
5
5
|
Date: 2024-10-11 21:02:07
|
6
6
|
LastEditors: Liu Kun && 16031215@qq.com
|
7
|
-
LastEditTime: 2024-
|
8
|
-
FilePath: \\Python\\My_Funcs\\OAFuncs\\
|
7
|
+
LastEditTime: 2024-11-21 10:59:53
|
8
|
+
FilePath: \\Python\\My_Funcs\\OAFuncs\\oafuncs\\oa_python.py
|
9
9
|
Description:
|
10
10
|
EditPlatform: vscode
|
11
11
|
ComputerInfo: XPS 15 9510
|
@@ -17,7 +17,8 @@ import os
|
|
17
17
|
|
18
18
|
__all__ = ['install_lib', 'upgrade_lib']
|
19
19
|
|
20
|
-
|
20
|
+
|
21
|
+
def install_lib(libs=None, python_exe='python'):
|
21
22
|
'''
|
22
23
|
libs: list, 需要安装的库
|
23
24
|
python_exe: str, python版本;如在windows下,将python.exe复制为python312.exe,然后python_exe='python312'
|
@@ -26,7 +27,7 @@ def install_lib(libs=None,python_exe='python'):
|
|
26
27
|
os.system(python_exe + " -m pip install --upgrade pip")
|
27
28
|
if libs is None:
|
28
29
|
libs = [
|
29
|
-
# "
|
30
|
+
# "oafuncs", # 自己的库,在这个函数不宜操作,避免报错
|
30
31
|
"requests", # 网页
|
31
32
|
"xlwt", # excel文件
|
32
33
|
"xlrd", # excel文件
|
@@ -94,7 +95,7 @@ def install_lib(libs=None,python_exe='python'):
|
|
94
95
|
print("安装失败:", str(e))
|
95
96
|
|
96
97
|
|
97
|
-
def upgrade_lib(libs=None,python_exe='python'):
|
98
|
+
def upgrade_lib(libs=None, python_exe='python'):
|
98
99
|
if libs is None:
|
99
100
|
installed_libs = os.popen(python_exe + ' -m pip list').read()
|
100
101
|
libs = installed_libs
|
@@ -35,8 +35,7 @@ def sign_in_meteorological_home(email, password):
|
|
35
35
|
response = s.get(url)
|
36
36
|
response.raise_for_status()
|
37
37
|
soup = BeautifulSoup(response.text, 'lxml')
|
38
|
-
login_hash = soup.find('form', attrs={'name': 'login'})[
|
39
|
-
'action'].split('loginhash=')[1]
|
38
|
+
login_hash = soup.find('form', attrs={'name': 'login'})['action'].split('loginhash=')[1]
|
40
39
|
return login_hash
|
41
40
|
|
42
41
|
def get_login_formhash():
|
@@ -58,16 +57,14 @@ def sign_in_meteorological_home(email, password):
|
|
58
57
|
def write_response(response, default_path=r'F:\response_气象家园.txt'):
|
59
58
|
with open(default_path, 'w', encoding='utf-8') as f:
|
60
59
|
f.write('-'*350+'\n')
|
61
|
-
f.write(time.strftime(
|
62
|
-
'%Y-%m-%d %H:%M:%S', time.localtime()) + '\n')
|
60
|
+
f.write(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime()) + '\n')
|
63
61
|
f.write(response.text)
|
64
62
|
f.write('-'*350+'\n')
|
65
63
|
|
66
64
|
def login():
|
67
65
|
url = 'http://bbs.06climate.com/member.php?'
|
68
66
|
# 登录密码需要转码为 216fc900fb57c27dd3c5e3dfbcac1849
|
69
|
-
mydata['password'] = hashlib.md5(
|
70
|
-
mydata['password'].encode()).hexdigest()
|
67
|
+
mydata['password'] = hashlib.md5(mydata['password'].encode()).hexdigest()
|
71
68
|
credentials = {
|
72
69
|
'password': mydata['password'],
|
73
70
|
}
|
@@ -97,8 +94,7 @@ def sign_in_meteorological_home(email, password):
|
|
97
94
|
'Referer': 'http://bbs.06climate.com/member.php?mod=logging&action=login',
|
98
95
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36',
|
99
96
|
}
|
100
|
-
response = s.post(url, params=query_params,
|
101
|
-
data=from_data, headers=head)
|
97
|
+
response = s.post(url, params=query_params, data=from_data, headers=head)
|
102
98
|
if '欢迎' in response.text:
|
103
99
|
print(' [bold green]登录成功')
|
104
100
|
try:
|
@@ -126,8 +122,7 @@ def sign_in_meteorological_home(email, password):
|
|
126
122
|
s.cookies.update(cookie)
|
127
123
|
response = s.get(url, params=query_params, headers=head)
|
128
124
|
response.raise_for_status()
|
129
|
-
success_indicators = ['累计签到', '连续签到', '特奖励',
|
130
|
-
'明日签到', '另奖励', '连续签到', '再连续签到', '奖励', '签到完毕']
|
125
|
+
success_indicators = ['累计签到', '连续签到', '特奖励', '明日签到', '另奖励', '连续签到', '再连续签到', '奖励', '签到完毕']
|
131
126
|
if any(indicator in response.text for indicator in success_indicators):
|
132
127
|
print(' [bold green]签到完毕')
|
133
128
|
else:
|
@@ -143,8 +138,7 @@ def sign_in_meteorological_home(email, password):
|
|
143
138
|
cumulate = soup.select('.pperwbm .times')[0].text
|
144
139
|
continuous = soup.select('.pperwbm .times')[1].text
|
145
140
|
last_sign = soup.select('.pperwbm .times')[2].text
|
146
|
-
info = {credit.split(': ')[0]: credit.split(
|
147
|
-
':')[1], user_group.split(': ')[0]: user_group.split(':')[1], '累计签到': cumulate+'次', '连续签到': continuous+'次', '上次签到': last_sign}
|
141
|
+
info = {credit.split(': ')[0]: credit.split(':')[1], user_group.split(': ')[0]: user_group.split(':')[1], '累计签到': cumulate+'次', '连续签到': continuous+'次', '上次签到': last_sign}
|
148
142
|
|
149
143
|
print('[bold blue]-----------签到信息-----------')
|
150
144
|
for k, v in info.items():
|
@@ -157,8 +151,7 @@ def sign_in_meteorological_home(email, password):
|
|
157
151
|
print(f'[bold blue]{k}: [bold green]{v}')
|
158
152
|
print('[bold blue]------------------------------')
|
159
153
|
|
160
|
-
mydata = {'username': None,
|
161
|
-
'email': email, 'password': password}
|
154
|
+
mydata = {'username': None, 'email': email, 'password': password}
|
162
155
|
s = requests.Session()
|
163
156
|
print('[bold purple]-----------气象家园-----------')
|
164
157
|
cookie = login()
|
oafuncs/oa_sign/ocean.py
CHANGED
@@ -4,8 +4,8 @@
|
|
4
4
|
Author: Liu Kun && 16031215@qq.com
|
5
5
|
Date: 2024-10-14 16:59:26
|
6
6
|
LastEditors: Liu Kun && 16031215@qq.com
|
7
|
-
LastEditTime: 2024-
|
8
|
-
FilePath: \\Python\\My_Funcs\\OAFuncs\\
|
7
|
+
LastEditTime: 2024-11-21 13:16:14
|
8
|
+
FilePath: \\Python\\My_Funcs\\OAFuncs\\oafuncs\\oa_sign\\ocean.py
|
9
9
|
Description:
|
10
10
|
EditPlatform: vscode
|
11
11
|
ComputerInfo: XPS 15 9510
|
@@ -40,14 +40,12 @@ def sign_in_love_ocean(email, password):
|
|
40
40
|
response = s.get(url, params=para_login)
|
41
41
|
response.raise_for_status()
|
42
42
|
soup = BeautifulSoup(response.text, 'lxml')
|
43
|
-
login_hash = soup.find('form', attrs={'name': 'login'})[
|
44
|
-
'action'].split('loginhash=')[1]
|
43
|
+
login_hash = soup.find('form', attrs={'name': 'login'})['action'].split('loginhash=')[1]
|
45
44
|
return login_hash
|
46
45
|
|
47
46
|
def _get_login_formhash():
|
48
47
|
url = 'https://www.52ocean.cn/member.php?'
|
49
|
-
para_login = {'mod': 'logging', 'action': 'login', 'infloat': 'yes',
|
50
|
-
'handlekey': 'login', 'inajax': '1', 'ajaxtarget': 'fwin_content_login'}
|
48
|
+
para_login = {'mod': 'logging', 'action': 'login', 'infloat': 'yes', 'handlekey': 'login', 'inajax': '1', 'ajaxtarget': 'fwin_content_login'}
|
51
49
|
response = s.get(url, params=para_login)
|
52
50
|
response.raise_for_status()
|
53
51
|
soup = BeautifulSoup(response.text, 'lxml')
|
@@ -72,8 +70,7 @@ def sign_in_love_ocean(email, password):
|
|
72
70
|
|
73
71
|
def _login():
|
74
72
|
url = 'https://www.52ocean.cn/member.php?'
|
75
|
-
mydata['password'] = hashlib.md5(
|
76
|
-
mydata['password'].encode()).hexdigest()
|
73
|
+
mydata['password'] = hashlib.md5(mydata['password'].encode()).hexdigest()
|
77
74
|
credentials = {
|
78
75
|
'password': mydata['password'],
|
79
76
|
}
|
@@ -103,8 +100,7 @@ def sign_in_love_ocean(email, password):
|
|
103
100
|
'Referer': 'https://www.52ocean.cn/member.php?',
|
104
101
|
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/123.0.0.0 Safari/537.36'
|
105
102
|
}
|
106
|
-
response = s.post(url, params=query_params,
|
107
|
-
data=from_data, headers=head)
|
103
|
+
response = s.post(url, params=query_params, data=from_data, headers=head)
|
108
104
|
if '欢迎' in response.text:
|
109
105
|
print(' [bold green]登录成功')
|
110
106
|
try:
|
@@ -146,8 +142,7 @@ def sign_in_love_ocean(email, password):
|
|
146
142
|
print(f'[bold blue]{k}: [bold green]{v}')
|
147
143
|
print('[bold blue]------------------------------')
|
148
144
|
|
149
|
-
mydata = {'username': None,
|
150
|
-
'email': email, 'password': password} # 不要修改关键字
|
145
|
+
mydata = {'username': None, 'email': email, 'password': password} # 不要修改关键字
|
151
146
|
s = requests.Session()
|
152
147
|
print('[bold purple]-----------吾爱海洋-----------')
|
153
148
|
cookie = _login()
|
@@ -1,8 +1,8 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: oafuncs
|
3
|
-
Version: 0.0.
|
3
|
+
Version: 0.0.61
|
4
4
|
Summary: My short description for my project.
|
5
|
-
Home-page: https://github.com/Industry-Pays/
|
5
|
+
Home-page: https://github.com/Industry-Pays/OAFuncs
|
6
6
|
Author: Kun Liu
|
7
7
|
Author-email: liukun0312@stu.ouc.edu.cn
|
8
8
|
License: MIT
|
@@ -48,12 +48,12 @@ Python Function
|
|
48
48
|
|
49
49
|
<mark>注</mark>:若有需求,可邮件至`liukun0312@stu.ouc.edu.cn`,能力范围内可考虑实现
|
50
50
|
|
51
|
-
**精力有限,部分函数使用说明文档未能及时更新/添加,可参考`结构`部分简述,再使用`
|
51
|
+
**精力有限,部分函数使用说明文档未能及时更新/添加,可参考`结构`部分简述,再使用`oafuncs.oa_help.use('func_name')`函数调取函数本身说明**
|
52
52
|
|
53
53
|
## PyPI
|
54
54
|
|
55
55
|
```html
|
56
|
-
https://pypi.org/project/
|
56
|
+
https://pypi.org/project/oafuncs
|
57
57
|
```
|
58
58
|
|
59
59
|
## Github
|
@@ -0,0 +1,22 @@
|
|
1
|
+
oafuncs/__init__.py,sha256=2QiNjIIMtstD8y9HWlu23yiZGmmljkNUQknHEbnRwYI,673
|
2
|
+
oafuncs/oa_cmap.py,sha256=iSKk4f_GsGUV3nyzgnw5SdG2c5mgAWULaO-EsMd_vF8,4981
|
3
|
+
oafuncs/oa_data.py,sha256=H9qZrUziOpc456iIL-1lBwSkBPApl2rlR-ajZg-mDMs,8119
|
4
|
+
oafuncs/oa_draw.py,sha256=K5B_otgx7Bu5P6ZYipNt9C-uRI1w9oxwY1M1F0-kGuM,17329
|
5
|
+
oafuncs/oa_file.py,sha256=rUfxlks9uR5B9_TBPJFnNswfDF0lRm_ZBDUwIjYtf9U,10250
|
6
|
+
oafuncs/oa_help.py,sha256=ppNktmtNzs15R20MD1bM7yImlTQ_ngMwvoIglePOKXA,1000
|
7
|
+
oafuncs/oa_nc.py,sha256=ALAYfqDy5lbUNJsTU29j6ZWkM4wgqQU3p2Fxn5pkvsQ,12102
|
8
|
+
oafuncs/oa_python.py,sha256=XPTP3o7zTFzfJR_YhsKfQksa3bSYwXsne9YxlJplCEA,3994
|
9
|
+
oafuncs/oa_down/__init__.py,sha256=s-XGVJ4z5m3pwIJGfifvkbSt_VFVqtrfFvP7fJxbs04,538
|
10
|
+
oafuncs/oa_down/hycom_3hourly.py,sha256=nagKxShJOaDL0H7BcBSFkZ-OZeMAlirpiGgKXjyPTAA,43996
|
11
|
+
oafuncs/oa_down/refs_pdf.py,sha256=g-XY5hBPRm15QT-dCyDt--vBCXyQ1cJ1VP_vb2_lCfE,17829
|
12
|
+
oafuncs/oa_sign/__init__.py,sha256=QKqTFrJDFK40C5uvk48GlRRbGFzO40rgkYwu6dYxatM,563
|
13
|
+
oafuncs/oa_sign/meteorological.py,sha256=mLbupsZSq427HTfVbZMvIlFzDHwSzQAbK3X19o8anFY,6525
|
14
|
+
oafuncs/oa_sign/ocean.py,sha256=xrW-rWD7xBWsB5PuCyEwQ1Q_RDKq2KCLz-LOONHgldU,5932
|
15
|
+
oafuncs/oa_sign/scientific.py,sha256=a4JxOBgm9vzNZKpJ_GQIQf7cokkraV5nh23HGbmTYKw,5064
|
16
|
+
oafuncs/oa_tool/__init__.py,sha256=IKOlqpWlb4cMDCtq2VKR_RTxQHDNqR_vfqqsOsp_lKQ,466
|
17
|
+
oafuncs/oa_tool/email.py,sha256=7EX3VkD8TxYAKPLOuC_yS104p9zbKilZlGfkVa2C6BQ,2947
|
18
|
+
oafuncs-0.0.61.dist-info/LICENSE.txt,sha256=rMtLpVg8sKiSlwClfR9w_Dd_5WubTQgoOzE2PDFxzs4,1074
|
19
|
+
oafuncs-0.0.61.dist-info/METADATA,sha256=Vkq1QP3YE6PKv61eVEyGVE0IBPNO2dHVo3b7da0DFcs,22376
|
20
|
+
oafuncs-0.0.61.dist-info/WHEEL,sha256=pxeNX5JdtCe58PUSYP9upmc7jdRPgvT0Gm9kb1SHlVw,109
|
21
|
+
oafuncs-0.0.61.dist-info/top_level.txt,sha256=bgC35QkXbN4EmPHEveg_xGIZ5i9NNPYWqtJqaKqTPsQ,8
|
22
|
+
oafuncs-0.0.61.dist-info/RECORD,,
|
oafuncs-0.0.59.dist-info/RECORD
DELETED
@@ -1,22 +0,0 @@
|
|
1
|
-
oafuncs/__init__.py,sha256=2QiNjIIMtstD8y9HWlu23yiZGmmljkNUQknHEbnRwYI,673
|
2
|
-
oafuncs/oa_cmap.py,sha256=-R45Z8_uZ_aGZP3G6pv4iUG9Rv-ZX2ae5P04vW1tQK4,5100
|
3
|
-
oafuncs/oa_data.py,sha256=pI9GyROoBRDTM1RFMSxE0Pym2Wi7I7dxaghi2yG2PHQ,8478
|
4
|
-
oafuncs/oa_draw.py,sha256=SWwh8t52GvGo-qtZj7NY2Ehi4FVcjsbMCmG_rCwFzz0,18168
|
5
|
-
oafuncs/oa_file.py,sha256=-PM7wsbc_CQoW-c2p8IUBR7QkWVLGRi-NamicgOyADc,10231
|
6
|
-
oafuncs/oa_help.py,sha256=WV-HyOLJ5yujvEx8XVcXUNBs7cI6jVKuqbg1htUpSFs,1002
|
7
|
-
oafuncs/oa_nc.py,sha256=59_UvWqm1mqh3323huw0H1-L1TETmUF5st7kEsiHv6U,12432
|
8
|
-
oafuncs/oa_python.py,sha256=WTfVA6X09PJBojt3c_119v42a-3O4SDCKCwe0wA0OQQ,3990
|
9
|
-
oafuncs/oa_down/__init__.py,sha256=s-XGVJ4z5m3pwIJGfifvkbSt_VFVqtrfFvP7fJxbs04,538
|
10
|
-
oafuncs/oa_down/hycom_3hourly.py,sha256=4EgEK1zMZA_FgGcCO1HW2lH3Rn5cZpTDNcLgjx6tQDM,45443
|
11
|
-
oafuncs/oa_down/refs_pdf.py,sha256=HTOkAerWpyRatY-zh4vyjh2vkOnmM2thrmU4O67VZCQ,18104
|
12
|
-
oafuncs/oa_sign/__init__.py,sha256=QKqTFrJDFK40C5uvk48GlRRbGFzO40rgkYwu6dYxatM,563
|
13
|
-
oafuncs/oa_sign/meteorological.py,sha256=B0Nr-w6gUnNSJvtrNSg4fslJH1rzhdpglcJQA9ixNbc,6658
|
14
|
-
oafuncs/oa_sign/ocean.py,sha256=s9BGtsFECbYGvCFmWRb_mFJwncBn_90aYGyDSEh8iA0,6025
|
15
|
-
oafuncs/oa_sign/scientific.py,sha256=a4JxOBgm9vzNZKpJ_GQIQf7cokkraV5nh23HGbmTYKw,5064
|
16
|
-
oafuncs/oa_tool/__init__.py,sha256=IKOlqpWlb4cMDCtq2VKR_RTxQHDNqR_vfqqsOsp_lKQ,466
|
17
|
-
oafuncs/oa_tool/email.py,sha256=7EX3VkD8TxYAKPLOuC_yS104p9zbKilZlGfkVa2C6BQ,2947
|
18
|
-
oafuncs-0.0.59.dist-info/LICENSE.txt,sha256=rMtLpVg8sKiSlwClfR9w_Dd_5WubTQgoOzE2PDFxzs4,1074
|
19
|
-
oafuncs-0.0.59.dist-info/METADATA,sha256=tRIrU7no4F1i2vkLZeLE21pqB6m7h7-n_QAvgYX6BF0,22376
|
20
|
-
oafuncs-0.0.59.dist-info/WHEEL,sha256=pxeNX5JdtCe58PUSYP9upmc7jdRPgvT0Gm9kb1SHlVw,109
|
21
|
-
oafuncs-0.0.59.dist-info/top_level.txt,sha256=bgC35QkXbN4EmPHEveg_xGIZ5i9NNPYWqtJqaKqTPsQ,8
|
22
|
-
oafuncs-0.0.59.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|