Add annna-add-hashtag script. - annna - Annna the nice friendly bot.
HTML git clone git://bitreich.org/annna/ git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/annna/
DIR Log
DIR Files
DIR Refs
DIR Tags
DIR README
---
DIR commit a6dcadfdfe85e7056b35f76ff25773a2d9fe43a6
DIR parent 4890d6ecf11ff49bbe5d64460babe7e2adf146aa
HTML Author: Annna Robert-Houdin <annna@bitreich.org>
Date: Sat, 28 Dec 2019 22:54:36 +0100
Add annna-add-hashtag script.
Diffstat:
A annna-add-hashtag | 121 +++++++++++++++++++++++++++++++
1 file changed, 121 insertions(+), 0 deletions(-)
---
DIR diff --git a/annna-add-hashtag b/annna-add-hashtag
@@ -0,0 +1,121 @@
+#!/bin/sh
+
+memecachedir="/br/gopher/memecache"
+hashtagdb="/home/annna/bin/modules/hashtags/hashtags.txt"
+unprocessed="$(pwd)/unprocessed.txt"
+
+[ ! -e "${hashtagdb}" ] && touch "${hashtagdb}"
+
+dltag() {
+ tag="$1"
+ uri="$2"
+
+ grep "${tag} " $hashtagdb >/dev/null
+ if [ $? -eq 0 ];
+ then
+ printf "tag '%s' already in db.\n" "${tag}" >&2
+ printf "%s %s\n" "${tag}" "${uri}" >> "${unprocessed}"
+ return 1
+ fi
+ stag="$(printf "${tag}\n" | cut -c 2-)"
+
+ cd "${memecachedir}"
+ error=0
+ case "$uri" in
+ *youtube.com*|*youtu.be*|*dumpert.nl*|*vimeo.com*)
+ youtube-dl -o "${stag}.%(ext)s" "${uri}"
+ if [ $? -gt 0 ];
+ then
+ error=1
+ printf "youtube-dl tag '%s' had problems.\n" "${tag}" >&2
+ printf "%s %s\n" "${tag}" "${uri}" >> "${unprocessed}"
+ fi
+ ;;
+ gopher://bitreich.org/*)
+ ;;
+ *)
+ ext="$(basename "${uri}" | sed 's/^.*\.//')"
+ curl -o "${stag}.${ext}" "${uri}"
+ if [ $? -gt 0 ];
+ then
+ error=1
+ printf "curl tag '%s' had problems.\n" "${tag}" >&2
+ printf "%s %s\n" "${tag}" "${uri}" >> "${unprocessed}"
+ fi
+ ;;
+ esac
+ if [ $error -eq 0 ];
+ then
+ printf "tag '%s' downloaded.\n" "${tag}" >&2
+ printf "%s\n" "${uri}" > "${stag}.orig"
+ fi
+
+ return $error
+}
+
+inserttag() {
+ tag="$1"
+ uri="$2"
+
+ grep "${tag} " $hashtagdb >/dev/null
+ if [ $? -eq 0 ];
+ then
+ printf "tag '%s' already in db.\n" "${tag}" >&2
+ printf "%s %s\n" "${tag}" "${uri}" >> "${unprocessed}"
+ return 1
+ fi
+
+ stag="$(printf "${tag}\n" | cut -c 2-)"
+ cd "${memecachedir}"
+ tagfile="$(basename "$(find . -name "${stag}.*" | grep -v .orig)")"
+ case "${tagfile}" in
+ *.jpg|*.JPG|*.jpeg|*.JPEG|*.png|*.PNG|*.svg|*.SVG)
+ tagtype="I"
+ ;;
+ *.gif|*.GIF)
+ tagtype="g"
+ ;;
+ *.txt|*.TXT|*.vt|*.VT)
+ tagtype="0"
+ ;;
+ *)
+ tagtype="9"
+ ;;
+ esac
+ memecacheuri="gopher://bitreich.org/${tagtype}/memecache/${tagfile}"
+
+ printf "%s %s\n" "${tag}" "${memecacheuri}" >> "${hashtagdb}"
+ printf "tag '%s' added as '%s' to hashtags db.\n" "${tag}" "${memecacheuri}" >&2
+}
+
+addtag() {
+ tag="$1"
+ uri="$2"
+
+ dltag "$1" "$2"
+ [ $? -gt 0 ] && return
+ inserttag "$1" "$2"
+}
+
+if [ $# -eq 2 ];
+then
+ tag="$1"
+ uri="$2"
+
+ addtag "${tag}" "${uri}"
+else
+ if [ $# -eq 1 ];
+ then
+ [ -e "$1" ] && cat "$1" \
+ | while read -r tag uri;
+ do
+ addtag "${tag}" "${uri}"
+ done
+ else
+ while read -r tag uri;
+ do
+ addtag "${tag}" "${uri}"
+ done
+ fi
+fi
+