Skip to main content
Glama

xigua-MCP

by xiguaxiaome
music.cpython-310.pyc4.82 kB
o LEh��@s�ddlmZddlmZddlmZddlmZddl m Z ddl m ZddlmZddlZddlZddlZdd lmZdaej�d �Zd d �Zd d�Zdefdd�ZdS)�)� webdriver)�By)� WebDriverWait)�expected_conditions)�Service)�Options)� ActionChainsN)�FastMCP�EDGE_DRIVER_PATHcCsTtdur(t�}|�d�|�ddg�|�d�ttd�}tj||d�atd�tS) u&获取或初始化Edge WebDriver实例Nz---disable-blink-features=AutomationControlled�excludeSwitcheszenable-automationz--start-maximized)�executable_path)�service�optionsuWebDriver实例已初始化。) �driver_instance� EdgeOptions� add_argument�add_experimental_option� EdgeServicer r�Edge�print)Z edge_optionsr �r�E:\xiaozhi-mcp\tools\music.py� get_drivers   rcCs\z#t|d��t�tjdf��|�tjd���td�t � d�WdStd�YdS)u 关闭GD音乐台的公告弹窗�z.layui-layer-dialogz.layui-layer-close1u已关闭公告弹窗�u未检测到公告弹窗N) r�until�EC�presence_of_element_locatedr� CSS_SELECTOR� find_element�clickr�time�sleep)�driverrrr� close_popups �r$�mcpcCs4|��dtdtfdd��}|��dtfdd��}dS)u7 注册音乐播放相关的MCP工具函数。 � song_name�returnc SsLt�}z�d|jvr|�d�td�t|�zt|d��t�t j df��� �td�Wnt yE}z td|���WYd}~nd}~wwt|d ��t�t j d f��}|��|�|�td |���t|d��t�t j d f��}|� �t|d ��t�t j d f��td�t|d��t�t j d f��}|�d|�|�d|�t�d�t|��|���td�t�d�t|d��t�t j df��}|�d|�td�t|d ��dd��td|�d��dd|�d�d�WSt �y%}z,tdt|����t�d�}d d!|�d"t|���d#|�d$�d%|�d&�gd'�WYd}~Sd}~ww)(u� 在GD音乐台搜索并播放指定歌曲。 浏览器在播放后不会关闭。 参数: - song_name: 要搜索的歌曲名称。 返回: - 操作结果状态和信息。 zmusic.gdstudio.xyzzhttps://music.gdstudio.xyz/u正在打开GD音乐台...� z[data-action="search"]u已进入搜索界面uG未能点击搜索按钮,可能已在搜索界面或元素不可用: N�z search-wdu正在搜索歌曲: z.search-submitz.list-item[data-no]u搜索结果已加载z/arguments[0].scrollIntoView({block: 'center'});z*arguments[0].style.border='2px solid red';ru*已悬停鼠标,尝试显示播放按钮�z.list-item[data-no] .icon-playzarguments[0].click();u已点击播放按钮cSs2d|�tjd��d�vp|�tjd��d��d�S)Nu暂停z .btn-play�title�classz icon-pause)rrr� get_attribute�endswith)�drrr�<lambda>xsz>register_music_tools.<locals>.play_web_music.<locals>.<lambda>u歌曲 'u' 已开始播放。Tu' 已成功播放。��success�messageu播放失败: z %Y%m%d_%H%M%SFu播放歌曲 'u ' 失败: Zerror_z.pngZ page_source_z.html)r2r3Z debug_files)r� current_url�getrr$rrr�element_to_be_clickablerrr � Exception�ID�clear� send_keys�visibility_of_element_locatedr�execute_scriptr!r"r�move_to_element�perform�str�strftime)r&r#�eZ search_inputZ submit_btnZfirst_song_item� play_button� timestamprrr�play_web_music-sn    � �� �  � � �     �  � <��z,register_music_tools.<locals>.play_web_musiccSs,trt��datd�ddd�Sddd�S)uv 关闭所有由该脚本打开的浏览器窗口。 返回: - 操作结果状态。 Nu浏览器已关闭。Tr1Fu*没有活动的浏览器实例可关闭。)r�quitrrrrr� close_browser�s    z+register_music_tools.<locals>.close_browserN)�toolr?�dict)r%rDrFrrr�register_music_tools)sWrI)�seleniumr�selenium.webdriver.common.byr�selenium.webdriver.support.uirZselenium.webdriver.supportrrZselenium.webdriver.edge.servicerrZselenium.webdriver.edge.optionsrrZ'selenium.webdriver.common.action_chainsrr!�ctypes�os�mcp.server.fastmcpr r�environr5r rr$rIrrrr�<module>s         

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/xiguaxiaome/xigua-MCP'

If you have feedback or need assistance with the MCP directory API, please join our Discord server