diff --git a/flask_session/2029240f6d1128be89ddc32729463129 b/flask_session/2029240f6d1128be89ddc32729463129 new file mode 100644 index 0000000..60b84f8 Binary files /dev/null and b/flask_session/2029240f6d1128be89ddc32729463129 differ diff --git a/public/src/js/songselect.js b/public/src/js/songselect.js index 8562634..ce17460 100644 --- a/public/src/js/songselect.js +++ b/public/src/js/songselect.js @@ -2965,7 +2965,6 @@ class SongSelect{ var categoryName = song.category var originalCategory = song.category } - // Fallback: if category is missing, use song_type to enable category jump if(!categoryName){ if(song.song_type){ categoryName = song.song_type diff --git a/update.sh b/update.sh new file mode 100644 index 0000000..c4ed01f --- /dev/null +++ b/update.sh @@ -0,0 +1,40 @@ +#!/usr/bin/env bash +set -Eeuo pipefail + +if [ "${EUID}" -ne 0 ]; then echo "需要 root 权限"; exit 1; fi + +SRC_DIR=$(cd "$(dirname "$0")" && pwd) +DEST_DIR=/srv/taiko-web +SONGS_DIR="$DEST_DIR/public/songs" +BACKUP_DIR="$DEST_DIR/.backup_songs_$(date +%Y%m%d_%H%M%S)" + +systemctl stop taiko-web || true + +if [ -d "$SONGS_DIR" ]; then + mkdir -p "$BACKUP_DIR" + rsync -a "$SONGS_DIR/" "$BACKUP_DIR/" || cp -a "$SONGS_DIR/." "$BACKUP_DIR/" +fi + +mkdir -p "$DEST_DIR" +rsync -a --delete \ + --exclude '.git' \ + --exclude '.venv' \ + --exclude 'public/songs' \ + "$SRC_DIR/" "$DEST_DIR/" + +if [ -x "$DEST_DIR/.venv/bin/pip" ]; then + "$DEST_DIR/.venv/bin/pip" install -U pip + "$DEST_DIR/.venv/bin/pip" install -r "$DEST_DIR/requirements.txt" +fi + +chown -R www-data:www-data "$DEST_DIR" + +if [ -d "$BACKUP_DIR" ]; then + mkdir -p "$SONGS_DIR" + rsync -a "$BACKUP_DIR/" "$SONGS_DIR/" || cp -a "$BACKUP_DIR/." "$SONGS_DIR/" +fi + +systemctl daemon-reload || true +systemctl restart taiko-web || systemctl start taiko-web || true + +systemctl is-active --quiet taiko-web \ No newline at end of file