mirror of
https://github.com/RGBCube/minearchy-bot
synced 2025-05-31 05:38:11 +00:00
feat: package with nix and docker
This commit is contained in:
parent
fb63e83312
commit
b0b82aa689
8 changed files with 118 additions and 99 deletions
9
.gitignore
vendored
9
.gitignore
vendored
|
@ -5,9 +5,8 @@
|
||||||
!minearchy_bot/
|
!minearchy_bot/
|
||||||
!minearchy_bot/**/
|
!minearchy_bot/**/
|
||||||
|
|
||||||
!*.py
|
|
||||||
!*.example.json
|
|
||||||
!*.sh
|
|
||||||
!*.md
|
|
||||||
!*.toml
|
|
||||||
!*.lock
|
!*.lock
|
||||||
|
!*.md
|
||||||
|
!*.nix
|
||||||
|
!*.py
|
||||||
|
!*.toml
|
||||||
|
|
11
README.md
11
README.md
|
@ -1,14 +1,7 @@
|
||||||
# Minearchy Bot
|
# Minearchy Bot
|
||||||
|
|
||||||
This is a simple bot made for the [Minearchy Discord server](https://discord.gg/2n6T78JS9k).
|
This is a simple bot made for the
|
||||||
|
[Minearchy Discord server](https://discord.gg/2n6T78JS9k).
|
||||||
## Running
|
|
||||||
|
|
||||||
1: Clone this repo and `cd` into it.
|
|
||||||
|
|
||||||
2: Edit the `./minearchy_bot/config.example.json` to your liking and rename it to `config.json`.
|
|
||||||
|
|
||||||
4: Run `./start.sh`, requires `uv`.
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
|
|
43
flake.lock
generated
Normal file
43
flake.lock
generated
Normal file
|
@ -0,0 +1,43 @@
|
||||||
|
{
|
||||||
|
"nodes": {
|
||||||
|
"nixpkgs": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1744316434,
|
||||||
|
"narHash": "sha256-lzFCg/1C39pyY2hMB2gcuHV79ozpOz/Vu15hdjiFOfI=",
|
||||||
|
"owner": "NixOS",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"rev": "d19cf9dfc633816a437204555afeb9e722386b76",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "NixOS",
|
||||||
|
"ref": "nixpkgs-unstable",
|
||||||
|
"repo": "nixpkgs",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": {
|
||||||
|
"inputs": {
|
||||||
|
"nixpkgs": "nixpkgs",
|
||||||
|
"systems": "systems"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"systems": {
|
||||||
|
"locked": {
|
||||||
|
"lastModified": 1681028828,
|
||||||
|
"narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
|
||||||
|
"type": "github"
|
||||||
|
},
|
||||||
|
"original": {
|
||||||
|
"owner": "nix-systems",
|
||||||
|
"repo": "default",
|
||||||
|
"type": "github"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"root": "root",
|
||||||
|
"version": 7
|
||||||
|
}
|
55
flake.nix
Normal file
55
flake.nix
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
{
|
||||||
|
description = "A simple bot made for the Minearchy Discord server";
|
||||||
|
|
||||||
|
inputs = {
|
||||||
|
systems.url = "github:nix-systems/default";
|
||||||
|
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
|
||||||
|
};
|
||||||
|
|
||||||
|
outputs = { systems, nixpkgs, ... }: let
|
||||||
|
eachSystem = nixpkgs.lib.genAttrs (import systems);
|
||||||
|
in {
|
||||||
|
packages = eachSystem (system: let
|
||||||
|
pkgs = import nixpkgs { inherit system; };
|
||||||
|
|
||||||
|
pypkgs = pkgs.python313Packages;
|
||||||
|
in rec {
|
||||||
|
default = minearchy-bot;
|
||||||
|
|
||||||
|
minearchy-bot = pypkgs.buildPythonApplication {
|
||||||
|
pname = "minearchy-bot";
|
||||||
|
version = "0.0.1";
|
||||||
|
|
||||||
|
src = ./.;
|
||||||
|
format = "pyproject";
|
||||||
|
|
||||||
|
build-system = [ pypkgs.setuptools ];
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
pypkgs.discordpy
|
||||||
|
# TODO: pypkgs.jishaku
|
||||||
|
pypkgs.mcstatus
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
minearchy-bot-container = pkgs.dockerTools.buildImage {
|
||||||
|
name = "minearchy-bot";
|
||||||
|
tag = "latest";
|
||||||
|
|
||||||
|
copyToRoot = pkgs.buildEnv {
|
||||||
|
name = "image-root";
|
||||||
|
|
||||||
|
pathsToLink = [ "/bin" ];
|
||||||
|
paths = [
|
||||||
|
pkgs.uutils-coreutils-noprefix
|
||||||
|
minearchy-bot
|
||||||
|
];
|
||||||
|
};
|
||||||
|
|
||||||
|
config.Env = [ "PATH=/bin" ];
|
||||||
|
config.WorkingDir = "/minearcy-bot";
|
||||||
|
config.Cmd = "${minearchy-bot}/bin/minearchy-bot";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
};
|
||||||
|
}
|
|
@ -1,32 +1,27 @@
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import asyncio
|
import asyncio
|
||||||
import json
|
|
||||||
from os import environ as env
|
from os import environ as env
|
||||||
from pathlib import Path
|
|
||||||
|
|
||||||
from . import MinearchyBot
|
from . import MinearchyBot
|
||||||
|
|
||||||
|
|
||||||
async def main() -> None:
|
async def async_main() -> None:
|
||||||
config = json.loads(
|
|
||||||
(
|
|
||||||
Path(__file__).parent / "config.json"
|
|
||||||
).read_text()
|
|
||||||
)
|
|
||||||
|
|
||||||
env[f"JISHAKU_HIDE"] = "True"
|
env[f"JISHAKU_HIDE"] = "True"
|
||||||
env[f"JISHAKU_NO_UNDERSCORE"] = "True"
|
env[f"JISHAKU_NO_UNDERSCORE"] = "True"
|
||||||
|
|
||||||
bot = MinearchyBot(
|
bot = MinearchyBot(
|
||||||
token = config["BOT_TOKEN"],
|
token = env["MINEARCHY_BOT_TOKEN"],
|
||||||
webhook_url = config["WEBHOOK_URL"]
|
webhook_url = env["MINEARCHY_BOT_WEBHOOK_URL"]
|
||||||
)
|
)
|
||||||
|
|
||||||
await bot.run()
|
await bot.run()
|
||||||
|
|
||||||
if __name__ == "__main__":
|
def main() -> None:
|
||||||
try:
|
try:
|
||||||
asyncio.run(main())
|
asyncio.run(async_main())
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
|
|
|
@ -6,6 +6,10 @@ requires-python = ">=3.10"
|
||||||
authors = [ { name = "RGBCube", email = "git@rgbcu.be" } ]
|
authors = [ { name = "RGBCube", email = "git@rgbcu.be" } ]
|
||||||
urls.repository = "https://github.com/RGBCube/minearchy-bot"
|
urls.repository = "https://github.com/RGBCube/minearchy-bot"
|
||||||
readme = "README.md"
|
readme = "README.md"
|
||||||
license = "GPL-3.0-or-later"
|
license.text = "GPL-3.0-or-later"
|
||||||
|
|
||||||
dependencies = [ "discord-py>=2.5.2", "jishaku>=2.6.0", "mcstatus>=11.1.1" ]
|
# TODO: jishaku
|
||||||
|
dependencies = [ "discord-py>=2.5.2", "mcstatus>=11.1.1" ]
|
||||||
|
|
||||||
|
[project.scripts]
|
||||||
|
minearchy-bot = "minearchy_bot.__main__:main"
|
||||||
|
|
3
start.sh
3
start.sh
|
@ -1,3 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
|
|
||||||
uv run --module minearchy_bot -- $@
|
|
67
uv.lock
generated
67
uv.lock
generated
|
@ -179,36 +179,6 @@ wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/5d/35/be73b6015511aa0173ec595fc579133b797ad532996f2998fd6b8d1bbe6b/audioop_lts-0.2.1-cp313-cp313t-win_arm64.whl", hash = "sha256:78bfb3703388c780edf900be66e07de5a3d4105ca8e8720c5c4d67927e0b15d0", size = 23918 },
|
{ url = "https://files.pythonhosted.org/packages/5d/35/be73b6015511aa0173ec595fc579133b797ad532996f2998fd6b8d1bbe6b/audioop_lts-0.2.1-cp313-cp313t-win_arm64.whl", hash = "sha256:78bfb3703388c780edf900be66e07de5a3d4105ca8e8720c5c4d67927e0b15d0", size = 23918 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "braceexpand"
|
|
||||||
version = "0.1.7"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/54/93/badd4f5ccf25209f3fef2573073da9fe4a45a3da99fca2f800f942130c0f/braceexpand-0.1.7.tar.gz", hash = "sha256:e6e539bd20eaea53547472ff94f4fb5c3d3bf9d0a89388c4b56663aba765f705", size = 7777 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/fa/93/e8c04e80e82391a6e51f218ca49720f64236bc824e92152a2633b74cf7ab/braceexpand-0.1.7-py2.py3-none-any.whl", hash = "sha256:91332d53de7828103dcae5773fb43bc34950b0c8160e35e0f44c4427a3b85014", size = 5923 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "click"
|
|
||||||
version = "8.1.8"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
dependencies = [
|
|
||||||
{ name = "colorama", marker = "sys_platform == 'win32'" },
|
|
||||||
]
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/b9/2e/0090cbf739cee7d23781ad4b89a9894a41538e4fcf4c31dcdd705b78eb8b/click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a", size = 226593 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/7e/d4/7ebdbd03970677812aac39c869717059dbb71a4cfc033ca6e5221787892c/click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2", size = 98188 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "colorama"
|
|
||||||
version = "0.4.6"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "discord-py"
|
name = "discord-py"
|
||||||
version = "2.5.2"
|
version = "2.5.2"
|
||||||
|
@ -309,32 +279,6 @@ wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 },
|
{ url = "https://files.pythonhosted.org/packages/76/c6/c88e154df9c4e1a2a66ccf0005a88dfb2650c1dffb6f5ce603dfbd452ce3/idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3", size = 70442 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "import-expression"
|
|
||||||
version = "2.2.1.post1"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/95/dd/4c561ce20064985b2a7d3eadb4002c981c8906a4efd309a0b595acb2727a/import_expression-2.2.1.post1.tar.gz", hash = "sha256:1c831bf26bef7edf36a97b34c687b962e7abe06116c66f00e14f9a3218623d4f", size = 16044 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/38/92/437a1dbc58241770198dc4d966a2e6363bd684f961070623aec975cfe03f/import_expression-2.2.1.post1-py3-none-any.whl", hash = "sha256:7b3677e889816e0dbdcc7f42f4534071c54c667f32c71097522ea602f6497902", size = 23919 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "jishaku"
|
|
||||||
version = "2.6.0"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
dependencies = [
|
|
||||||
{ name = "braceexpand" },
|
|
||||||
{ name = "click" },
|
|
||||||
{ name = "discord-py" },
|
|
||||||
{ name = "import-expression" },
|
|
||||||
{ name = "tabulate" },
|
|
||||||
{ name = "typing-extensions" },
|
|
||||||
]
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/cc/59/72e38c9a0314274a524ec28ef49630734b326e31784c47d0e3b7fe305522/jishaku-2.6.0.tar.gz", hash = "sha256:b9b4d053b8cbdb6a8fd7a8d549d0928c2e5294044cbb145cbb26df36f97ce289", size = 74679 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/ad/9a/ea48e6f0bef605618c32feaab2fcd6a02ac74113d67f9ae20586af602e70/jishaku-2.6.0-py3-none-any.whl", hash = "sha256:a39366e5b2bd51c0d21ef8783c3e00c927c59792a2b0f5467c156b1f69eb912b", size = 80658 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "mcstatus"
|
name = "mcstatus"
|
||||||
version = "11.1.1"
|
version = "11.1.1"
|
||||||
|
@ -354,14 +298,12 @@ version = "0.0.1"
|
||||||
source = { virtual = "." }
|
source = { virtual = "." }
|
||||||
dependencies = [
|
dependencies = [
|
||||||
{ name = "discord-py" },
|
{ name = "discord-py" },
|
||||||
{ name = "jishaku" },
|
|
||||||
{ name = "mcstatus" },
|
{ name = "mcstatus" },
|
||||||
]
|
]
|
||||||
|
|
||||||
[package.metadata]
|
[package.metadata]
|
||||||
requires-dist = [
|
requires-dist = [
|
||||||
{ name = "discord-py", specifier = ">=2.5.2" },
|
{ name = "discord-py", specifier = ">=2.5.2" },
|
||||||
{ name = "jishaku", specifier = ">=2.6.0" },
|
|
||||||
{ name = "mcstatus", specifier = ">=11.1.1" },
|
{ name = "mcstatus", specifier = ">=11.1.1" },
|
||||||
]
|
]
|
||||||
|
|
||||||
|
@ -550,15 +492,6 @@ wheels = [
|
||||||
{ url = "https://files.pythonhosted.org/packages/54/21/f43f0a1fa8b06b32812e0975981f4677d28e0f3271601dc88ac5a5b83220/setuptools-78.1.0-py3-none-any.whl", hash = "sha256:3e386e96793c8702ae83d17b853fb93d3e09ef82ec62722e61da5cd22376dcd8", size = 1256108 },
|
{ url = "https://files.pythonhosted.org/packages/54/21/f43f0a1fa8b06b32812e0975981f4677d28e0f3271601dc88ac5a5b83220/setuptools-78.1.0-py3-none-any.whl", hash = "sha256:3e386e96793c8702ae83d17b853fb93d3e09ef82ec62722e61da5cd22376dcd8", size = 1256108 },
|
||||||
]
|
]
|
||||||
|
|
||||||
[[package]]
|
|
||||||
name = "tabulate"
|
|
||||||
version = "0.9.0"
|
|
||||||
source = { registry = "https://pypi.org/simple" }
|
|
||||||
sdist = { url = "https://files.pythonhosted.org/packages/ec/fe/802052aecb21e3797b8f7902564ab6ea0d60ff8ca23952079064155d1ae1/tabulate-0.9.0.tar.gz", hash = "sha256:0095b12bf5966de529c0feb1fa08671671b3368eec77d7ef7ab114be2c068b3c", size = 81090 }
|
|
||||||
wheels = [
|
|
||||||
{ url = "https://files.pythonhosted.org/packages/40/44/4a5f08c96eb108af5cb50b41f76142f0afa346dfa99d5296fe7202a11854/tabulate-0.9.0-py3-none-any.whl", hash = "sha256:024ca478df22e9340661486f85298cff5f6dcdba14f3813e8830015b9ed1948f", size = 35252 },
|
|
||||||
]
|
|
||||||
|
|
||||||
[[package]]
|
[[package]]
|
||||||
name = "typing-extensions"
|
name = "typing-extensions"
|
||||||
version = "4.13.1"
|
version = "4.13.1"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue