gitextract_8ol47tx7/ ├── .dockerignore ├── .github/ │ └── workflows/ │ └── docker-build-on-commit.yml ├── .gitignore ├── Dockerfile ├── LICENSE ├── README.md ├── WebUI/ │ ├── __init__.py │ ├── common/ │ │ └── bot_bridge.py │ ├── config.py │ ├── forms/ │ │ ├── __init__.py │ │ └── auth_forms.py │ ├── routes/ │ │ ├── __init__.py │ │ ├── about.py │ │ ├── auth.py │ │ ├── bot.py │ │ ├── config.py │ │ ├── explorer.py │ │ ├── file.py │ │ ├── logs.py │ │ ├── overview.py │ │ ├── plugin.py │ │ └── tools.py │ ├── services/ │ │ ├── bot_service.py │ │ ├── config_service.py │ │ ├── data_service.py │ │ ├── file_service.py │ │ ├── plugin_service.py │ │ ├── tool_service.py │ │ └── websocket_service.py │ ├── static/ │ │ ├── css/ │ │ │ ├── components/ │ │ │ │ ├── cards.css │ │ │ │ ├── file_browser.css │ │ │ │ ├── file_viewer.css │ │ │ │ ├── loading.css │ │ │ │ └── modals.css │ │ │ ├── custom.css │ │ │ ├── pages/ │ │ │ │ ├── about.css │ │ │ │ ├── auth.css │ │ │ │ ├── config.css │ │ │ │ ├── explorer.css │ │ │ │ ├── logs.css │ │ │ │ ├── overview.css │ │ │ │ ├── plugin.css │ │ │ │ └── tools.css │ │ │ └── style.css │ │ └── js/ │ │ ├── components/ │ │ │ ├── cards.js │ │ │ ├── file_browser.js │ │ │ ├── file_viewer.js │ │ │ ├── loading.js │ │ │ ├── modals.js │ │ │ └── notification.js │ │ ├── logs.js │ │ ├── main.js │ │ └── pages/ │ │ ├── about.js │ │ ├── auth.js │ │ ├── config.js │ │ ├── explorer.js │ │ ├── overview.js │ │ ├── plugin.js │ │ └── tools.js │ ├── templates/ │ │ ├── about/ │ │ │ └── index.html │ │ ├── auth/ │ │ │ └── login.html │ │ ├── base.html │ │ ├── components/ │ │ │ ├── cards.html │ │ │ ├── file_browser.html │ │ │ ├── file_viewer.html │ │ │ ├── loading.html │ │ │ └── modals.html │ │ ├── config/ │ │ │ └── index.html │ │ ├── explorer/ │ │ │ ├── index.html │ │ │ └── view.html │ │ ├── logs/ │ │ │ └── index.html │ │ ├── overview/ │ │ │ └── index.html │ │ ├── plugin/ │ │ │ └── index.html │ │ └── tools/ │ │ └── index.html │ └── utils/ │ ├── async_to_sync.py │ ├── auth_utils.py │ ├── singleton.py │ └── template_filters.py ├── WechatAPI/ │ ├── Client/ │ │ ├── __init__.py │ │ ├── base.py │ │ ├── chatroom.py │ │ ├── friend.py │ │ ├── hongbao.py │ │ ├── login.py │ │ ├── message.py │ │ ├── protect.py │ │ ├── tool.py │ │ └── user.py │ ├── Server/ │ │ ├── WechatAPIServer.py │ │ └── __init__.py │ ├── __init__.py │ ├── core/ │ │ └── placeholder │ └── errors.py ├── WechatAPIDocs/ │ ├── Makefile │ ├── _templates/ │ │ └── custom-toc.html │ ├── build.sh │ ├── conf.py │ ├── index.rst │ ├── make.bat │ └── requirements.txt ├── XYBot_Dify_Template.yml ├── app.py ├── bot.py ├── database/ │ ├── XYBotDB.py │ ├── keyvalDB.py │ └── messsagDB.py ├── docker-compose.yml ├── docs/ │ ├── .nojekyll │ ├── README.md │ ├── WechatAPIClient/ │ │ ├── _modules/ │ │ │ ├── WechatAPI/ │ │ │ │ └── Client/ │ │ │ │ ├── base.html │ │ │ │ ├── chatroom.html │ │ │ │ ├── friend.html │ │ │ │ ├── hongbao.html │ │ │ │ ├── login.html │ │ │ │ ├── message.html │ │ │ │ ├── protect.html │ │ │ │ ├── tool.html │ │ │ │ └── user.html │ │ │ └── index.html │ │ ├── _sources/ │ │ │ └── index.rst.txt │ │ ├── _static/ │ │ │ ├── basic.css │ │ │ ├── debug.css │ │ │ ├── doctools.js │ │ │ ├── documentation_options.js │ │ │ ├── language_data.js │ │ │ ├── pygments.css │ │ │ ├── scripts/ │ │ │ │ ├── furo-extensions.js │ │ │ │ ├── furo.js │ │ │ │ └── furo.js.LICENSE.txt │ │ │ ├── searchtools.js │ │ │ ├── skeleton.css │ │ │ ├── sphinx_highlight.js │ │ │ ├── styles/ │ │ │ │ ├── furo-extensions.css │ │ │ │ └── furo.css │ │ │ └── translations.js │ │ ├── genindex.html │ │ ├── index.html │ │ ├── objects.inv │ │ ├── py-modindex.html │ │ ├── search.html │ │ └── searchindex.js │ ├── _coverpage.md │ ├── _sidebar.md │ ├── index.html │ └── zh_cn/ │ ├── Dify插件配置.md │ ├── Docker部署.md │ ├── Linux部署.md │ ├── Windows部署.md │ ├── 插件开发.md │ └── 配置文件.md ├── main_config.toml ├── plugins/ │ ├── AdminPoint/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── AdminSigninReset/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── AdminWhitelist/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── BotStatus/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── DependencyManager/ │ │ ├── README.md │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── Dify/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── DouyinParser/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── ExamplePlugin/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── GetContact/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── GetWeather/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── Gomoku/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── GoodMorning/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── GroupWelcome/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── Leaderboard/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── LuckyDraw/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── ManagePlugin/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── Menu/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── Music/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── News/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── PointTrade/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── QueryPoint/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── RandomMember/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── RandomPicture/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── RedPacket/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── SignIn/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── TencentLke/ │ │ ├── __init__.py │ │ ├── config.toml │ │ └── main.py │ ├── UpdateQR/ │ │ ├── __init__.py │ │ └── main.py │ └── Warthunder/ │ ├── __init__.py │ ├── config.toml │ └── main.py ├── redis.conf ├── requirements.txt └── utils/ ├── decorators.py ├── event_manager.py ├── plugin_base.py ├── plugin_manager.py ├── singleton.py └── xybot.py