35 lines
1.2 KiB
Bash
Executable File
35 lines
1.2 KiB
Bash
Executable File
#!/bin/bash
|
|
# Upgrade gallery-dl and its injected yt-dlp (both pipx). Instagram changes its
|
|
# endpoints often and gallery-dl follows within days -- 1.32.17 (2026-10-17)
|
|
# "update user & posts query parameters" landed while we were still on 1.32.14
|
|
# and the posts listing silently returned "No results".
|
|
#
|
|
# Called by gdl-cron.sh before every scrape and weekly by gdl-upgrade.timer.
|
|
# Never fatal: a failed upgrade (offline, PyPI down) must not stop a stories
|
|
# run, which cannot be backfilled -- it just scrapes with what is installed.
|
|
# Costs no Instagram requests (PyPI only).
|
|
set -u
|
|
|
|
PATH="$HOME/.local/bin:$PATH"; export PATH
|
|
|
|
VENV_PY="${GDL_VENV_PY:-$HOME/.local/share/pipx/venvs/gallery-dl/bin/python}"
|
|
|
|
versions() {
|
|
printf 'gallery-dl %s, yt-dlp %s' \
|
|
"$(gallery-dl --version 2>/dev/null || echo '?')" \
|
|
"$("$VENV_PY" -c 'import yt_dlp; print(yt_dlp.version.__version__)' 2>/dev/null || echo '?')"
|
|
}
|
|
|
|
before=$(versions)
|
|
if ! timeout 180 pipx upgrade --quiet --include-injected gallery-dl >/dev/null 2>&1; then
|
|
echo "upgrade: WARNING pipx upgrade failed; continuing with $before" >&2
|
|
exit 0
|
|
fi
|
|
after=$(versions)
|
|
|
|
if [ "$before" = "$after" ]; then
|
|
echo "upgrade: up to date ($after)"
|
|
else
|
|
echo "upgrade: CHANGED $before -> $after"
|
|
fi
|