add cross-seed to sabz
This commit is contained in:
parent
7283590a5c
commit
a56785f067
4 changed files with 161 additions and 8 deletions
|
@ -13,8 +13,15 @@ spec:
|
|||
template:
|
||||
engineVersion: v2
|
||||
data:
|
||||
CROSS_SEED_API_KEY: "{{ .CROSS_SEED_API_KEY }}"
|
||||
PUSHOVER_TOKEN: "{{ .sabz_token }}"
|
||||
PUSHOVER_USER_KEY: "{{ .userkey_jahanson }}"
|
||||
SABNZBD__API_KEY: "{{ .api_key }}"
|
||||
SABNZBD__NZB_KEY: "{{ .nzb_key }}"
|
||||
dataFrom:
|
||||
- extract:
|
||||
key: cross-seed
|
||||
- extract:
|
||||
key: pushover
|
||||
- extract:
|
||||
key: sabnzbd
|
||||
|
|
|
@ -22,6 +22,11 @@ spec:
|
|||
remediation:
|
||||
retries: 3
|
||||
strategy: rollback
|
||||
dependsOn:
|
||||
- name: rook-ceph-cluster
|
||||
namespace: rook-ceph
|
||||
- name: volsync
|
||||
namespace: volsync-system
|
||||
values:
|
||||
controllers:
|
||||
sabnzbd:
|
||||
|
@ -43,6 +48,11 @@ spec:
|
|||
sabnzbd.default.svc.cluster.local,
|
||||
sabz.jahanson.tech,
|
||||
sabnzbd.jahanson.tech
|
||||
CROSS_SEED_ENABLED: true
|
||||
CROSS_SEED_HOST: cross-seed.qbittorrent.svc.cluster.local
|
||||
CROSS_SEED_PORT: 80
|
||||
CROSS_SEED_SLEEP_INTERVAL: 30
|
||||
PUSHOVER_ENABLED: true
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: sabnzbd-secret
|
||||
|
@ -70,14 +80,15 @@ spec:
|
|||
cpu: 100m
|
||||
limits:
|
||||
memory: 16Gi
|
||||
pod:
|
||||
securityContext:
|
||||
runAsUser: 568
|
||||
runAsGroup: 568
|
||||
runAsNonRoot: true
|
||||
fsGroup: 568
|
||||
fsGroupChangePolicy: OnRootMismatch
|
||||
supplementalGroups: [10000]
|
||||
defaultPodOptions:
|
||||
securityContext:
|
||||
runAsNonRoot: true
|
||||
runAsUser: 568
|
||||
runAsGroup: 568
|
||||
fsGroup: 568
|
||||
fsGroupChangePolicy: OnRootMismatch
|
||||
supplementalGroups: [10000]
|
||||
seccompProfile: { type: RuntimeDefault }
|
||||
service:
|
||||
app:
|
||||
controller: sabnzbd
|
||||
|
@ -104,6 +115,12 @@ spec:
|
|||
existingClaim: sabnzbd
|
||||
tmp:
|
||||
type: emptyDir
|
||||
scripts:
|
||||
type: configMap
|
||||
name: sabnzbd-scripts
|
||||
defaultMode: 0775
|
||||
globalMounts:
|
||||
- readOnly: true
|
||||
media:
|
||||
type: nfs
|
||||
server: 10.1.1.13
|
||||
|
|
|
@ -6,3 +6,11 @@ resources:
|
|||
- ./externalsecret.yaml
|
||||
- ./helmrelease.yaml
|
||||
- ../../../../templates/volsync
|
||||
configMapGenerator:
|
||||
- name: sabnzbd-scripts
|
||||
files:
|
||||
- post-process.sh=./resources/post-process.sh
|
||||
generatorOptions:
|
||||
disableNameSuffixHash: true
|
||||
annotations:
|
||||
kustomize.toolkit.fluxcd.io/substitute: disabled
|
||||
|
|
121
kubernetes/apps/default/sabnzbd/app/resources/post-process.sh
Normal file
121
kubernetes/apps/default/sabnzbd/app/resources/post-process.sh
Normal file
|
@ -0,0 +1,121 @@
|
|||
#!/usr/bin/env bash
|
||||
# shellcheck disable=SC2154
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
# User-defined variables
|
||||
CROSS_SEED_ENABLED="${CROSS_SEED_ENABLED:-false}"
|
||||
CROSS_SEED_HOST="${CROSS_SEED_HOST:-required}"
|
||||
CROSS_SEED_PORT="${CROSS_SEED_PORT:-required}"
|
||||
CROSS_SEED_API_KEY="${CROSS_SEED_API_KEY:-required}"
|
||||
CROSS_SEED_SLEEP_INTERVAL="${CROSS_SEED_SLEEP_INTERVAL:-30}"
|
||||
PUSHOVER_ENABLED="${PUSHOVER_ENABLED:-false}"
|
||||
PUSHOVER_USER_KEY="${PUSHOVER_USER_KEY:-required}"
|
||||
PUSHOVER_TOKEN="${PUSHOVER_TOKEN:-required}"
|
||||
|
||||
# Function to set release variables from SABnzbd
|
||||
set_sab_vars() {
|
||||
RELEASE_NAME="${SAB_FILENAME:-}"
|
||||
RELEASE_DIR="${SAB_COMPLETE_DIR:-}"
|
||||
RELEASE_CAT="${SAB_CAT:-}"
|
||||
RELEASE_SIZE="${SAB_BYTES:-}"
|
||||
RELEASE_STATUS="${SAB_PP_STATUS:-}"
|
||||
RELEASE_INDEXER="${SAB_URL:-}"
|
||||
RELEASE_TYPE="NZB"
|
||||
}
|
||||
|
||||
# Function to set release variables from qBittorrent
|
||||
set_qb_vars() {
|
||||
RELEASE_NAME="$1" # %N
|
||||
RELEASE_DIR="$2" # %F
|
||||
RELEASE_CAT="$3" # %L
|
||||
RELEASE_SIZE="$4" # %Z
|
||||
RELEASE_INDEXER="$5" # %T
|
||||
RELEASE_STATUS=0 # Always 0 for qBittorrent
|
||||
RELEASE_TYPE="Torrent"
|
||||
}
|
||||
|
||||
# Function to send pushover notification
|
||||
send_pushover_notification() {
|
||||
local pushover_message status_code json_data
|
||||
printf -v pushover_message \
|
||||
"<b>%s</b><small>\n<b>Category:</b> %s</small><small>\n<b>Indexer:</b> %s</small><small>\n<b>Size:</b> %s</small>" \
|
||||
"${RELEASE_NAME%.*}" \
|
||||
"${RELEASE_CAT}" \
|
||||
"$(trurl --url "${RELEASE_INDEXER}" --get '{idn:host}')" \
|
||||
"$(numfmt --to iec --format "%8.2f" "${RELEASE_SIZE}")"
|
||||
|
||||
json_data=$(jo \
|
||||
token="${PUSHOVER_TOKEN}" \
|
||||
user="${PUSHOVER_USER_KEY}" \
|
||||
title="${RELEASE_TYPE} Downloaded" \
|
||||
message="${pushover_message}" \
|
||||
priority="-2" \
|
||||
html="1"
|
||||
)
|
||||
|
||||
status_code=$(curl \
|
||||
--silent \
|
||||
--write-out "%{http_code}" \
|
||||
--output /dev/null \
|
||||
--request POST \
|
||||
--header "Content-Type: application/json" \
|
||||
--data-binary "${json_data}" \
|
||||
"https://api.pushover.net/1/messages.json"
|
||||
)
|
||||
|
||||
printf "pushover notification returned with HTTP status code %s and payload: %s\n" \
|
||||
"${status_code}" \
|
||||
"$(echo "${json_data}" | jq --compact-output)" >&2
|
||||
}
|
||||
|
||||
# Function to search for cross-seed
|
||||
search_cross_seed() {
|
||||
local status_code
|
||||
status_code=$(curl \
|
||||
--silent \
|
||||
--output /dev/null \
|
||||
--write-out "%{http_code}" \
|
||||
--request POST \
|
||||
--data-urlencode "path=${RELEASE_DIR}" \
|
||||
--header "X-Api-Key: ${CROSS_SEED_API_KEY}" \
|
||||
"http://${CROSS_SEED_HOST}:${CROSS_SEED_PORT}/api/webhook"
|
||||
)
|
||||
|
||||
printf "cross-seed search returned with HTTP status code %s and path %s\n" \
|
||||
"${status_code}" \
|
||||
"${RELEASE_DIR}" >&2
|
||||
|
||||
sleep "${CROSS_SEED_SLEEP_INTERVAL}"
|
||||
}
|
||||
|
||||
main() {
|
||||
# Determine the source and set release variables accordingly
|
||||
if env | grep -q "^SAB_"; then
|
||||
set_sab_vars
|
||||
else
|
||||
set_qb_vars "$@"
|
||||
fi
|
||||
|
||||
# Check if post-processing was successful
|
||||
if [[ "${RELEASE_STATUS}" -ne 0 ]]; then
|
||||
printf "post-processing failed with sabnzbd status code %s\n" \
|
||||
"${RELEASE_STATUS}" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Update permissions on the release directory
|
||||
chmod -R 750 "${RELEASE_DIR}"
|
||||
|
||||
# Send pushover notification
|
||||
if [[ "${PUSHOVER_ENABLED}" == "true" ]]; then
|
||||
send_pushover_notification
|
||||
fi
|
||||
|
||||
# Search for cross-seed
|
||||
if [[ "${CROSS_SEED_ENABLED}" == "true" ]]; then
|
||||
search_cross_seed
|
||||
fi
|
||||
}
|
||||
|
||||
main "$@"
|
Loading…
Reference in a new issue