diff --git a/README.md b/README.md index f1142a5..b22bf96 100644 --- a/README.md +++ b/README.md @@ -22,7 +22,15 @@ cp config.example.toml config.toml ## 启动机器人 ```bash -uv run python bot.py +uv run linuxawesomebot +``` + +也可以 `uv run python bot.py`,效果相同。 + +## 测试 + +```bash +uv run pytest ``` ## OneBot 实现端配置(以 NapCat 为例) @@ -68,12 +76,6 @@ uv run python bot.py ## 本地测试(Windows 也可) -```bash -uv run python test_fake_onebot.py -``` - -模拟一个 OneBot 实现端连入并逐条发送命令,验证机器人的回复。 - ## systemd 部署(Linux) ```ini @@ -84,7 +86,7 @@ After=network.target [Service] WorkingDirectory=/opt/LinuxAwesomeBot -ExecStart=/usr/local/bin/uv run python bot.py +ExecStart=/usr/local/bin/uv run linuxawesomebot Restart=always [Install] diff --git a/bot.py b/bot.py index e5c31bb..c687aeb 100644 --- a/bot.py +++ b/bot.py @@ -200,8 +200,12 @@ class Bot: await self.ob.stop() -if __name__ == "__main__": +def main(): if sys.platform == "win32": asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy()) cfg = load_config() asyncio.run(Bot(cfg).run()) + + +if __name__ == "__main__": + main() diff --git a/pyproject.toml b/pyproject.toml index 919dc8e..fe6c535 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -17,3 +17,13 @@ dev = [ "pytest>=9.1.1", "pytest-asyncio>=1.4.0", ] + +[project.scripts] +linuxawesomebot = "bot:main" + +[build-system] +requires = ["setuptools>=75"] +build-backend = "setuptools.build_meta" + +[tool.setuptools] +py-modules = ["bot", "onebot", "monitor", "alerter"] diff --git a/uv.lock b/uv.lock index e625c98..22eeb2f 100644 --- a/uv.lock +++ b/uv.lock @@ -252,7 +252,7 @@ wheels = [ [[package]] name = "linuxawesomebot" version = "0.1.0" -source = { virtual = "." } +source = { editable = "." } dependencies = [ { name = "aiohttp" }, { name = "psutil" },