summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorxengineering <me@xengineering.eu>2022-08-03 16:55:15 +0200
committerxengineering <me@xengineering.eu>2022-08-03 16:55:15 +0200
commit2f6b59970e1f772b39faccd0a8d91857cc5b1d0b (patch)
tree60137c6a36a653841426ff0f7176a6ba2819dc9f
parenta54e6a7414b61cdf136e71ad62137f34541ecc64 (diff)
downloadscripts-2f6b59970e1f772b39faccd0a8d91857cc5b1d0b.tar
scripts-2f6b59970e1f772b39faccd0a8d91857cc5b1d0b.tar.zst
scripts-2f6b59970e1f772b39faccd0a8d91857cc5b1d0b.zip
Add tv.sh
-rwxr-xr-xtv.sh39
1 files changed, 39 insertions, 0 deletions
diff --git a/tv.sh b/tv.sh
new file mode 100755
index 0000000..fdfc70e
--- /dev/null
+++ b/tv.sh
@@ -0,0 +1,39 @@
+#!/bin/sh
+# vim: shiftwidth=4 tabstop=4 noexpandtab
+
+# constants
+data_repo="${HOME}/.local/share/mydata"
+data_rel="tables/tv.tsv"
+data_abs="${data_repo}/${data_rel}"
+
+# read station from command line arguments
+station="$1"
+
+# set a handler for keyboard interrupts
+trap 'exit 0' 2 15
+
+# check dependency and warn user if necessary
+if ! which mpv > /dev/null 2>&1
+then
+ echo 'You have to install mpv (e.g. sudo pacman -S mpv mpv-mpris)'
+ exit 1
+fi
+
+# check if data file exists
+if ! [ -f "${data_abs}" ]
+then
+ echo "Data file '""${data_abs}""' not found."
+ exit 1
+fi
+
+# translate sender name to URL
+address="$(grep "${station}" "${data_abs}" | awk -F '\t' '{print $2}')"
+if [ "${address}" = "" ]
+then
+ echo "Could not translate station ${station} to URL."
+ exit 1
+fi
+
+# stream from address
+echo "Streaming ${station} from ${address}."
+mpv "${address}"