Album: Blauer Ball + Mei Revier! ins de/en/neo-Album (neo = Boarisch-Variante) + Profil-ZIPs auf 9 Songs; promotion/+.claude vom Deploy-Tar ausgeschlossen (v1308)
This commit is contained in:
parent
cf88df7056
commit
786a2f442f
21 changed files with 61 additions and 37 deletions
2
Makefile
2
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 \
|
||||
|
|
|
|||
2
VERSION
2
VERSION
|
|
@ -1 +1 @@
|
|||
1307
|
||||
1308
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
|
@ -86,14 +86,14 @@
|
|||
<title>Ban Yaro</title>
|
||||
|
||||
<!-- Theme + theme-color Statusleiste vor CSS setzen -->
|
||||
<script src="/js/boot-early.js?v=1307"></script>
|
||||
<script src="/js/boot-early.js?v=1308"></script>
|
||||
|
||||
<!-- CSS: Reihenfolge ist wichtig — ?v= zwingt Browser zur Neuladung -->
|
||||
<link rel="stylesheet" href="/css/design-system.css?v=1307">
|
||||
<link rel="stylesheet" href="/css/layout.css?v=1307">
|
||||
<link rel="stylesheet" href="/css/components.css?v=1307">
|
||||
<link rel="stylesheet" href="/css/utilities.css?v=1307">
|
||||
<link rel="stylesheet" href="/css/lists.css?v=1307">
|
||||
<link rel="stylesheet" href="/css/design-system.css?v=1308">
|
||||
<link rel="stylesheet" href="/css/layout.css?v=1308">
|
||||
<link rel="stylesheet" href="/css/components.css?v=1308">
|
||||
<link rel="stylesheet" href="/css/utilities.css?v=1308">
|
||||
<link rel="stylesheet" href="/css/lists.css?v=1308">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
|
|
@ -624,12 +624,12 @@
|
|||
<div id="modal-container"></div>
|
||||
|
||||
<!-- JS: Reihenfolge ist wichtig — erst Basis, dann Features -->
|
||||
<script src="/js/api.js?v=1307"></script>
|
||||
<script src="/js/ui.js?v=1307"></script>
|
||||
<script src="/js/app.js?v=1307"></script>
|
||||
<script src="/js/worlds.js?v=1307"></script>
|
||||
<script src="/js/offline-indicator.js?v=1307"></script>
|
||||
<script src="/js/contact-form.js?v=1307"></script>
|
||||
<script src="/js/api.js?v=1308"></script>
|
||||
<script src="/js/ui.js?v=1308"></script>
|
||||
<script src="/js/app.js?v=1308"></script>
|
||||
<script src="/js/worlds.js?v=1308"></script>
|
||||
<script src="/js/offline-indicator.js?v=1308"></script>
|
||||
<script src="/js/contact-form.js?v=1308"></script>
|
||||
|
||||
<!-- Feature-Seiten werden lazy geladen -->
|
||||
|
||||
|
|
@ -639,7 +639,7 @@
|
|||
|
||||
|
||||
<!-- Boot: Offline-Banner + SW-Registration (extrahiert für CSP) -->
|
||||
<script src="/js/boot.js?v=1307"></script>
|
||||
<script src="/js/boot.js?v=1308"></script>
|
||||
|
||||
|
||||
</body>
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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">
|
||||
<div style="min-width:0">
|
||||
<div style="font-weight:600">7 Songs zum Behalten 🎸</div>
|
||||
<div style="font-weight:600">9 Songs zum Behalten 🎸</div>
|
||||
<div class="text-xs-secondary" style="margin-top:2px">
|
||||
Das ganze Album als Download — Deutsch, Englisch oder „neo"
|
||||
(Electro-Remix). Behalten & teilen ausdrücklich erwünscht.
|
||||
|
|
@ -896,17 +896,17 @@ window.Page_settings = (() => {
|
|||
<a class="btn btn-primary" href="/downloads/ban-yaro-album-de.zip"
|
||||
download="Ban Yaro - Das Album.zip"
|
||||
style="flex:1;min-width:130px;justify-content:center;text-decoration:none">
|
||||
${UI.icon('download-simple')} Deutsch · 33 MB
|
||||
${UI.icon('download-simple')} Deutsch · 45 MB
|
||||
</a>
|
||||
<a class="btn btn-secondary" href="/downloads/ban-yaro-album-en.zip"
|
||||
download="Ban Yaro - The Album.zip"
|
||||
style="flex:1;min-width:130px;justify-content:center;text-decoration:none">
|
||||
${UI.icon('download-simple')} English · 36 MB
|
||||
${UI.icon('download-simple')} English · 48 MB
|
||||
</a>
|
||||
<a class="btn btn-secondary" href="/downloads/ban-yaro-album-neo.zip"
|
||||
download="Ban Yaro - Neon Edition.zip"
|
||||
style="flex:1;min-width:130px;justify-content:center;text-decoration:none">
|
||||
${UI.icon('download-simple')} neo · 33 MB
|
||||
${UI.icon('download-simple')} neo · 46 MB
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
|
|
@ -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 = (() => {
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="color-scheme" content="light dark">
|
||||
<script src="/js/landing-init.js?v=1307"></script>
|
||||
<script src="/js/landing-init.js?v=1308"></script>
|
||||
<title>Ban Yaro — Die Hunde-App für Deutschland, Österreich & Schweiz</title>
|
||||
<meta name="description" content="Ban Yaro: Die kostenlose All-in-One Hunde-App für DACH. Tagebuch, Giftköder-Alarm, Training mit KI, Forum, Wurfbörse, Stammbaum, Inzucht-Check — DSGVO-konform, offline-fähig, direkt im Browser oder als native iPhone-App (Ban Yaro Go).">
|
||||
<meta name="keywords" content="Hunde App, Hunde Community, Wurfbörse, Züchter, Welpen kaufen, Stammbaum Hund, Inzuchtkoeffizient, Hundezucht, Impfpass Hund, Giftköder Alarm, Gassi Community, Hundetraining App, Hunde Forum, Hunde KI, Hundefilm Datenbank, Welpen Marktplatz">
|
||||
|
|
|
|||
BIN
backend/static/sounds/blauer-ball-by.mp3
Normal file
BIN
backend/static/sounds/blauer-ball-by.mp3
Normal file
Binary file not shown.
BIN
backend/static/sounds/blauer-ball-en.mp3
Normal file
BIN
backend/static/sounds/blauer-ball-en.mp3
Normal file
Binary file not shown.
BIN
backend/static/sounds/blauer-ball.mp3
Normal file
BIN
backend/static/sounds/blauer-ball.mp3
Normal file
Binary file not shown.
BIN
backend/static/sounds/mei-revier-by.mp3
Normal file
BIN
backend/static/sounds/mei-revier-by.mp3
Normal file
Binary file not shown.
BIN
backend/static/sounds/mei-revier-en.mp3
Normal file
BIN
backend/static/sounds/mei-revier-en.mp3
Normal file
Binary file not shown.
BIN
backend/static/sounds/mei-revier.mp3
Normal file
BIN
backend/static/sounds/mei-revier.mp3
Normal file
Binary file not shown.
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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"
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
|
|
@ -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.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue