Point the batocera page at ttg-batocera-store

The client was split into a reusable engine and a store definition, so
the page is now about our store: new repo and wiki links, the CLI path
the installer actually writes, and a closing section pointing at
warp-engine-batocera-store for anyone who wants a store of their own.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-08-15 21:33:27 +02:00
co-authored by Claude Opus 5
parent 2d750a4ce7
commit 9cbb909f08
3 changed files with 35 additions and 9 deletions
+4 -2
View File
@@ -200,17 +200,19 @@ export default {
batocera: {
title: 'Batocera Store',
subtitle: 'Our catalog, straight on your retro box.',
lead: 'ttg-store is a small catalog client for Batocera, the plug-and-play retro gaming distribution. It pulls our games into the box\'s ROM folders together with box art and EmulationStation metadata, and can be re-run any time from the Ports menu to pick up new releases. Python 3 standard library only — nothing to install alongside it.',
lead: 'ttg-batocera-store puts our catalog on Batocera, the plug-and-play retro gaming distribution. It pulls our games into the box\'s ROM folders together with box art and EmulationStation metadata, and can be re-run any time from the Ports menu to pick up new releases. Python 3 standard library only — nothing to install alongside it.',
repo: 'Git repository',
docs: 'Documentation',
batoceraProject: 'Batocera project',
installTitle: 'Install',
installDesc: 'Run this over SSH on the Batocera box. It installs the client, writes a default config, creates the Ports entry and runs the first sync.',
installDesc: 'Run this over SSH on the Batocera box. It installs the client, writes the config, creates the Ports entry and runs the first sync.',
installNote: 'Then restart EmulationStation so the games show up:',
useTitle: 'Use it',
useDesc: 'On the device: Ports ▸ "Teletype Games Store". Over SSH the client has a small CLI:',
platformsTitle: 'What it installs',
platformsDesc: 'A catalog platform is installable when its release asset boots directly on a Batocera system. Other platforms ship web and desktop builds instead, so they are not mapped.',
engineTitle: 'Run your own store',
engineDesc: 'Nothing here is specific to us. Our store is just a config file on top of warp-engine-batocera-store, an open engine that works with any WarpEngine-based site: point it at your own catalog, give it a name and a ROM subfolder of its own, and your games land on a Batocera box the same way. Several stores can live side by side on one machine without touching each other\'s games.',
copy: 'Copy',
},
code: {
+4 -2
View File
@@ -200,17 +200,19 @@ export default {
batocera: {
title: 'Batocera Store',
subtitle: 'A katalógusunk közvetlenül a retró gépeden.',
lead: 'A ttg-store egy kicsi katalógus-kliens a Batocerához, a plug-and-play retró gamer disztribúcióhoz. A játékainkat a gép ROM mappáiba tölti le, borítóképpel és EmulationStation metaadatokkal együtt, és a Ports menüből bármikor újrafuttatható az új kiadásokért. Csak a Python 3 alapkönyvtárát használja — nem kell mellé semmit telepíteni.',
lead: 'A ttg-batocera-store a katalógusunkat teszi fel a Batocerára, a plug-and-play retró gamer disztribúcióra. A játékainkat a gép ROM mappáiba tölti le, borítóképpel és EmulationStation metaadatokkal együtt, és a Ports menüből bármikor újrafuttatható az új kiadásokért. Csak a Python 3 alapkönyvtárát használja — nem kell mellé semmit telepíteni.',
repo: 'Git tároló',
docs: 'Dokumentáció',
batoceraProject: 'Batocera projekt',
installTitle: 'Telepítés',
installDesc: 'Futtasd ezt SSH-n a Batocera gépen. Telepíti a klienst, kiírja az alapértelmezett konfigurációt, létrehozza a Ports bejegyzést és lefuttatja az első szinkront.',
installDesc: 'Futtasd ezt SSH-n a Batocera gépen. Telepíti a klienst, kiírja a konfigurációt, létrehozza a Ports bejegyzést és lefuttatja az első szinkront.',
installNote: 'Utána indítsd újra az EmulationStationt, hogy megjelenjenek a játékok:',
useTitle: 'Használat',
useDesc: 'A gépen: Ports ▸ „Teletype Games Store”. SSH-n keresztül egy egyszerű CLI áll rendelkezésre:',
platformsTitle: 'Mit telepít',
platformsDesc: 'Egy katalógus-platform akkor telepíthető, ha a kiadás fájlja közvetlenül elindul egy Batocera rendszeren. A többi platform webes és asztali buildeket ad, ezért nincsenek leképezve.',
engineTitle: 'Csinálj saját store-t',
engineDesc: 'Itt semmi sem ránk van szabva. A mi store-unk csak egy konfigurációs fájl a warp-engine-batocera-store fölött, ami bármilyen WarpEngine alapú oldallal működik: állítsd a saját katalógusodra, adj neki nevet és saját ROM almappát, és a játékaid ugyanígy kerülnek fel egy Batocera gépre. Egy gépen több store is megfér egymás mellett anélkül, hogy egymás játékaihoz nyúlnának.',
copy: 'Másolás',
},
code: {
@@ -68,6 +68,16 @@
</ul>
</section>
<section class="bat-section bat-engine">
<h2 class="bat-section-title">
<i class="fa-solid fa-cubes bat-engine-icon"></i> {{ t('batocera.engineTitle') }}
</h2>
<p class="bat-section-desc">{{ t('batocera.engineDesc') }}</p>
<a :href="ENGINE_URL" target="_blank" rel="noopener noreferrer" class="bat-link bat-link-slate">
<i class="fa-solid fa-code-branch"></i> warp-engine-batocera-store
</a>
</section>
<div class="bat-back">
<RouterLink to="/catalog" class="bat-back-link">{{ t('catalogShow.back') }}</RouterLink>
</div>
@@ -82,18 +92,23 @@ import { CONFIG } from '../../lib/config'
const { t } = useI18n()
const REPO_URL = 'https://git.teletypegames.org/tools/batocera-store'
const WIKI_URL = `${CONFIG.wikiBase}/others/batocera-store`
const FORGE = 'https://git.teletypegames.org/tools'
const REPO_URL = `${FORGE}/ttg-batocera-store`
// The store is only a config; the client itself is a reusable engine that runs
// against any WarpEngine site, so it gets its own repository and its own link.
const ENGINE_URL = `${FORGE}/warp-engine-batocera-store`
const WIKI_URL = `${CONFIG.wikiBase}/others/ttg-batocera-store`
const BATOCERA_URL = 'https://batocera.org'
// The installer is served straight from the forge, so this one line is the
// whole install on a Batocera box.
const INSTALL_CMD = `curl -fsSL ${REPO_URL}/raw/branch/master/install.sh | bash`
const RESTART_CMD = 'batocera-es-swissknife --restart'
const STORE_CLI = '/userdata/system/batocera-store/ttg-store'
const CLI_SNIPPET = [
'ttg-store list # compatible catalog entries',
'ttg-store sync # download everything new',
'ttg-store remove c64demo',
`${STORE_CLI} list # compatible catalog entries`,
`${STORE_CLI} sync # download everything new`,
`${STORE_CLI} remove c64demo`,
].join('\n')
const platforms = [
@@ -128,6 +143,7 @@ async function copy(text: string) {
@apply inline-flex items-center gap-2 font-bold py-2.5 px-5 rounded-xl text-sm text-white transition-all active:scale-95;
}
.bat-link-dark { @apply bg-slate-800 hover:bg-slate-900 shadow-lg shadow-slate-800/20; }
.bat-link-slate { @apply bg-slate-600 hover:bg-slate-700 shadow-lg shadow-slate-600/20; }
.bat-link-indigo { @apply bg-indigo-600 hover:bg-indigo-700 shadow-lg shadow-indigo-600/20; }
.bat-link-emerald { @apply bg-emerald-600 hover:bg-emerald-700 shadow-lg shadow-emerald-600/20; }
@@ -155,6 +171,12 @@ async function copy(text: string) {
.bat-copy {
@apply absolute top-2 right-2 w-9 h-9 rounded-lg bg-gray-800 text-gray-300 hover:bg-gray-700 hover:text-white transition-colors;
}
.bat-engine {
@apply bg-gray-50;
}
.bat-engine-icon {
@apply text-gray-400 text-lg;
}
.bat-platforms {
@apply grid grid-cols-1 sm:grid-cols-2 gap-3;
}