4 [ "${*}" ] && printf "%s\n\n" "${*}"
6 Usage: $(basename "${0}") <id>
8 Given an ID number from the Gelbooru site, downloads and stashes the full-size
9 image in the md5 directory and adds whatever tags are found into the tag area.
17 [ -z "$(echo "${id}" | tr -d '[0-9]')" ] || pebkac "ID should be an integer"
19 taggery_name="$(basename "${0}")"
20 case "${taggery_name}" in
22 e621_image_url_filter() {
23 sed -e '/Size: /!d; s/^.*<a //; s/>.*$//; s/^.*href="\([^"]*\)".*$/\1/; /:\/\//!s/^/http:\/\/e621.net/'
25 e621_image_tags_filter() {
26 sed -e '/id="tag-sidebar"/,/<\/ul>/!d; /class="tag-type-/!d; s/\([^?]\)<\/a>.*$/\1/; s/^.*>//; s/ /_/g'
28 taggery_fmturl="http://e621.net/post/show/%s"
29 taggery_image_url_filter=e621_image_url_filter
30 taggery_image_tags_filter=e621_image_tags_filter
33 gelbooru_image_url_filter() {
34 sed -e '/>Original image</!d; s/>Original image.*//i; s/^.*<a //i; s/^.*href="\([^"]*\)".*$/\1/i'
36 gelbooru_image_tags_filter() {
37 sed -e '/id="tag-sidebar"/!d; s/<\/li>/&\n/g' | sed -e '/class="tag-type-/!d; s/\([^?]\)<\/a>.*$/\1/; s/^.*>//; s/ /_/g'
39 taggery_fmturl="http://gelbooru.com/index.php?page=post&s=view&id=%s"
40 taggery_image_url_filter=gelbooru_image_url_filter
41 taggery_image_tags_filter=gelbooru_image_tags_filter
43 *) pebkac "Unsupported" ;;
47 kvs=".${taggery_name}.kvdb"
48 . "$(dirname "${0}")/lib/kvs.sh"
51 . "$(dirname "${0}")/lib/taggery.sh"
52 image_url() { taggery_image_url "${@}"; }
53 image_tags() { taggery_image_tags "${@}"; }
55 cd "$(dirname "${0}")"
57 file="$(image_url "${id}")"
58 tags="$(image_tags "${id}")"
60 [ "${file}" -a "${tags}" ] || { echo "Nothing found!"; kill $$; exit 1; }
62 name="$(basename "${file}")"
63 wget -O "md5/${name}" "${file}"
68 ln -sf "../../md5/${name}" "tag/${tag}/"