view bin/xkcdmania @ 609:7f5234a312f7

Cleanup style
author nanaya <me@nanaya.pro>
date Fri, 07 Jul 2017 19:35:52 +0900
parents 5bafb912837e
children
line wrap: on
line source

#!/bin/sh

dir="/anime/misc/webcomics/xkcd"
[ -d "${dir}" ] || exit 1

fetchlink() {
  if [ "$1" -a "$2" ]; then
    wget --quiet -O "$2" "$1"
  else
    return 1
  fi
}
latest=$(fetchlink http://xkcd.com/ - | grep 'Permanent link' | sed -e 's/.*\/\([0-9]*\)\/.*/\1/')
[ -n "${latest}" ] || exit 1
next=1
while [ "${next}" -le "${latest}" ]; do
  to_dl="${to_dl} ${next}"
  next=$((next + 1))
done

for i in $to_dl
do
  if [ ! -n "$(find "$dir/$(printf '%04d' $i)"* -type f 2>/dev/null)" ] && [ "${i}" -ne 404 ]; then
    page=$(fetchlink "http://xkcd.com/$i/" -)
    img=$(echo "$page" | grep 'Image URL' | sed -e 's/.*\(http[^<]*\).*/\1/' | head -n 1)
    echo "$(echo "$page" | grep "src" | grep "$img" | sed -e 's/.*title="\([^\"]*\)".*/\1/')" > "$dir/$(printf '%04d' $i) $(basename $img | sed -e 's/\(.*\)\..*/\1/').txt"
    fetchlink "${img}" "$dir/$(printf '%04d' $i) $(basename "$img")"
  fi
done