Now reading a config file using fallback values

This commit is contained in:
2025-01-05 02:03:18 +02:00
parent a4cd17f597
commit 68f9a4cece

View File

@@ -2,15 +2,14 @@
## Definitions ## Definitions
GRPOPPRO_DATA_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/grpoppro" GRPOPPRO_DATA_DIR="${XDG_DATA_HOME:-$HOME/.local/share}/grpoppro"
GRPOPPRO_CONFIG_DIR="${XDG_CONFIG_HOME:-$HOME/.config}/grpoppro"
GRPOPPRO_CONFIG_FILE="$GRPOPPRO_CONFIG_DIR/grpopprorc"
GRPOPPRO_DATA_FILE="$GRPOPPRO_DATA_DIR/lastPlayedSeries" GRPOPPRO_DATA_FILE="$GRPOPPRO_DATA_DIR/lastPlayedSeries"
GRPOPPRO_PLAYLIST_FILE="$GRPOPPRO_DATA_DIR/lastPlaylistPlayed" GRPOPPRO_PLAYLIST_FILE="$GRPOPPRO_DATA_DIR/lastPlaylistPlayed"
GRPOPPRO_COOKIE_FILE="$GRPOPPRO_DATA_DIR/cookies.txt" GRPOPPRO_COOKIE_FILE="$GRPOPPRO_DATA_DIR/cookies.txt"
GRPOPPRO_HISTORY_FILE="$GRPOPPRO_DATA_DIR/history" GRPOPPRO_HISTORY_FILE="$GRPOPPRO_DATA_DIR/history"
GRPOPPRO_INTERACTIVE="on" GRPOPPRO_INTERACTIVE="on"
GRPOPPRO_DEBUG="on" GRPOPPRO_DEBUG="on"
menu="fuzzel -d -p "
#menu="fzf -i --prompt="
apiurl="https://coverapi.store"
### Curl constants ### Curl constants
USER_AGENT="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/117.0" USER_AGENT="Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/117.0"
ACCEPT="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" ACCEPT="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
@@ -18,7 +17,6 @@ ACCEPT_LANGUAGE="Accept-Language: en-US,en;q=0.5"
CONNECTION="Connection: keep-alive" CONNECTION="Connection: keep-alive"
UP_IN_REQ="Upgrade-Insecure-Requests: 1" UP_IN_REQ="Upgrade-Insecure-Requests: 1"
### End of curl constants ### End of curl constants
player="mpv"
MPV_OPTS='--vo=gpu \ MPV_OPTS='--vo=gpu \
--gpu-api=opengl \ --gpu-api=opengl \
--opengl-es=yes \ --opengl-es=yes \
@@ -567,6 +565,40 @@ function getMovie {
### Program starts here ### ### Program starts here ###
if [[ -f "$GRPOPPRO_CONFIG_FILE" ]]; then
while IFS='=' read -r key value; do
# Ignore lines starting with #
if [[ "$key" =~ ^#.* ]]; then
continue
fi
# Check if value starts and ends with quotes
if [[ $value =~ ^\".*\"$ ]]; then
# Remove surrounding quotes, but preserve internal spaces
value="${value%\"}" # Remove trailing quote
value="${value#\"}" # Remove leading quote
else
# Wont appear for empty config file
# But will appear for empty lines
echo "Invalid value found"
exit 1
fi
export "$key=$value"
done < "$GRPOPPRO_CONFIG_FILE"
else
echo "Configuration file not found!"
echo "Creating one at $GRPOPPRO_CONFIG_FILE"
mkdir -p "$GRPOPPRO_CONFIG_DIR"
touch "$GRPOPPRO_CONFIG_FILE"
exit 1
fi
# Set default values if not set in config
: "${GRPOPPRO_INTERACTIVE:=on}"
: "${GRPOPPRO_DEBUG:=on}"
: "${apiurl:=https://coverapi.store}"
: "${player:=mpv}"
: "${menu:=fuzzel -d -p }"
# Ensure curl-impersonate is installed # Ensure curl-impersonate is installed
if ! command -v curl-impersonate-ff >/dev/null 2>&1; then if ! command -v curl-impersonate-ff >/dev/null 2>&1; then
message "You should get curl-impersonate to make it seem less obvious you use curl" message "You should get curl-impersonate to make it seem less obvious you use curl"