* Fixed and improved kaoget.sh: 'speaking' temp file name; abort on getter failure...
authorUrban Wallasch <urban.wallasch@freenet.de>
Sat, 24 Apr 2021 13:00:05 +0000 (15:00 +0200)
committerUrban Wallasch <urban.wallasch@freenet.de>
Sat, 24 Apr 2021 13:00:05 +0000 (15:00 +0200)
kaoget.sh

index 90d492c3b58e0f3bd2ea05b2f970dd60836d7fb2..c0f220fa0464c7e94043c358a3d84e003eeb7be1 100755 (executable)
--- a/kaoget.sh
+++ b/kaoget.sh
@@ -61,10 +61,32 @@ case $(basename $GETTER) in
 esac
 #[ -n "$USER" ] && [ -n "$PASS" ] && GET_AUTH="&auth=$USER:$PASS"
 
+
+function make_kix {
+  u="$1"
+  n=
+  case "$u" in
+   */dl.php*f=* )
+    n=${u#*f=}
+    n=${n%&*}
+    ;;
+   */leech* )
+    n=${u#*p=}
+    n=${n%%&*}
+    ;;
+   * )
+    n=$(mktemp --dry-run kaoget_XXXX)
+    ;;
+  esac
+  n="$(echo $n | sed "s@+@ @g;s@%@\\\\x@g" | xargs -0 printf "%b")"
+  n="${n##*/}.kix"
+  echo "$n"
+}
+
 case "$URL_FILE" in
   https://* )
     # Got an URL for the file parameter.
-    TMP_FILE=$(mktemp kaoget_XXXX)
+    TMP_FILE=$(make_kix "$URL_FILE")
     case "$URL_FILE" in
       *"&s=1&q="* )
         # URL appears to point to a directory, fetch the listing!
@@ -114,8 +136,10 @@ while read URL; do
   echo "| Starting Download:"
   echo "| $NAME"
   echo "+-------"
-  $GETTER $GENOPT $HTTP_AUTH $BWLIM $OUTOPT "$PNAME" "$URL$GET_AUTH" &&
-     mv "$PNAME" "$NAME"
+  $GETTER $GENOPT $HTTP_AUTH $BWLIM $OUTOPT "$PNAME" "$URL$GET_AUTH"
+  [ $? -ne 0 ] && exit 3
+  mv "$PNAME" "$NAME"
 done
 
 [ -n "$TMP_FILE" ] && rm -f $TMP_FILE
+exit 0