diff --git a/Makefile b/Makefile index 1906455..74fbd62 100644 --- a/Makefile +++ b/Makefile @@ -25,6 +25,8 @@ TAR_EXCLUDE := --exclude='.git' \ --exclude='./.env' \ --exclude='./*.db' \ --exclude='./tiles' \ + --exclude='./promotion' \ + --exclude='./.claude' \ --exclude='./.DS_Store' .PHONY: help deploy deploy-clean staging release sync push restart build stop status \ diff --git a/VERSION b/VERSION index 6f6edae..6b94c06 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -1307 \ No newline at end of file +1308 \ No newline at end of file diff --git a/backend/static/downloads/ban-yaro-album-de.zip b/backend/static/downloads/ban-yaro-album-de.zip index 6cc9e85..753b430 100644 Binary files a/backend/static/downloads/ban-yaro-album-de.zip and b/backend/static/downloads/ban-yaro-album-de.zip differ diff --git a/backend/static/downloads/ban-yaro-album-en.zip b/backend/static/downloads/ban-yaro-album-en.zip index d7e52e4..c855919 100644 Binary files a/backend/static/downloads/ban-yaro-album-en.zip and b/backend/static/downloads/ban-yaro-album-en.zip differ diff --git a/backend/static/downloads/ban-yaro-album-neo.zip b/backend/static/downloads/ban-yaro-album-neo.zip index ea993d8..c1017c8 100644 Binary files a/backend/static/downloads/ban-yaro-album-neo.zip and b/backend/static/downloads/ban-yaro-album-neo.zip differ diff --git a/backend/static/index.html b/backend/static/index.html index b1e0bc1..81fc371 100644 --- a/backend/static/index.html +++ b/backend/static/index.html @@ -86,14 +86,14 @@ Ban Yaro - + - - - - - + + + + + @@ -624,12 +624,12 @@ - - - - - - + + + + + + @@ -639,7 +639,7 @@ - + diff --git a/backend/static/js/app.js b/backend/static/js/app.js index 18d2dde..234b920 100644 --- a/backend/static/js/app.js +++ b/backend/static/js/app.js @@ -3,7 +3,7 @@ Router, State-Management, Navigation, Initialisierung. ============================================================ */ -const APP_VER = '1307'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen +const APP_VER = '1308'; // ← bei jedem Deploy mit Frontend-Änderungen erhöhen const APP_VERSION = '1.6.0'; // ← semantische Version, wird bei make release gesetzt window.APP_VER = APP_VER; // global verfügbar für andere Module (z.B. offline-indicator) window.APP_VERSION = APP_VERSION; diff --git a/backend/static/js/pages/settings.js b/backend/static/js/pages/settings.js index 9368c05..9eba48a 100644 --- a/backend/static/js/pages/settings.js +++ b/backend/static/js/pages/settings.js @@ -885,7 +885,7 @@ window.Page_settings = (() => { width="84" height="84" loading="lazy" style="width:84px;height:84px;border-radius:var(--radius-md);object-fit:cover;flex-shrink:0">
-
7 Songs zum Behalten 🎸
+
9 Songs zum Behalten 🎸
Das ganze Album als Download — Deutsch, Englisch oder „neo" (Electro-Remix). Behalten & teilen ausdrücklich erwünscht. @@ -896,17 +896,17 @@ window.Page_settings = (() => { - ${UI.icon('download-simple')} Deutsch · 33 MB + ${UI.icon('download-simple')} Deutsch · 45 MB - ${UI.icon('download-simple')} English · 36 MB + ${UI.icon('download-simple')} English · 48 MB - ${UI.icon('download-simple')} neo · 33 MB + ${UI.icon('download-simple')} neo · 46 MB
diff --git a/backend/static/js/worlds.js b/backend/static/js/worlds.js index a8a36bb..191d19a 100644 --- a/backend/static/js/worlds.js +++ b/backend/static/js/worlds.js @@ -1953,6 +1953,8 @@ window.Worlds = (() => { { title: 'Leckerli-Paradies', sub: 'Voller Napf, volles Glück', file: '/sounds/leckerli-paradies.mp3' }, { title: 'Platsch!', sub: 'Ab ins kühle Nass', file: '/sounds/platsch.mp3' }, { title: 'Bester Freund', sub: 'Du und ich', file: '/sounds/bester-freund.mp3' }, + { title: 'Blauer Ball', sub: 'Das Lieblingsspielzeug', file: '/sounds/blauer-ball.mp3' }, + { title: 'Mei Revier!', sub: 'Revier-Hymne, breitbeinig', file: '/sounds/mei-revier.mp3' }, ]; const SONGS_EN = [ { title: 'Ban Yaro Blues', sub: 'The anthem', file: '/sounds/ban-yaro-blues-en.mp3' }, @@ -1962,6 +1964,8 @@ window.Worlds = (() => { { title: 'Treat Paradise', sub: 'Full bowl, full heart', file: '/sounds/treat-paradise-en.mp3' }, { title: 'Splash!', sub: 'Into the cool water', file: '/sounds/splash-en.mp3' }, { title: 'Best Friend', sub: 'You and me', file: '/sounds/best-friend-en.mp3' }, + { title: 'Blauer Ball', sub: 'The favourite toy', file: '/sounds/blauer-ball-en.mp3' }, + { title: 'Mei Revier!', sub: 'Turf anthem with attitude', file: '/sounds/mei-revier-en.mp3' }, ]; // „neo" = Neon Edition: dieselben EN-Texte, anderer Musikstil (Electro + Garage-Rock). const SONGS_EN_ELECTRO = [ @@ -1972,6 +1976,8 @@ window.Worlds = (() => { { title: 'Treat Paradise', sub: 'Euphoric filter-house', file: '/sounds/treat-paradise-en-electro.mp3' }, { title: 'Splash!', sub: 'Funk-house groove', file: '/sounds/splash-en-electro.mp3' }, { title: 'Best Friend', sub: 'Acoustic-soul to synth', file: '/sounds/best-friend-en-electro.mp3' }, + { title: 'Blauer Ball', sub: 'Boarisch · da blaue Boi', file: '/sounds/blauer-ball-by.mp3' }, + { title: 'Mei Revier!', sub: 'Boarisch · Gangster-Rap', file: '/sounds/mei-revier-by.mp3' }, ]; const ALBUMS = { de: SONGS_DE, en: SONGS_EN, neo: SONGS_EN_ELECTRO }; let _lang = (() => { diff --git a/backend/static/landing.html b/backend/static/landing.html index 32a131f..051561e 100644 --- a/backend/static/landing.html +++ b/backend/static/landing.html @@ -4,7 +4,7 @@ - + Ban Yaro — Die Hunde-App für Deutschland, Österreich & Schweiz diff --git a/backend/static/sounds/blauer-ball-by.mp3 b/backend/static/sounds/blauer-ball-by.mp3 new file mode 100644 index 0000000..cc2fd9b Binary files /dev/null and b/backend/static/sounds/blauer-ball-by.mp3 differ diff --git a/backend/static/sounds/blauer-ball-en.mp3 b/backend/static/sounds/blauer-ball-en.mp3 new file mode 100644 index 0000000..a96ed1e Binary files /dev/null and b/backend/static/sounds/blauer-ball-en.mp3 differ diff --git a/backend/static/sounds/blauer-ball.mp3 b/backend/static/sounds/blauer-ball.mp3 new file mode 100644 index 0000000..013f461 Binary files /dev/null and b/backend/static/sounds/blauer-ball.mp3 differ diff --git a/backend/static/sounds/mei-revier-by.mp3 b/backend/static/sounds/mei-revier-by.mp3 new file mode 100644 index 0000000..b3b4306 Binary files /dev/null and b/backend/static/sounds/mei-revier-by.mp3 differ diff --git a/backend/static/sounds/mei-revier-en.mp3 b/backend/static/sounds/mei-revier-en.mp3 new file mode 100644 index 0000000..7bb589a Binary files /dev/null and b/backend/static/sounds/mei-revier-en.mp3 differ diff --git a/backend/static/sounds/mei-revier.mp3 b/backend/static/sounds/mei-revier.mp3 new file mode 100644 index 0000000..9a8fedf Binary files /dev/null and b/backend/static/sounds/mei-revier.mp3 differ diff --git a/backend/static/sw.js b/backend/static/sw.js index adab1c0..8fefd1e 100644 --- a/backend/static/sw.js +++ b/backend/static/sw.js @@ -4,7 +4,7 @@ ============================================================ */ // ← EINZIGE Stelle für die Version — STATIC_ASSETS und CACHE_VERSION leiten sich ab -const VER = '1307'; +const VER = '1308'; const CACHE_VERSION = `by-v${VER}`; const CACHE_STATIC = `${CACHE_VERSION}-static`; const CACHE_TILES = 'ban-yaro-tiles-v1'; // bleibt über SW-Updates erhalten diff --git a/tools/album-build/build.sh b/tools/album-build/build.sh index 346affd..e07cd91 100755 --- a/tools/album-build/build.sh +++ b/tools/album-build/build.sh @@ -27,9 +27,9 @@ make_cover() { # $1=subtitle $2=outfile -kerning 7 -fill 'rgba(255,255,255,0.92)' -pointsize 60 -annotate +0+160 "$1" \ -quality 90 "$2" } -make_cover "DAS ALBUM · 7 SONGS" "$DIST/cover-de.jpg" -make_cover "THE ALBUM · 7 SONGS" "$DIST/cover-en.jpg" -make_cover "NEON EDITION · 7 SONGS" "$DIST/cover-neo.jpg" +make_cover "DAS ALBUM · 9 SONGS" "$DIST/cover-de.jpg" +make_cover "THE ALBUM · 9 SONGS" "$DIST/cover-en.jpg" +make_cover "NEON EDITION · 9 SONGS" "$DIST/cover-neo.jpg" # Eingebettetes Albumart kleiner halten (sonst blähen sich die MP3s auf) magick "$DIST/cover-de.jpg" -resize 800x800 -quality 85 "$DIST/art-de.jpg" magick "$DIST/cover-en.jpg" -resize 800x800 -quality 85 "$DIST/art-en.jpg" @@ -47,6 +47,8 @@ DE_TRACKS=( "leckerli-paradies|Leckerli-Paradies|Voller Napf, volles Glück" "platsch|Platsch!|Ab ins kühle Nass" "bester-freund|Bester Freund|Du und ich" + "blauer-ball|Blauer Ball|Das Lieblingsspielzeug" + "mei-revier|Mei Revier!|Revier-Hymne, breitbeinig" ) EN_TRACKS=( "ban-yaro-blues-en|Ban Yaro Blues|The anthem" @@ -56,6 +58,8 @@ EN_TRACKS=( "treat-paradise-en|Treat Paradise|Full bowl, full heart" "splash-en|Splash!|Into the cool water" "best-friend-en|Best Friend|You and me" + "blauer-ball-en|Blauer Ball|The favourite toy" + "mei-revier-en|Mei Revier!|Turf anthem with attitude" ) # „neo" = Neon Edition: gleiche EN-Texte, anderer Musikstil (Electro + Garage-Rock). NEO_TRACKS=( @@ -66,10 +70,12 @@ NEO_TRACKS=( "treat-paradise-en-electro|Treat Paradise|Euphoric filter-house" "splash-en-electro|Splash!|Funk-house groove" "best-friend-en-electro|Best Friend|Acoustic-soul to synth" + "blauer-ball-by|Blauer Ball|Boarisch · da blaue Boi" + "mei-revier-by|Mei Revier!|Boarisch · Gangster-Rap" ) zip_album() { # $1=lang $2=AlbumName(ID3, Em-Dash ok) $3=Ordner(ASCII) $4=art $5=liner shift 5; rest=tracks - local lang="$1" album="$2" fname="$3" art="$4" liner="$5"; shift 5 + local lang="$1" album="$2" fname="$3" art="$4" liner="$5"; shift 5; local total=$# local folder="$DIST/$fname"; rm -rf "$folder"; mkdir -p "$folder" if [ "$lang" = "de" ]; then cp "$liner" "$folder/LIESMICH.txt"; else cp "$liner" "$folder/README.txt"; fi cp "$art" "$folder/cover.jpg" @@ -88,7 +94,7 @@ zip_album() { # $1=lang $2=AlbumName(ID3, Em-Dash ok) $3=Ordner(ASCII) $4=ar -map 0:a -map 1:v -c copy -id3v2_version 3 \ -metadata title="$title" -metadata artist="Ban Yaro" \ -metadata album="$album" -metadata album_artist="Ban Yaro" \ - -metadata track="$n/7" -metadata date="2026" -metadata genre="$genre" \ + -metadata track="$n/$total" -metadata date="2026" -metadata genre="$genre" \ -metadata copyright="$copyr" -metadata comment="$sub" \ -disposition:v:0 attached_pic \ "$folder/$nn $title.mp3" diff --git a/tools/album-build/liner-de.txt b/tools/album-build/liner-de.txt index f4bbeba..82491ba 100644 --- a/tools/album-build/liner-de.txt +++ b/tools/album-build/liner-de.txt @@ -1,13 +1,13 @@ -================================================== +================================================== BAN YARO — DAS ALBUM - 7 Songs + 9 Songs ================================================== -Sieben Lieder über einen Hund namens Ban Yaro: +Neun Lieder über einen Hund namens Ban Yaro: übers Gassigehen bei jedem Wetter, die erste Fahrt im Anhänger, die große Liebe, den Friseur, den -vollen Napf, das kühle Wasser — und den besten -Freund, den ein Mensch haben kann. +vollen Napf, das kühle Wasser, den besten Freund — +und dazu der blaue Lieblingsball und das eigene Revier. Selbst gemacht, mit viel Herz. Aus der Ban-Yaro-App. @@ -21,6 +21,8 @@ TRACKLIST 5. Leckerli-Paradies Voller Napf, volles Glück 6. Platsch! Ab ins kühle Nass 7. Bester Freund Du und ich + 8. Blauer Ball Das Lieblingsspielzeug + 9. Mei Revier! Revier-Hymne, breitbeinig -------------------------------------------------- © 2026 Ban Yaro — Musik und Texte. Alle Rechte vorbehalten. diff --git a/tools/album-build/liner-en.txt b/tools/album-build/liner-en.txt index d04e18f..d4ae22c 100644 --- a/tools/album-build/liner-en.txt +++ b/tools/album-build/liner-en.txt @@ -1,13 +1,14 @@ -================================================== +================================================== BAN YARO — THE ALBUM - 7 Songs + 9 Songs ================================================== -Seven songs about a dog named Ban Yaro: +Nine songs about a dog named Ban Yaro: about walks in every kind of weather, the first ride in the trailer, falling in love, the groomer, -a full bowl, cool water — and the best friend a -human could ever ask for. +a full bowl, cool water, the best friend a human +could ask for — plus his blue favourite ball and +his very own turf. Homemade, with all our heart. From the Ban Yaro app. @@ -21,6 +22,8 @@ TRACKLIST 5. Treat Paradise Full bowl, full heart 6. Splash! Into the cool water 7. Best Friend You and me + 8. Blauer Ball The favourite toy + 9. Mei Revier! Turf anthem with attitude -------------------------------------------------- © 2026 Ban Yaro — music and lyrics. All rights reserved. diff --git a/tools/album-build/liner-neo.txt b/tools/album-build/liner-neo.txt index 0808b03..fe1be3d 100644 --- a/tools/album-build/liner-neo.txt +++ b/tools/album-build/liner-neo.txt @@ -1,6 +1,6 @@ ================================================== BAN YARO — NEON EDITION - 7 Songs + 9 Songs ================================================== The same seven Ban Yaro songs — reimagined. @@ -8,6 +8,9 @@ French electronic house meets Swedish garage rock: vocoders and four-on-the-floor, fuzzy guitars and Hammond organ. Same dog, same heart, brand-new sound. +Plus two all-new tracks, sung in Bavarian dialect: +the blue ball and the turf anthem. + Homemade, with all our heart. From the Ban Yaro app. -------------------------------------------------- @@ -20,6 +23,8 @@ TRACKLIST 5. Treat Paradise Euphoric filter-house 6. Splash! Funk-house groove 7. Best Friend Acoustic-soul to synth + 8. Blauer Ball Boarisch · da blaue Boi + 9. Mei Revier! Boarisch · Gangster-Rap -------------------------------------------------- © 2026 Ban Yaro — music and lyrics. All rights reserved.