qrpa 1.0.49__py3-none-any.whl → 1.0.51__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.

Potentially problematic release.


This version of qrpa might be problematic. Click here for more details.

qrpa/shein_lib.py CHANGED
@@ -8,7 +8,7 @@ from .shein_sqlite import insert_sales, get_last_week_sales, get_near_week_sales
8
8
 
9
9
  import math
10
10
  import time
11
- import json
11
+ import json, traceback
12
12
  from datetime import datetime
13
13
  from playwright.sync_api import Page
14
14
 
@@ -47,10 +47,11 @@ class SheinLib:
47
47
  while not web_page.locator('//div[contains(text(),"商家后台")]').nth(1).is_visible():
48
48
 
49
49
  if web_page.locator('xpath=//div[@id="container" and @alita-name="gmpsso"]//button[@type="button" and @id]').nth(0).is_visible():
50
- log("鉴权确定按钮可见 点击'确定'按钮", self.store_username, self.store_name)
51
- web_page.locator('xpath=//div[@id="container" and @alita-name="gmpsso"]//button[@type="button" and @id]').nth(0).click()
52
- web_page.wait_for_load_state("load")
53
- web_page.wait_for_timeout(1000)
50
+ if 'https://sso.geiwohuo.com/#/home' not in web_page.url:
51
+ log("鉴权确定按钮可见 点击'确定'按钮", self.store_username, self.store_name)
52
+ web_page.locator('xpath=//div[@id="container" and @alita-name="gmpsso"]//button[@type="button" and @id]').nth(0).click()
53
+ web_page.wait_for_load_state("load")
54
+ web_page.wait_for_timeout(1000)
54
55
 
55
56
  while web_page.locator('//div[text()="验证码"]').is_visible():
56
57
  log(f'等待输入验证码: {wait_count}', self.store_username, self.store_name)
@@ -67,7 +68,7 @@ class SheinLib:
67
68
  web_page.wait_for_timeout(5000)
68
69
  log('点击"登录"', self.store_username, self.store_name)
69
70
  web_page.locator('//button[contains(@class,"login_btn")]').click()
70
- web_page.wait_for_load_state("load")
71
+
71
72
  log('再延时5秒', self.store_username, self.store_name)
72
73
  web_page.wait_for_timeout(5000)
73
74
 
@@ -81,14 +82,26 @@ class SheinLib:
81
82
 
82
83
  if 'SHEIN全球商家中心' in web_page.title() and 'https://sso.geiwohuo.com/#/home' in web_page.url:
83
84
  log('SHEIN全球商家中心 中断循环', self.store_username, self.store_name)
85
+ web_page.wait_for_load_state("load")
86
+ web_page.wait_for_timeout(1000)
87
+ web_page.wait_for_load_state("networkidle")
88
+ web_page.wait_for_timeout(1000)
84
89
  break
85
90
 
86
91
  if '后台首页' in web_page.title() and 'https://sso.geiwohuo.com/#/home' in web_page.url:
87
92
  log('后台首页 中断循环', self.store_username, self.store_name)
93
+ web_page.wait_for_load_state("load")
94
+ web_page.wait_for_timeout(1000)
95
+ web_page.wait_for_load_state("networkidle")
96
+ web_page.wait_for_timeout(1000)
88
97
  break
89
98
 
90
99
  if '商家后台' in web_page.title() and 'https://sso.geiwohuo.com/#/home' in web_page.url:
91
100
  log('后台首页 中断循环', self.store_username, self.store_name)
101
+ web_page.wait_for_load_state("load")
102
+ web_page.wait_for_timeout(1000)
103
+ web_page.wait_for_load_state("networkidle")
104
+ web_page.wait_for_timeout(1000)
92
105
  break
93
106
 
94
107
  if 'mrs.biz.sheincorp.cn' in web_page.url and '商家后台' in web_page.title():
@@ -109,12 +122,14 @@ class SheinLib:
109
122
  web_page.wait_for_load_state("load")
110
123
  web_page.wait_for_timeout(3000)
111
124
 
125
+ break
112
126
  except Exception as e:
113
127
  log(f"错误发生: {e}, 重试中...({self.store_username}, {self.store_name})")
128
+ log(traceback.format_exc())
114
129
  if 'crashed' in str(e) or 'https://sso.geiwohuo.com//#/auth/SSLS' in web_page.url:
115
- web_page.reload()
130
+ web_page.goto('https://sso.geiwohuo.com')
116
131
  web_page.wait_for_load_state('load')
117
- web_page.wait_for_timeout(3000)
132
+ web_page.wait_for_timeout(10000)
118
133
  retries += 1
119
134
  if retries >= MAX_RETRIES:
120
135
  log(f"达到最大重试次数,停止尝试({self.store_username}, {self.store_name})")
@@ -122,6 +137,9 @@ class SheinLib:
122
137
  time.sleep(2) # 错误时等待2秒后重试
123
138
 
124
139
  log('鉴权处理结束')
140
+ # web_page.wait_for_load_state("load")
141
+ # web_page.wait_for_load_state("networkidle")
142
+ web_page.wait_for_timeout(3000)
125
143
 
126
144
  # 获取质检报告pdf地址
127
145
  def get_qc_report_url(self, deliverCode, purchaseCode):
@@ -229,27 +247,29 @@ class SheinLib:
229
247
  has_valid_package = item.get('hasPackage') == 1
230
248
  is_valid_yesterday = TimeUtils.is_yesterday(item['completeTime'], None) if item.get('completeTime') else False
231
249
  returnOrderId = item['id']
232
- return_box_detail = self.get_return_order_box_detail(returnOrderId)
250
+ item['return_box_detail'] = []
233
251
  item['qc_report_url'] = ''
234
252
  item['report_url'] = ''
235
253
  item['store_username'] = self.store_username
236
254
  item['store_name'] = self.store_name
237
255
  item['store_manager'] = self.config.shein_store_manager.get(str(self.store_username).lower())
238
- if has_valid_package and len(return_box_detail) > 0:
256
+ if has_valid_package:
257
+ return_box_detail = self.get_return_order_box_detail(returnOrderId)
258
+ if len(return_box_detail) > 0:
239
259
 
240
- if int(item['returnScrapType']) == 1:
241
- purchaseCode = item['sellerOrderNo']
242
- delivery_code = item['sellerDeliveryNo']
243
- item['qc_report_url'] = self.get_qc_report_url(delivery_code, purchaseCode)
260
+ if int(item['returnScrapType']) == 1:
261
+ purchaseCode = item['sellerOrderNo']
262
+ delivery_code = item['sellerDeliveryNo']
263
+ item['qc_report_url'] = self.get_qc_report_url(delivery_code, purchaseCode)
244
264
 
245
- if int(item['returnScrapType']) == 2:
246
- item['report_url'] = self.get_inspect_report_url(returnOrderId)
265
+ if int(item['returnScrapType']) == 2:
266
+ item['report_url'] = self.get_inspect_report_url(returnOrderId)
247
267
 
248
- item['return_box_detail'] = return_box_detail
268
+ item['return_box_detail'] = return_box_detail
249
269
 
250
- all_list_item.append(item)
251
- if is_valid_yesterday:
252
- today_list_item.append(item)
270
+ all_list_item.append(item)
271
+ if is_valid_yesterday:
272
+ today_list_item.append(item)
253
273
 
254
274
  cache_file = f'{self.config.auto_dir}/shein/cache/shein_return_order_list_{TimeUtils.today_date()}.json'
255
275
  write_dict_to_file_ex(cache_file, {self.store_username: today_list_item}, [self.store_username])
qrpa/shein_ziniao.py CHANGED
@@ -412,7 +412,7 @@ class ZiniaoRunner:
412
412
  raise RuntimeError("店铺列表为空")
413
413
 
414
414
  # 多线程并发执行任务
415
- max_threads = 5 if (hostname().lower() == 'krrpa') else 3
415
+ max_threads = 1 if (hostname().lower() == 'krrpa') else 3
416
416
  log(f'当前启用线程数: {max_threads}')
417
417
  self.task_manager.run_with_thread_pool(browser_list, max_threads, run, task_key, just_store_username, is_skip_store)
418
418
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qrpa
3
- Version: 1.0.49
3
+ Version: 1.0.51
4
4
  Summary: qsir's rpa library
5
5
  Author: QSir
6
6
  Author-email: QSir <1171725650@qq.com>
@@ -11,10 +11,10 @@ qrpa/fun_web.py,sha256=F6cxwwOxB8twg2XK73oAvKla0FqpwDYJiM37CWmFwXo,6322
11
11
  qrpa/fun_win.py,sha256=-LnTeocdTt72NVH6VgLdpAT9_C5oV9okeudXG6CftMA,8034
12
12
  qrpa/shein_daily_report_model.py,sha256=H8oZmIN5Pyqe306W1_xuz87lOqLQ_LI5RjXbaxDkIzE,12589
13
13
  qrpa/shein_excel.py,sha256=7dWDKP5JlD_2sb3Uv3JK_VJvppGwidsP3UAyPA89Ga8,115472
14
- qrpa/shein_lib.py,sha256=VdGuVcgbE3Xg1ra6kL9qObq2nHDFrGsp8sTlGki2A8U,108616
14
+ qrpa/shein_lib.py,sha256=UwlXfKwaJ1YpZzkF-FX4dnG09TSLXr82nRc7LAW7z5Q,109743
15
15
  qrpa/shein_mysql.py,sha256=MGPJsz13evsLygZWhmitpPzUswiTKZ91VFvr8KA0M40,750
16
16
  qrpa/shein_sqlite.py,sha256=ZQwD0Gz81q9WY7tY2HMEYvSF9r3N_G_Aur3bYfST9WY,5707
17
- qrpa/shein_ziniao.py,sha256=9F2AfROvbUiEDizr9xCc5hlvG6USa5gFGiZC7VPWVo4,18365
17
+ qrpa/shein_ziniao.py,sha256=YQV6f7NThCgppqQ5tUjcmabE5m4TTh1pt2v_uI--Dh0,18365
18
18
  qrpa/temu_chrome.py,sha256=CbtFy1QPan9xJdJcNZj-EsVGhUvv3ZTEPVDEA4-im40,2803
19
19
  qrpa/temu_excel.py,sha256=ssAQvhtRGaTOLAVM3gS-AnmHPkIiHCT6gTsK1hoi-_8,6990
20
20
  qrpa/temu_lib.py,sha256=hYB59zsLS3m3NTic_duTwPMOTSxlHyQVa8OhHnHm-1g,7199
@@ -23,7 +23,7 @@ qrpa/time_utils_example.py,sha256=shHOXKKF3QSzb0SHsNc34M61wEkkLuM30U9X1THKNS8,80
23
23
  qrpa/wxwork.py,sha256=gIytG19DZ5g7Tsl0-W3EbjfSnpIqZw-ua24gcB78YEg,11264
24
24
  qrpa/mysql_module/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
25
25
  qrpa/mysql_module/shein_return_order_model.py,sha256=oKWr5Q-8LxKO7gLih26MUjD3GqC-C9eH8menVNGoRgw,26010
26
- qrpa-1.0.49.dist-info/METADATA,sha256=LcDevF0wDIml1CuHl83bdGfW1NgwN-1mMDiYot1aLE0,231
27
- qrpa-1.0.49.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
28
- qrpa-1.0.49.dist-info/top_level.txt,sha256=F6T5igi0fhXDucPPUbmmSC0qFCDEsH5eVijfVF48OFU,5
29
- qrpa-1.0.49.dist-info/RECORD,,
26
+ qrpa-1.0.51.dist-info/METADATA,sha256=0Q-8Rikvv-YdBIm6XD4JXyrnabeB8dprUYVbmND6FMY,231
27
+ qrpa-1.0.51.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
28
+ qrpa-1.0.51.dist-info/top_level.txt,sha256=F6T5igi0fhXDucPPUbmmSC0qFCDEsH5eVijfVF48OFU,5
29
+ qrpa-1.0.51.dist-info/RECORD,,
File without changes