summaryrefslogtreecommitdiffstats
path: root/krebs/5pkgs/Reaktor
diff options
context:
space:
mode:
Diffstat (limited to 'krebs/5pkgs/Reaktor')
-rw-r--r--krebs/5pkgs/Reaktor/default.nix22
-rw-r--r--krebs/5pkgs/Reaktor/plugins.nix131
-rw-r--r--krebs/5pkgs/Reaktor/scripts/random-emoji.sh6
-rw-r--r--krebs/5pkgs/Reaktor/scripts/random-issue.sh20
-rw-r--r--krebs/5pkgs/Reaktor/scripts/sed-plugin.py41
-rw-r--r--krebs/5pkgs/Reaktor/scripts/shack-correct.sh6
6 files changed, 0 insertions, 226 deletions
diff --git a/krebs/5pkgs/Reaktor/default.nix b/krebs/5pkgs/Reaktor/default.nix
deleted file mode 100644
index fc3710820..000000000
--- a/krebs/5pkgs/Reaktor/default.nix
+++ /dev/null
@@ -1,22 +0,0 @@
-{ lib, pkgs,python3Packages,fetchurl, ... }:
-
-python3Packages.buildPythonPackage rec {
- name = "Reaktor-${version}";
- version = "0.5.1";
-
- doCheck = false;
-
- propagatedBuildInputs = with pkgs;[
- python3Packages.docopt
- python3Packages.requests2
- ];
- src = fetchurl {
- url = "https://pypi.python.org/packages/source/R/Reaktor/Reaktor-${version}.tar.gz";
- sha256 = "0dn9r0cyxi1sji2pnybsrc4hhaaq7hmf235nlgkrxqlsdb7y6n6n";
- };
- meta = {
- homepage = http://krebsco.de/;
- description = "An IRC bot based on asynchat";
- license = lib.licenses.wtfpl;
- };
-}
diff --git a/krebs/5pkgs/Reaktor/plugins.nix b/krebs/5pkgs/Reaktor/plugins.nix
deleted file mode 100644
index e85e41cfe..000000000
--- a/krebs/5pkgs/Reaktor/plugins.nix
+++ /dev/null
@@ -1,131 +0,0 @@
-{ stdenv, lib, pkgs, makeWrapper }:
-
-rec {
- # Begin API
- buildBaseReaktorPlugin = { name
- , config # python extra configuration for plugin
- , phases ? []
- , ... } @ attrs:
- stdenv.mkDerivation (attrs // {
- name = "Reaktor-plugin-" + name;
- isReaktorPlugin = true;
- });
-
- buildSimpleReaktorPlugin = name: { script
- , path ? []
- , env ? {}
- , append_rule ? false # append the rule instead of insert
- , pattern ? ""
- , ... } @ attrs:
- let
- path_env = { "PATH" = lib.makeSearchPath "bin" (path ++ [ pkgs.coreutils ]); };
- src_dir = pkgs.substituteAll ( {
- inherit name;
- dir = "bin";
- isExecutable = true;
- src = script;
- });
- src_file = "${src_dir}/bin/${name}";
- config = ''
- public_commands.${if append_rule then "append(" else "insert(0," }{
- 'capname' : "${name}",
- 'pattern' : ${if pattern == "" then
- ''indirect_pattern.format("${name}")'' else
- ''"${pattern}"'' },
- 'argv' : ["${src_file}"],
- 'env' : ${builtins.toJSON (path_env // env)} })
- '';
- config_file = pkgs.writeText "plugin.py" config;
- in buildBaseReaktorPlugin (attrs // rec {
- inherit name config;
-
- phases = [ "installPhase" ];
- buildInputs = [ makeWrapper ];
- installPhase = ''
- mkdir -p $out/bin $out/etc/Reaktor
- ln -s ${src_file} $out/bin
- wrapProgram $out/bin/${name} \
- --prefix PATH : ${path_env.PATH}
- ln -s ${config_file} $out/etc/Reaktor/plugin.py
- '';
-
- });
- # End API
-
- # Begin Plugins
- random-emoji = buildSimpleReaktorPlugin "emoji" {
- path = with pkgs; [ gnused gnugrep xmlstarlet curl ];
- script = ./scripts/random-emoji.sh;
- };
-
- sed-plugin = buildSimpleReaktorPlugin "sed-plugin" {
- path = [ pkgs.gnused pkgs.python3 ];
- # only support s///gi the plugin needs to see every msg
- # TODO: this will eat up the last regex, fix Reaktor to support fallthru
- append_rule = true;
- pattern = "^(?P<args>.*)$$";
- script = ./scripts/sed-plugin.py;
- };
-
- shack-correct = buildSimpleReaktorPlugin "shack-correct" {
- path = [ pkgs.gnused ];
- pattern = "^(?P<args>.*Shack.*)$$";
- script = ./scripts/shack-correct.sh;
- };
-
- nixos-version = buildSimpleReaktorPlugin "nixos-version" {
- script = pkgs.writeDash "nixos-version" ''
- . /etc/os-release
- echo "$PRETTY_NAME"
- '';
- };
- stockholm-issue = buildSimpleReaktorPlugin "stockholm-issue" {
- script = ./scripts/random-issue.sh;
- path = with pkgs; [ git gnused haskellPackages.lentil ];
- env = { "origin" = "http://cgit.gum/stockholm"; };
- };
-
- titlebot =
- let
- pypkgs = pkgs.python3Packages;
- titlebot_cmds = pypkgs.buildPythonPackage {
- name = "titlebot_cmds";
- propagatedBuildInputs = with pypkgs; [ setuptools ];
- src = pkgs.fetchurl {
- url = "https://github.com/makefu/reaktor-titlebot/archive/2.1.0.tar.gz";
- sha256 = "0wvf09wmk8b52f9j65qrw81nwrhs9pfhijwrlkzp5l7l2q8cjkp6";
- };
- };
- in buildBaseReaktorPlugin rec {
- name = "titlebot";
- phases = [ "installPhase" ];
- installPhase = ''
- mkdir -p $out
- ln -s ${titlebot_cmds}/* $out
- '';
- config = ''
- def titlebot_cmd(cmd):
- from os import environ
- return { 'capname': None,
- 'env': { 'TITLEDB':
- environ['state_dir']+'/suggestions.json' },
- 'pattern': '^\\.' + cmd + '\\s*(?:\\s+(?P<args>.*))?$$',
- 'argv': [ '${titlebot_cmds}/bin/' + cmd ] }
- for i in ['up','help','list','top','new']:
- public_commands.insert(0,titlebot_cmd(i))
- commands.insert(0,titlebot_cmd('clear'))
- '';
- };
-
- url-title = (buildSimpleReaktorPlugin "url-title" {
- pattern = "^.*(?P<args>http[s]?://(?:[a-zA-Z]|[0-9]|[$-_@.&+]|[!*\(\),]|(?:%[0-9a-fA-F][0-9a-fA-F]))+).*$$";
- path = with pkgs; [ curl perl ];
- script = pkgs.writeDash "lambda-pl" ''
- if [ "$#" -gt 0 ]; then
- curl -SsL --max-time 5 "$1" |
- perl -l -0777 -ne 'print $1 if /<title.*?>\s*(.*?)(?: - youtube)?\s*<\/title/si'
- fi
- '';
- });
-
-}
diff --git a/krebs/5pkgs/Reaktor/scripts/random-emoji.sh b/krebs/5pkgs/Reaktor/scripts/random-emoji.sh
deleted file mode 100644
index 386aa68b9..000000000
--- a/krebs/5pkgs/Reaktor/scripts/random-emoji.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#!/bin/sh
-curl http://emojicons.com/random -s | \
- grep data-text | \
- sed -n 's/.*>\(.*\)<\/textarea>/\1/p' | \
- head -n 1 | \
- xmlstarlet unesc
diff --git a/krebs/5pkgs/Reaktor/scripts/random-issue.sh b/krebs/5pkgs/Reaktor/scripts/random-issue.sh
deleted file mode 100644
index 5c47c6156..000000000
--- a/krebs/5pkgs/Reaktor/scripts/random-issue.sh
+++ /dev/null
@@ -1,20 +0,0 @@
-#! /bin/sh
-set -eu
-# requires env:
-# $state_dir
-# $origin
-
-# in PATH: git,lentil,coreutils
-subdir=`echo "$1" | tr -dc "[:alnum:]"`
-name=`echo "$origin" | tr -dc "[:alnum:]"`
-track="$state_dir/$name-checkout"
-(if test -e "$track" ;then
- cd "$track"
- git fetch origin master
- git reset --hard origin/master
-else
- git clone "$origin" "$track"
-fi) >&2
-
-cd "$track"
-lentil "${subdir:-.}" -f csv | sed 1d | shuf | head -1
diff --git a/krebs/5pkgs/Reaktor/scripts/sed-plugin.py b/krebs/5pkgs/Reaktor/scripts/sed-plugin.py
deleted file mode 100644
index da8e2f726..000000000
--- a/krebs/5pkgs/Reaktor/scripts/sed-plugin.py
+++ /dev/null
@@ -1,41 +0,0 @@
-#!/usr/bin/env python3
-
-# Usage:
-# _from=krebs state_dir=. python sed-plugin.py 'dick butt'
-# _from=krebs state_dir=. python sed-plugin.py 's/t/l/g'
-# > dick bull
-import shelve
-from os import environ
-from os.path import join
-from sys import argv
-import re
-
-d = shelve.open(join(environ['state_dir'], 'sed-plugin.shelve'), writeback=True)
-usr = environ['_from']
-
-
-def is_regex(line):
- myre = re.compile(r'^s/(?:\\/|[^/])+/(?:\\/|[^/])*/[ig]?$')
- return myre.match(line)
-
-line = argv[1]
-
-if is_regex(line):
- last = d.get(usr, None)
- if last:
- from subprocess import Popen, PIPE
- p = Popen(['sed', line], stdin=PIPE, stdout=PIPE)
- so, se = p.communicate(bytes("{}\n".format(last), "UTF-8"))
- if p.returncode:
- print("something went wrong when trying to process your regex: {}".format(se.decode()))
- ret = so.decode()
- print("\x1b[1m{}\x1b[0m meant: {}".format(usr, ret.strip()))
- if ret:
- d[usr] = ret
-
- else:
- print("no last message")
-else:
- d[usr] = line
-
-d.close()
diff --git a/krebs/5pkgs/Reaktor/scripts/shack-correct.sh b/krebs/5pkgs/Reaktor/scripts/shack-correct.sh
deleted file mode 100644
index 3b4d04f80..000000000
--- a/krebs/5pkgs/Reaktor/scripts/shack-correct.sh
+++ /dev/null
@@ -1,6 +0,0 @@
-#! /bin/sh
-set -eu
-printf "Sie meinten wohl \""
-echo -n $@ | sed 's/Shack/shack/g'
-echo "\""
-echo "${_from}--"