python-qlv-helper 0.6.0__py3-none-any.whl → 0.9.3__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.
- {python_qlv_helper-0.6.0.dist-info → python_qlv_helper-0.9.3.dist-info}/METADATA +9 -7
- {python_qlv_helper-0.6.0.dist-info → python_qlv_helper-0.9.3.dist-info}/RECORD +17 -16
- qlv_helper/config/url_const.py +2 -0
- qlv_helper/controller/main_page.py +18 -2
- qlv_helper/controller/order_detail.py +202 -212
- qlv_helper/controller/order_table.py +178 -16
- qlv_helper/controller/user_login.py +106 -102
- qlv_helper/controller/wechat_login.py +50 -0
- qlv_helper/http/order_page.py +187 -24
- qlv_helper/po/domestic_activity_order_page.py +91 -0
- qlv_helper/po/login_page.py +36 -74
- qlv_helper/po/main_page.py +7 -38
- qlv_helper/po/order_detail_page.py +46 -1
- qlv_helper/utils/ocr_helper.py +38 -43
- {python_qlv_helper-0.6.0.dist-info → python_qlv_helper-0.9.3.dist-info}/WHEEL +0 -0
- {python_qlv_helper-0.6.0.dist-info → python_qlv_helper-0.9.3.dist-info}/licenses/LICENSE +0 -0
- {python_qlv_helper-0.6.0.dist-info → python_qlv_helper-0.9.3.dist-info}/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: python_qlv_helper
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.9.3
|
|
4
4
|
Summary: qlv helper python package
|
|
5
5
|
Author-email: ckf10000 <ckf10000@sina.com>
|
|
6
6
|
License: Apache License
|
|
@@ -210,14 +210,16 @@ Project-URL: Issues, https://github.com/ckf10000/qlv-helper/issues
|
|
|
210
210
|
Requires-Python: >=3.12
|
|
211
211
|
Description-Content-Type: text/markdown
|
|
212
212
|
License-File: LICENSE
|
|
213
|
-
Requires-Dist: playwright==1.56.0; python_version >= "3.12"
|
|
214
|
-
Requires-Dist: playwright-stealth==2.0.0; python_version >= "3.12"
|
|
215
|
-
Requires-Dist: ddddocr==1.5.6; python_version >= "3.12"
|
|
213
|
+
Requires-Dist: playwright==1.56.0; python_version >= "3.12"
|
|
214
|
+
Requires-Dist: playwright-stealth==2.0.0; python_version >= "3.12"
|
|
215
|
+
Requires-Dist: ddddocr==1.5.6; python_version >= "3.12"
|
|
216
216
|
Requires-Dist: aiohttp==3.13.2; python_version >= "3.12"
|
|
217
217
|
Requires-Dist: beautifulsoup4==4.14.2; python_version >= "3.12"
|
|
218
|
-
Requires-Dist: airtest==1.3.6; python_version >= "3.12"
|
|
219
|
-
Requires-Dist: python_http_helper>=0.2.
|
|
220
|
-
Requires-Dist: python_playwright_helper>=0.
|
|
218
|
+
Requires-Dist: airtest==1.3.6; python_version >= "3.12"
|
|
219
|
+
Requires-Dist: python_http_helper>=0.2.1; python_version >= "3.12"
|
|
220
|
+
Requires-Dist: python_playwright_helper>=0.4.3; python_version >= "3.12"
|
|
221
|
+
Requires-Dist: python_ocr_helper>=0.0.2; python_version >= "3.12"
|
|
222
|
+
Requires-Dist: flight_helper>=0.3.6
|
|
221
223
|
Dynamic: license-file
|
|
222
224
|
|
|
223
225
|
# qlv-helper
|
|
@@ -1,35 +1,36 @@
|
|
|
1
|
-
python_qlv_helper-0.
|
|
1
|
+
python_qlv_helper-0.9.3.dist-info/licenses/LICENSE,sha256=WtjCEwlcVzkh1ziO35P2qfVEkLjr87Flro7xlHz3CEY,11556
|
|
2
2
|
qlv_helper/__init__.py,sha256=5DCc5JhfdsgtIuFWgkxPOW5VVKZ8RPikQLGIuyZX6_Y,465
|
|
3
3
|
qlv_helper/config/__init__.py,sha256=0pKLgui-sC6yMNBBuuTTLkUGhPybiJQSTKTbi66alvg,465
|
|
4
4
|
qlv_helper/config/custom_exception.py,sha256=uYme0iseQt_dP-Y6-hZ_H2OA2OQR0Kp5PmmZvhEZlEc,805
|
|
5
|
-
qlv_helper/config/url_const.py,sha256=
|
|
5
|
+
qlv_helper/config/url_const.py,sha256=EoLHOtlO3Ob2WSMMv6TBrl7eJCfJCB844dwmD_k86BM,630
|
|
6
6
|
qlv_helper/controller/__init__.py,sha256=cOJA0xMIytv17oICzPYqWLaSy-Ro2Ceeti0hHhsUj6Y,468
|
|
7
7
|
qlv_helper/controller/domestic_activity_order.py,sha256=MlmsDVsMBWq2h4Yjh1rhO372Z3p8tu2-4IZGP-nkfr8,1136
|
|
8
|
-
qlv_helper/controller/main_page.py,sha256=
|
|
9
|
-
qlv_helper/controller/order_detail.py,sha256=
|
|
10
|
-
qlv_helper/controller/order_table.py,sha256=
|
|
11
|
-
qlv_helper/controller/user_login.py,sha256=
|
|
8
|
+
qlv_helper/controller/main_page.py,sha256=p_-nXAIptNrx1SUgma7oPB-cqFFHYdCNvXCfsesIQFc,1855
|
|
9
|
+
qlv_helper/controller/order_detail.py,sha256=bDmA_v0CummPlKKfxTry6-SaH6qfZ4LekqnK38Rq2CA,22114
|
|
10
|
+
qlv_helper/controller/order_table.py,sha256=bVVCM2oJF4q43fdJN5aBYbpwzW2rcL0bMoCP90ZIvtY,15144
|
|
11
|
+
qlv_helper/controller/user_login.py,sha256=oXO1otTGuK3_r07fKdncQE3Is2w-kiI-mWmJyFvsVyE,5915
|
|
12
|
+
qlv_helper/controller/wechat_login.py,sha256=0u9H6tJiQO28nT5AG2Ot7EWFmpBqFJD_9dd12snsJIQ,2196
|
|
12
13
|
qlv_helper/http/__init__.py,sha256=yDh1xi_o7ohXqDAzLu62qCWIGk4_aD1dhnUaCon3klM,484
|
|
13
14
|
qlv_helper/http/main_page.py,sha256=LTpwrG8H_NqwCa3185irgcGd6JQkChAk7HQsDM-TNTI,1519
|
|
14
|
-
qlv_helper/http/order_page.py,sha256=
|
|
15
|
+
qlv_helper/http/order_page.py,sha256=aaghRwvC2Px5OgQh8Lc4-Q1eQWbXE-lYM2iLdm7qbSw,24987
|
|
15
16
|
qlv_helper/http/order_table_page.py,sha256=IaXn5wjqPi1aRXHz0kucdHEdZswUWAZfECC13y57y8k,14440
|
|
16
17
|
qlv_helper/po/__init__.py,sha256=eDr06o0eYapBsYpOhA11bbxzs2F0dsuDjOKmxk_2HVE,480
|
|
17
|
-
qlv_helper/po/domestic_activity_order_page.py,sha256=
|
|
18
|
-
qlv_helper/po/login_page.py,sha256=
|
|
19
|
-
qlv_helper/po/main_page.py,sha256=
|
|
20
|
-
qlv_helper/po/order_detail_page.py,sha256=
|
|
18
|
+
qlv_helper/po/domestic_activity_order_page.py,sha256=El63U0GI2PU9WGIkGxPgCE1Fp1yCsw2v1H6cZhSaG4c,8509
|
|
19
|
+
qlv_helper/po/login_page.py,sha256=JbapNFwGCei3K3mpfhte1TVNeqzG7yHsCtp5KiKv_6g,4271
|
|
20
|
+
qlv_helper/po/main_page.py,sha256=0_tqZILZnLS6y3chg9ERTHDtg86pW0aIQ1vNuPFLVG8,1752
|
|
21
|
+
qlv_helper/po/order_detail_page.py,sha256=f3PZF1Sm5Xdc9qRQDDKSq08L6PM-o4Vkchu32sZytfA,15545
|
|
21
22
|
qlv_helper/po/wechat_auth_page.py,sha256=a4YZlM5JOS0l3CNJm_oJFBhZY7AbNOpdIwilSjAO5bY,3171
|
|
22
23
|
qlv_helper/utils/__init__.py,sha256=rGzBkUf1tslG4WRPQjVWTVuwWG76pkckuKO_6K4sEus,465
|
|
23
24
|
qlv_helper/utils/browser_utils.py,sha256=mKoqSEz1vFrVemp9cgI4R5UhA4k7i0Cd9cWsIXJZ6E4,986
|
|
24
25
|
qlv_helper/utils/datetime_utils.py,sha256=BaDJKuH-yqc2NF9KYN66zUYUEJ9ZRHj09AV4-gILf3o,606
|
|
25
26
|
qlv_helper/utils/file_handle.py,sha256=_dJ9Yk8esttJYsjdBMZAkjZTDQh5QYVPXjLRRyWUMh0,1087
|
|
26
27
|
qlv_helper/utils/html_utils.py,sha256=i5oOFYETH3kDS9-rSyGu1SHFTkfZvAPPQ4za76BCdVA,1962
|
|
27
|
-
qlv_helper/utils/ocr_helper.py,sha256=
|
|
28
|
+
qlv_helper/utils/ocr_helper.py,sha256=vpIokr07Utmpsb78MHF83UcXL90A8BPbLgjMg4kONyA,3343
|
|
28
29
|
qlv_helper/utils/po_utils.py,sha256=SwQKL58HERGG2Weou_AwY_TQoYSvgi0gvaVCJBput_k,3516
|
|
29
30
|
qlv_helper/utils/stealth_browser.py,sha256=srNOYJOboYo30TvW5OP5TaVpg4jgHm9GxqmYnuwcUQU,3140
|
|
30
31
|
qlv_helper/utils/type_utils.py,sha256=S5FXUje2mbDuq27LU05WymxNu1VGOLBUV3tuqcx51dE,3792
|
|
31
32
|
qlv_helper/utils/windows_utils.py,sha256=Cvedsk1c2ujgPNVxszz8XWANkvEr8G9kne6povtZRU4,2866
|
|
32
|
-
python_qlv_helper-0.
|
|
33
|
-
python_qlv_helper-0.
|
|
34
|
-
python_qlv_helper-0.
|
|
35
|
-
python_qlv_helper-0.
|
|
33
|
+
python_qlv_helper-0.9.3.dist-info/METADATA,sha256=GVMfOfy40GcPrKIH_pLtFCW3vzPD6b2sZH-yd4XbnW4,14825
|
|
34
|
+
python_qlv_helper-0.9.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
35
|
+
python_qlv_helper-0.9.3.dist-info/top_level.txt,sha256=0pYdhD8SfBcC57LzLYGHY7cwwPqdqAkB1twysCJh5OA,11
|
|
36
|
+
python_qlv_helper-0.9.3.dist-info/RECORD,,
|
qlv_helper/config/url_const.py
CHANGED
|
@@ -10,13 +10,29 @@
|
|
|
10
10
|
# ---------------------------------------------------------------------------------------------------------
|
|
11
11
|
"""
|
|
12
12
|
import aiohttp
|
|
13
|
+
from logging import Logger
|
|
14
|
+
from playwright.async_api import Page
|
|
13
15
|
from typing import Dict, Any, Optional
|
|
16
|
+
from qlv_helper.po.main_page import MainPage
|
|
14
17
|
from qlv_helper.http.main_page import get_main_page_html, parser_head_title
|
|
15
18
|
|
|
16
19
|
|
|
20
|
+
async def open_main_page(
|
|
21
|
+
*, page: Page, logger: Logger, qlv_protocol: str, qlv_domain: str, timeout: float = 60.0, **kwargs: Any
|
|
22
|
+
) -> MainPage:
|
|
23
|
+
url_prefix = f"{qlv_protocol}://{qlv_domain}"
|
|
24
|
+
main_url = url_prefix + "/"
|
|
25
|
+
await page.goto(main_url)
|
|
26
|
+
|
|
27
|
+
main_po = MainPage(page=page, url=main_url)
|
|
28
|
+
await main_po.url_wait_for(url=main_url, timeout=timeout)
|
|
29
|
+
logger.info(f"即将进入首页,页面URL<{main_url}>")
|
|
30
|
+
return main_po
|
|
31
|
+
|
|
32
|
+
|
|
17
33
|
async def get_main_info_with_http(
|
|
18
34
|
domain: str, protocol: str = "http", retry: int = 1, timeout: int = 5, enable_log: bool = True,
|
|
19
|
-
cookie_jar: Optional[aiohttp.CookieJar] = None, playwright_state: Dict[str, Any] = None
|
|
35
|
+
cookie_jar: Optional[aiohttp.CookieJar] = None, playwright_state: Dict[str, Any] = None, **kwargs: Any
|
|
20
36
|
) -> Dict[str, Any]:
|
|
21
37
|
response = await get_main_page_html(
|
|
22
38
|
domain=domain, protocol=protocol, retry=retry, timeout=timeout, enable_log=enable_log,
|
|
@@ -27,4 +43,4 @@ async def get_main_info_with_http(
|
|
|
27
43
|
|
|
28
44
|
html = response.get("data")
|
|
29
45
|
response["message"] = parser_head_title(html=html)
|
|
30
|
-
return response
|
|
46
|
+
return response
|
|
@@ -13,11 +13,19 @@ import aiohttp
|
|
|
13
13
|
import asyncio
|
|
14
14
|
from logging import Logger
|
|
15
15
|
from datetime import datetime
|
|
16
|
+
from typing import Dict, Any, List, Optional
|
|
16
17
|
import qlv_helper.config.url_const as url_const
|
|
17
|
-
from typing import Dict, Any, List, cast, Optional
|
|
18
18
|
from qlv_helper.po.order_detail_page import OrderDetailPage
|
|
19
|
+
from flight_helper.utils.exception_utils import UserNotLoginError
|
|
20
|
+
from flight_helper.models.dto.procurement import FillProcurementInputDTO
|
|
21
|
+
from flight_helper.utils.exception_utils import RelationOrderConflictError, LockedOrderFailedError
|
|
19
22
|
from qlv_helper.http.order_page import parser_order_info, get_order_page_html, parser_order_flight_table, \
|
|
20
|
-
|
|
23
|
+
fill_procurement_dto_with_http as _fill_procurement_dto_with_http, fill_remark_with_http as _fill_remark_with_http, \
|
|
24
|
+
update_policy_with_http as _update_policy_with_http, unlock_order_with_http as _unlock_order_with_http, \
|
|
25
|
+
forced_unlock_order_with_http as _forced_unlock_order_with_http, locked_order_with_http as _locked_order_with_http, \
|
|
26
|
+
fill_itinerary_with_http as _fill_itinerary_with_http, \
|
|
27
|
+
kick_out_activity_order_with_http as _kick_out_activity_order_with_http, \
|
|
28
|
+
kick_out_activity_orders_with_http as _kick_out_activity_orders_with_http
|
|
21
29
|
from playwright.async_api import Page, Locator, Error as PlaywrightError, TimeoutError as PlaywrightTimeoutError
|
|
22
30
|
|
|
23
31
|
|
|
@@ -56,9 +64,14 @@ async def open_order_detail_page(
|
|
|
56
64
|
logger.info(f"即将劲旅订单详情页面,页面URL<{order_detail_url}>")
|
|
57
65
|
|
|
58
66
|
try:
|
|
67
|
+
message: str = await order_detail_po.get_message_content(timeout=1)
|
|
68
|
+
if "关联订单" in message:
|
|
69
|
+
raise RelationOrderConflictError(message)
|
|
59
70
|
confirm_btn = await order_detail_po.get_message_notice_dialog_confirm_btn(timeout=1)
|
|
60
71
|
await confirm_btn.click(button="left")
|
|
61
72
|
logger.info("订单详情页面,消息提醒弹框,【确认】按钮点击完成")
|
|
73
|
+
except (RelationOrderConflictError,):
|
|
74
|
+
raise
|
|
62
75
|
except (PlaywrightTimeoutError, PlaywrightError, RuntimeError, Exception):
|
|
63
76
|
pass
|
|
64
77
|
return order_detail_po
|
|
@@ -76,6 +89,58 @@ async def add_custom_remark(*, logger: Logger, page: OrderDetailPage, remark: st
|
|
|
76
89
|
logger.info(f"订单详情页面,日志记录栏,【保存备注】按钮点击完成")
|
|
77
90
|
|
|
78
91
|
|
|
92
|
+
async def add_custom_remark_with_http(
|
|
93
|
+
*, order_id: int, remark: str, domain: str, protocol: str = "http", retry: int = 1, timeout: int = 5,
|
|
94
|
+
enable_log: bool = True, cookie_jar: Optional[aiohttp.CookieJar] = None, playwright_state: Dict[str, Any] = None
|
|
95
|
+
) -> Dict[str, Any]:
|
|
96
|
+
return await _fill_remark_with_http(
|
|
97
|
+
remark=remark, order_id=order_id, qlv_domain=domain, qlv_protocol=protocol, retry=retry, timeout=timeout,
|
|
98
|
+
enable_log=enable_log, cookie_jar=cookie_jar, playwright_state=playwright_state
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
async def update_order_policy_with_http(
|
|
103
|
+
*, order_id: int, policy_name: str, domain: str, protocol: str = "http", retry: int = 1, timeout: int = 5,
|
|
104
|
+
enable_log: bool = True, cookie_jar: Optional[aiohttp.CookieJar] = None, old_policy_name: Optional[str] = None,
|
|
105
|
+
playwright_state: Dict[str, Any] = None
|
|
106
|
+
) -> Dict[str, Any]:
|
|
107
|
+
return await _update_policy_with_http(
|
|
108
|
+
policy_name=policy_name, order_id=order_id, qlv_domain=domain, qlv_protocol=protocol, retry=retry,
|
|
109
|
+
timeout=timeout, enable_log=enable_log, cookie_jar=cookie_jar, playwright_state=playwright_state,
|
|
110
|
+
old_policy_name=old_policy_name
|
|
111
|
+
)
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
async def locked_order_with_http(
|
|
115
|
+
*, order_id: int, domain: str, protocol: str = "http", retry: int = 1, timeout: int = 5,
|
|
116
|
+
enable_log: bool = True, cookie_jar: Optional[aiohttp.CookieJar] = None, playwright_state: Dict[str, Any] = None
|
|
117
|
+
) -> Dict[str, Any]:
|
|
118
|
+
return await _locked_order_with_http(
|
|
119
|
+
order_id=order_id, qlv_domain=domain, qlv_protocol=protocol, retry=retry, timeout=timeout,
|
|
120
|
+
enable_log=enable_log, cookie_jar=cookie_jar, playwright_state=playwright_state
|
|
121
|
+
)
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
async def unlock_order_with_http(
|
|
125
|
+
*, order_id: int, domain: str, protocol: str = "http", retry: int = 1, timeout: int = 5,
|
|
126
|
+
enable_log: bool = True, cookie_jar: Optional[aiohttp.CookieJar] = None, playwright_state: Dict[str, Any] = None
|
|
127
|
+
) -> Dict[str, Any]:
|
|
128
|
+
return await _unlock_order_with_http(
|
|
129
|
+
order_id=order_id, qlv_domain=domain, qlv_protocol=protocol, retry=retry, timeout=timeout,
|
|
130
|
+
enable_log=enable_log, cookie_jar=cookie_jar, playwright_state=playwright_state
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
async def forced_unlock_order_with_http(
|
|
135
|
+
*, order_id: int, domain: str, protocol: str = "http", retry: int = 1, timeout: int = 5,
|
|
136
|
+
enable_log: bool = True, cookie_jar: Optional[aiohttp.CookieJar] = None, playwright_state: Dict[str, Any] = None
|
|
137
|
+
) -> Dict[str, Any]:
|
|
138
|
+
return await _forced_unlock_order_with_http(
|
|
139
|
+
order_id=order_id, qlv_domain=domain, qlv_protocol=protocol, retry=retry, timeout=timeout,
|
|
140
|
+
enable_log=enable_log, cookie_jar=cookie_jar, playwright_state=playwright_state
|
|
141
|
+
)
|
|
142
|
+
|
|
143
|
+
|
|
79
144
|
async def update_order_policy(
|
|
80
145
|
*, page: OrderDetailPage, logger: Logger, policy: str, order_id: int, timeout: float = 5.0
|
|
81
146
|
) -> None:
|
|
@@ -92,6 +157,13 @@ async def order_unlock(
|
|
|
92
157
|
*, logger: Logger, page: OrderDetailPage, remark: str, order_id: int, is_force: bool = False,
|
|
93
158
|
qlv_user_id: Optional[str] = None, timeout: float = 5.0
|
|
94
159
|
) -> None:
|
|
160
|
+
try:
|
|
161
|
+
confirm_btn = await page.get_message_notice_dialog_confirm_btn(timeout=3)
|
|
162
|
+
await confirm_btn.click(button="left")
|
|
163
|
+
logger.info("订单详情页面,消息提醒弹框,【确认】按钮点击完成")
|
|
164
|
+
await asyncio.sleep(2)
|
|
165
|
+
except (Exception,):
|
|
166
|
+
pass
|
|
95
167
|
# 1. 获取订单操作锁的状态
|
|
96
168
|
lock_state, lock_btn = await page.get_order_lock_state_btn(timeout=timeout)
|
|
97
169
|
if "强制解锁" in lock_state:
|
|
@@ -100,7 +172,7 @@ async def order_unlock(
|
|
|
100
172
|
await lock_btn.click(button="left")
|
|
101
173
|
logger.info(f"订单详情页面,用户操作【{lock_state}】按钮点击完成")
|
|
102
174
|
try:
|
|
103
|
-
confirm_btn = await page.get_message_notice_dialog_confirm_btn(timeout=
|
|
175
|
+
confirm_btn = await page.get_message_notice_dialog_confirm_btn(timeout=5)
|
|
104
176
|
await confirm_btn.click(button="left")
|
|
105
177
|
logger.info("订单详情页面,强制解锁弹框确认,【确认】按钮点击完成")
|
|
106
178
|
await asyncio.sleep(2)
|
|
@@ -114,10 +186,27 @@ async def order_unlock(
|
|
|
114
186
|
return
|
|
115
187
|
elif "操作" in lock_state:
|
|
116
188
|
await lock_btn.click(button="left")
|
|
117
|
-
|
|
118
|
-
|
|
189
|
+
logger.info(f"订单详情页面,日志记录栏,【{lock_state}】按钮点击完成")
|
|
190
|
+
try:
|
|
191
|
+
confirm_btn = await page.get_message_notice_dialog_confirm_btn(timeout=3)
|
|
192
|
+
await confirm_btn.click(button="left")
|
|
193
|
+
logger.info("订单详情页面,消息提醒弹框,【确认】按钮点击完成")
|
|
194
|
+
await asyncio.sleep(2)
|
|
195
|
+
except (Exception,):
|
|
196
|
+
pass
|
|
119
197
|
lock_state, lock_btn = await page.get_order_lock_state_btn(timeout=timeout)
|
|
120
|
-
logger.info(f"
|
|
198
|
+
logger.info(f"订单详情页面,页面刷新后,【{lock_state}】按钮获取完成")
|
|
199
|
+
if "操作" in lock_state:
|
|
200
|
+
await lock_btn.click(button="left")
|
|
201
|
+
logger.info(f"订单详情页面,日志记录栏,【{lock_state}】按钮点击完成")
|
|
202
|
+
try:
|
|
203
|
+
confirm_btn = await page.get_message_notice_dialog_confirm_btn(timeout=3)
|
|
204
|
+
await confirm_btn.click(button="left")
|
|
205
|
+
logger.info("订单详情页面,消息提醒弹框,【确认】按钮点击完成")
|
|
206
|
+
await asyncio.sleep(2)
|
|
207
|
+
except (Exception,):
|
|
208
|
+
pass
|
|
209
|
+
lock_state, lock_btn = await page.get_order_lock_state_btn(timeout=timeout)
|
|
121
210
|
if remark:
|
|
122
211
|
# 2. 添加解锁备注
|
|
123
212
|
await add_custom_remark(logger=logger, page=page, remark=remark, timeout=timeout)
|
|
@@ -154,11 +243,19 @@ async def order_locked(
|
|
|
154
243
|
# 2. 点击【锁定|操作】按钮
|
|
155
244
|
await lock_btn.click(button="left")
|
|
156
245
|
logger.info(f"订单详情页面,日志记录栏,【{lock_state}】按钮点击完成")
|
|
246
|
+
try:
|
|
247
|
+
confirm_btn = await page.get_message_notice_dialog_confirm_btn(timeout=1)
|
|
248
|
+
await confirm_btn.click(button="left")
|
|
249
|
+
logger.info("订单详情页面,强制解锁弹框确认,【确认】按钮点击完成")
|
|
250
|
+
await asyncio.sleep(2)
|
|
251
|
+
except (PlaywrightTimeoutError, PlaywrightError, RuntimeError, Exception):
|
|
252
|
+
pass
|
|
157
253
|
|
|
158
254
|
|
|
159
255
|
async def first_open_page_order_locked(
|
|
160
256
|
*, logger: Logger, page: Page, protocol: str, domain: str, order_id: int, is_force: bool = False,
|
|
161
|
-
qlv_user_id: Optional[str] = None, timeout: float = 5.0,
|
|
257
|
+
qlv_user_id: Optional[str] = None, timeout: float = 5.0, retry: int = 1, enable_log: bool = True,
|
|
258
|
+
cookie_jar: Optional[aiohttp.CookieJar] = None, playwright_state: Dict[str, Any] = None, **kwargs
|
|
162
259
|
) -> OrderDetailPage:
|
|
163
260
|
# 1. 打开页面
|
|
164
261
|
order_detail_po = await open_order_detail_page(
|
|
@@ -166,141 +263,30 @@ async def first_open_page_order_locked(
|
|
|
166
263
|
)
|
|
167
264
|
|
|
168
265
|
# 2. 锁定订单
|
|
169
|
-
await order_locked(
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
)
|
|
173
|
-
return order_detail_po
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
async def first_open_page_order_unlock(
|
|
177
|
-
*, logger: Logger, page: Page, protocol: str, domain: str, order_id: int, is_force: bool = False,
|
|
178
|
-
qlv_user_id: Optional[str] = None, timeout: float = 5.0, remark: Optional[str] = None, **kwargs
|
|
179
|
-
) -> OrderDetailPage:
|
|
180
|
-
# 1. 打开页面
|
|
181
|
-
order_detail_po = await open_order_detail_page(
|
|
182
|
-
page=page, logger=logger, protocol=protocol, domain=domain, order_id=order_id, timeout=timeout
|
|
183
|
-
)
|
|
184
|
-
|
|
185
|
-
# 2. 解锁订单
|
|
186
|
-
await order_unlock(
|
|
187
|
-
logger=logger, page=order_detail_po, order_id=order_id, timeout=timeout, is_force=is_force,
|
|
188
|
-
qlv_user_id=qlv_user_id, remark=remark
|
|
189
|
-
)
|
|
190
|
-
return order_detail_po
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
async def fill_procurement_info(
|
|
194
|
-
*, logger: Logger, page: OrderDetailPage, order_id: int, out_ticket_platform_type: str, purchase_amount: float,
|
|
195
|
-
out_ticket_platform: str, out_ticket_account: str, purchase_account_type: str, purchase_account: str,
|
|
196
|
-
ceair_user_id: str, ceair_password: str, payment_id: str, platform_order_id: str, timeout: float = 5.0
|
|
197
|
-
) -> None:
|
|
198
|
-
# 1. 出票地类型选择【out_ticket_platform_type】
|
|
199
|
-
out_ticket_platform_type_dropdown = await page.get_out_ticket_platform_type_dropdown(timeout=timeout)
|
|
200
|
-
await out_ticket_platform_type_dropdown.select_option(label=out_ticket_platform_type)
|
|
201
|
-
# await out_ticket_platform_type_dropdown.click(button="left")
|
|
202
|
-
# out_ticket_platform_type_select_option = await page.get_out_ticket_platform_type_select_option(
|
|
203
|
-
# select_option=out_ticket_platform_type, timeout=timeout
|
|
204
|
-
# )
|
|
205
|
-
# await out_ticket_platform_type_select_option.click(button="left")
|
|
206
|
-
logger.info(f"订单详情页面,采购信息栏,出票地类型选择<{out_ticket_platform_type}>已完成")
|
|
207
|
-
await asyncio.sleep(1)
|
|
208
|
-
|
|
209
|
-
# 2. 出票平台选择【out_ticket_platform】
|
|
210
|
-
out_ticket_platform_dropdown = await page.get_out_ticket_platform_dropdown(timeout=timeout)
|
|
211
|
-
await out_ticket_platform_dropdown.select_option(label=out_ticket_platform)
|
|
212
|
-
# await out_ticket_platform_dropdown.click(button="left")
|
|
213
|
-
# out_ticket_platform_select_option = await page.get_out_ticket_platform_select_option(
|
|
214
|
-
# select_option=out_ticket_platform, timeout=timeout
|
|
215
|
-
# )
|
|
216
|
-
# await out_ticket_platform_select_option.click(button="left")
|
|
217
|
-
logger.info(f"订单详情页面,采购信息栏,出票平台选择<{out_ticket_platform}>已完成")
|
|
218
|
-
await asyncio.sleep(1)
|
|
219
|
-
|
|
220
|
-
# 3. 出票账号选择【out_ticket_account】
|
|
221
|
-
out_ticket_account_dropdown = await page.get_out_ticket_account_dropdown(timeout=timeout)
|
|
222
|
-
await out_ticket_account_dropdown.select_option(label=out_ticket_account)
|
|
223
|
-
# await out_ticket_account_dropdown.click(button="left")
|
|
224
|
-
# out_ticket_account_select_option = await page.get_out_ticket_account_select_option(
|
|
225
|
-
# select_option=out_ticket_account, timeout=timeout
|
|
226
|
-
# )
|
|
227
|
-
# await out_ticket_account_select_option.click(button="left")
|
|
228
|
-
logger.info(f"订单详情页面,采购信息栏,出票账号选择<{out_ticket_account}>已完成")
|
|
229
|
-
await asyncio.sleep(1)
|
|
230
|
-
|
|
231
|
-
# 4. 采购账号类型选择【purchase_account_type】
|
|
232
|
-
purchase_account_type_dropdown = await page.get_purchase_account_type_dropdown(timeout=timeout)
|
|
233
|
-
await purchase_account_type_dropdown.select_option(label=purchase_account_type)
|
|
234
|
-
# await purchase_account_type_dropdown.click(button="left")
|
|
235
|
-
# purchase_account_type_select_option = await page.get_purchase_account_type_select_option(
|
|
236
|
-
# select_option=purchase_account_type, timeout=timeout
|
|
266
|
+
# await order_locked(
|
|
267
|
+
# logger=logger, page=order_detail_po, order_id=order_id, timeout=timeout, is_force=is_force,
|
|
268
|
+
# qlv_user_id=qlv_user_id
|
|
237
269
|
# )
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
# 5. 采购账号选择【purchase_account】
|
|
243
|
-
purchase_account_dropdown = await page.get_purchase_account_dropdown(timeout=timeout)
|
|
244
|
-
await purchase_account_dropdown.select_option(label=purchase_account)
|
|
245
|
-
# await purchase_account_dropdown.click(button="left")
|
|
246
|
-
# purchase_account_select_option = await page.get_purchase_account_select_option(
|
|
247
|
-
# select_option=purchase_account, timeout=timeout
|
|
248
|
-
# )
|
|
249
|
-
# await purchase_account_select_option.click(button="left")
|
|
250
|
-
logger.info(f"订单详情页面,采购信息栏,采购账号选择<{purchase_account}>已完成")
|
|
251
|
-
await asyncio.sleep(1)
|
|
252
|
-
|
|
253
|
-
# 6. 填写采购金额
|
|
254
|
-
purchase_amount_input = await page.get_purchase_amount_input(timeout=timeout)
|
|
255
|
-
await purchase_amount_input.fill(value=str(purchase_amount))
|
|
256
|
-
logger.info(f"订单详情页面,采购信息栏,采购金额<{purchase_amount}>输入完成")
|
|
257
|
-
|
|
258
|
-
# 7. 填写备注
|
|
259
|
-
remark_input = await page.get_remark_input(timeout=timeout)
|
|
260
|
-
value = f"{ceair_user_id}/{ceair_password}"
|
|
261
|
-
await remark_input.fill(value=value)
|
|
262
|
-
logger.info(f"订单详情页面,采购信息栏,备注<{value}>输入完成")
|
|
263
|
-
|
|
264
|
-
# 8. 填写对账标识
|
|
265
|
-
main_check_input = await page.get_main_check_input(timeout=timeout)
|
|
266
|
-
await main_check_input.fill(value=payment_id)
|
|
267
|
-
logger.info(f"订单详情页面,采购信息栏,对账标识<{payment_id}>输入完成")
|
|
268
|
-
|
|
269
|
-
# 9. 填写官网订单号
|
|
270
|
-
air_comp_order_id_input = await page.get_air_comp_order_id_input(timeout=timeout)
|
|
271
|
-
await air_comp_order_id_input.fill(value=platform_order_id)
|
|
272
|
-
logger.info(f"订单详情页面,采购信息栏,官网订单号<{platform_order_id}>输入完成")
|
|
273
|
-
|
|
274
|
-
# 10. 点击【保存采购】按钮
|
|
275
|
-
procurement_info_save_btn = await page.get_procurement_info_save_btn(timeout=timeout)
|
|
276
|
-
await procurement_info_save_btn.click(button="left")
|
|
277
|
-
logger.info(f"订单详情页面,采购信息栏,【保存采购】按钮点击完成")
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
async def first_open_page_fill_procurement_info(
|
|
281
|
-
*, logger: Logger, page: Page, order_id: int, protocol: str, domain: str, out_ticket_platform_type: str,
|
|
282
|
-
purchase_amount: float, out_ticket_platform: str, out_ticket_account: str, purchase_account_type: str,
|
|
283
|
-
purchase_account: str, ceair_user_id: str, ceair_password: str, payment_id: str, platform_order_id: str,
|
|
284
|
-
is_force: bool = False, qlv_user_id: Optional[str] = None, timeout: float = 5.0, **kwargs: Any
|
|
285
|
-
) -> OrderDetailPage:
|
|
286
|
-
# 1. 打开页面
|
|
287
|
-
order_detail_po = await open_order_detail_page(
|
|
288
|
-
page=page, logger=logger, protocol=protocol, domain=domain, order_id=order_id, timeout=timeout
|
|
289
|
-
)
|
|
290
|
-
|
|
291
|
-
# 2. 锁定订单
|
|
292
|
-
await order_locked(
|
|
293
|
-
logger=logger, page=order_detail_po, order_id=order_id, is_force=is_force, timeout=timeout,
|
|
294
|
-
qlv_user_id=qlv_user_id
|
|
295
|
-
)
|
|
296
|
-
|
|
297
|
-
# 3. 回填采购信息
|
|
298
|
-
await fill_procurement_info(
|
|
299
|
-
out_ticket_platform_type=out_ticket_platform_type, out_ticket_account=out_ticket_account, payment_id=payment_id,
|
|
300
|
-
purchase_amount=purchase_amount, out_ticket_platform=out_ticket_platform, purchase_account=purchase_account,
|
|
301
|
-
purchase_account_type=purchase_account_type, ceair_user_id=ceair_user_id, ceair_password=ceair_password,
|
|
302
|
-
platform_order_id=platform_order_id, timeout=timeout, logger=logger, page=order_detail_po, order_id=order_id
|
|
270
|
+
response = await _locked_order_with_http(
|
|
271
|
+
order_id=order_id, qlv_domain=domain, qlv_protocol=protocol, retry=retry, timeout=int(timeout),
|
|
272
|
+
enable_log=enable_log, cookie_jar=cookie_jar, playwright_state=playwright_state
|
|
303
273
|
)
|
|
274
|
+
message = response.get("message")
|
|
275
|
+
if message == "订单出票":
|
|
276
|
+
logger.info(f"订单<{order_id}>,被用户<{qlv_user_id}>锁单成功")
|
|
277
|
+
else:
|
|
278
|
+
msg: str = "锁单失败"
|
|
279
|
+
if message == "强旅系统":
|
|
280
|
+
if response.get("data").find("用户登陆") != -1:
|
|
281
|
+
raise UserNotLoginError(f"{msg},用户<{qlv_user_id}>未登录劲旅系统")
|
|
282
|
+
else:
|
|
283
|
+
msg = msg + "," + response.get("data") if len(
|
|
284
|
+
response.get("data")
|
|
285
|
+
) < 100 else response.get("data")[:100]
|
|
286
|
+
raise RuntimeError(msg)
|
|
287
|
+
elif message == "操作提示":
|
|
288
|
+
msg = msg + f",原因:{response.get('data')}"
|
|
289
|
+
raise LockedOrderFailedError(msg)
|
|
304
290
|
return order_detail_po
|
|
305
291
|
|
|
306
292
|
|
|
@@ -320,26 +306,23 @@ async def fill_itinerary(
|
|
|
320
306
|
raise RuntimeError(
|
|
321
307
|
f"传递回填票号的乘客证件信息<{kwargs_passengers}>与订单实际乘客信息<{current_passengers}>不一致"
|
|
322
308
|
)
|
|
323
|
-
passenger_itinerary_locator = cast(Locator, None)
|
|
324
309
|
for passenger_locator in passenger_itinerary_locators:
|
|
325
310
|
current_passenger = passenger_locator.get("username")
|
|
326
311
|
passenger_itinerary = passengers_itinerary.get(current_passenger)
|
|
327
312
|
if passenger_itinerary:
|
|
328
313
|
passenger_itinerary_locator: Locator = passenger_locator.get("locator")
|
|
329
314
|
await passenger_itinerary_locator.fill(value=passenger_itinerary)
|
|
315
|
+
await passenger_itinerary_locator.press("Enter")
|
|
330
316
|
logger.info(f"订单<{order_id}>,乘客<{current_passenger}>的票号<{passenger_itinerary}>填写完成")
|
|
317
|
+
await asyncio.sleep(1)
|
|
331
318
|
else:
|
|
332
319
|
logger.warning(f"订单<{order_id}>,乘客<{current_passenger}>的票号没有获取到,本次回填跳过,等待下一次")
|
|
333
|
-
if passenger_itinerary_locator:
|
|
334
|
-
await passenger_itinerary_locator.press("Enter")
|
|
335
|
-
logger.info(f"订单<{order_id}>,本次的票号回填完成")
|
|
336
|
-
else:
|
|
337
|
-
raise RuntimeError(f"回填票号过程异常,回填失败")
|
|
338
320
|
|
|
339
321
|
|
|
340
322
|
async def first_open_page_fill_itinerary(
|
|
341
|
-
*, page: Page, logger: Logger, protocol: str, domain: str, order_id: int,
|
|
342
|
-
passengers_itinerary: Dict[str, Any], timeout: float = 20.0,
|
|
323
|
+
*, page: Page, logger: Logger, protocol: str, domain: str, order_id: int, retry: int = 1,
|
|
324
|
+
enable_log: bool = True, passengers_itinerary: Dict[str, Any], timeout: float = 20.0,
|
|
325
|
+
cookie_jar: Optional[aiohttp.CookieJar] = None, playwright_state: Dict[str, Any] = None, **kwargs: Any
|
|
343
326
|
) -> OrderDetailPage:
|
|
344
327
|
# 1. 开发页面
|
|
345
328
|
order_detail_po = await open_order_detail_page(
|
|
@@ -352,25 +335,35 @@ async def first_open_page_fill_itinerary(
|
|
|
352
335
|
passengers_itinerary=passengers_itinerary
|
|
353
336
|
)
|
|
354
337
|
logger.info(f"订单<{order_id}>,票号回填流程结束")
|
|
355
|
-
await order_unlock(logger=logger, page=order_detail_po, order_id=order_id, timeout=timeout, remark="")
|
|
356
|
-
logger.info(f"订单<{order_id}>,订单解锁成功")
|
|
357
|
-
return order_detail_po
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
async def first_open_page_update_policy(
|
|
361
|
-
*, page: Page, logger: Logger, protocol: str, domain: str, order_id: int, policy: str, timeout: float = 20.0,
|
|
362
|
-
**kwargs: Any
|
|
363
|
-
) -> OrderDetailPage:
|
|
364
|
-
# 1. 打开页面
|
|
365
|
-
order_detail_po = await open_order_detail_page(
|
|
366
|
-
page=page, logger=logger, protocol=protocol, domain=domain, order_id=order_id, timeout=timeout
|
|
367
|
-
)
|
|
368
|
-
|
|
369
|
-
# 2. 更新订单政策代码
|
|
370
|
-
await update_order_policy(
|
|
371
|
-
logger=logger, page=order_detail_po, order_id=order_id, timeout=timeout, policy=policy
|
|
372
|
-
)
|
|
373
338
|
|
|
339
|
+
# 3. 解锁订单
|
|
340
|
+
# await order_unlock(
|
|
341
|
+
# logger=logger, page=order_detail_po, order_id=order_id, timeout=timeout, is_force=True, remark=""
|
|
342
|
+
# )
|
|
343
|
+
msg: str = f"订单<{order_id}>,"
|
|
344
|
+
try:
|
|
345
|
+
response = await forced_unlock_order_with_http(
|
|
346
|
+
retry=retry, timeout=int(timeout), enable_log=enable_log, cookie_jar=cookie_jar,
|
|
347
|
+
playwright_state=playwright_state, order_id=order_id, domain=domain, protocol=protocol
|
|
348
|
+
)
|
|
349
|
+
if response.get("data") == "1":
|
|
350
|
+
logger.info(f"{msg}强制解锁成功")
|
|
351
|
+
except Exception as e:
|
|
352
|
+
logger.error(f"{msg}强制解锁失败,原因:{e}")
|
|
353
|
+
try:
|
|
354
|
+
response = await unlock_order_with_http(
|
|
355
|
+
retry=retry, timeout=int(timeout), enable_log=enable_log, cookie_jar=cookie_jar,
|
|
356
|
+
playwright_state=playwright_state, order_id=order_id, domain=domain, protocol=protocol
|
|
357
|
+
)
|
|
358
|
+
if response.get("data") == "OK":
|
|
359
|
+
logger.info(f"{msg}解锁成功")
|
|
360
|
+
else:
|
|
361
|
+
if response.get('data'):
|
|
362
|
+
logger.error(f"{msg}解锁失败,原因:{response.get('data')}")
|
|
363
|
+
else:
|
|
364
|
+
logger.error(f"{msg}解锁失败,原因:{response}")
|
|
365
|
+
except Exception as e:
|
|
366
|
+
logger.error(f"{msg}解锁失败,原因:{e}")
|
|
374
367
|
return order_detail_po
|
|
375
368
|
|
|
376
369
|
|
|
@@ -378,7 +371,7 @@ async def first_open_page_my_order_unlock(
|
|
|
378
371
|
*, page: Page, logger: Logger, protocol: str, domain: str, order_id: int, qlv_user_id: str,
|
|
379
372
|
policy: Optional[str] = None, remark: Optional[str] = None, timeout: float = 20.0, is_force: bool = False,
|
|
380
373
|
**kwargs: Any
|
|
381
|
-
) ->
|
|
374
|
+
) -> None:
|
|
382
375
|
# 1. 打开页面
|
|
383
376
|
order_detail_po = await open_order_detail_page(
|
|
384
377
|
page=page, logger=logger, protocol=protocol, domain=domain, order_id=order_id, timeout=timeout
|
|
@@ -390,54 +383,51 @@ async def first_open_page_my_order_unlock(
|
|
|
390
383
|
logger=logger, page=order_detail_po, order_id=order_id, timeout=timeout, policy=policy
|
|
391
384
|
)
|
|
392
385
|
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
386
|
+
# 3. 获取订单操作锁的状态
|
|
387
|
+
await order_unlock(
|
|
388
|
+
logger=logger, page=order_detail_po, remark=remark, order_id=order_id, is_force=is_force,
|
|
389
|
+
qlv_user_id=qlv_user_id, timeout=timeout
|
|
390
|
+
)
|
|
396
391
|
|
|
397
|
-
# 4. 获取订单操作锁的状态
|
|
398
|
-
lock_state, lock_btn = await order_detail_po.get_order_lock_state_btn(timeout=timeout)
|
|
399
|
-
if "强制解锁" in lock_state:
|
|
400
|
-
if is_force is False:
|
|
401
|
-
logger.warning(f"订单<{order_id}>,非本账号<{qlv_user_id}>的锁单,暂不处理,即将跳过")
|
|
402
|
-
return order_detail_po
|
|
403
|
-
await lock_btn.click(button="left")
|
|
404
|
-
logger.info(f"订单详情页面,用户操作【{lock_state}】按钮点击完成")
|
|
405
|
-
try:
|
|
406
|
-
confirm_btn = await order_detail_po.get_message_notice_dialog_confirm_btn(timeout=1)
|
|
407
|
-
await confirm_btn.click(button="left")
|
|
408
|
-
logger.info("订单详情页面,强制解锁弹框确认,【确认】按钮点击完成")
|
|
409
|
-
await asyncio.sleep(2)
|
|
410
|
-
except (PlaywrightTimeoutError, PlaywrightError, RuntimeError, Exception):
|
|
411
|
-
pass
|
|
412
|
-
logger.warning(f"订单<{order_id}>,已被用户<{qlv_user_id or '无记录'}>强制解锁")
|
|
413
|
-
# 再次获取订单操作锁的状态
|
|
414
|
-
lock_state, lock_btn = await order_detail_po.get_order_lock_state_btn(timeout=timeout)
|
|
415
|
-
elif "锁定" in lock_state:
|
|
416
|
-
logger.info(f"订单<{order_id}>,处于无锁状态,无需解锁处理")
|
|
417
|
-
return order_detail_po
|
|
418
|
-
elif "操作" in lock_state:
|
|
419
|
-
await lock_btn.click(button="left")
|
|
420
|
-
await asyncio.sleep(2)
|
|
421
|
-
lock_state_temp = lock_state
|
|
422
|
-
lock_state, lock_btn = await order_detail_po.get_order_lock_state_btn(timeout=timeout)
|
|
423
|
-
logger.info(f"订单详情页面,日志记录栏,【{lock_state_temp}】按钮点击完成")
|
|
424
392
|
|
|
425
|
-
|
|
426
|
-
|
|
427
|
-
|
|
428
|
-
|
|
429
|
-
|
|
393
|
+
async def fill_procurement_with_http_callback(
|
|
394
|
+
*, fill_procurement_dto: FillProcurementInputDTO, retry: int = 1, timeout: int = 5, enable_log: bool = True,
|
|
395
|
+
cookie_jar: Optional[aiohttp.CookieJar] = None, playwright_state: Dict[str, Any] = None,
|
|
396
|
+
data_list: Optional[List[Dict[str, Any]]] = None, **kwargs: Any
|
|
397
|
+
) -> Dict[str, Any]:
|
|
398
|
+
return await _fill_procurement_dto_with_http(
|
|
399
|
+
fill_procurement_dto=fill_procurement_dto, retry=retry, timeout=timeout, enable_log=enable_log,
|
|
400
|
+
cookie_jar=cookie_jar, playwright_state=playwright_state, data_list=data_list
|
|
401
|
+
)
|
|
430
402
|
|
|
431
403
|
|
|
432
|
-
async def
|
|
433
|
-
*, order_id: int, qlv_domain: str,
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
playwright_state: Dict[str, Any] = None, data_list: Optional[List[Dict[str, Any]]] = None
|
|
404
|
+
async def fill_itinerary_with_http(
|
|
405
|
+
*, order_id: int, qlv_domain: str, pid: str, tid: str, transaction_id: str, itinerary_id: str, retry: int = 1,
|
|
406
|
+
qlv_protocol: str = "http", timeout: int = 5, enable_log: bool = True, data: Optional[str] = None,
|
|
407
|
+
cookie_jar: Optional[aiohttp.CookieJar] = None, playwright_state: Dict[str, Any] = None, **kwargs: Any
|
|
437
408
|
) -> Dict[str, Any]:
|
|
438
|
-
return await
|
|
439
|
-
order_id=order_id, qlv_domain=qlv_domain,
|
|
440
|
-
|
|
441
|
-
|
|
442
|
-
|
|
409
|
+
return await _fill_itinerary_with_http(
|
|
410
|
+
order_id=order_id, qlv_domain=qlv_domain, pid=pid, tid=tid, transaction_id=transaction_id, data=data,
|
|
411
|
+
itinerary_id=itinerary_id, retry=retry, qlv_protocol=qlv_protocol, timeout=timeout, enable_log=enable_log,
|
|
412
|
+
cookie_jar=cookie_jar, playwright_state=playwright_state
|
|
413
|
+
)
|
|
414
|
+
|
|
415
|
+
|
|
416
|
+
async def kick_out_activity_order_with_http(
|
|
417
|
+
*, order_id: int, domain: str, protocol: str = "http", retry: int = 1, timeout: int = 5,
|
|
418
|
+
enable_log: bool = True, cookie_jar: Optional[aiohttp.CookieJar] = None, playwright_state: Dict[str, Any] = None
|
|
419
|
+
) -> Dict[str, Any]:
|
|
420
|
+
return await _kick_out_activity_order_with_http(
|
|
421
|
+
order_id=order_id, qlv_domain=domain, qlv_protocol=protocol, retry=retry, timeout=timeout,
|
|
422
|
+
enable_log=enable_log, cookie_jar=cookie_jar, playwright_state=playwright_state
|
|
423
|
+
)
|
|
424
|
+
|
|
425
|
+
|
|
426
|
+
async def kick_out_activity_orders_with_http(
|
|
427
|
+
*, order_ids: List[int], domain: str, protocol: str = "http", retry: int = 1, timeout: int = 5,
|
|
428
|
+
enable_log: bool = True, cookie_jar: Optional[aiohttp.CookieJar] = None, playwright_state: Dict[str, Any] = None
|
|
429
|
+
) -> Dict[str, Any]:
|
|
430
|
+
return await _kick_out_activity_orders_with_http(
|
|
431
|
+
order_ids=order_ids, qlv_domain=domain, qlv_protocol=protocol, retry=retry, timeout=timeout,
|
|
432
|
+
enable_log=enable_log, cookie_jar=cookie_jar, playwright_state=playwright_state
|
|
443
433
|
)
|