aniwrapper/aniwrapper
2021-11-09 00:54:55 -08:00

125 lines
4.2 KiB
Bash
Executable File

#!/usr/bin/env bash
[ -z "$XDG_CONFIG_HOME" ] && XDG_CONFIG_HOME="$HOME/.config"
CMD=/usr/local/bin/ani-cli
DEFAULT_DOWNLOAD="$HOME/Videos/sauce"
DEFAULT_PLAYLIST="$HOME/Videos/sauce/playlists/playlist.txt"
CFG_DIR="$XDG_CONFIG_HOME/aniwrapper"
CFG_FILE="meh.rasi"
VERBOSE=0
# printf "%s\n" "CONFIG DIR: $CFG_DIR"
options="1. Stream|2. Download|3. Continue|4. Playlist|5. Quit"
choice=$(echo "${options[@]}" | rofi -dmenu -sep '|' -config "$CFG_DIR/$CFG_FILE" -l 5 -i -p "Aniwrapper")
seppuku() {
printf "%s\n" "$*"
exit 1
}
quit() {
printf "%s\n" 'Quitting...'
exit 0
}
run() {
"$CMD" "$*"
}
log() {
if [[ "$VERBOSE" -eq 1 ]]; then
printf "%s\n" "$*"
fi
}
[ "$choice" == "5. Quit" ] && quit
selection=$(printf "%s\n" "$choice" | awk '{ print $1 }')
if [[ "$selection" == "1." ]]; then
# ---------------------------------------------------------------------------
# streaming
# ---------------------------------------------------------------------------
log "Streaming mode"
run
elif [[ "$selection" == "2." ]]; then
# ---------------------------------------------------------------------------
# download
# ---------------------------------------------------------------------------
log "Download anime"
dl_dir=$(rofi -dmenu -config "$CFG_DIR/$CFG_FILE" \
-l 1 -p "Enter download dir:")
# if dl_dir is none set to current directory
[ "$dl_dir" == "" ] && dl_dir="$DEFAULT_DOWNLOAD"
run -d "$dl_dir"
elif [[ "$selection" == "3." ]]; then
# ---------------------------------------------------------------------------
# continue
# ---------------------------------------------------------------------------
log "Continue watching"
run -H
elif [[ "$selection" == "4." ]]; then
# ---------------------------------------------------------------------------
# playlist mode
# ---------------------------------------------------------------------------
log "Playlist mode"
options="1. Play playlist|2. Add to playlist|3. Delete from playlist|4. Quit"
choice=$(printf "%s\n" "${options[@]}" |
rofi -dmenu -sep '|' \
-config "$CFG_DIR/$CFG_FILE" -l 4 -i -p "Enter choice:")
[ -z "$choice" ] && seppuku "No choice selected"
[ "$choice" == "5. Quit" ] && quit
selection=$(printf "%s\n" "$choice" | awk '{ print $1 }')
if [[ "$selection" == "1." ]]; then
# -----------------------------------------------------------------------
# watch playlist
# -----------------------------------------------------------------------
log "Playlist mode"
options="1. From file|2. Streaming|3. Quit"
choice=$(printf "%s\n" "${options[@]}" |
rofi -dmenu -sep '|' \
-config "$CFG_DIR/$CFG_FILE" -l 4 -i -p "Enter choice:")
[ -z "$choice" ] && seppuku "No choice selected"
[ "$choice" == "5. Quit" ] && quit
log "Selection: $choice"
selection=$(printf "%s\n" "$choice" | awk '{ print $1 }')
if [[ "$selection" == "1." ]]; then
# -------------------------------------------------------------------
# watch playlist from file (downloaded videos)
# -------------------------------------------------------------------
# TODO: Change directory to variable set at install
log "Watching playlist from file"
PLAYLIST_DIR="$HOME/Videos/sauce"
log "Default playlist directory: $PLAYLIST_DIR"
choice=$(cd "$PLAYLIST_DIR" && find . -mindepth 1 -type d |
cut -c 3- |
rofi -dmenu \
-config "$CFG_DIR/$CFG_FILE" -l 5 -i -p "Choose playlist:")
[ -z "$choice" ] && seppuku "No choice selected"
log "Choice" "$choice"
run -P "$PLAYLIST_DIR/$choice"
elif [[ "$selection" == "2." ]]; then
# -------------------------------------------------------------------
# watch playlist of 'queued' videos to stream
# -------------------------------------------------------------------
log "Watching from 'queue'"
run -p
fi
elif [[ "$selection" == "2." ]]; then
# -----------------------------------------------------------------------
# add to playlist
# -----------------------------------------------------------------------
log "Add to playlist"
run -a
elif [[ "$selection" == "3." ]]; then
# -----------------------------------------------------------------------
# delete from playlist
# -----------------------------------------------------------------------
log "Not implemented yet"
run -r
fi
fi