Skip to main content
Glama
main.cpython-313.pyc15 kB
� �/9hu8����%SSKJrJr SSKJr SSKrSSKrSSKJrJ r J r SSK J r SSK JrJr SSKJr \"5 \R&"\5r"SS \5r\"5rSq\\ \S 'Sq\\\S 'S r\R9S 5S5r\R9S5S5r"SS\5r"SS\5r \RCS\ S9S5r"\RCS\S9S5r#"SS\5r$\RKS\$S9S5r&"SS\5r'\RKS \'S9S!\4S"j5r(\RCS#5S$5r)\S%:Xa)SSK*r*\RWS&5 \*RX"S'S(S)S*S+9 gg),�)�FastAPI� HTTPException)� BaseModelN)�Optional�Any�Dict)� ZhihuAuth)�ZhihuPublisher� ArticleData)� setup_loggingc�*�\rSrSr%Sr\\\S'Srg)�ArticleDataApi�N� cover_image�) �__name__� __module__� __qualname__�__firstlineno__rr�str�__annotations__�__static_attributes__r�� C:\code\zhihu_mcp_server\main.pyrrs��"&�K��#��%rr�auth_manager_instance�publisher_instancec��[RS5 [(a+[RS5 [R5 Sq[R R [R R[55n[R RUS5n[RSU35 [US9q[[S9q [RS5 [RS S 9nUS La[RS 5 gUS La[RS 5 g[RS5 g![a%n[R!SU3S S9 SqSq SnAgSnAff=f)z1Initializes or re-initializes service components.u开始服务组件初始化...u>检测到现有AuthManager实例,正在关闭其WebDriver...Nzzhihu_cookies.jsonu(AuthManager将使用Cookie文件路径: )�cookies_file_path)� auth_manageru服务组件初始化成功。F��require_browser_sessionTu*用户已登录 (通过启动时检查)。u*用户未登录 (通过启动时检查)。u<用户登录状态未知 (通过启动时轻量级检查)。u2服务组件初始化过程中发生严重错误: ��exc_info)�logger�infor� close_driver�os�path�dirname�abspath�__file__�joinr r r�check_login_status�warning� Exception�error)�project_root_dirr�initial_login_status�es r�initialize_service_componentsr4s2�� �K�K�0�1���� � �T�U��*�*�,� $��!"��7�7�?�?�2�7�7�?�?�8�+D�E���G�G�L�L�)9�;O�P��� � �>�?P�>Q�R�S�!*�<M� N��+�9N�O��� � �4�5� 5�G�G�`e�G�f�� �4� '� �K�K�D� E� !�U� *� �N�N�G� H� �K�K�V� W�� �"�� � �I�!��M�X\� �]� $��!��� "�s%� CE�E�9E� E>�E9�9E>�startupc��t# �[RS5 [5 [RS5 g7f)Nu-MCP服务器正在启动生命周期事件...u6MCP服务器已启动并完成组件初始化尝试。)r$r%r4rrr� startup_eventr7Ss%��� �K�K�?�@�!�#� �K�K�H�I�s�68�shutdownc���# �[RS5 [(a)[RS5 [R5 [RS5 g7f)Nu-MCP服务器正在关闭生命周期事件...u,正在关闭AuthManager持有的WebDriver...uMCP服务器已成功关闭。)r$r%rr&rrr�shutdown_eventr:[s@��� �K�K�?�@���� � �B�C��*�*�,� �K�K�0�1�s�A A"c�X�\rSrSr%\\S'\\S'\\\S'Sr\\ \\ 4\S'Sr g)�ReinitializeResponse�d�status�message� login_statusN�detailsr) rrrrrrr�boolrArrrrrrr<r<ds-�� �K� �L��4�.� �(,�G�X�d�3��8�n� %�,rr<c�N�\rSrSr%\\S'\\\S'Sr\\\S'\\S'Sr g)�HealthResponse�jr>r@Nr?�service_initializedr) rrrrrrrrBr?rrrrrDrDjs%�� �K��4�.� �!�G�X�c�]�!��rrDz/zhihu-mcp-server/health)�response_modelc��R# �[RS5 SnSnSn[(a4[(a)Sn[R SS9nUSLaSnO USLaSnOS nOS n[U(aSOSUUUS9$![ a&n[R S U3SS 9 S U3nSnAN@SnAff=f7f)ul轻量级健康检查,主要检查服务是否初始化以及缓存的登录状态。不启动浏览器。u0收到 /health (轻量级) 健康检查请求...FN�Tr u0服务已初始化,缓存状态为已登录。u0服务已初始化,缓存状态为未登录。u?服务已初始化,缓存的登录状态未知或已过期。u%/health 检查登录状态时出错: r"�检查登录状态时出错: u>核心服务组件 (AuthManager 或 Publisher) 未初始化。�okr0)r>r@r?rF)r$r%rrr-r/r0rD)rF�login_s�msgr3s r� health_checkrNps���� �K�K�B�C����G� �C���!3�!3�"�� 6�+�>�>�W\�>�]�G��$��H���E�!�H��W�� O�� �*�t����/�  ���� 6� �L�L�@���D�t�L� T�1�!��5�C�� 6�sF�4B'�A4�B'�A4�B'�A4�B'�4 B$�>B�B'�B$�$B'z/zhihu-mcp-server/reinitializec ���# �[RS5 [5 SnSn0n[(aC[R SS9nUSLaUS- n[R 5nO6USLaUS- nO+US - nO%S n[R U5 [S USS S 0S9$[SXUS9$![a;n[R SU3SS9 [S SU3SS [U50S9sSnA$SnAff=f7f)uc强制重新初始化服务组件,并执行完整的登录状态检查 (可能启动浏览器)。u6收到 /reinitialize (强制刷新与检查) 请求...Nu'服务实例已成功重新初始化。Tr u 用户已登录。Fu. 用户未登录。可能需要手动登录。u= 登录状态检查未能明确确定 (可能发生错误)。uA服务实例重新初始化后,AuthManager未能成功创建。r0� error_detailzAuthManager is None after init)r>r?r@rA�successu2服务重新初始化过程中发生未知错误: r"u重新初始化过程失败: ) r$r%r4rr-� get_user_infor0r<r/r)rLr?� details_dictr3s r�reinitialize_service_endpointrT�s<��� �K�K�H�I�V�%�'�"&��;��� � � �+�>�>�W[�>�\�G��$���0�0��4�B�B�D� ��E�!��K�K���Z�Z��Y�G� �L�L�� !�'�w��VZ�es�vV�eW�X� X�#�9�g�eq�r�r�� �V�� � �I�!��M�X\� �]�#�7�>[�\]�[^�<_�nr�~L�NQ�RS�NT�}U�V� V��V�sA�C/�BB'�C/� B'�&C/�' C,�10C'�!C,�"C/�'C,�,C/c�*�\rSrSr%\\S'\\S'Srg)�BrowserControlResponse�r>r?rN)rrrrrrrrrrrVrV�s �� �K� �LrrVz/zhihu-mcp-server/close_browserc��f# �[RS5 [(a4[R5 [RS5 [ SSS9$[RS 5 [ S S S9$![ a.n[R SU3SS9 [ S S U3S9sS nA$S nAff=f7f)uD尝试关闭由AuthManager管理的任何活动的浏览器会话。u收到 /close_browser 请求...u-通过API请求关闭浏览器会话成功。rQu!浏览器会话已尝试关闭。)r>r?u&关闭浏览器会话时发生错误: Tr"r0u关闭浏览器时出错: Nu5/close_browser 请求,但AuthManager未初始化。u2AuthManager未初始化,无法关闭浏览器。)r$r%rr&rVr/r0r.)r3s r�close_browser_sessionrY�s���� �K�K�1�2��� d� !� .� .� 0� �K�K�G� H�)��Dg�h� h� ���N�O�%�W�>r�s�s�� � d� �L�L�A�!��E�PT�L� U�)��D^�_`�^a�Bb�c� c�� d�s4�!B1�2A6� B1�6 B.�#B)�#B.�$B1�)B.�.B1c�>�\rSrSr%\\S'\\S'Sr\\\S'Sr g)�ArticleResponse��r>r?N�datar) rrrrrrr]r�dictrrrrr[r[�s�� �K� �L��D�(�4�.�rr[z /zhihu-mcp-server/create_article� article_datac ���# �[RSURS[UR=(d S5S[UR =(d /5SUR SUR3 5 [(a [(dk[RS5 [RS5 [5 [(a [(d[RS 5 [S S S 9e[RSS9nUSLa"[RS5 [SSSS0S9$[R!URURUR URUR S9nUR#S5(a.[RSURS35 [SSUS9$[RSURSUR#S535 [SUR#SS 5US9$![a)n[RS U3SS9 [S SU3S 9eSnAff=f![a1n[RSU3SS9 [SSU3SS0S9sSnA$SnAff=f![aHn[RS!URS"U3SS9 [SS#U3S[%U5S$.S9sSnA$SnAff=f7f)%Nu"收到文章发布请求: 标题: u, 内容长度: rIu, 图片数量: u , 封面图: u , 标签: u*发布文章:核心服务未初始化。u9发布文章:尝试自动重新初始化核心服务...uE发布文章:自动重新初始化后核心服务仍然不可用。i�u6核心服务在自动重新初始化后仍不可用。)� status_code�detailu8发布文章:自动重新初始化核心服务失败: Tr"u)核心服务自动重新初始化失败: r u<发布文章:用户未登录或登录状态无法确认。r0uW用户未登录或登录状态无法确认,请先通过 /reinitialize 确保登录。rQF)r>r?r]u2发布文章:检查登录状态时发生错误: rJ)�title�content� image_paths�tagsru文章 'u' 发布成功。u文章发布成功u' 发布失败: r?u$文章发布失败,未知原因。u发布文章 'u%' 过程中发生未处理的异常: u,发布文章时发生服务器内部错误: )rQrb)r$r%rc�lenrdrerrfrrr0r4rr/r-r[�create_article�getr)r_�e_init�current_login_status�e_check�result� e_publishs r�create_article_endpointro�sm��� �K�K�4�\�5G�5G�4H�HX�Y\�]i�]q�]q�]w�uw�Yx�Xy�zJ�KN�O[�Og�Og�Om�km�Kn�Jo�o|�}I�}U�}U�|V�V`�am�ar�ar�`s�t�u� � �(:�(:�� � �A�B� n� �K�K�S� T� )� +�(�(�0B�0B�� � �d�e�#��<t�u�u�1C�{�4�G�G�`d�G�e�� �t� +� �L�L�W� X�"�'�<U�]f�hm�\n�o� o� ,�f�#�2�2��$�$� �(�(�$�0�0��"�"�$�0�0� 3� �� �:�:�i� � � �K�K�(�<�#5�#5�"6�6G�H� I�"�)�=Q�X^�_� _� �L�L�8�L�$6�$6�#7�7G�� � �S\�H]�G^�_� `�"�'�6�:�:�i�Qw�;x�@F�G� G��7� n� �L�L�S�TZ�S[�\�gk�L� l��C�:c�dj�ck�8l�m� m�� n�� �{�� � �I�'��S�^b� �c��g�9V�W^�V_�7`�hq�sx�gy�z�z��{��$ �f�� � �~�l�&8�&8�%9�9^�_h�^i�j�uy� �z��g�9e�fo�ep�7q�EJ�VY�Zc�Vd�ye�f� f��f�s��B&K �)AH�=K �?9I �8K �;B J �K �AJ �K � I �!$I�I � K � J�&J�=J�>K �J�K � K�=K�K�K �K�K z/zhihu-mcp-server/statusc��# �[RS5 SnSn[(a [(a[R SS9nSnU(aSOSUUSS.$7f) NuT接口 /zhihu-mcp-server/status 已被弃用,请使用 /zhihu-mcp-server/health。Fr T�running�degraded_or_uninitializedz�This endpoint is deprecated. Please use /zhihu-mcp-server/health for lightweight status or /zhihu-mcp-server/reinitialize for a full check and refresh.)�service_statusr@�service_components_initialized�deprecation_warning)r$r.rrr-)rL�service_initialized_properlys r�get_status_deprecatedrw�sd��� �N�N�i�j��G�#(� ���!3�!3�'�:�:�SX�:�Y��'+�$�(D�)�Id��*F� y�  ��s�AA�__main__uI以直接脚本方式启动Uvicorn服务器 (主要用于开发测试)...zmain:appz0.0.0.0iET)�host�port�reload)-�fastapirr�pydanticr�loggingr'�typingrrr�zhihu_mcp_server.authr �zhihu_mcp_server.publisherr r �PublisherArticleData�zhihu_mcp_server.utilsr � getLoggerrr$r�apprrrr4�on_eventr7r:r<rDrirNrTrV�postrYr[rorw�uvicornr%�runrrr�<module>r�s���*�*��� �&�&� ,�Z�0��� � � �8� $��&�)�&� �i��.2��x� �*�1�/3��H�^�,�3�-"�h���i��J��J����j��2��2�-�9�-� �Y�� ��� #�N��C��D��@��� )�:N��O�V�P�V�@�Y����� +�<R��S�t�T�t�  �i� � ��� ,�_��M�,f��,f�N�,f�^��� #�$��%��" �z��� �K�K�[�\� �K�K� ���d�C� r

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/chemany/zhihu_mcp_server'

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