From 0352b0d7204c654fcc71acdeede3116efdee87c1 Mon Sep 17 00:00:00 2001 From: alban Date: Sun, 27 Oct 2019 01:17:04 +0200 Subject: [PATCH] [fix] mkdir error --- flickr.sh | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 flickr.sh diff --git a/flickr.sh b/flickr.sh new file mode 100644 index 0000000..5a0db80 --- /dev/null +++ b/flickr.sh @@ -0,0 +1,55 @@ +#!/bin/bash +usage(){ + cat << HEREDOC + $0 [-h] [MAXFILE] [TAG] + This script loads and merges images based on random words + -h this help + MAXFILE Limit number of images to compose + TAG Don't pick tag randomly +HEREDOC + exit 1 +} +panic(){ echo $@; exit 2; } +[[ $1 == "-h" ]] || [[ $1 == --help ]] && usage + +cd $( dirname $0 ) +MAXFILE=${1:-20} +TAG=${2} +TMPFILE=$(mktemp) + +# Search images +for i in {1..99}; do + RAND=$( echo | awk ' { srand(); print int(rand() * 234937 ) } ') + WORD=$(awk "NR==$RAND" /usr/share/dict/words); + [ -n "$TAG" ] && WORD=$TAG + URL="https://api.flickr.com/services/feeds/photos_public.gne?tags=$WORD&tagmode=any"; + IMGLIST=($(curl -s "$URL" | grep '"enclosure"'| sed -r 's_^.*href="(.*jpg)".*$_\1_' | grep "^http")) + [ $i -eq 2 ] && [ -n "$TAG" ] && panic "Failed to load tag" ] + [ 2 -gt ${#IMGLIST[@]} ] && continue + break; +done + +# Download images +mkdir -p images +for i in $( seq 0 $(( ${#IMGLIST[@]} -1 )) ); do + IMGURL="${IMGLIST[$i]}" + [[ ${IMGLIST[$i]} =~ ^http ]] || continue + wget -q "$IMGURL" -P images + [[ O -eq $? ]] && FILELIST+=(images/$(basename ${IMGLIST[$i]} ) ) + [ $i -gt $(( $MAXFILE -2 )) ] && break +done + +# Create synthetic image +mkdir -p synthesis +SYNTH_NAME="synthesis/$(date +%s)-$WORD.jpg" +SRC=${FILELIST[0]} +#copy the first image +cp $SRC $SYNTH_NAME +for i in $( seq 1 $(( ${#FILELIST[@]} -1 )) ); do + composite ${FILELIST[$i]} $SYNTH_NAME -gravity center -compose difference "$SYNTH_NAME" +done + +mkdir -p logs +echo "File generated with word $WORD and ${#FILELIST[@]} images: file://$PWD/$SYNTH_NAME" | tee "logs/$(basename $SYNTH_NAME)" +echo "${FILELIST[@]}" | tee -a "logs/$(basename $SYNTH_NAME)" +