mirror of
https://github.com/zoriya/snow.git
synced 2026-06-01 19:25:48 +00:00
feat: transmission on add script to guess path
This commit is contained in:
@@ -7,11 +7,8 @@ labels:
|
||||
app.kubernetes.io/name: transmission
|
||||
|
||||
resources:
|
||||
- ./deployment.yaml
|
||||
- ./service.yaml
|
||||
- ./secrets.yaml
|
||||
- ./pv-downloads.yaml
|
||||
- ./pv-medias.yaml
|
||||
- ./pv-config.yaml
|
||||
- ./transmission
|
||||
- ./flood
|
||||
- ./smartrss
|
||||
- ./pv-downloads.yaml
|
||||
- ./pv-medias.yaml
|
||||
|
||||
@@ -13,7 +13,7 @@ spec:
|
||||
fsGroupChangePolicy: OnRootMismatch
|
||||
containers:
|
||||
- name: smartrss
|
||||
image: nixery.dev/shell/rsstail-py/transmission_4/guessit
|
||||
image: nixery.dev/shell/rsstail-py/transmission_4/python313packages.guessit
|
||||
command: [/app/smartrss.sh]
|
||||
env:
|
||||
- name: URL
|
||||
@@ -44,6 +44,7 @@ spec:
|
||||
- name: scripts
|
||||
configMap:
|
||||
name: smartrss-scripts
|
||||
defaultMode: 0555
|
||||
- name: medias
|
||||
persistentVolumeClaim:
|
||||
# TODO: use medias once i actually have some :c
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
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"
|
||||
transmission-remote "$TRURL" --auth "$TRUSER:$TRPASS" -a "$link" -w "$name"
|
||||
fi
|
||||
done
|
||||
|
||||
+17
-3
@@ -18,9 +18,14 @@ spec:
|
||||
- name: TRANSMISSION__UMASK
|
||||
value: "002"
|
||||
- name: TRANSMISSION__INCOMPLETE_DIR_ENABLED
|
||||
value: "false"
|
||||
value: "true"
|
||||
- name: TRANSMISSION__DOWNLOAD_DIR
|
||||
value: "/downloads"
|
||||
- name: TRANSMISSION__INCOMPLETE_DIR
|
||||
value: "/downloads"
|
||||
# this one is applied by the guesspath.sh script
|
||||
- name: TRANSMISSION__MEDIAS_DIR
|
||||
value: "/medias"
|
||||
- name: TRANSMISSION__DOWNLOAD_QUEUE_ENABLED
|
||||
value: "false"
|
||||
- name: TRANSMISSION__RENAME_PARTIAL_FILES
|
||||
@@ -29,8 +34,8 @@ spec:
|
||||
value: "false"
|
||||
- name: TRANSMISSION__SCRIPT_TORRENT_ADDED_ENABLED
|
||||
value: "true"
|
||||
# - name: TRANSMISSION__SCRIPT_TORRENT_ADDED_FILENAME
|
||||
# value: "scripts/guesspath"
|
||||
- name: TRANSMISSION__SCRIPT_TORRENT_ADDED_FILENAME
|
||||
value: "/scripts/guesspath.sh"
|
||||
- name: TRANSMISSION__RPC_PORT
|
||||
value: "9091"
|
||||
- name: TRANSMISSION__PEER_PORT
|
||||
@@ -50,14 +55,23 @@ spec:
|
||||
volumeMounts:
|
||||
- name: config
|
||||
mountPath: /config
|
||||
- name: scripts
|
||||
mountPath: /scripts
|
||||
- name: downloads
|
||||
mountPath: /downloads
|
||||
- name: medias
|
||||
mountPath: /medias
|
||||
- name: guessit
|
||||
image: nixery.dev/shell/shell2http/python313packages.guessit
|
||||
command: ["shell2http", "-form", "/", 'guessit -P title "$v_title"']
|
||||
volumes:
|
||||
- name: config
|
||||
persistentVolumeClaim:
|
||||
claimName: config
|
||||
- name: scripts
|
||||
configMap:
|
||||
name: scripts
|
||||
defaultMode: 0555
|
||||
- name: medias
|
||||
persistentVolumeClaim:
|
||||
claimName: medias
|
||||
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
if [[ "$TR_TORRENT_DIR" != "/downloads" ]]; then
|
||||
echo "Ignoring $TR_TORRENT_NAME since it already has a dir set: $TR_TORRENT_DIR"
|
||||
exit
|
||||
fi
|
||||
echo "Running with $TR_TORRENT_NAME $TR_TORRENT_ID"
|
||||
|
||||
name=$TR_TORRENT_NAME
|
||||
# guessit is not available in the container so we use shell2http to expose it in localhost:8080
|
||||
# dir=$(guessit "$name" -P "title")
|
||||
dir=$(curl "localhost:8080" -G --data-urlencode "title=$name")
|
||||
echo "Guessed '$dir' for torrent '$name'"
|
||||
|
||||
export AUTH="$TRANSMISSION__RPC_USERNAME:$TRANSMISSION__RPC_PASSWORD"
|
||||
transmission-remote --auth "$AUTH" -t "$TR_TORRENT_ID" --move "$TRANSMISSION__MEDIAS_DIR/$dir"
|
||||
@@ -0,0 +1,18 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
labels:
|
||||
- includeSelectors: true
|
||||
pairs:
|
||||
app.kubernetes.io/component: transmission
|
||||
|
||||
configMapGenerator:
|
||||
- name: scripts
|
||||
files:
|
||||
- ./guesspath.sh
|
||||
|
||||
resources:
|
||||
- ./deployment.yaml
|
||||
- ./service.yaml
|
||||
- ./secrets.yaml
|
||||
- ./pv-config.yaml
|
||||
Reference in New Issue
Block a user