diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index d812456..47dab84 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -59,6 +59,7 @@ jobs: - name: Inject version into source files run: | VERSION=${{ steps.version.outputs.VERSION }} + DATE=$(date -u +"%Y-%m-%dT%H:%M:%SZ") echo "Injecting version $VERSION from tag $GITHUB_REF_NAME..." # 1. extension/manifest.base.json @@ -73,8 +74,22 @@ jobs: jq --arg v "$VERSION" '.version = $v' package.json > tmp.json && mv tmp.json package.json echo " ✓ package.json -> $VERSION" + # 4. website/version.json + jq -n --arg v "$VERSION" --arg d "$DATE" '{version: $v, date: $d}' > website/version.json + echo " ✓ website/version.json -> version $VERSION, date $DATE" + echo "Version injection complete." + - name: Commit and push version updates back to main + run: | + git config --local user.email "action@github.com" + git config --local user.name "GitHub Action" + git add extension/manifest.base.json shared/constants.js package.json website/version.json + git commit -m "chore(release): update versions to $GITHUB_REF_NAME [skip ci]" || echo "No changes to commit" + git push origin HEAD:main + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Build Extensions run: | npm install diff --git a/website/app.js b/website/app.js index 331df51..b9d3fdf 100644 --- a/website/app.js +++ b/website/app.js @@ -209,5 +209,52 @@ document.addEventListener('DOMContentLoaded', () => { } }); + const updateDynamicVersion = async () => { + try { + const response = await fetch('version.json'); + if (!response.ok) return; + const data = await response.json(); + const { version, date } = data; + if (!version || !date) return; + + const releaseDate = new Date(date); + const now = new Date(); + const diffMs = now - releaseDate; + const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24)); + const diffHours = Math.floor(diffMs / (1000 * 60 * 60)); + const diffMins = Math.floor(diffMs / (1000 * 60)); + + let relativeTimeEn = ''; + let relativeTimeDe = ''; + + if (diffDays > 0) { + relativeTimeEn = `${diffDays} ${diffDays === 1 ? 'day' : 'days'} ago`; + relativeTimeDe = `vor ${diffDays} ${diffDays === 1 ? 'Tag' : 'Tagen'}`; + } else if (diffHours > 0) { + relativeTimeEn = `${diffHours} ${diffHours === 1 ? 'hour' : 'hours'} ago`; + relativeTimeDe = `vor ${diffHours} ${diffHours === 1 ? 'Stunde' : 'Stunden'}`; + } else if (diffMins > 0) { + relativeTimeEn = `${diffMins} ${diffMins === 1 ? 'minute' : 'minutes'} ago`; + relativeTimeDe = `vor ${diffMins} ${diffMins === 1 ? 'Minute' : 'Minuten'}`; + } else { + relativeTimeEn = 'just now'; + relativeTimeDe = 'gerade eben'; + } + + const badgeEn = document.querySelector('.version-text-en'); + const badgeDe = document.querySelector('.version-text-de'); + + if (badgeEn) { + badgeEn.textContent = `v${version} OUT NOW • ${relativeTimeEn}`; + } + if (badgeDe) { + badgeDe.textContent = `v${version} JETZT VERFÜGBAR • ${relativeTimeDe}`; + } + } catch (e) { + console.warn('Failed to fetch dynamic version info:', e); + } + }; + checkInvite(); + updateDynamicVersion(); }); diff --git a/website/index.html b/website/index.html index 8777af9..c415456 100644 --- a/website/index.html +++ b/website/index.html @@ -65,7 +65,7 @@
-
v1.3.1 OUT NOWv1.3.1 JETZT VERFÜGBAR
+
v1.3.1 OUT NOWv1.3.1 JETZT VERFÜGBAR

Watch Together.
Sync Perfectly.
Gemeinsam schauen.
Perfekt synchron.
diff --git a/website/version.json b/website/version.json new file mode 100644 index 0000000..b73b88f --- /dev/null +++ b/website/version.json @@ -0,0 +1,4 @@ +{ + "version": "1.3.1", + "date": "2026-05-18T13:02:13Z" +}