#!/bin/bash USE_TOR=false DELAY=1 SEARCH_URL="https://danbooru.donmai.us/posts.json?tags=md5" function usage { echo "./$(basename $0) [-t] [-s]" echo "Mass tagger for Danbooru" echo "Tags existing pictures inside a folder" echo " -h shows this help message" echo " -t downloads using tor (requires torsocks)" echo " -s sets the delay after each request, defaults to 1" } # list of arguments expected in the input optstring=":hts:" while getopts ${optstring} arg; do case ${arg} in h) usage exit ;; t) USE_TOR=true echo -n "Using Tor with IP: " torsocks curl ip.me ;; s) DELAY="${OPTARG}" ;; :) echo "$0: Must supply an argument to -$OPTARG." >&2 exit 1 ;; ?) echo "Invalid option: -${OPTARG}." exit 2 ;; esac done for FILE in *; do echo "$FILE" # GET MD5 HASH FILE_MD5=`md5sum "$FILE" | awk '{print $1}'` # DOWNLOAD JSON if $USE_TOR; then JSON=`torsocks curl -s "$SEARCH_URL:$FILE_MD5"` else JSON=`curl -s "$SEARCH_URL:$FILE_MD5"` fi # STORE TAGS INTO VARIABLES FILE_TAGS=`echo $JSON | jq -r '.[] | ."tag_string"' | sed 's/\ /,/g'` # ADD TAGS TO IMAGE setfattr -n user.xdg.tags -v "$FILE_TAGS" "$FILE" # DELAY BEFORE NEXT FETCH sleep $DELAY done