Jarvis-Brain 0.1.5.5__py3-none-any.whl → 0.1.5.6__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.
- {jarvis_brain-0.1.5.5.dist-info → jarvis_brain-0.1.5.6.dist-info}/METADATA +1 -1
- jarvis_brain-0.1.5.6.dist-info/RECORD +10 -0
- mcp_tools/dp_tools.py +17 -9
- tools/browser_manager.py +3 -0
- jarvis_brain-0.1.5.5.dist-info/RECORD +0 -10
- {jarvis_brain-0.1.5.5.dist-info → jarvis_brain-0.1.5.6.dist-info}/WHEEL +0 -0
- {jarvis_brain-0.1.5.5.dist-info → jarvis_brain-0.1.5.6.dist-info}/entry_points.txt +0 -0
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
mcp_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
+
mcp_tools/dp_tools.py,sha256=ARrxVFpY2zb5JKfqny0mj4QkvQF2EWr7OEBkhK4kdcg,8718
|
|
3
|
+
mcp_tools/main.py,sha256=SiLF-tcEdApkzMjTZJEpVYX5d-LPW7aqy6A6lCBA7YQ,829
|
|
4
|
+
tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
+
tools/browser_manager.py,sha256=J8aNQECiQvucsUjLJQ9N-3f2xoyoCIxjV-kJ7YcoHv4,1849
|
|
6
|
+
tools/tools.py,sha256=TaWs-CNXy-py9BFmCnJrQ09ke938xXpImf-N2Qo_Rvc,4708
|
|
7
|
+
jarvis_brain-0.1.5.6.dist-info/METADATA,sha256=emj8lgXEsC98KUYBsvJOcROwou39qE6U8cbYsGlVQKk,241
|
|
8
|
+
jarvis_brain-0.1.5.6.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
9
|
+
jarvis_brain-0.1.5.6.dist-info/entry_points.txt,sha256=YFQT4xpkUqt5dM5wlKPQQOqcjMuFrT9iuRAzIpAyH7U,51
|
|
10
|
+
jarvis_brain-0.1.5.6.dist-info/RECORD,,
|
mcp_tools/dp_tools.py
CHANGED
|
@@ -2,7 +2,6 @@ import json
|
|
|
2
2
|
import os
|
|
3
3
|
from typing import Any
|
|
4
4
|
|
|
5
|
-
from DrissionPage._elements.none_element import NoneElement
|
|
6
5
|
from fastmcp import FastMCP
|
|
7
6
|
|
|
8
7
|
from tools.tools import compress_html, requests_html, dp_headless_html, assert_waf_cookie, dp_mcp_message_pack
|
|
@@ -71,7 +70,8 @@ def register_close_tab(mcp: FastMCP, browser_manager):
|
|
|
71
70
|
|
|
72
71
|
def register_check_selector(mcp: FastMCP, browser_manager):
|
|
73
72
|
@mcp.tool(name="check_selector", description="查找tab页中是否包含元素,并返回元素attr_name所对应的值")
|
|
74
|
-
async def check_selector(browser_port: int, tab_id: str, css_selector: str, attr_name: str = "text") -> dict[
|
|
73
|
+
async def check_selector(browser_port: int, tab_id: str, css_selector: str, attr_name: str = "text") -> dict[
|
|
74
|
+
str, Any]:
|
|
75
75
|
_browser = browser_manager.get_browser(browser_port)
|
|
76
76
|
target_tab = _browser.get_tab(tab_id)
|
|
77
77
|
css_selector = css_selector
|
|
@@ -157,10 +157,18 @@ def register_assert_waf(mcp: FastMCP, browser_manager):
|
|
|
157
157
|
head_headless_rate_difference=h_hless_rate_diff
|
|
158
158
|
)
|
|
159
159
|
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
160
|
+
|
|
161
|
+
def register_highlight_element_captcha(mcp: FastMCP, browser_manager):
|
|
162
|
+
@mcp.tool(name="highlight_element_captcha", description="将传入的Selector在页面上高亮,并截屏")
|
|
163
|
+
async def highlight_element_captcha(browser_port: int, tab_id: str, css_selector: str) -> dict[str, Any]:
|
|
164
|
+
_browser = browser_manager.get_browser(browser_port)
|
|
165
|
+
tab = _browser.get_tab(tab_id)
|
|
166
|
+
highlight_style = 'background-color: rgba(255, 255, 0, 0.2); outline: 2px solid yellow !important; outline-offset: 2px'
|
|
167
|
+
css_selector = css_selector
|
|
168
|
+
if "css:" not in css_selector:
|
|
169
|
+
css_selector = "css:" + css_selector
|
|
170
|
+
|
|
171
|
+
target_eles = tab.eles(css_selector)
|
|
172
|
+
exist_flag = False
|
|
173
|
+
if len(target_eles) != 0:
|
|
174
|
+
exist_flag = True
|
tools/browser_manager.py
CHANGED
|
@@ -3,6 +3,7 @@ import random
|
|
|
3
3
|
from typing import Optional, Tuple
|
|
4
4
|
import os
|
|
5
5
|
from DrissionPage import ChromiumPage, ChromiumOptions
|
|
6
|
+
import platform
|
|
6
7
|
|
|
7
8
|
|
|
8
9
|
class BrowserManager:
|
|
@@ -22,6 +23,8 @@ class BrowserManager:
|
|
|
22
23
|
random_port = random.randint(9223, 9934)
|
|
23
24
|
|
|
24
25
|
co = ChromiumOptions().set_local_port(random_port)
|
|
26
|
+
if platform.system() != 'Windows':
|
|
27
|
+
co.set_argument('--no-sandbox')
|
|
25
28
|
custom_data_dir = os.path.join(os.path.expanduser('~'), 'DrissionPage', "userData", f"{random_port}")
|
|
26
29
|
co.set_user_data_path(custom_data_dir) # 设置用户数据路径
|
|
27
30
|
# if not os.path.exists(custom_data_dir):
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
mcp_tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
2
|
-
mcp_tools/dp_tools.py,sha256=TsktupVxzQkDRH4w-niEqJba3LkeWxIeyyx24ehpqAs,8411
|
|
3
|
-
mcp_tools/main.py,sha256=SiLF-tcEdApkzMjTZJEpVYX5d-LPW7aqy6A6lCBA7YQ,829
|
|
4
|
-
tools/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
5
|
-
tools/browser_manager.py,sha256=MrdONq-qxkDsq_xWeS5MjbUelCaB_UdQ3H79r1M1yuI,1746
|
|
6
|
-
tools/tools.py,sha256=TaWs-CNXy-py9BFmCnJrQ09ke938xXpImf-N2Qo_Rvc,4708
|
|
7
|
-
jarvis_brain-0.1.5.5.dist-info/METADATA,sha256=dvTinD5zIVsMuiTqrpXFnHdzyTDN7ROGXKDY9G6Brx0,241
|
|
8
|
-
jarvis_brain-0.1.5.5.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
9
|
-
jarvis_brain-0.1.5.5.dist-info/entry_points.txt,sha256=YFQT4xpkUqt5dM5wlKPQQOqcjMuFrT9iuRAzIpAyH7U,51
|
|
10
|
-
jarvis_brain-0.1.5.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|