summaryrefslogtreecommitdiffstats
path: root/makefu/2configs/deployment/wiki-irc-bot/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'makefu/2configs/deployment/wiki-irc-bot/default.nix')
-rw-r--r--makefu/2configs/deployment/wiki-irc-bot/default.nix74
1 files changed, 13 insertions, 61 deletions
diff --git a/makefu/2configs/deployment/wiki-irc-bot/default.nix b/makefu/2configs/deployment/wiki-irc-bot/default.nix
index 7ab31e69..12686efb 100644
--- a/makefu/2configs/deployment/wiki-irc-bot/default.nix
+++ b/makefu/2configs/deployment/wiki-irc-bot/default.nix
@@ -1,67 +1,19 @@
-{ pkgs, lib, ... }:
+{ config, pkgs, ... }:
-with lib;
let
- port = 18872;
+ pkg = pkgs.lib.overrideDerivation pkgs.newsbot-js (original: {
+ patches = [ ./wiki-output.patch ];
+ });
+ newsfile = pkgs.writeText "feeds" ''
+ nixoswiki-bot|https://nixos.wiki/api.php?days=7&limit=50&hidecategorization=1&action=feedrecentchanges&feedformat=rss|#krebs
+ '';
in {
- nixpkgs.config.packageOverrides = pkgs: with pkgs; {
- logstash = pkgs.stdenv.lib.overrideDerivation pkgs.logstash (old: {
- patches = [ ./irc-out-notice.patch ]; });
- };
- services.logstash = {
+ krebs.newsbot-js = {
enable = true;
- inputConfig = ''
- http {
- port => ${toString port}
- host => "127.0.0.1"
- }
- '';
- filterConfig = ''
- if ([pages]) {
- ruby {
- code => '
- require "net/http"
- require "net/https"
- http = Net::HTTP.new("git.io", 443)
- http.use_ssl = true
- lines = []
- event["pages"].each {|p|
- url = "#{p["html_url"]}/_compare/#{p["sha"]}"
- short_url = begin
- request = Net::HTTP::Post.new "/"
- request.set_form_data ({"url" => url })
- response = http.request(request)
- response["location"]
- end
- lines << "\"#{p["title"]}\" #{p["action"]} by #{event["sender"]["login"]} #{short_url}"
- }
- event["output"] = lines.join("\n")
- '
- }
- }
- '';
- outputConfig = ''
- file { path => "/tmp/logs.json" codec => "json_lines" }
- if [output] {
- irc {
- channels => [ "#krebs", "#nixos" ]
- host => "irc.freenode.net"
- nick => "nixos-users-wiki"
- format => "%{output}"
- notice => true
- }
- }
- '';
- plugins = [ ];
- };
-
- services.nginx = {
- enable = lib.mkDefault true;
- virtualHosts."ghook.krebsco.de" = {
- locations."/".proxyPass = "http://localhost:${toString port}/";
- enableSSL = true;
- enableACME = true;
- forceSSL = true;
- };
+ package = pkg;
+ ircServer = "chat.freenode.net";
+ feeds = newsfile;
+ urlShortenerHost = "go";
+ urlShortenerPort = "80";
};
}