ey-commerce-lib 1.0.23__tar.gz → 1.0.24__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 ey-commerce-lib might be problematic. Click here for more details.

Files changed (73) hide show
  1. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/PKG-INFO +1 -1
  2. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/pyproject.toml +1 -1
  3. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/takesend/config.py +14 -1
  4. ey_commerce_lib-1.0.24/src/ey_commerce_lib/takesend/main.py +117 -0
  5. ey_commerce_lib-1.0.24/src/ey_commerce_lib/takesend/parser/order.py +20 -0
  6. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/tests/dxm/test_purchase.py +3 -6
  7. ey_commerce_lib-1.0.24/tests/kogan/__init__.py +0 -0
  8. ey_commerce_lib-1.0.23/src/ey_commerce_lib/takesend/main.py +0 -57
  9. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/.gitignore +0 -0
  10. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/.python-version +0 -0
  11. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/README.md +0 -0
  12. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/pytest.ini +0 -0
  13. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/__init__.py +0 -0
  14. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/__init__.py +0 -0
  15. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/constant/__init__.py +0 -0
  16. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/constant/order.py +0 -0
  17. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/exception/__init__.py +0 -0
  18. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/exception/common.py +0 -0
  19. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/main.py +0 -0
  20. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/parser/__init__.py +0 -0
  21. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/parser/common.py +0 -0
  22. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/parser/count.py +0 -0
  23. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/parser/ebay_product.py +0 -0
  24. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/parser/export_template.py +0 -0
  25. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/parser/order.py +0 -0
  26. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/parser/purchase.py +0 -0
  27. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/parser/tracking.py +0 -0
  28. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/parser/warehouse.py +0 -0
  29. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/schemas/__init__.py +0 -0
  30. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/schemas/common.py +0 -0
  31. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/schemas/dxm_commodity_product.py +0 -0
  32. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/schemas/ebay_product.py +0 -0
  33. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/schemas/export_package.py +0 -0
  34. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/schemas/order.py +0 -0
  35. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/schemas/tracking.py +0 -0
  36. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/schemas/warehouse.py +0 -0
  37. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/utils/__init__.py +0 -0
  38. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/utils/dxm_commodity_product.py +0 -0
  39. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/dxm/utils/mark.py +0 -0
  40. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/four_seller/__init__.py +0 -0
  41. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/four_seller/constant/__init__.py +0 -0
  42. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/four_seller/constant/response.py +0 -0
  43. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/four_seller/main.py +0 -0
  44. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/four_seller/parser/__init__.py +0 -0
  45. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/four_seller/parser/order.py +0 -0
  46. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/four_seller/schemas/__init__.py +0 -0
  47. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/four_seller/schemas/query/__init__.py +0 -0
  48. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/four_seller/schemas/query/order.py +0 -0
  49. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/four_seller/schemas/vo/__init__.py +0 -0
  50. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/four_seller/schemas/vo/order.py +0 -0
  51. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/kogan/__init__.py +0 -0
  52. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/kogan/main.py +0 -0
  53. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/kogan/schemas/__init__.py +0 -0
  54. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/kogan/schemas/query/__init__.py +0 -0
  55. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/kogan/schemas/query/order.py +0 -0
  56. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/kogan/schemas/query/product.py +0 -0
  57. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/kogan/schemas/response/__init__.py +0 -0
  58. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/kogan/schemas/response/order.py +0 -0
  59. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/kogan/schemas/response/product.py +0 -0
  60. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/model.py +0 -0
  61. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/py.typed +0 -0
  62. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/takesend/__init__.py +0 -0
  63. {ey_commerce_lib-1.0.23/src/ey_commerce_lib/utils → ey_commerce_lib-1.0.24/src/ey_commerce_lib/takesend/parser}/__init__.py +0 -0
  64. {ey_commerce_lib-1.0.23/tests → ey_commerce_lib-1.0.24/src/ey_commerce_lib/utils}/__init__.py +0 -0
  65. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/utils/close.py +0 -0
  66. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/utils/dxm.py +0 -0
  67. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/utils/float.py +0 -0
  68. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/utils/list_util.py +0 -0
  69. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/src/ey_commerce_lib/utils/str.py +0 -0
  70. {ey_commerce_lib-1.0.23/tests/dxm → ey_commerce_lib-1.0.24/tests}/__init__.py +0 -0
  71. {ey_commerce_lib-1.0.23/tests/kogan → ey_commerce_lib-1.0.24/tests/dxm}/__init__.py +0 -0
  72. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/tests/kogan/test_client.py +0 -0
  73. {ey_commerce_lib-1.0.23 → ey_commerce_lib-1.0.24}/uv.lock +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: ey-commerce-lib
3
- Version: 1.0.23
3
+ Version: 1.0.24
4
4
  Summary: eeyoung电商客户端调用封装
5
5
  Author-email: 饶奇奇 <1124393197@qq.com>
6
6
  Requires-Python: >=3.10
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "ey-commerce-lib"
3
- version = "1.0.23"
3
+ version = "1.0.24"
4
4
  description = "eeyoung电商客户端调用封装"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -23,4 +23,17 @@ EDIT_HEADERS = {
23
23
  'Referer': 'http://k5.takesend.com:8180/client/Logon?action=initMenu',
24
24
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36',
25
25
  'X-Requested-With': 'XMLHttpRequest',
26
- }
26
+ }
27
+
28
+ LIST_HEADS = {
29
+ 'Accept': '*/*',
30
+ 'Accept-Language': 'zh-CN,zh;q=0.9',
31
+ 'Cache-Control': 'no-cache',
32
+ 'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
33
+ 'Origin': 'http://k5.takesend.com:8180',
34
+ 'Pragma': 'no-cache',
35
+ 'Proxy-Connection': 'keep-alive',
36
+ 'Referer': 'http://k5.takesend.com:8180/client/Logon?action=initMenu',
37
+ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/141.0.0.0 Safari/537.36',
38
+ 'X-Requested-With': 'XMLHttpRequest',
39
+ }
@@ -0,0 +1,117 @@
1
+ from httpx import AsyncClient, Timeout
2
+
3
+ from ey_commerce_lib.takesend.config import LOGIN_HEADERS, EDIT_HEADERS, LIST_HEADS
4
+ from ey_commerce_lib.takesend.parser.order import get_order_page, get_order_track_number_list
5
+
6
+
7
+ class TakeSendClient(object):
8
+
9
+ def __init__(self, username: str, password: str):
10
+ timeout = Timeout(connect=60.0, read=60.0, write=60.0, pool=30.0)
11
+ self.__async_client = AsyncClient(
12
+ base_url="http://k5.takesend.com:8180",
13
+ timeout=timeout,
14
+ verify=False
15
+ )
16
+ self.__username = username
17
+ self.__password = password
18
+
19
+ async def login(self):
20
+ """
21
+ 自动登录
22
+ :return:
23
+ """
24
+ # 访问首页
25
+ await self.__async_client.get("/c_index.jsp")
26
+ # 登录
27
+ params = {
28
+ 'action': 'logon'
29
+ }
30
+ data = {
31
+ 'userid': self.__username,
32
+ 'password': self.__password
33
+ }
34
+ # 请求登录接口
35
+ await self.__async_client.post(".//client/Logon", params=params, data=data, headers=LOGIN_HEADERS)
36
+
37
+ async def client_cc_order(self, excel_data: list | str):
38
+ """
39
+ 修改泰嘉产品上传重量数据
40
+ :param excel_data:
41
+ :return:
42
+ """
43
+
44
+ params = {
45
+ 'action': 'updateDweight',
46
+ }
47
+ data = {
48
+ 'excel[]': excel_data,
49
+ }
50
+
51
+ response = await self.__async_client.post('/Client/CCOrder', params=params, data=data, headers=EDIT_HEADERS)
52
+ return response.json()
53
+
54
+ async def client_cc_order_list_by_pre_date(self, pageNum: int, pageSize: int, begeditdate: str, endeditdate: str):
55
+ """
56
+ 泰嘉已预报根据制单日期查询全部订单
57
+ :param pageNum:
58
+ :param pageSize:
59
+ :param begeditdate: 制单日期开始
60
+ :param endeditdate: 制单日期结束
61
+ :return:
62
+ """
63
+
64
+ # 访问首页刷新token
65
+ await self.__async_client.get('/client/Logon?action=initMenu')
66
+ params = {
67
+ 'action': 'list',
68
+ }
69
+ data = {
70
+ 'flag': '3',
71
+ 'pageNum1': '1',
72
+ 'numPerPage': '200',
73
+ 'orderField': '1',
74
+ 'orderDirection': 'asc',
75
+ 'corpbillid': '',
76
+ 'channelid': '',
77
+ 'orgLookup.country': '',
78
+ 'orgLookup.chinese': '',
79
+ 'printnum': '',
80
+ 'ordertype': 'CORDER',
81
+ 'buyerid': '',
82
+ 'mbflag': '',
83
+ 'houseid': '',
84
+ 'begeditdate': '2025-10-24 00:00:00',
85
+ 'endeditdate': '2025-10-24 23:50:50',
86
+ }
87
+ response = await self.__async_client.post('/Client/CCOrder', params=params, data=data)
88
+ return response.text
89
+
90
+ async def list_track_number_client_cc_order_list_by_pre_date(self, begeditdate: str, endeditdate: str):
91
+ """
92
+ 泰嘉已预报根据制单日期查询全部订单
93
+ :param begeditdate:
94
+ :param endeditdate:
95
+ :return:
96
+ """
97
+ # 遍历页码
98
+ page_info = get_order_page(
99
+ await self.client_cc_order_list_by_pre_date(pageNum=1, pageSize=200, begeditdate=begeditdate,
100
+ endeditdate=endeditdate))
101
+ total = page_info['total']
102
+ # 计算总页数
103
+ total_page = total // 200 + 1
104
+ track_number_list = []
105
+ for page in range(1, total_page + 1):
106
+ # 获取订单列表
107
+ page_html = await self.client_cc_order_list_by_pre_date(pageNum=page, pageSize=200, begeditdate=begeditdate,
108
+ endeditdate=endeditdate)
109
+ # 解析
110
+ track_number_list.extend(get_order_track_number_list(page_html))
111
+ return track_number_list
112
+
113
+ async def __aenter__(self):
114
+ return self
115
+
116
+ async def __aexit__(self, exc_type, exc_val, exc_tb):
117
+ await self.__async_client.aclose()
@@ -0,0 +1,20 @@
1
+ from lxml import html
2
+
3
+
4
+ def get_order_track_number_list(html_str: str):
5
+ tree = html.fromstring(html_str)
6
+ track_number_element_list = tree.xpath('//div[@class="pageContent"]//tbody/tr[@target="sid_serialid"]/td[4]/text()')
7
+ track_number_list = []
8
+ for track_number_element in track_number_element_list:
9
+ track_number = track_number_element.strip()
10
+ if track_number:
11
+ track_number_list.append(track_number)
12
+ return track_number_list
13
+
14
+
15
+ def get_order_page(html_str: str):
16
+ tree = html.fromstring(html_str)
17
+ return {
18
+ 'total': int(tree.xpath('//div[@class="pagination"]/@totalcount')[0]),
19
+ 'page_size': int(tree.xpath('//div[@class="pagination"]/@numperpage')[0])
20
+ }
@@ -17,6 +17,7 @@ from ey_commerce_lib.four_seller.main import FourSellerClient
17
17
  from ey_commerce_lib.four_seller.schemas.query.order import FourSellerOrderQueryModel
18
18
  from ey_commerce_lib.takesend.main import TakeSendClient
19
19
  import ey_commerce_lib.dxm.utils.dxm_commodity_product as dxm_commodity_product_util
20
+ from ey_commerce_lib.takesend.parser.order import get_order_track_number_list
20
21
 
21
22
 
22
23
  async def login_success(user_token: str):
@@ -27,12 +28,8 @@ async def login_success(user_token: str):
27
28
  @pytest.mark.asyncio
28
29
  async def test_auto_login_4seller():
29
30
  # print(user_token)
30
- async with FourSellerClient(
31
- user_name="xxxxx",
32
- password="xxxxxx",
33
- login_success_call_back=login_success,
34
- user_token="xxxxxx") as four_seller_client:
35
- await four_seller_client.list_history_order(FourSellerOrderQueryModel())
31
+ pass
32
+
36
33
 
37
34
 
38
35
  cookies = {
File without changes
@@ -1,57 +0,0 @@
1
- from httpx import AsyncClient, Timeout
2
-
3
- from ey_commerce_lib.takesend.config import LOGIN_HEADERS, EDIT_HEADERS
4
-
5
-
6
- class TakeSendClient(object):
7
-
8
- def __init__(self, username: str, password: str):
9
- timeout = Timeout(connect=60.0, read=60.0, write=60.0, pool=30.0)
10
- self.__async_client = AsyncClient(
11
- base_url="http://k5.takesend.com:8180",
12
- timeout=timeout,
13
- verify=False
14
- )
15
- self.__username = username
16
- self.__password = password
17
-
18
- async def login(self):
19
- """
20
- 自动登录
21
- :return:
22
- """
23
- # 访问首页
24
- await self.__async_client.get("/c_index.jsp")
25
- # 登录
26
- params = {
27
- 'action': 'logon'
28
- }
29
- data = {
30
- 'userid': self.__username,
31
- 'password': self.__password
32
- }
33
- # 请求登录接口
34
- await self.__async_client.post(".//client/Logon", params=params, data=data, headers=LOGIN_HEADERS)
35
-
36
- async def client_cc_order(self, excel_data: list | str):
37
- """
38
- 修改泰嘉产品上传重量数据
39
- :param excel_data:
40
- :return:
41
- """
42
-
43
- params = {
44
- 'action': 'updateDweight',
45
- }
46
- data = {
47
- 'excel[]': excel_data,
48
- }
49
-
50
- response = await self.__async_client.post('/Client/CCOrder', params=params, data=data, headers=EDIT_HEADERS)
51
- return response.json()
52
-
53
- async def __aenter__(self):
54
- return self
55
-
56
- async def __aexit__(self, exc_type, exc_val, exc_tb):
57
- await self.__async_client.aclose()