mirror of
https://github.com/kmein/niveum
synced 2026-03-20 03:51:07 +01:00
feat: astro telegram bot sends live updates
This commit is contained in:
@@ -40,15 +40,16 @@ let
|
|||||||
in {
|
in {
|
||||||
niveum.telegramBots.transits = {
|
niveum.telegramBots.transits = {
|
||||||
enable = true;
|
enable = true;
|
||||||
time = "0:00";
|
time = "*:0/1";
|
||||||
token = lib.strings.fileContents <system-secrets/telegram/kmein.token>;
|
token = lib.strings.fileContents <system-secrets/telegram/kmein.token>;
|
||||||
chatIds = [ "-1001796440545" ];
|
chatIds = [ "-1001796440545" ];
|
||||||
command = toString (pkgs.writers.writeDash "common-transits" ''
|
command = toString (pkgs.writers.writeDash "common-transits" ''
|
||||||
|
now=$(${pkgs.coreutils}/bin/date +%_H:%M | ${pkgs.gnused}/bin/sed 's/^\s*//')
|
||||||
|
date=$(${pkgs.coreutils}/bin/date +'%m %d %Y')
|
||||||
{
|
{
|
||||||
date=$(${pkgs.coreutils}/bin/date +'%m %d %Y')
|
|
||||||
${nixpkgs-unstable.astrolog}/bin/astrolog -qd $date -zN Berlin -Yt -Yd -d -R Uranus Neptune Pluto
|
${nixpkgs-unstable.astrolog}/bin/astrolog -qd $date -zN Berlin -Yt -Yd -d -R Uranus Neptune Pluto
|
||||||
${nixpkgs-unstable.astrolog}/bin/astrolog -Yt -Yd -q 10 22 1999 6:32 -zN Kassel -td $date -R Uranus Neptune Pluto
|
${nixpkgs-unstable.astrolog}/bin/astrolog -Yt -Yd -q 10 22 1999 6:32 -zN Kassel -td $date -R Uranus Neptune Pluto
|
||||||
} | ${toSymbols} | ${pkgs.coreutils}/bin/sort -n
|
} | ${toSymbols} | ${pkgs.coreutils}/bin/sort -n | ${pkgs.gnugrep}/bin/grep "^$now" || :
|
||||||
'');
|
'');
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,7 +9,7 @@ let
|
|||||||
startAt = bot.time;
|
startAt = bot.time;
|
||||||
serviceConfig.Type = "oneshot";
|
serviceConfig.Type = "oneshot";
|
||||||
wants = [ "network-online.target" ];
|
wants = [ "network-online.target" ];
|
||||||
script = strings.concatStringsSep "\n" ([ "QUOTE=$(${bot.command})" ]
|
script = strings.concatStringsSep "\n" ([ "QUOTE=$(${bot.command})" "if [ -n \"$QUOTE\" ]; then" ]
|
||||||
++ map (chatId: ''
|
++ map (chatId: ''
|
||||||
${pkgs.curl}/bin/curl -s -X POST "https://api.telegram.org/bot${bot.token}/sendMessage" \
|
${pkgs.curl}/bin/curl -s -X POST "https://api.telegram.org/bot${bot.token}/sendMessage" \
|
||||||
-d chat_id="${chatId}" \
|
-d chat_id="${chatId}" \
|
||||||
@@ -17,7 +17,8 @@ let
|
|||||||
lib.strings.optionalString (bot.parseMode != null)
|
lib.strings.optionalString (bot.parseMode != null)
|
||||||
"-d parse_mode=${bot.parseMode}"
|
"-d parse_mode=${bot.parseMode}"
|
||||||
}
|
}
|
||||||
'') bot.chatIds);
|
'') bot.chatIds
|
||||||
|
++ [ "fi" ]);
|
||||||
};
|
};
|
||||||
in {
|
in {
|
||||||
options.niveum.telegramBots = mkOption {
|
options.niveum.telegramBots = mkOption {
|
||||||
@@ -27,7 +28,7 @@ in {
|
|||||||
time = mkOption { type = types.str; };
|
time = mkOption { type = types.str; };
|
||||||
token = mkOption { type = types.strMatching "[0-9A-Za-z:-]+"; };
|
token = mkOption { type = types.strMatching "[0-9A-Za-z:-]+"; };
|
||||||
chatIds = mkOption {
|
chatIds = mkOption {
|
||||||
type = types.listOf (types.strMatching "[0-9]+|@[A-Za-z0-9]+");
|
type = types.listOf (types.strMatching "-?[0-9]+|@[A-Za-z0-9]+");
|
||||||
};
|
};
|
||||||
command = mkOption { type = types.str; };
|
command = mkOption { type = types.str; };
|
||||||
parseMode = mkOption {
|
parseMode = mkOption {
|
||||||
|
|||||||
Reference in New Issue
Block a user