aboutsummaryrefslogtreecommitdiffstats
path: root/hm/soispha/pkgs/scripts/wrappers
diff options
context:
space:
mode:
Diffstat (limited to 'hm/soispha/pkgs/scripts/wrappers')
-rwxr-xr-xhm/soispha/pkgs/scripts/wrappers/yts61
1 files changed, 61 insertions, 0 deletions
diff --git a/hm/soispha/pkgs/scripts/wrappers/yts b/hm/soispha/pkgs/scripts/wrappers/yts
new file mode 100755
index 00000000..5abecb9b
--- /dev/null
+++ b/hm/soispha/pkgs/scripts/wrappers/yts
@@ -0,0 +1,61 @@
+#!/usr/bin/env dash
+
+# shellcheck source=/dev/null
+SHELL_LIBRARY_VERSION="1.10.0" . %SHELL_LIBRARY_PATH
+
+TASK_UUID=ce4f9e07-8324-4570-8be6-967955e9271e
+
+help_text="
+#
+# Commands:
+# w, watch <id> = watch id
+# d, drop <id> = mark id as watched
+# p, pick <id> = leave id as is; This is a noop
+#
+# These lines can be re-ordered; they are executed from top to bottom.
+# vim: ft=gitrebase"
+
+table="$(ytcc --output json list | jq --raw-output 'map("pick \(.id) \(.title) (\(.playlists | map(.name) | join(", "))) [\(.duration | gsub("^\\s+|\\s+$";""))]") | join("\n")')"
+
+selection_file="$(mktmp)";
+
+task start "$TASK_UUID"
+
+echo "$table" > "$selection_file";
+echo "$help_text" >> "$selection_file";
+
+$EDITOR "$selection_file"
+
+ids=""
+is_first=true;
+while read -r line; do
+ cmd="$(echo "$line" | awk '{print $1}')";
+ case "$cmd" in
+ "#" )
+ # This is a comment, do nothing here
+ ;;
+ "pick" | "p")
+ # noop do nothing here
+ ;;
+ "drop" | "d")
+ id="$(echo "$line" | awk '{print $2}')";
+ ytcc mark "$id";
+ dbg "Marked as watched: $id"
+ ;;
+ "watch" | "w")
+ id="$(echo "$line" | awk '{print $2}')";
+ if [ "$is_first" = "true" ]; then
+ ids="$id";
+ else
+ ids="$ids,$id";
+ fi
+ dbg "Added to be watched: $id"
+ is_first=false
+ ;;
+ esac
+done < "$selection_file"
+
+[ "$ids" != "" ] && ytc "$ids";
+
+task stop "$TASK_UUID"
+# vim: ft=sh