about summary refs log tree commit diff
diff options
context:
space:
mode:
authorsefidel <contact@sefidel.net>2024-02-03 04:10:59 +0900
committersefidel <contact@sefidel.net>2024-02-03 04:11:28 +0900
commit5854407ab4aba08fdae5c4e74ad12fb98090be10 (patch)
treeea573df82dc2c76817ffa0728d82ad7373b00fe0
parent671bbbfa92348a1b5c05af2d7ba25dc37e590c5f (diff)
downloadnixrc-5854407ab4aba08fdae5c4e74ad12fb98090be10.tar.gz
nixrc-5854407ab4aba08fdae5c4e74ad12fb98090be10.zip
feat(modules): add nitter
-rw-r--r--modules/services/nitter/0001-HACK-allow-non-guest-account.patch26
-rw-r--r--modules/services/nitter/default.nix39
2 files changed, 65 insertions, 0 deletions
diff --git a/modules/services/nitter/0001-HACK-allow-non-guest-account.patch b/modules/services/nitter/0001-HACK-allow-non-guest-account.patch
new file mode 100644
index 0000000..855accb
--- /dev/null
+++ b/modules/services/nitter/0001-HACK-allow-non-guest-account.patch
@@ -0,0 +1,26 @@
+From 197074221a4f6ea58362d8b2523dc4b11705c7b4 Mon Sep 17 00:00:00 2001
+From: sefidel <contact@sefidel.net>
+Date: Fri, 2 Feb 2024 23:32:13 +0900
+Subject: [PATCH] HACK: allow non-guest account
+
+Signed-off-by: sefidel <contact@sefidel.net>
+---
+ src/auth.nim | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/auth.nim b/src/auth.nim
+index b288c50..7acb7c3 100644
+--- a/src/auth.nim
++++ b/src/auth.nim
+@@ -202,7 +202,7 @@ proc initAccountPool*(cfg: Config; path: string) =
+     quit 1
+ 
+   let accountsPrePurge = accountPool.len
+-  accountPool.keepItIf(not it.hasExpired)
++  # accountPool.keepItIf(not it.hasExpired)
+ 
+   log "Successfully added ", accountPool.len, " valid accounts."
+   if accountsPrePurge > accountPool.len:
+-- 
+2.43.0
+
diff --git a/modules/services/nitter/default.nix b/modules/services/nitter/default.nix
new file mode 100644
index 0000000..40e8be8
--- /dev/null
+++ b/modules/services/nitter/default.nix
@@ -0,0 +1,39 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+let
+  cfg = config.modules.services.nitter;
+in
+{
+  options.modules.services.nitter = {
+    enable = mkEnableOption "nitter instance";
+
+    title = mkOption { type = types.str; default = "Nitter"; description = "Title of the nitter instance"; };
+
+    domain = mkOption { type = types.str; };
+    realHost = mkOption { type = types.str; default = "nitter.${cfg.domain}"; };
+    secrets = {
+      nitter-guest-accounts = mkOption { type = types.path; description = "path to the JSONL file containing guest accounts"; };
+    };
+  };
+
+  config = mkIf cfg.enable {
+    services.nitter = {
+      enable = true;
+
+      package = pkgs.nitter.overrideAttrs {
+        patches = [
+          ./0001-HACK-allow-non-guest-account.patch
+        ];
+      };
+
+      server = {
+        title = cfg.title;
+        address = "127.0.0.1";
+        port = 4002;
+        hostname = cfg.realHost;
+      };
+      guestAccounts = cfg.secrets.nitter-guest-accounts;
+    };
+  };
+}