Migrate A2-D1 (Mac Mini) to A1-D1 (clicks server)
Signed-off-by: Skyler Grey <skyler3665@gmail.com>
diff --git a/services/clicksforms/default.nix b/services/clicksforms/default.nix
new file mode 100644
index 0000000..e1cd51d
--- /dev/null
+++ b/services/clicksforms/default.nix
@@ -0,0 +1,26 @@
+{ nixpkgs-clicksforms, system, config, lib, ... }: let
+ pkgsOld = nixpkgs-clicksforms.legacyPackages.${system};
+in {
+ home.packages = [
+ (pkgsOld.python3.withPackages (pyPkgs: with pyPkgs; [
+ databases
+ sqlalchemy
+ orm
+ typesystem
+ (pyPkgs.callPackage ./discordpy.nix {})
+ aiohttp
+ fastapi
+ aiosqlite
+ uvicorn
+ validators
+ (
+ pyPkgs.fetchPypi {
+ pname = "jishaku";
+ version = "2.5.1";
+ hash = lib.fakeSha256;
+ }
+ )
+ slowapi
+ ]))
+ ];
+}
diff --git a/services/clicksforms/discordpy.nix b/services/clicksforms/discordpy.nix
new file mode 100644
index 0000000..83aed0f
--- /dev/null
+++ b/services/clicksforms/discordpy.nix
@@ -0,0 +1,64 @@
+{ lib
+, aiohttp
+, buildPythonPackage
+, fetchFromGitHub
+, libopus
+, pynacl
+, pythonOlder
+, withVoice ? true
+, ffmpeg
+}:
+
+buildPythonPackage rec {
+ pname = "discord.py";
+ version = "2.0.0";
+ format = "setuptools";
+
+ disabled = pythonOlder "3.8";
+
+ src = fetchFromGitHub {
+ owner = "Rapptz";
+ repo = pname;
+ rev = "refs/tags/v${version}";
+ hash = "sha256-Rh3gijm67LVyOaliP7w3YwKviKydnxXvu4snNrM5H1c=";
+ };
+
+ propagatedBuildInputs = [
+ aiohttp
+ ] ++ lib.optionals withVoice [
+ libopus
+ pynacl
+ ffmpeg
+ ];
+
+ patchPhase = ''
+ substituteInPlace "discord/opus.py" \
+ --replace "ctypes.util.find_library('opus')" "'${libopus}/lib/libopus.so.0'"
+ '' + lib.optionalString withVoice ''
+ substituteInPlace "discord/player.py" \
+ --replace "executable='ffmpeg'" "executable='${ffmpeg}/bin/ffmpeg'"
+ '';
+
+ # Only have integration tests with discord
+ doCheck = false;
+
+ pythonImportsCheck = [
+ "discord"
+ "discord.file"
+ "discord.member"
+ "discord.user"
+ "discord.state"
+ "discord.guild"
+ "discord.webhook"
+ "discord.ext.commands.bot"
+ ];
+
+ meta = with lib; {
+ description = "Python wrapper for the Discord API";
+ homepage = "https://discordpy.rtfd.org/";
+ changelog = "https://github.com/Rapptz/discord.py/blob/v${version}/docs/whats_new.rst";
+ license = licenses.mit;
+ maintainers = with maintainers; [ minion3665 ];
+ };
+}
+