From 082ddfcd94e2df2a8e1af61820664842532b3b5b Mon Sep 17 00:00:00 2001 From: Jonny007-MKD Date: Thu, 12 Mar 2015 21:20:33 +0100 Subject: [PATCH] Script to refresh the labels in our database --- .gitignore | 2 ++ refreshDb.sh | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 56 insertions(+) create mode 100644 .gitignore create mode 100755 refreshDb.sh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..3303b3c --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +labelsOfTorrents.db +.tmp diff --git a/refreshDb.sh b/refreshDb.sh new file mode 100755 index 0000000..c14c099 --- /dev/null +++ b/refreshDb.sh @@ -0,0 +1,54 @@ +#!/bin/bash + + +# This script refreshes all labels from the torrent clients + +delugeLabels="/etc/deluged/label.conf" # Path to label.conf in DelugeD conf dir +deadline="2 months" # `date -d` compatible time interval + + +PwD=$(readlink -e $0) # Get the path to this script +PwD=$(dirname "$PwD") +db="$PwD/labelsOfTorrents.db" + + +if [ ! -f "$db" ]; then # db does not exist + echo "DB does not exist!" >&2 + exit 1; +fi +if [ -n "$delugeLabels" -a ! -f "$delugeLabels" ]; then + echo "label.conf not found at $delugeLabels" >&2 + exit 1; +fi + +deadline=$(date +%s -d "-$deadline") # get timestamp of deadline +#echo $deadline + +touch $db.tmp +while IFS=' ' read -r time daemon id name label; do # read DB + + if [ $time -gt $deadline ]; then # if entry is not too old + + case $daemon in + deluge) + labelNew=$(grep -m 1 $id $delugeLabels | grep -o ': ".*"' | grep -o '[a-zA-Z0-9_-]*') # get label from Deluge + ;; + *) + echo "Unknown daemon $daemon!" >&2 + exit 2 + ;; + esac + + if [ -n "$labelNew" ]; then + label=$labelNew; # set label + fi + + #echo $time $daemon $id $name $label + echo $time $daemon $id $name $label >> $db.tmp; # keep in db + #else + #echo skipped $time $daemon $id $name $label + fi +done < $db; + +mv $db.tmp $db +chmod 666 $db