Feature/python api image discovery (#34)
* Expose chat.analyzeMediaImage in Python API for batch image metadata generation * Fix updateMedia losing linkedPostIds by reading existing sidecar before overwriting * Also preserve author from sidecar when DB value is null (data drift) * Extend MetadataDiffEngine to cover media, scripts, and templates * Redesign MetadataDiffPanel: item-first view with field pills, filtering, and per-item multi-field diffs * Fix task:progress startsWith crash (taskId not id) and nested button violation in field pills * Populate field diffs for file-missing items and show fileMissing badge in UI * feat: extended meta diff * feat: meta diff als reconstructs orphans * chore: updated documentation --------- Co-authored-by: hugo <hugoms@me.com>
This commit is contained in:
@@ -374,7 +374,7 @@
|
||||
"tabBar.error.fetchTemplateTitle": "Failed to fetch template title:",
|
||||
"tabBar.error.fetchCommitTitle": "Failed to fetch commit titles:",
|
||||
"metadataDiff.title": "Metadata Diff Tool",
|
||||
"metadataDiff.description": "Compare post metadata between database and markdown files. Fix inconsistencies caused by bugs or manual edits.",
|
||||
"metadataDiff.description": "Compare metadata between database and files for posts, media, scripts, and templates. Fix inconsistencies caused by bugs or manual edits.",
|
||||
"metadataDiff.error.loadStats": "Failed to load database statistics",
|
||||
"metadataDiff.error.scan": "Failed to scan for differences",
|
||||
"metadataDiff.progress.starting": "Starting scan...",
|
||||
@@ -386,20 +386,48 @@
|
||||
"metadataDiff.stats.published": "Published",
|
||||
"metadataDiff.stats.drafts": "Drafts",
|
||||
"metadataDiff.stats.mediaFiles": "Media Files",
|
||||
"metadataDiff.stats.scripts": "Scripts",
|
||||
"metadataDiff.stats.templates": "Templates",
|
||||
"metadataDiff.summary.noDiffs": "✅ No differences found! All {total} published posts are in sync.",
|
||||
"metadataDiff.summary.withDiffs": "⚠️ Found {count} posts with differences out of {total} published posts.",
|
||||
"metadataDiff.summary.mediaNoDiffs": "✅ No differences found! All {total} media items are in sync.",
|
||||
"metadataDiff.summary.mediaWithDiffs": "⚠️ Found {count} media items with differences out of {total}.",
|
||||
"metadataDiff.summary.scriptNoDiffs": "✅ No differences found! All {total} scripts are in sync.",
|
||||
"metadataDiff.summary.scriptWithDiffs": "⚠️ Found {count} scripts with differences out of {total}.",
|
||||
"metadataDiff.summary.templateNoDiffs": "✅ No differences found! All {total} templates are in sync.",
|
||||
"metadataDiff.summary.templateWithDiffs": "⚠️ Found {count} templates with differences out of {total}.",
|
||||
"metadataDiff.group.differences": "{label} Differences",
|
||||
"metadataDiff.group.postsCount": "{count} posts",
|
||||
"metadataDiff.group.itemsCount": "{count} items",
|
||||
"metadataDiff.fieldFilter.toggle": "Filter by {field}",
|
||||
"metadataDiff.sync.failed": "failed",
|
||||
"metadataDiff.sync.dbToFile.title": "Update files with database values",
|
||||
"metadataDiff.sync.dbToFile.short": "DB\u2192F",
|
||||
"metadataDiff.sync.dbToFile.success": "Synced {success} posts to files{failed}",
|
||||
"metadataDiff.sync.dbToFile.error": "Failed to sync to files",
|
||||
"metadataDiff.sync.fileToDb.title": "Update database with file values",
|
||||
"metadataDiff.sync.fileToDb.short": "F\u2192DB",
|
||||
"metadataDiff.sync.fileToDb.success": "Synced {success} files to database{failed}",
|
||||
"metadataDiff.sync.fileToDb.error": "Failed to sync to database",
|
||||
"metadataDiff.value.database": "Database",
|
||||
"metadataDiff.value.file": "File",
|
||||
"metadataDiff.fileMissing": "File missing",
|
||||
"metadataDiff.value.fileMissing": "(missing)",
|
||||
"metadataDiff.empty": "Click \"Scan for Differences\" to compare database metadata with file metadata.",
|
||||
"metadataDiff.tab.posts": "Posts",
|
||||
"metadataDiff.tab.media": "Media",
|
||||
"metadataDiff.tab.scripts": "Scripts",
|
||||
"metadataDiff.tab.templates": "Templates",
|
||||
"metadataDiff.orphanFiles.title": "Orphan Files ({count})",
|
||||
"metadataDiff.orphanFiles.description": "These files exist on disk but have no matching database entry. They may be leftovers from slug changes or manual edits.",
|
||||
"metadataDiff.orphanFiles.badge": "Orphan file",
|
||||
"metadataDiff.orphanFiles.slug": "Slug",
|
||||
"metadataDiff.orphanFiles.path": "Path",
|
||||
"metadataDiff.orphanFiles.importButton": "D \u2192 DB",
|
||||
"metadataDiff.orphanFiles.importTitle": "Import all orphan files into the database",
|
||||
"metadataDiff.orphanFiles.importing": "Importing…",
|
||||
"metadataDiff.orphanFiles.importSuccess": "{success} orphan files imported{failed}",
|
||||
"metadataDiff.orphanFiles.importError": "Orphan file import failed",
|
||||
"sidebar.archive": "Archive",
|
||||
"sidebar.clearFilter": "Clear filter",
|
||||
"sidebar.tags": "Tags",
|
||||
|
||||
Reference in New Issue
Block a user