From 470eba7c8e879f5e56538f4e946e53cc34b3a417 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kier=C3=A1n=20Meinhardt?= Date: Sun, 14 Apr 2019 23:39:05 +0200 Subject: [PATCH] catullus: proverb bot, autorenkalender bot --- configs/packages.nix | 2 ++ configs/scripts.nix | 3 --- configs/shells.nix | 2 +- dot/vimrc | 3 ++- packages/autorenkalender.nix | 7 +++++++ packages/telegram-proverb.nix | 27 +++++++++++++++++++++++++++ systems/catullus/containers.nix | 31 +++++++++++++++++++++++++++++-- 7 files changed, 68 insertions(+), 7 deletions(-) create mode 100644 packages/autorenkalender.nix create mode 100644 packages/telegram-proverb.nix diff --git a/configs/packages.nix b/configs/packages.nix index 0197855..cb1ba62 100644 --- a/configs/packages.nix +++ b/configs/packages.nix @@ -7,6 +7,7 @@ let todoist = pkgs.callPackage {}; spotify-cli-linux = pkgs.python3Packages.callPackage {}; instaloader = pkgs.python3Packages.callPackage {}; + autorenkalender = pkgs.callPackage {}; haskells = import ; unstable = import {}; executables = pkgs.haskell.lib.justStaticExecutables; @@ -196,6 +197,7 @@ in with pkgs; aspellDicts.en aspellDicts.la bvg + autorenkalender daybook gnupg jo diff --git a/configs/scripts.nix b/configs/scripts.nix index 5f1256b..cbd2f55 100644 --- a/configs/scripts.nix +++ b/configs/scripts.nix @@ -124,9 +124,6 @@ let scripts.nix-git = unstable.writers.writeDashBin "nix-git" '' ${pkgs.nix-prefetch-git}/bin/nix-prefetch-git "$@" 2> /dev/null | ${pkgs.jq}/bin/jq -r '"rev = \"\(.rev)\";\nsha256 = \"\(.sha256)\";"' ''; - scripts.autorenkalender = unstable.writers.writeDashBin "autorenkalender" '' - ${pkgs.curl}/bin/curl -s https://gutenberg.spiegel.de | ${pkgs.gnused}/bin/sed -n '/Autorenkalender/,/<\/div>/p' | ${pkgs.html2text}/bin/html2text | ${pkgs.coreutils}/bin/tail +2 - ''; scripts.n = unstable.writers.writeDashBin "n" '' nix-shell -p "''${2:-$1}" --run "$1" ''; diff --git a/configs/shells.nix b/configs/shells.nix index 6472303..02821ea 100644 --- a/configs/shells.nix +++ b/configs/shells.nix @@ -81,7 +81,7 @@ in { niveum-deploy() { for system in "$@"; do - eval $(nix-build ~niveum/deploy.nix -A "$system") & + eval $(nix-build ~niveum/deploy.nix -A "$system") done } ''; diff --git a/dot/vimrc b/dot/vimrc index a101633..32e43c5 100644 --- a/dot/vimrc +++ b/dot/vimrc @@ -7,7 +7,8 @@ nnoremap :FZF let g:fzf_layout = { 'down': '~15%' } " colorscheme delek hipster -colorscheme 256_noir +" colorscheme 256_noir +colorscheme paramount let mapleader = "," " let maplocalleader="\\" diff --git a/packages/autorenkalender.nix b/packages/autorenkalender.nix new file mode 100644 index 0000000..e8af80f --- /dev/null +++ b/packages/autorenkalender.nix @@ -0,0 +1,7 @@ +{ writeShellScriptBin, w3m, gnused }: +writeShellScriptBin "autorenkalender" '' + ${w3m}/bin/w3m -dump https://gutenberg.spiegel.de/ \ + | ${gnused}/bin/sed -n '/Autorenkalender/,/━/p' \ + | head -n -2 \ + | tail -n +3 +'' diff --git a/packages/telegram-proverb.nix b/packages/telegram-proverb.nix new file mode 100644 index 0000000..5b79204 --- /dev/null +++ b/packages/telegram-proverb.nix @@ -0,0 +1,27 @@ +{ fetchFromGitHub, buildPythonApplication, buildPythonPackage, fetchPypi, aiohttp, urllib3, pillow, beautifulsoup4 }: +let + telepot = + buildPythonPackage rec { + pname = "telepot"; + version = "12.7"; + src = fetchPypi { + inherit pname version; + sha256 = "1c587dmr71ppray0lzxgib1plnndmaiwal1kaiqx82rdwx4kw4ms"; + }; + propagatedBuildInputs = [ aiohttp urllib3 ]; + doCheck = false; + }; +in buildPythonApplication rec { + pname = "telegram-proverb"; + version = "0.1.0"; + + # src = ~/prog/git/proverb-pro; + src = fetchFromGitHub { + owner = "kmein"; + repo = "proverb-pro"; + rev = "356460f5c542e8f5735c3e3eb5a356a04faf48df"; + sha256 = "02psipiyvs126b67xkqd72sfjixanrvlg02w3pn2wpc0miy5v0v3"; + }; + + propagatedBuildInputs = [ telepot pillow beautifulsoup4 ]; +} diff --git a/systems/catullus/containers.nix b/systems/catullus/containers.nix index dee87c3..e918769 100644 --- a/systems/catullus/containers.nix +++ b/systems/catullus/containers.nix @@ -1,12 +1,31 @@ -{ config, pkgs, ... }: +{ config, pkgs, lib, ... }: let telegram-reverse = pkgs.python3Packages.callPackage {}; telegram-betacode = pkgs.python3Packages.callPackage {}; - telegram-horoscope = pkgs.python3Packages.callPackage {}; + # telegram-horoscope = pkgs.python3Packages.callPackage {}; + telegram-proverb = pkgs.python3Packages.callPackage {}; + autorenkalender = pkgs.callPackage {}; in { containers.telegram-bots = { autoStart = true; config = { + systemd.services.autorenbot = { + enable = true; + startAt = "07:00"; + serviceConfig.Type = "oneshot"; + wantedBy = [ "multi-user.target" ]; + environment = { + TELEGRAM_AUTORENKALENDER_CHAT = "18980945"; + TELEGRAM_AUTORENKALENDER_TOKEN = lib.strings.removeSuffix "\n" (builtins.readFile ); + }; + script = '' + TELEGRAM_ENDPOINT="https://api.telegram.org/bot$TELEGRAM_AUTORENKALENDER_TOKEN" + ${pkgs.curl}/bin/curl -s \ + -X POST "$TELEGRAM_ENDPOINT/sendMessage" \ + -d chat_id="$TELEGRAM_AUTORENKALENDER_CHAT" \ + -d text="$(${autorenkalender}/bin/autorenkalender)" + ''; + }; systemd.services.telegram-reverse = { wantedBy = [ "multi-user.target" ]; description = "Telegram bot for reversing things"; @@ -23,6 +42,14 @@ in { script = ''${telegram-betacode}/bin/telegram-betacode''; serviceConfig.Restart = "always"; }; + systemd.services.telegram-proverb = { + wantedBy = [ "multi-user.target" ]; + description = "Telegram bot for generating inspiring but useless proverbs"; + environment.TELEGRAM_PROVERB_TOKEN = builtins.readFile ; + enable = true; + script = ''${telegram-proverb}/bin/proverb_bot.py''; + serviceConfig.Restart = "always"; + }; # systemd.services.telegram-horoscope = { # wantedBy = [ "multi-user.target" ]; # description = "Telegram bot for generating horoscope charts";