qrpa 1.0.62__tar.gz → 1.0.64__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 (36) hide show
  1. {qrpa-1.0.62 → qrpa-1.0.64}/PKG-INFO +1 -1
  2. {qrpa-1.0.62 → qrpa-1.0.64}/pyproject.toml +1 -1
  3. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/shein_excel.py +7 -1
  4. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/shein_lib.py +32 -0
  5. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa.egg-info/PKG-INFO +1 -1
  6. {qrpa-1.0.62 → qrpa-1.0.64}/README.md +0 -0
  7. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/RateLimitedSender.py +0 -0
  8. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/__init__.py +0 -0
  9. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/db_migrator.py +0 -0
  10. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/feishu_bot_app.py +0 -0
  11. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/feishu_client.py +0 -0
  12. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/feishu_logic.py +0 -0
  13. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/fun_base.py +0 -0
  14. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/fun_excel.py +0 -0
  15. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/fun_file.py +0 -0
  16. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/fun_web.py +0 -0
  17. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/fun_win.py +0 -0
  18. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/mysql_module/__init__.py +0 -0
  19. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/mysql_module/shein_return_order_model.py +0 -0
  20. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/shein_daily_report_model.py +0 -0
  21. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/shein_mysql.py +0 -0
  22. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/shein_sqlite.py +0 -0
  23. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/shein_ziniao.py +0 -0
  24. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/temu_chrome.py +0 -0
  25. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/temu_excel.py +0 -0
  26. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/temu_lib.py +0 -0
  27. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/time_utils.py +0 -0
  28. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/time_utils_example.py +0 -0
  29. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa/wxwork.py +0 -0
  30. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa.egg-info/SOURCES.txt +0 -0
  31. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa.egg-info/dependency_links.txt +0 -0
  32. {qrpa-1.0.62 → qrpa-1.0.64}/qrpa.egg-info/top_level.txt +0 -0
  33. {qrpa-1.0.62 → qrpa-1.0.64}/setup.cfg +0 -0
  34. {qrpa-1.0.62 → qrpa-1.0.64}/setup.py +0 -0
  35. {qrpa-1.0.62 → qrpa-1.0.64}/tests/test_db_migrator.py +0 -0
  36. {qrpa-1.0.62 → qrpa-1.0.64}/tests/test_wxwork.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qrpa
3
- Version: 1.0.62
3
+ Version: 1.0.64
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.62"
7
+ version = "1.0.64"
8
8
  description = "qsir's rpa library"
9
9
  authors = [{ name = "QSir", email = "1171725650@qq.com" }]
10
10
  readme = "README.md"
@@ -281,6 +281,12 @@ class SheinExcel:
281
281
  cache_file_excel = f'{self.config.auto_dir}/shein/cache/shein_return_order_list_excel_{start_date}_{end_date}.json'
282
282
  write_dict_to_file(cache_file_excel, excel_data)
283
283
 
284
+ sheet_name = '希音退货列表'
285
+ batch_excel_operations(self.config.excel_return_list, [
286
+ (sheet_name, 'write', excel_data, ['W', 'Z']),
287
+ (sheet_name, 'format', self.format_return_list)
288
+ ])
289
+
284
290
  excel_data = [header]
285
291
  cache_file = f'{self.config.auto_dir}/shein/cache/shein_return_order_list_{TimeUtils.today_date()}.json'
286
292
  dict = read_dict_from_file(cache_file)
@@ -1656,7 +1662,7 @@ class SheinExcel:
1656
1662
  store_excel_data = [header]
1657
1663
  for comment in comment_list:
1658
1664
  row_item = []
1659
- row_item.append(comment['commentId'])
1665
+ row_item.append(f'{comment['commentId']}\n{store_name}')
1660
1666
  row_item.append(comment['goodsThumb'])
1661
1667
  product_info = f'属性:{comment["goodsAttribute"]}\n货号:{comment["goodSn"]}\nSPU:{comment["spu"]}\nSKC:{comment["skc"]}\nSKU:{comment["sku"]}'
1662
1668
  row_item.append(product_info)
@@ -631,6 +631,32 @@ class SheinLib:
631
631
  log(f'正在获取 {self.store_name} 最近一个月出库金额: {last_item["totalCustomerAmount"]}')
632
632
  return last_item['totalCustomerAmount']
633
633
 
634
+ # 存储商品库
635
+ def store_product_info(self):
636
+ # todo 商品详情 属性 规格 图片 重量 与 尺寸
637
+ skc_list = self.get_bak_base_info()
638
+ cache_file = f'{self.config.auto_dir}/shein/sku_price/sku_price_{self.store_username}.json'
639
+ dict_sku = read_dict_from_file(cache_file)
640
+ for skc_item in skc_list:
641
+ skc_item['store_username'] = self.store_username
642
+ skc_item['store_name'] = self.store_name
643
+ skc_item['store_manager'] = self.config.shein_store_manager.get(str(self.store_username).lower())
644
+ spu = skc_item['spu']
645
+
646
+ # 倒序遍历 skuList,安全删除
647
+ for i in range(len(skc_item['skuList']) - 1, -1, -1):
648
+ sku_item = skc_item['skuList'][i]
649
+ if sku_item['skuCode'] == '合计':
650
+ del skc_item['skuList'][i] # 删除“合计”
651
+ continue
652
+ sku_item['price'] = dict_sku[sku_item['skuCode']]
653
+ cost_price = self.bridge.get_sku_cost(sku_item['supplierSku'], self.config.erp_source)
654
+ sku_item['erp_cost_price'] = cost_price if isinstance(cost_price, (int, float)) else None
655
+ sku_item['erp_supplier_name'] = self.bridge.get_sku_supplier(sku_item['supplierSku'], self.config.erp_source)
656
+
657
+ cache_file = f'{self.config.auto_dir}/shein/product/skc_list_{self.store_username}.json'
658
+ write_dict_to_file_ex(cache_file, {self.store_username: skc_list}, [self.store_username])
659
+
634
660
  # 获取备货信息列表
635
661
  def get_bak_base_info(self):
636
662
  log(f'获取备货信息列表 {self.store_name} {self.store_username}')
@@ -680,7 +706,10 @@ class SheinLib:
680
706
  spu_list = response_text['info']['list']
681
707
 
682
708
  skc_list = [item['skc'] for item in spu_list]
709
+ self.get_activity_label(skc_list)
710
+ self.get_preemption_list(skc_list)
683
711
  self.get_sku_price_v2(skc_list)
712
+ self.get_stock_advice(skc_list)
684
713
 
685
714
  total = response_text['info']['count']
686
715
  totalPage = math.ceil(total / pageSize)
@@ -693,7 +722,10 @@ class SheinLib:
693
722
  spu_list += new_spu_list
694
723
 
695
724
  skc_list = [item['skc'] for item in new_spu_list]
725
+ self.get_activity_label(skc_list)
726
+ self.get_preemption_list(skc_list)
696
727
  self.get_sku_price_v2(skc_list)
728
+ self.get_stock_advice(skc_list)
697
729
 
698
730
  time.sleep(0.3)
699
731
 
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: qrpa
3
- Version: 1.0.62
3
+ Version: 1.0.64
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