feat: python script sync db - files

This commit is contained in:
2026-02-23 22:52:34 +01:00
parent 838ea34ab7
commit 18835a395d
16 changed files with 766 additions and 19 deletions

View File

@@ -396,7 +396,7 @@ export const SettingsView: React.FC = () => {
const aiKeywords = ['ai', 'assistant', 'chat', 'model', 'prompt', 'system', 'api', 'key', 'claude', 'gpt', 'opencode'];
const technologyKeywords = ['technology', 'python', 'runtime', 'worker', 'webworker', 'main thread', 'execution'];
const publishingKeywords = ['publishing', 'ftp', 'ssh', 'deploy', 'server', 'host', 'upload'];
const dataKeywords = ['data', 'database', 'rebuild', 'maintenance', 'posts', 'media', 'links', 'folder', 'filesystem'];
const dataKeywords = ['data', 'database', 'rebuild', 'maintenance', 'posts', 'media', 'scripts', 'links', 'folder', 'filesystem'];
const renderProjectSettings = () => (
<SettingSection
@@ -1235,6 +1235,29 @@ export const SettingsView: React.FC = () => {
</button>
</SettingRow>
<SettingRow
id="rebuild-scripts"
label={t('settings.data.rebuildScriptsLabel')}
description={t('settings.data.rebuildScriptsDescription')}
>
<button
className="secondary"
onClick={async () => {
showToast.loading(t('settings.toast.rebuildScriptsLoading'));
try {
await window.electronAPI?.scripts.rebuildFromFiles();
showToast.dismiss();
showToast.success(t('settings.toast.rebuildScriptsSuccess'));
} catch {
showToast.dismiss();
showToast.error(t('settings.toast.rebuildScriptsFailed'));
}
}}
>
{t('settings.data.rebuildScriptsAction')}
</button>
</SettingRow>
<SettingRow
id="rebuild-links"
label={t('settings.data.rebuildLinksLabel')}

View File

@@ -173,6 +173,9 @@
"settings.toast.rebuildMediaLoading": "Mediendatenbank wird neu aufgebaut...",
"settings.toast.rebuildMediaSuccess": "Mediendatenbank neu aufgebaut",
"settings.toast.rebuildMediaFailed": "Mediendatenbank konnte nicht neu aufgebaut werden",
"settings.toast.rebuildScriptsLoading": "Skriptdatenbank wird neu aufgebaut...",
"settings.toast.rebuildScriptsSuccess": "Skriptdatenbank neu aufgebaut",
"settings.toast.rebuildScriptsFailed": "Skriptdatenbank konnte nicht neu aufgebaut werden",
"settings.toast.rebuildLinksLoading": "Beitragslinks werden neu aufgebaut...",
"settings.toast.rebuildLinksSuccess": "Beitragslinks neu aufgebaut",
"settings.toast.rebuildLinksFailed": "Beitragslinks konnten nicht neu aufgebaut werden",
@@ -709,6 +712,9 @@
"settings.data.rebuildMediaLabel": "Mediendatenbank neu aufbauen",
"settings.data.rebuildMediaDescription": "Alle Mediendateien und Sidecar-Metadaten neu scannen. Fehlende Einträge werden neu erzeugt.",
"settings.data.rebuildMediaAction": "Medien neu aufbauen",
"settings.data.rebuildScriptsLabel": "Skriptdatenbank neu aufbauen",
"settings.data.rebuildScriptsDescription": "Alle Python-Skripte neu scannen und den Skript-Metadatenindex neu aufbauen.",
"settings.data.rebuildScriptsAction": "Skripte neu aufbauen",
"settings.data.rebuildLinksLabel": "Beitragslinks neu aufbauen",
"settings.data.rebuildLinksDescription": "Alle Beiträge neu scannen und den internen Linkgraphen zwischen Beiträgen neu aufbauen.",
"settings.data.rebuildLinksAction": "Links neu aufbauen",

View File

@@ -173,6 +173,9 @@
"settings.toast.rebuildMediaLoading": "Rebuilding media database...",
"settings.toast.rebuildMediaSuccess": "Media database rebuilt",
"settings.toast.rebuildMediaFailed": "Failed to rebuild media database",
"settings.toast.rebuildScriptsLoading": "Rebuilding scripts database...",
"settings.toast.rebuildScriptsSuccess": "Scripts database rebuilt",
"settings.toast.rebuildScriptsFailed": "Failed to rebuild scripts database",
"settings.toast.rebuildLinksLoading": "Rebuilding post links...",
"settings.toast.rebuildLinksSuccess": "Post links rebuilt",
"settings.toast.rebuildLinksFailed": "Failed to rebuild post links",
@@ -709,6 +712,9 @@
"settings.data.rebuildMediaLabel": "Rebuild Media Database",
"settings.data.rebuildMediaDescription": "Re-scan all media files and sidecar metadata. Regenerates missing entries.",
"settings.data.rebuildMediaAction": "Rebuild Media",
"settings.data.rebuildScriptsLabel": "Rebuild Scripts Database",
"settings.data.rebuildScriptsDescription": "Re-scan all Python scripts and rebuild the scripts metadata index.",
"settings.data.rebuildScriptsAction": "Rebuild Scripts",
"settings.data.rebuildLinksLabel": "Rebuild Post Links",
"settings.data.rebuildLinksDescription": "Re-scan all posts and rebuild the internal link graph between posts.",
"settings.data.rebuildLinksAction": "Rebuild Links",

View File

@@ -173,6 +173,9 @@
"settings.toast.rebuildMediaLoading": "Reconstruyendo base de datos de medios...",
"settings.toast.rebuildMediaSuccess": "Base de datos de medios reconstruida",
"settings.toast.rebuildMediaFailed": "No se pudo reconstruir la base de datos de medios",
"settings.toast.rebuildScriptsLoading": "Reconstruyendo base de datos de scripts...",
"settings.toast.rebuildScriptsSuccess": "Base de datos de scripts reconstruida",
"settings.toast.rebuildScriptsFailed": "No se pudo reconstruir la base de datos de scripts",
"settings.toast.rebuildLinksLoading": "Reconstruyendo enlaces de entradas...",
"settings.toast.rebuildLinksSuccess": "Enlaces de publicaciones reconstruidos",
"settings.toast.rebuildLinksFailed": "No se pudieron reconstruir los enlaces de entradas",
@@ -709,6 +712,9 @@
"settings.data.rebuildMediaLabel": "Reconstruir base de datos de medios",
"settings.data.rebuildMediaDescription": "Reescanea todos los archivos multimedia y metadatos sidecar. Regenera las entradas faltantes.",
"settings.data.rebuildMediaAction": "Reconstruir medios",
"settings.data.rebuildScriptsLabel": "Reconstruir base de datos de scripts",
"settings.data.rebuildScriptsDescription": "Reescanea todos los scripts de Python y reconstruye el índice de metadatos de scripts.",
"settings.data.rebuildScriptsAction": "Reconstruir scripts",
"settings.data.rebuildLinksLabel": "Reconstruir enlaces de publicaciones",
"settings.data.rebuildLinksDescription": "Reescanea todas las publicaciones y reconstruye el grafo interno de enlaces entre publicaciones.",
"settings.data.rebuildLinksAction": "Reconstruir enlaces",

View File

@@ -173,6 +173,9 @@
"settings.toast.rebuildMediaLoading": "Reconstruction de la base des médias...",
"settings.toast.rebuildMediaSuccess": "Base médias reconstruite",
"settings.toast.rebuildMediaFailed": "Impossible de reconstruire la base des médias",
"settings.toast.rebuildScriptsLoading": "Reconstruction de la base des scripts...",
"settings.toast.rebuildScriptsSuccess": "Base des scripts reconstruite",
"settings.toast.rebuildScriptsFailed": "Impossible de reconstruire la base des scripts",
"settings.toast.rebuildLinksLoading": "Reconstruction des liens darticles...",
"settings.toast.rebuildLinksSuccess": "Liens darticles reconstruits",
"settings.toast.rebuildLinksFailed": "Impossible de reconstruire les liens darticles",
@@ -709,6 +712,9 @@
"settings.data.rebuildMediaLabel": "Reconstruire la base médias",
"settings.data.rebuildMediaDescription": "Réanalyse tous les fichiers médias et leurs métadonnées sidecar. Régénère les entrées manquantes.",
"settings.data.rebuildMediaAction": "Reconstruire les médias",
"settings.data.rebuildScriptsLabel": "Reconstruire la base des scripts",
"settings.data.rebuildScriptsDescription": "Réanalyse tous les scripts Python et reconstruit lindex des métadonnées de scripts.",
"settings.data.rebuildScriptsAction": "Reconstruire les scripts",
"settings.data.rebuildLinksLabel": "Reconstruire les liens darticles",
"settings.data.rebuildLinksDescription": "Réanalyse tous les articles et reconstruit le graphe interne des liens entre articles.",
"settings.data.rebuildLinksAction": "Reconstruire les liens",

View File

@@ -173,6 +173,9 @@
"settings.toast.rebuildMediaLoading": "Ricostruzione database media...",
"settings.toast.rebuildMediaSuccess": "Database media ricostruito",
"settings.toast.rebuildMediaFailed": "Impossibile ricostruire il database dei media",
"settings.toast.rebuildScriptsLoading": "Ricostruzione database script...",
"settings.toast.rebuildScriptsSuccess": "Database script ricostruito",
"settings.toast.rebuildScriptsFailed": "Impossibile ricostruire il database degli script",
"settings.toast.rebuildLinksLoading": "Ricostruzione dei link dei post...",
"settings.toast.rebuildLinksSuccess": "Link dei post ricostruiti",
"settings.toast.rebuildLinksFailed": "Impossibile ricostruire i link dei post",
@@ -709,6 +712,9 @@
"settings.data.rebuildMediaLabel": "Ricostruisci database media",
"settings.data.rebuildMediaDescription": "Rianalizza tutti i file media e i metadati sidecar. Rigenera le voci mancanti.",
"settings.data.rebuildMediaAction": "Ricostruisci media",
"settings.data.rebuildScriptsLabel": "Ricostruisci database script",
"settings.data.rebuildScriptsDescription": "Rianalizza tutti gli script Python e ricostruisce lindice dei metadati degli script.",
"settings.data.rebuildScriptsAction": "Ricostruisci script",
"settings.data.rebuildLinksLabel": "Ricostruisci collegamenti post",
"settings.data.rebuildLinksDescription": "Rianalizza tutti i post e ricostruisce il grafo interno dei collegamenti tra post.",
"settings.data.rebuildLinksAction": "Ricostruisci collegamenti",