{"id":13815071,"url":"https://github.com/ehForwarderBot/efb-wechat-slave","last_synced_at":"2025-05-15T07:31:52.962Z","repository":{"id":45387632,"uuid":"111184002","full_name":"ehForwarderBot/efb-wechat-slave","owner":"ehForwarderBot","description":"A channel for EH Forwarder Bot.","archived":false,"fork":false,"pushed_at":"2024-03-06T14:20:29.000Z","size":1152,"stargazers_count":461,"open_issues_count":20,"forks_count":62,"subscribers_count":19,"default_branch":"master","last_synced_at":"2025-04-12T14:56:08.696Z","etag":null,"topics":["efb-slave-channel","eh-forwarder-bot"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ehForwarderBot.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGES.rst","contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS","dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["blueset"],"ko_fi":"blueset","liberapay":"blueset","custom":["https://www.paypal.com/cgi-bin/webscr?cmd=_donations\u0026business=ilove%401a23.com\u0026item_name=Buy+Eana+a+cup+of+coffee\u0026currency_code=USD\u0026source=url"]}},"created_at":"2017-11-18T06:55:38.000Z","updated_at":"2025-04-10T02:16:53.000Z","dependencies_parsed_at":"2024-06-19T05:35:42.895Z","dependency_job_id":null,"html_url":"https://github.com/ehForwarderBot/efb-wechat-slave","commit_stats":null,"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehForwarderBot%2Fefb-wechat-slave","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehForwarderBot%2Fefb-wechat-slave/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehForwarderBot%2Fefb-wechat-slave/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ehForwarderBot%2Fefb-wechat-slave/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ehForwarderBot","download_url":"https://codeload.github.com/ehForwarderBot/efb-wechat-slave/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":254124970,"owners_count":22018933,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["efb-slave-channel","eh-forwarder-bot"],"created_at":"2024-08-04T04:02:54.812Z","updated_at":"2025-05-15T07:31:52.105Z","avatar_url":"https://github.com/ehForwarderBot.png","language":"Python","readme":"EFB WeChat Slave Channel：EFB 微信从端 (EWS)\n============================================\n\n.. image:: https://img.shields.io/pypi/v/efb-wechat-slave.svg\n   :alt: PyPI 发布\n   :target: https://pypi.org/project/efb-wechat-slave/\n.. image:: https://github.com/ehForwarderBot/efb-wechat-slave/workflows/Tests/badge.svg\n   :alt: 测试状态\n   :target: https://github.com/ehForwarderBot/efb-wechat-slave/actions\n.. image:: https://pepy.tech/badge/efb-wechat-slave/month\n   :alt: 每月下载量\n   :target: https://pepy.tech/project/efb-wechat-slave\n.. image:: https://d322cqt584bo4o.cloudfront.net/ehforwarderbot/localized.svg\n   :alt: Translate this project\n   :target: https://crowdin.com/project/ehforwarderbot/\n\n.. image:: https://github.com/ehForwarderBot/efb-wechat-slave/raw/master/banner.png\n   :alt: 头图\n\n.. image:: https://i.imgur.com/dCZfh14.png\n   :alt: This project proudly supports #SayNoToWeChat campaign.\n\n`README in other languages`_.\n\n.. TRANSLATORS: change the URL on previous line as \".\" (without quotations).\n.. _README in other languages: ./readme_translations\n\n**Channel ID**: ``blueset.wechat``\n\nEWS 是兼容 EH Forwarder Bot 的微信从端，基于逆向工程的微信网页版、\\\n修改版 ``wxpy``\\  和 \\ ``ItChat``\\ 。\n\n本项目的部分代码修改自 `youfou/wxpy`_\\ 、\\ `littlecodersh/ItChat`_\\ 。\n\n.. _youfou/wxpy: https://github.com/youfou/wxpy\n.. _littlecodersh/ItChat:  https://github.com/littlecodersh/ItChat/\n\n\n使用前须知\n----------\n\n自 2017 年中旬以来，陆续有用户报告其微信网页版登录被腾讯封禁。\\\n表现为用任何方式登录微信网页版提示「当前登录环境异常。为了你的账号安全，\\\n暂时不能登录 Web 微信。你可以通过手机客户端或 Windows 微信登录」\\\n或类似的提示。大部分用户会在封禁后一天到三个月内解封，不同用户的解封耗时不同。\\\n据观测，仅有约不足一成的用户在使用过程中被封禁。该封禁不影响其他客户端的登录。\\\n目前封禁的原因尚不明确。\n\n与此同时，有现象表明 2017 年中旬以来新注册的微信用户不能够使用微信网页版。\\\n在初次使用之前，请先访问\\ `微信网页版`_\\ 并确认您可以正常使用此功能。\\\n若您的账号不能使用该功能，请尝试换用其他账号尝试。\n\n如果你对网页版登录有要求的话，请慎用此信道。详细的相关信息请参见 `issue #7`_\\ 。\n\n.. _微信网页版: https://web.wechat.com/\n.. _issue #7: https://github.com/ehForwarderBot/efb-wechat-slave/issues/7\n\n软件依赖\n--------\n\n-  Python \u003e= 3.6\n-  EH Forwarder Bot \u003e= 2.0.0\n-  ffmpeg\n-  libmagic\n-  pillow\n\n安装与启用\n----------\n\n1. 安装如上所要求的二进制依赖\n2. 安装\n\n   .. code:: shell\n\n       pip3 install efb-wechat-slave\n\n3. 使用 \\ *EFB 配置向导*\\ ，或在当前配置档案（Profile）目录的 \\ ``config.yaml``\\  文件中启用 EWS。\n\n   当前配置文件夹的位置会根据用户的设定而改变。\n\n   **(EFB 2 中，默认的配置档案目录位于** \n   ``~/.ehforwarderbot/profiles/default``\\  **)**\n\n\n其他的安装方式\n~~~~~~~~~~~~~~\n\nEWS 同时存在由社区提供的其他安装方式，包括：\n\n- 由 KeLiu_ 维护的 `AUR 软件包`_\\ （``python-efb-wechat-slave-git``）。\n- 其他\\ `安装脚本或 Docker 等容器`_\\ 。\n\n.. _KeLiu: https://github.com/specter119\n.. _AUR 软件包: https://aur.archlinux.org/packages/python-efb-wechat-slave-git\n.. _安装脚本或 Docker 等容器: https://efb-modules.1a23.studio#scripts-and-containers-eg-docker\n\n\n可选的配置文件\n--------------\n\nEWS 支持使用可选的配置文件来启用实验功能。配置文件存储于\n``\u003c当前配置文件夹\u003e/blueset.wechat/config.yaml``\\ 。\n\n配置文件例\n~~~~~~~~~~\n\n.. code:: yaml\n\n    # 实验功能\n    # 使用本段来调整实验功能的设置。请注意实验功能随时可能变更或失效。\n    # 详细说明见下文。\n    flags:\n        option_one: 10\n        option_two: false\n        option_three: \"foobar\"\n\n常见问题\n--------\n\n-  **如何切换已登录的微信账号？**\n   请登出当前的账号，并使用其他的微信手机登录。\n-  **如何登录两个微信账号？**\n   请在 EFB 配置文件中指定不同的实例 ID。\n-  **EWS 稳定吗？**\n   EWS 依赖于上游项目\n   `ItChat \u003chttps://github.com/littlecodersh/ItChat\u003e`__\n   以及微信网页版的协议。根据 `ItChat\n   FAQ \u003chttps://itchat.readthedocs.io/zh/latest/FAQ/\u003e`__\n   的说明，在满足以下情况的条件下，微信登录能够保持数个月稳定登录:\n\n   -  服务器有稳定的网络连接，并且\n   -  **保持手机客户端长期在线。**\n\n已知问题\n--------\n\n- 就于微信网页版的工作原理，目前对于没有名称的会话、以及重名的会话支持较差，\\\n  可能会有消息传递错误等问题。\n- 同理，部分情况下变更名称的会话会被视为全新的会话，而「旧会话」随即消失。\n- 仅支持微信网页版所支持的功能以及消息类型，即\n    - 没有朋友圈\n    - 没有红包\n    - 不能发语音\n    - 不能发位置\n    - ……等等诸如此类\n- 部分文件、图片、表情等多媒体文件会被网页版微信截断，即收不到任何数据，\n  尤以表情为甚。因此造成的偶发现象，会提醒用户使用移动客户端查看。\n\n实验功能\n--------\n\n以下的实验功能可能不稳定，并可能随时更改、删除。使用时请注意。\n\n-  ``refresh_friends`` *(bool)* [默认值: ``false``]\n\n   每当请求会话列表时，强制刷新会话列表。\n\n-  ``first_link_only`` *(bool)* [默认值: ``false``]\n\n   在收到多链接消息时，仅发送第一条链接。默认多链接会发送多条消息。\n\n-  ``max_quote_length`` *(int)* [默认值: ``-1``]\n\n   引用消息中引文的长度限制。设置为 0 关闭引文功能。设置为 -1\n   则对引文长度不做限制。\n\n-  ``qr_reload`` *(str)* [默认值: ``\"master_qr_code\"``]\n\n   重新登录时使用的登录方式：\n   选项:\n\n   -  ``\"console_qr_code\"``:\n      将二维码和提示输出到系统标准输出（\\ ``stdout``\\ ）。\n   -  ``\"master_qr_code\"``: 将二维码和提示发送到主端。 **注意**\\\n      登录时二维码会频繁刷新，请注意二维码可能会导致刷屏。\n\n-  ``on_log_out`` *(str)* [默认值: ``\"command\"``]\n\n   微信服务器将用户登出时的操作。\n   选项:\n\n   -  ``\"idle\"``: 仅通知用户。\n   -  ``\"reauth\"``: 通知用户，并立即开始重新登录。\n   -  ``\"command\"``: 通知用户，并等待用户启动重新登录过程。\n\n-  ``imgcat_qr`` *(bool)* [默认值: ``false``]\n\n   使用 `iTerm2\n   图像协议 \u003chttps://www.iterm2.com/documentation-images.html\u003e`__\n   显示二维码。本功能只适用于 iTerm2 用户。\n\n-  ``delete_on_edit`` *(bool)* [默认值: ``false``]\n\n   以撤回并重新发送的方式代替编辑消息。默认禁止编辑消息。\n\n-  ``app_shared_link_mode`` *(str)* [默认值：``\"ignore\"``]\n\n   在收到第三方合作应用分享给微信的链接时，其附带的预览图以何种形式发送。\n\n   -  ``\"ignore\"``\\ ：忽略附带的缩略图\n   -  ``\"upload\"``\\ ：将缩略图上传到公开图床（\\ https://sm.ms\\ ），\\\n      并在日志中输出图片的删除链接。\n   -  ``\"image\"``\\ ：将消息以图片形式发送（不推荐）\n\n-  ``puid_logs`` *(str)* [默认值：``null``]\n\n   输出 PUID 相关日志到指定日志路径。请使用绝对路径。PUID 日志可能会根据\\\n   会话数量和消息吞吐量而占用大量存储空间。\n\n- ``send_stickers_and_gif_as_jpeg`` *(bool)* [默认值: ``false``]\n\n  以 JPEG 图片方式发送自定义表情和 GIF，用于临时绕过微信网页版的自定义表情限制。\\\n  详见 `#48`_\\ 。\n\n.. _#48: https://ews.1a23.studio/issues/48\n\n- ``system_chats_to_include`` *(list of str)* [默认值: ``[filehelper]``]\n\n  在默认会话列表中显示的特殊系统会话。其内容仅能为 ``filehelper``\\\n  （文件传输助手）、\\ ``fmessage``\\ （朋友推荐消息）、\\ ``newsapp``\\\n  （腾讯新闻）、\\ ``weixin``\\ （微信团队）其中零到四个选项。\n\n- ``user_agent`` *(str)* [默认值: ``null``]\n\n  指定登陆网页版微信时所使用的「用户代理」（user agent）字符串。\\\n  不指定则使用 itchat 提供的默认值。\n\n- ``text_post_processing`` *(bool)* [默认值: ``true``]\n\n  调整是否在从微信收到消息后对消息文本进行后处理步骤。\n  \n- ``replace_emoticon`` *(bool)* [默认值: ``true``]\n\n  是否将微信表情替换为emoji。\n\n``vendor_specific``\n-------------------\n\nEWS 的 \\ ``Chat``\\  提供了以下的 \\ ``vendor_specific``\\  项目：\n\n-  ``is_mp`` *(bool)*\n   该会话是否为公众号。\n- ``is_contact`` *(bool)*\n  不明。提取自 API。\n- ``is_blacklist_contact`` *(bool)*\n  该用户是否被加入黑名单。\n- ``is_conversation_contact`` *(bool)*\n  不明。提取自 API。\n- ``is_room_contact_del`` *(bool)*\n  不明。提取自 API。\n- ``is_room_owner`` *(bool)*\n  该用户是否为群组创建者。\n- ``is_brand_contact`` *(bool)*\n  不明。提取自 API。\n- ``is_sp_contact`` *(bool)*\n  不明。提取自 API。\n- ``is_shield_user`` *(bool)*\n  不明。提取自 API。\n- ``is_muted`` *(bool)*\n  该会话是否在微信中开启免打扰。\n- ``is_top`` *(bool)*\n  该会话是否在微信中被置顶。\n- ``has_photo_album`` *(bool)*\n  不明。提取自 API。\n\n开源许可\n--------\n\nEWS 使用了 \\ `GNU Affero 通用公共许可协议 3.0`_\\ （GNU Affero General Public\nLicense 3.0）或更新版本作为其开源许可::\n\n    EFB 微信从端：一个适用于 EH Forwarder Bot 的从端\n    Copyright (C) 2016 - 2020 Eana Hufwe 和 EFB 微信从端贡献者\n    保留所有权利。\n\n    此程序是一个自由软件；您可以在遵守由自由软件基金会发布的第三版或更新\n    版本的 GNU Affero 通用公共许可协议的情况下重新分发并和/或修改软件。\n\n    我们本着可为人所用的意愿分发此软件，但并不提供任何保证；甚至没有商业\n    性的或对特定目的适用性的暗指。更多细节请参看 GNU Affero 通用公共许可\n    协议。\n\n    您应该已经随收到一份 GNU Affero 通用公共许可协议；如果没有，请查阅\n    \u003chttp://www.gnu.org/licenses/\u003e。\n\n.. _GNU Affero 通用公共许可协议 3.0: https://www.gnu.org/licenses/agpl-3.0.txt\n\n翻译界面\n--------\n\nEWS 启用了社区支持的本地化翻译。您可以将语言环境变量 (``LANGUAGE``,\n``LC_ALL``, ``LC_MESSAGES`` 或 ``LANG``) 设为一种\\ `已支持的语言`_\\ 。\n同时，您也可以在我们的 `Crowdin 项目`_\\ 里面将 EWS 翻译为您的语言。\n\n.. _已支持的语言: https://crowdin.com/project/ehforwarderbot/\n.. _Crowdin 项目: https://crowdin.com/project/ehforwarderbot/\n\n.. note::\n\n    如果您是从源码安装的 EWS，您需要在安装前事先编译翻译文本目录（\\ ``.mo``\\ ），\\\n    才可启用界面翻译。\n","funding_links":["https://github.com/sponsors/blueset","https://ko-fi.com/blueset","https://liberapay.com/blueset","https://www.paypal.com/cgi-bin/webscr?cmd=_donations\u0026business=ilove%401a23.com\u0026item_name=Buy+Eana+a+cup+of+coffee\u0026currency_code=USD\u0026source=url"],"categories":["Python"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FehForwarderBot%2Fefb-wechat-slave","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FehForwarderBot%2Fefb-wechat-slave","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FehForwarderBot%2Fefb-wechat-slave/lists"}