tardis - bitreich-tardis - Front-end for navigating bitreich memes and TV dimensions
(HTM) git clone git://bitreich.org/bitreich-tardis git://enlrupgkhuxnvlhsf6lc3fziv5h2hhfrinws65d7roiv6bfj7d652fid.onion/bitreich-tardis
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) Tags
(DIR) README
(DIR) LICENSE
---
tardis (1771B)
---
1 #!/bin/sh
2 # select bitreich tv dimensions and memecache memes.
3 # requirements: lots.
4
5 annna="$HOME/.cache/annna"
6 hashtags="${annna}/modules/hashtags/hashtags.txt"
7 dimensions="${annna}/dimensions.txt"
8 updatestr="update local memecache"
9 interludestr="watch Bitreich TV interlude"
10
11 TARDIS_MENU=${TARDIS_MENU:-"dmenu -l 10 -p ${0##*/}:"}
12 TARDIS_PLUMB=${TARDIS_PLUMB:-xdg-open}
13 TARDIS_VIDEO=${TARDIS_VIDEO:-mpv}
14
15 usage() {
16 printf 'usage: %s [-cuU]\n' "${0##*/}" 1>&2
17 exit 1
18 }
19
20 update() {
21 cd "$annna" && git pull >/dev/null
22 getdimensions
23 cd - >/dev/null
24 }
25
26 getdimensions() {
27 printf '/tv\n' | nc bitreich.org 70 | grep -E '^9.*\.m3u' |\
28 awk -F' ' '{printf("gopher://%s:%d/%c%s\n", $3, $4, $1, $2)}' \
29 > "$dimensions"
30 }
31
32 init() {
33 if ! test -r "$hashtags"; then
34 if ! test -d "$(dirname "$annna")"; then
35 mkdir -p "$(dirname "$annna")"
36 fi
37 cd "$(dirname "$annna")"
38 git clone git://bitreich.org/annna
39 fi
40 if ! test -r "$dimensions"; then
41 getdimensions
42 fi
43 }
44
45 init
46 clip=""
47 while getopts uUc arg; do
48 case ${arg} in
49 u) update; exit 0 ;;
50 U) update ;;
51 c) clip=1 ;;
52 *) usage ;;
53 esac
54 done
55 shift $((OPTIND - 1))
56 if test $# != 0; then
57 usage
58 fi
59
60 meme="$( (printf '%s\n%s\n' "$updatestr" "$interludestr"; \
61 cat "$dimensions" "$hashtags") | ${TARDIS_MENU})"
62 if test "$meme" = "$updatestr"; then
63 update && exec "$0"
64 elif test "$meme" = "$interludestr"; then
65 ${TARDIS_PLUMB} ssh://time-machine@bitreich.org
66 elif test "$meme"; then
67 if printf '%s\n' "$meme" | grep -qE '\.m3u$'; then
68 if test "$clip"; then
69 printf '%s' "${meme}" | xclip -i
70 fi
71 ${TARDIS_VIDEO} "$meme"
72 else
73 if test "$clip"; then
74 printf '%s' "${meme% *}" | xclip -i
75 printf '%s' "${meme#* }" | xclip -i -selection clipboard
76 fi
77 ${TARDIS_PLUMB} "${meme#* }"
78 fi
79 else
80 exit 1
81 fi