qrpa 1.0.40__tar.gz → 1.0.42__tar.gz

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.

Files changed (33) hide show
  1. {qrpa-1.0.40 → qrpa-1.0.42}/PKG-INFO +1 -1
  2. {qrpa-1.0.40 → qrpa-1.0.42}/pyproject.toml +1 -1
  3. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/fun_web.py +3 -6
  4. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/shein_excel.py +94 -92
  5. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa.egg-info/PKG-INFO +1 -1
  6. {qrpa-1.0.40 → qrpa-1.0.42}/README.md +0 -0
  7. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/RateLimitedSender.py +0 -0
  8. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/__init__.py +0 -0
  9. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/db_migrator.py +0 -0
  10. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/feishu_bot_app.py +0 -0
  11. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/feishu_client.py +0 -0
  12. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/feishu_logic.py +0 -0
  13. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/fun_base.py +0 -0
  14. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/fun_excel.py +0 -0
  15. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/fun_file.py +0 -0
  16. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/fun_win.py +0 -0
  17. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/shein_daily_report_model.py +0 -0
  18. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/shein_lib.py +0 -0
  19. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/shein_sqlite.py +0 -0
  20. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/shein_ziniao.py +0 -0
  21. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/temu_chrome.py +0 -0
  22. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/temu_excel.py +0 -0
  23. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/temu_lib.py +0 -0
  24. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/time_utils.py +0 -0
  25. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/time_utils_example.py +0 -0
  26. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa/wxwork.py +0 -0
  27. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa.egg-info/SOURCES.txt +0 -0
  28. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa.egg-info/dependency_links.txt +0 -0
  29. {qrpa-1.0.40 → qrpa-1.0.42}/qrpa.egg-info/top_level.txt +0 -0
  30. {qrpa-1.0.40 → qrpa-1.0.42}/setup.cfg +0 -0
  31. {qrpa-1.0.40 → qrpa-1.0.42}/setup.py +0 -0
  32. {qrpa-1.0.40 → qrpa-1.0.42}/tests/test_db_migrator.py +0 -0
  33. {qrpa-1.0.40 → qrpa-1.0.42}/tests/test_wxwork.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qrpa
3
- Version: 1.0.40
3
+ Version: 1.0.42
4
4
  Summary: qsir's rpa library
5
5
  Author: QSir
6
6
  Author-email: QSir <1171725650@qq.com>
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "qrpa"
7
- version = "1.0.40"
7
+ version = "1.0.42"
8
8
  description = "qsir's rpa library"
9
9
  authors = [{ name = "QSir", email = "1171725650@qq.com" }]
10
10
  readme = "README.md"
@@ -5,7 +5,6 @@ from playwright.sync_api import Page
5
5
  from .fun_base import log, send_exception
6
6
  from .time_utils import get_current_datetime
7
7
 
8
-
9
8
  def fetch(page: Page, url: str, params: Optional[Union[dict, list, str]] = None, headers: Optional[dict] = None, config:
10
9
  Optional[dict] = None) -> dict:
11
10
  """
@@ -23,6 +22,7 @@ Optional[dict] = None) -> dict:
23
22
  raise ValueError("headers 参数必须是 dict 或 None")
24
23
 
25
24
  try:
25
+ page.wait_for_load_state('load')
26
26
  response = page.evaluate("""
27
27
  async ({ url, params, extraHeaders }) => {
28
28
  try {
@@ -64,7 +64,6 @@ Optional[dict] = None) -> dict:
64
64
  raise send_exception()
65
65
  # return {"error": "fetch error", "message": str(e)}
66
66
 
67
-
68
67
  def fetch_via_iframe(page: Page, target_domain: str, url: str, params: Optional[Union[dict, list, str]] = None, config:
69
68
  Optional[dict] = None) -> dict:
70
69
  """
@@ -126,9 +125,8 @@ Optional[dict] = None) -> dict:
126
125
 
127
126
  return response
128
127
  except Exception as e:
129
- raise send_exception()
130
- # return {"error": "iframe_exception", "message": str(e)}
131
-
128
+ raise send_exception()
129
+ # return {"error": "iframe_exception", "message": str(e)}
132
130
 
133
131
  # 找到一个页面里面所有的iframe
134
132
  def find_all_iframe(page: Page):
@@ -137,7 +135,6 @@ def find_all_iframe(page: Page):
137
135
  log("找到 iframe:", frame.url)
138
136
  return [frame.url for frame in frames]
139
137
 
140
-
141
138
  # 全屏幕截图
142
139
  def full_screen_shot(web_page: Page, config):
143
140
  # 设置页面的视口大小为一个较大的值,确保截图高清
@@ -60,52 +60,53 @@ class SheinExcel:
60
60
  else:
61
61
  urls = '\n'.join(item['rejectPicUrlList'])
62
62
 
63
- for package_list in return_detail[0]['boxList']:
64
- package_name = package_list['packageName']
65
- package_no = package_list['returnBoxNo']
66
- for skc_item in package_list['goods']:
67
- skc_img = skc_item['imgPath']
68
- skc = skc_item['skc']
69
- supplierCode = skc_item['supplierCode']
70
- for sku_item in skc_item['details']:
71
- platformSku = sku_item['platformSku']
72
- supplierSku = sku_item['supplierSku']
73
- suffixZh = sku_item['suffixZh']
74
- returnQuantity = sku_item['returnQuantity']
75
-
76
- store_info = f'{store_username}\n{store_name}\n处理类型: {returnOrderTypeName}\n退货状态: {returnOrderStatusName}'
77
- skc_info = f'SKC: {skc}\n供方货号: {supplierCode}\n预计退货数量/执行退货数量: {waitReturnQuantity}/{skcReturnQuantity}\n预计退货货值: {returnAmount} {currencyCode}'
78
-
79
- row_item = []
80
- row_item.append(returnOrderNo)
81
- row_item.append(completeTime)
82
- row_item.append(isSign)
83
- row_item.append(store_info)
84
- row_item.append(self.config.shein_store_manager.get(str(store_username).lower()))
85
- row_item.append(returnReasonTypeName)
86
- row_item.append(returnReason)
87
- row_item.append(skc_img)
88
- row_item.append(skc_info)
89
- row_item.append(supplierSku)
90
- row_item.append(suffixZh)
91
- row_item.append(returnQuantity)
92
- row_item.append(platformSku)
93
- row_item.append(self.bridge.get_sku_supplier(supplierSku, erp))
94
- row_item.append(self.bridge.get_sku_cost(supplierSku, erp))
95
- row_item.append(package_name)
96
- row_item.append(package_no)
97
- row_item.append(returnPlanNo)
98
- row_item.append(sellerOrderNo)
99
- row_item.append(sellerDeliveryNo)
100
- row_item.append(returnWayTypeName)
101
- row_item.append(returnExpressCompanyName)
102
- row_item.append(expressNoList)
103
- row_item.append(returnAddress)
104
- row_item.append(sellerContract)
105
- row_item.append(sellerContractPhone)
106
- row_item.append(urls)
107
-
108
- excel_data.append(row_item)
63
+ for box_list in return_detail:
64
+ for package_list in box_list['boxList']:
65
+ package_name = package_list['packageName']
66
+ package_no = package_list['returnBoxNo']
67
+ for skc_item in package_list['goods']:
68
+ skc_img = skc_item['imgPath']
69
+ skc = skc_item['skc']
70
+ supplierCode = skc_item['supplierCode']
71
+ for sku_item in skc_item['details']:
72
+ platformSku = sku_item['platformSku']
73
+ supplierSku = sku_item['supplierSku']
74
+ suffixZh = sku_item['suffixZh']
75
+ returnQuantity = sku_item['returnQuantity']
76
+
77
+ store_info = f'{store_username}\n{store_name}\n处理类型: {returnOrderTypeName}\n退货状态: {returnOrderStatusName}'
78
+ skc_info = f'SKC: {skc}\n供方货号: {supplierCode}\n预计退货数量/执行退货数量: {waitReturnQuantity}/{skcReturnQuantity}\n预计退货货值: {returnAmount} {currencyCode}'
79
+
80
+ row_item = []
81
+ row_item.append(returnOrderNo)
82
+ row_item.append(completeTime)
83
+ row_item.append(isSign)
84
+ row_item.append(store_info)
85
+ row_item.append(self.config.shein_store_manager.get(str(store_username).lower()))
86
+ row_item.append(returnReasonTypeName)
87
+ row_item.append(returnReason)
88
+ row_item.append(skc_img)
89
+ row_item.append(skc_info)
90
+ row_item.append(supplierSku)
91
+ row_item.append(suffixZh)
92
+ row_item.append(returnQuantity)
93
+ row_item.append(platformSku)
94
+ row_item.append(self.bridge.get_sku_supplier(supplierSku, erp))
95
+ row_item.append(self.bridge.get_sku_cost(supplierSku, erp))
96
+ row_item.append(package_name)
97
+ row_item.append(package_no)
98
+ row_item.append(returnPlanNo)
99
+ row_item.append(sellerOrderNo)
100
+ row_item.append(sellerDeliveryNo)
101
+ row_item.append(returnWayTypeName)
102
+ row_item.append(returnExpressCompanyName)
103
+ row_item.append(expressNoList)
104
+ row_item.append(returnAddress)
105
+ row_item.append(sellerContract)
106
+ row_item.append(sellerContractPhone)
107
+ row_item.append(urls)
108
+
109
+ excel_data.append(row_item)
109
110
 
110
111
  cache_file_excel = f'{self.config.auto_dir}/shein/cache/shein_return_order_list_excel_{start_date}_{end_date}.json'
111
112
  write_dict_to_file(cache_file_excel, excel_data)
@@ -149,52 +150,53 @@ class SheinExcel:
149
150
  else:
150
151
  urls = '\n'.join(item['rejectPicUrlList'])
151
152
 
152
- for package_list in return_detail[0]['boxList']:
153
- package_name = package_list['packageName']
154
- package_no = package_list['returnBoxNo']
155
- for skc_item in package_list['goods']:
156
- skc_img = skc_item['imgPath']
157
- skc = skc_item['skc']
158
- supplierCode = skc_item['supplierCode']
159
- for sku_item in skc_item['details']:
160
- platformSku = sku_item['platformSku']
161
- supplierSku = sku_item['supplierSku']
162
- suffixZh = sku_item['suffixZh']
163
- returnQuantity = sku_item['returnQuantity']
164
-
165
- store_info = f'{store_username}\n{store_name}\n处理类型: {returnOrderTypeName}\n退货状态: {returnOrderStatusName}'
166
- skc_info = f'SKC: {skc}\n供方货号: {supplierCode}\n预计退货数量/执行退货数量: {waitReturnQuantity}/{skcReturnQuantity}\n预计退货货值: {returnAmount} {currencyCode}'
167
-
168
- row_item = []
169
- row_item.append(returnOrderNo)
170
- row_item.append(completeTime)
171
- row_item.append(isSign)
172
- row_item.append(store_info)
173
- row_item.append(self.config.shein_store_manager.get(str(store_username).lower()))
174
- row_item.append(returnReasonTypeName)
175
- row_item.append(returnReason)
176
- row_item.append(skc_img)
177
- row_item.append(skc_info)
178
- row_item.append(supplierSku)
179
- row_item.append(suffixZh)
180
- row_item.append(returnQuantity)
181
- row_item.append(platformSku)
182
- row_item.append(self.bridge.get_sku_supplier(supplierSku, erp))
183
- row_item.append(self.bridge.get_sku_cost(supplierSku, erp))
184
- row_item.append(package_name)
185
- row_item.append(package_no)
186
- row_item.append(returnPlanNo)
187
- row_item.append(sellerOrderNo)
188
- row_item.append(sellerDeliveryNo)
189
- row_item.append(returnWayTypeName)
190
- row_item.append(returnExpressCompanyName)
191
- row_item.append(expressNoList)
192
- row_item.append(returnAddress)
193
- row_item.append(sellerContract)
194
- row_item.append(sellerContractPhone)
195
- row_item.append(urls)
196
-
197
- excel_data.append(row_item)
153
+ for box_list in return_detail:
154
+ for package_list in box_list['boxList']:
155
+ package_name = package_list['packageName']
156
+ package_no = package_list['returnBoxNo']
157
+ for skc_item in package_list['goods']:
158
+ skc_img = skc_item['imgPath']
159
+ skc = skc_item['skc']
160
+ supplierCode = skc_item['supplierCode']
161
+ for sku_item in skc_item['details']:
162
+ platformSku = sku_item['platformSku']
163
+ supplierSku = sku_item['supplierSku']
164
+ suffixZh = sku_item['suffixZh']
165
+ returnQuantity = sku_item['returnQuantity']
166
+
167
+ store_info = f'{store_username}\n{store_name}\n处理类型: {returnOrderTypeName}\n退货状态: {returnOrderStatusName}'
168
+ skc_info = f'SKC: {skc}\n供方货号: {supplierCode}\n预计退货数量/执行退货数量: {waitReturnQuantity}/{skcReturnQuantity}\n预计退货货值: {returnAmount} {currencyCode}'
169
+
170
+ row_item = []
171
+ row_item.append(returnOrderNo)
172
+ row_item.append(completeTime)
173
+ row_item.append(isSign)
174
+ row_item.append(store_info)
175
+ row_item.append(self.config.shein_store_manager.get(str(store_username).lower()))
176
+ row_item.append(returnReasonTypeName)
177
+ row_item.append(returnReason)
178
+ row_item.append(skc_img)
179
+ row_item.append(skc_info)
180
+ row_item.append(supplierSku)
181
+ row_item.append(suffixZh)
182
+ row_item.append(returnQuantity)
183
+ row_item.append(platformSku)
184
+ row_item.append(self.bridge.get_sku_supplier(supplierSku, erp))
185
+ row_item.append(self.bridge.get_sku_cost(supplierSku, erp))
186
+ row_item.append(package_name)
187
+ row_item.append(package_no)
188
+ row_item.append(returnPlanNo)
189
+ row_item.append(sellerOrderNo)
190
+ row_item.append(sellerDeliveryNo)
191
+ row_item.append(returnWayTypeName)
192
+ row_item.append(returnExpressCompanyName)
193
+ row_item.append(expressNoList)
194
+ row_item.append(returnAddress)
195
+ row_item.append(sellerContract)
196
+ row_item.append(sellerContractPhone)
197
+ row_item.append(urls)
198
+
199
+ excel_data.append(row_item)
198
200
 
199
201
  sheet_name = '昨日退货列表'
200
202
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qrpa
3
- Version: 1.0.40
3
+ Version: 1.0.42
4
4
  Summary: qsir's rpa library
5
5
  Author: QSir
6
6
  Author-email: QSir <1171725650@qq.com>
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes