From bd949bb7c7c526afe3f909520a525a89b43680ed Mon Sep 17 00:00:00 2001 From: Kyle Yasuda <33813108+ksyasuda@users.noreply.github.com> Date: Sun, 26 Jun 2022 21:38:28 -0700 Subject: [PATCH] update to v3 functions (#8) * update to v3 functions * fix progress prompt appearing in rofi menus * modularize UI in ani-cli for rofi vs cli --- ani-cli | 1384 +++++++++++++++++++------------------------ aniwrapper | 16 +- lib/ani-cli/UI | 157 +++++ lib/ani-cli/UI-ROFI | 211 +++++++ setup.sh | 41 +- 5 files changed, 1011 insertions(+), 798 deletions(-) create mode 100644 lib/ani-cli/UI create mode 100644 lib/ani-cli/UI-ROFI diff --git a/ani-cli b/ani-cli index ccc7750..50e9eed 100755 --- a/ani-cli +++ b/ani-cli @@ -1,9 +1,10 @@ #!/usr/bin/env bash AGENT="Mozilla/5.0 (X11; Linux x86_64; rv:99.0) Gecko/20100101 Firefox/99.0" -BASE_URL="https://goload.pro" +BASE_URL="https://animixplay.to" CFG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/aniwrapper" -URLFILE="${XDG_CONFIG_HOME:-$HOME/.config}/aniwrapper/ani-url" +JOBFILE="${XDG_CACHE_HOME:-$HOME/.cache}/aniwrapper-jobs" +TMPDIR="${XDG_CACHE_HOME:-$HOME/.cache}/aniwrapper-temp" HISTORY_DB="$CFG_DIR/history.sqlite3" ROFI_CFG="$CFG_DIR/themes/aniwrapper.rasi" ROFI_THEME="aniwrapper.rasi" @@ -16,58 +17,44 @@ VERBOSE=0 SILENT=0 FIRST_EP_NUMBER=1 PLAYER_FN="mpv" +PID=0 # display error message and exit die() { - ((SILENT != 1)) && printf "\033[1;31m%s\033[0m\n" "$*" >&2 + ((!SILENT)) && printf "\033[1;31m%s\033[0m\n" "$*" >&2 exit 1 } -# display an error message to stderr (in red) -err() { - ((SILENT != 1)) && printf "\033[1;31m%s\033[0m\n" "$*" >&2 -} - # display a log message if verbose mode is enabled lg() { - ((VERBOSE == 1)) && printf "\033[1;35m%s\033[0m\n" "$*" >&2 + ((VERBOSE)) && printf "\033[1;35m%s\033[0m\n" "$*" >&2 } # display an informational message (first argument in green, second in magenta) inf() { - printf "\033[1;35m%s \033[1;35m%s\033[0m\n" "$1" "$2" + printf "\33[2K\r\033[1;35m%s \033[1;35m%s\033[0m\n" "$1" "$2" } -# prompts the user with message in $1-2 ($1 in blue, $2 in magenta) and saves the input to the variables in $REPLY and $REPLY2 -prompt() { - printf "\033[1;35m%s\033[1;35m%s\033[1;34m\033[0m: " "$1" "$2" +progress() { + ((!SILENT)) && printf "\33[2K\r\033[1;34m%s\033[0m\n" "$1" >&2 } -# displays an even (cyan) line of a menu line with $2 as an indicator in [] and $1 as the option -menu_line_even() { - printf "\033[1;36m(\033[1;36m%s\033[1;36m) \033[1;36m%s\033[0m\n" "$2" "$1" -} - -# displays an odd (yellow) line of a menu line with $2 as an indicator in [] and $1 as the option -menu_line_odd() { - printf "\033[1;33m(\033[1;33m%s\033[1;33m) \033[1;33m%s\033[0m\n" "$2" "$1" -} - -# display alternating menu lines (even and odd) -menu_line_alternate() { - menu_line_parity=${menu_line_parity:-0} - if [ "$menu_line_parity" -eq 0 ]; then - menu_line_odd "$1" "$2" - menu_line_parity=1 +# sends a notification to notify-send if available, else prints to stdout +notification() { + ((SILENT)) && return 0 + msg="$*" + if command -v "notify-send" > /dev/null; then + notify-send -i "$ANIWRAPPER_ICON_PATH" "$msg" else - menu_line_even "$1" "$2" - menu_line_parity=0 + inf "$msg" fi } -# displays a warning (red) line of a menu line with $2 as an indicator in [] and $1 as the option -menu_line_strong() { - printf "\033[1;34m[\033[1;33m%s\033[1;34m] \033[1;33m%s\033[0m\n" "$2" "$1" +# generates a pre-styled span tag with the given msg +generate_span() { + msg="$*" + span="$msg" + printf "%s\n" "$span" } # check if input is valid and assings value/range to episodes variable @@ -83,189 +70,206 @@ check_input() { fi } -# get the download page url -get_dpage_link() { - anime_id=$1 - ep_no=$2 - curl -A "$AGENT" -s "$BASE_URL/videos/${anime_id}${ep_no}" | sed -nE 's_^[[:space:]]*