discord-tweeter/nix/services.nix

51 lines
1.3 KiB
Nix

{config, lib, pkgs, ...}:
with lib;
let
cfg = config.services.discord-tweeter;
format = pkgs.formats.toml { };
configFile = format.generate "config.toml" cfg.settings;
in
{
options.services.discord-tweeter = {
enable = mkEnableOption (lib.mdDoc "discord-tweeter");
settings = mkOption {
type = format.type;
default = {
username = "";
password = "";
proxyaddr = "";
webhook = "";
DbPath = "/var/lib/discord-tweeter/";
CookiePath = "/var/lib/discord-tweeter/";
channels = [ ];
filter = [ 0b11111 ];
UseWebServer = true;
HostURL = "";
WebPort = 8080;
UserAgents = [ "discordbot" "curl" "httpie" "lwp-request" "wget" "python-requests" "openbsd ftp" "powershell" ];
NitterBase = "https://xcancel.com";
};
description = lib.mdDoc ''
'';
};
};
config = mkIf cfg.enable {
systemd.services.discord-tweeter = {
description = "Send tweets to Discord by scraping Twitter (now X)";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
DynamicUser = true;
ExecStart = "${self.packages.${pkgs.system}.default}/bin/discord-tweeter ${configFile}";
Restart = "on-failure";
};
};
};
}