From a91bd7550dbd7d3462d186d18346249a685813e0 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Mon, 4 Aug 2025 00:13:19 +0200 Subject: [PATCH] Add smartrss --- charts/transmission/kustomization.yaml | 1 + charts/transmission/smartrss/deploy.yaml | 50 +++++++++++++++++++ .../transmission/smartrss/kustomization.yaml | 16 ++++++ charts/transmission/smartrss/secret.yaml | 13 +++++ charts/transmission/smartrss/smartrss.sh | 10 ++++ 5 files changed, 90 insertions(+) create mode 100644 charts/transmission/smartrss/deploy.yaml create mode 100644 charts/transmission/smartrss/kustomization.yaml create mode 100644 charts/transmission/smartrss/secret.yaml create mode 100644 charts/transmission/smartrss/smartrss.sh diff --git a/charts/transmission/kustomization.yaml b/charts/transmission/kustomization.yaml index 5addd44..d5187e9 100644 --- a/charts/transmission/kustomization.yaml +++ b/charts/transmission/kustomization.yaml @@ -14,3 +14,4 @@ resources: - ./pv-medias.yaml - ./pv-config.yaml - ./flood +- ./smartrss diff --git a/charts/transmission/smartrss/deploy.yaml b/charts/transmission/smartrss/deploy.yaml new file mode 100644 index 0000000..5ada831 --- /dev/null +++ b/charts/transmission/smartrss/deploy.yaml @@ -0,0 +1,50 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: smartrss +spec: + template: + spec: + securityContext: + fsGroup: 1001 + runAsUser: 1001 + runAsGroup: 1001 + runAsNonRoot: true + fsGroupChangePolicy: OnRootMismatch + containers: + - name: smartrss + image: nixery.dev/shell/rsstail-py + command: [/app/smartrss.sh] + env: + - name: URL + valueFrom: + secretKeyRef: + name: smartrss + key: url + - name: TRURL + value: "http://transmission:9091/transmission/rpc" + - name: TRUSER + valueFrom: + secretKeyRef: + name: transmission + key: username + - name: TRPASS + valueFrom: + secretKeyRef: + name: transmission + key: password + volumeMounts: + - name: scripts + mountPath: /app + readOnly: true + - name: medias + mountPath: /medias + readOnly: true + volumes: + - name: scripts + configMap: + name: smartrss-scripts + - name: medias + persistentVolumeClaim: + # TODO: use medias once i actually have some :c + claimName: downloads diff --git a/charts/transmission/smartrss/kustomization.yaml b/charts/transmission/smartrss/kustomization.yaml new file mode 100644 index 0000000..23e48ff --- /dev/null +++ b/charts/transmission/smartrss/kustomization.yaml @@ -0,0 +1,16 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization + +labels: +- includeSelectors: true + pairs: + app.kubernetes.io/component: smartrss + +configMapGenerator: + - name: smartrss-scripts + files: + - ./smartrss.sh + +resources: +- ./deploy.yaml +- ./secret.yaml diff --git a/charts/transmission/smartrss/secret.yaml b/charts/transmission/smartrss/secret.yaml new file mode 100644 index 0000000..8c6f573 --- /dev/null +++ b/charts/transmission/smartrss/secret.yaml @@ -0,0 +1,13 @@ +apiVersion: external-secrets.io/v1 +kind: ExternalSecret +metadata: + name: smartrss +spec: + refreshInterval: 24h + secretStoreRef: + name: bitwarden + kind: ClusterSecretStore + data: + - secretKey: url + remoteRef: + key: smartrss-url diff --git a/charts/transmission/smartrss/smartrss.sh b/charts/transmission/smartrss/smartrss.sh new file mode 100644 index 0000000..a6e532a --- /dev/null +++ b/charts/transmission/smartrss/smartrss.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env bash + +rsstail -f '{title}---{link}\n' "$URL" | while IFS="---" read -r title link; do + name=$(guessit "$title" -P title | tr -d "[:punct:]") + + # shellcheck disable=SC2012 + if ls /medias | tr -d "[:punct:]" | grep -qix "$name"; then + transmission-remote "$TRURL" --auth "$TRUSER:$TRPASS" -a "$link" + fi +done