qrpa 1.0.80__tar.gz → 1.0.82__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 (37) hide show
  1. {qrpa-1.0.80 → qrpa-1.0.82}/PKG-INFO +1 -1
  2. {qrpa-1.0.80 → qrpa-1.0.82}/pyproject.toml +1 -1
  3. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/shein_lib.py +37 -16
  4. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa.egg-info/PKG-INFO +1 -1
  5. {qrpa-1.0.80 → qrpa-1.0.82}/README.md +0 -0
  6. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/RateLimitedSender.py +0 -0
  7. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/__init__.py +0 -0
  8. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/db_migrator.py +0 -0
  9. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/feishu_bot_app.py +0 -0
  10. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/feishu_client.py +0 -0
  11. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/feishu_logic.py +0 -0
  12. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/fun_base.py +0 -0
  13. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/fun_excel.py +0 -0
  14. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/fun_file.py +0 -0
  15. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/fun_web.py +0 -0
  16. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/fun_win.py +0 -0
  17. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/mysql_module/__init__.py +0 -0
  18. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/mysql_module/shein_product_model.py +0 -0
  19. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/mysql_module/shein_return_order_model.py +0 -0
  20. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/shein_daily_report_model.py +0 -0
  21. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/shein_excel.py +0 -0
  22. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/shein_mysql.py +0 -0
  23. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/shein_sqlite.py +0 -0
  24. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/shein_ziniao.py +0 -0
  25. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/temu_chrome.py +0 -0
  26. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/temu_excel.py +0 -0
  27. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/temu_lib.py +0 -0
  28. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/time_utils.py +0 -0
  29. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/time_utils_example.py +0 -0
  30. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa/wxwork.py +0 -0
  31. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa.egg-info/SOURCES.txt +0 -0
  32. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa.egg-info/dependency_links.txt +0 -0
  33. {qrpa-1.0.80 → qrpa-1.0.82}/qrpa.egg-info/top_level.txt +0 -0
  34. {qrpa-1.0.80 → qrpa-1.0.82}/setup.cfg +0 -0
  35. {qrpa-1.0.80 → qrpa-1.0.82}/setup.py +0 -0
  36. {qrpa-1.0.80 → qrpa-1.0.82}/tests/test_db_migrator.py +0 -0
  37. {qrpa-1.0.80 → qrpa-1.0.82}/tests/test_wxwork.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qrpa
3
- Version: 1.0.80
3
+ Version: 1.0.82
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.80"
7
+ version = "1.0.82"
8
8
  description = "qsir's rpa library"
9
9
  authors = [{ name = "QSir", email = "1171725650@qq.com" }]
10
10
  readme = "README.md"
@@ -91,23 +91,23 @@ class SheinLib:
91
91
 
92
92
  log('商家后台不可见', web_page.title(), web_page.url, self.store_username, self.store_name)
93
93
  if 'https://sso.geiwohuo.com/#/home' in web_page.url:
94
- web_page.reload()
95
94
  web_page.wait_for_timeout(5000)
95
+ web_page.reload()
96
96
 
97
- while r'=/CN' in web_page.url:
98
- safe_goto(web_page, 'https://sso.geiwohuo.com/#/home?q=0')
99
-
100
- web_page.wait_for_timeout(5000)
101
- if web_page.locator('//input[@name="username"]').is_visible():
102
- log("用户名输入框可见 等待5秒点击'登录'按钮", self.store_username, self.store_name)
103
- web_page.wait_for_timeout(5000)
104
- log('点击"登录"', self.store_username, self.store_name)
105
- web_page.locator('//button[contains(@class,"login_btn")]').click()
106
-
107
- log('再延时5秒', self.store_username, self.store_name)
108
- web_page.wait_for_timeout(5000)
109
-
110
- web_page.wait_for_timeout(1000)
97
+ # while r'=/CN' in web_page.url:
98
+ # safe_goto(web_page, 'https://sso.geiwohuo.com/#/home?q=0')
99
+ #
100
+ # web_page.wait_for_timeout(5000)
101
+ # if web_page.locator('//input[@name="username"]').is_visible():
102
+ # log("用户名输入框可见 等待5秒点击'登录'按钮", self.store_username, self.store_name)
103
+ # web_page.wait_for_timeout(5000)
104
+ # log('点击"登录"', self.store_username, self.store_name)
105
+ # web_page.locator('//button[contains(@class,"login_btn")]').click()
106
+ #
107
+ # log('再延时5秒', self.store_username, self.store_name)
108
+ # web_page.wait_for_timeout(5000)
109
+
110
+ web_page.wait_for_timeout(3000)
111
111
 
112
112
  if 'https://sso.geiwohuo.com/#/home' in web_page.url:
113
113
 
@@ -135,7 +135,7 @@ class SheinLib:
135
135
  except Exception as e:
136
136
  log(f"错误发生: {e}, 重试中...({self.store_username}, {self.store_name})")
137
137
  log(traceback.format_exc())
138
- if 'crashed' in str(e) or 'https://sso.geiwohuo.com//#/auth/SSLS' in web_page.url:
138
+ if 'crashed' in str(e) and 'https://sso.geiwohuo.com//#/auth/SSLS' in web_page.url:
139
139
  safe_goto(web_page, 'https://sso.geiwohuo.com/#/home?q=3')
140
140
  web_page.wait_for_timeout(10000)
141
141
  retries += 1
@@ -629,6 +629,19 @@ class SheinLib:
629
629
  log(f'正在获取 {self.store_name} 最近一个月出库金额: {last_item["totalCustomerAmount"]}')
630
630
  return last_item['totalCustomerAmount']
631
631
 
632
+ def query_attribute_multi(self, attribute_id_list):
633
+ url = "https://sso.geiwohuo.com/spmp-api-prefix/spmp/attribute/query_attribute_multi"
634
+ payload = {
635
+ "attribute_id_list": attribute_id_list,
636
+ }
637
+ response_text = fetch(self.web_page, url, payload)
638
+ error_code = response_text.get('code')
639
+ if str(error_code) != '0':
640
+ raise send_exception(json.dumps(response_text, ensure_ascii=False))
641
+ info = response_text.get('info')
642
+ lst = info.get('data', {})
643
+ return lst
644
+
632
645
  def get_product_attr(self, spu, attr_name):
633
646
  try:
634
647
  product_detail = self.get_product_detail(spu)
@@ -706,6 +719,14 @@ class SheinLib:
706
719
  if str(error_code) != '0':
707
720
  raise send_exception(json.dumps(response_text, ensure_ascii=False))
708
721
  info = response_text.get('info')
722
+
723
+ # 获取 area_attribute_id
724
+ sample_sku_back_size = info.get('sample_sku_back_size', None)
725
+ if sample_sku_back_size is not None:
726
+ area_attribute_ids = [item['area_attribute_id'] for item in sample_sku_back_size.get('area_info_list', [])]
727
+ attribute_multi = self.query_attribute_multi(area_attribute_ids)
728
+ info["attribute_multi"] = attribute_multi
729
+
709
730
  write_dict_to_file(cache_file, info)
710
731
  return info
711
732
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qrpa
3
- Version: 1.0.80
3
+ Version: 1.0.82
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
File without changes
File without changes