2026-09-28 19:09:09 +02:00
|
|
|
namespace GhostImageManager.Data;
|
|
|
|
|
|
|
|
|
|
public class ManagedImage
|
|
|
|
|
{
|
|
|
|
|
public int Id { get; set; }
|
|
|
|
|
|
|
|
|
|
// Verknüpfung zum Ghost-Bild
|
|
|
|
|
public string GhostImageUrl { get; set; } = "";
|
|
|
|
|
public string RelativePath { get; set; } = "";
|
|
|
|
|
public string FileName { get; set; } = "";
|
|
|
|
|
|
|
|
|
|
// Instanz-Zuordnung
|
|
|
|
|
public string GhostInstanceId { get; set; } = "";
|
|
|
|
|
|
|
|
|
|
// Autor (Ghost-Benutzer)
|
|
|
|
|
public string? AuthorId { get; set; }
|
|
|
|
|
public string? AuthorName { get; set; }
|
|
|
|
|
|
|
|
|
|
// EXIF-Daten
|
|
|
|
|
public string? CameraMake { get; set; }
|
|
|
|
|
public string? CameraModel { get; set; }
|
|
|
|
|
public string? Lens { get; set; }
|
|
|
|
|
public string? Aperture { get; set; }
|
|
|
|
|
public string? ShutterSpeed { get; set; }
|
|
|
|
|
public string? Iso { get; set; }
|
|
|
|
|
public string? FocalLength { get; set; }
|
|
|
|
|
|
|
|
|
|
// Thema / Topic
|
|
|
|
|
public string? Theme { get; set; }
|
|
|
|
|
|
|
|
|
|
// Aufnahmedatum
|
|
|
|
|
public DateTime? CaptureDate { get; set; }
|
|
|
|
|
|
|
|
|
|
// Datei-Metadaten
|
|
|
|
|
public long FileSize { get; set; }
|
|
|
|
|
public int Width { get; set; }
|
|
|
|
|
public int Height { get; set; }
|
|
|
|
|
public DateTime FileModifiedDate { get; set; }
|
|
|
|
|
|
|
|
|
|
// Verwaltung
|
|
|
|
|
public DateTime FirstSeen { get; set; }
|
|
|
|
|
public DateTime LastUpdated { get; set; }
|
|
|
|
|
public bool IsOrphaned { get; set; }
|
Importer: Kategorien als Tags, Keywords als Meta, Bilder vollständig nach Ghost
Importer
- Kategorien werden als Ghost-Tags angelegt; bei mehreren wird die primäre
abgefragt, die übrigen folgen als sekundäre Tags
- Schlagwörter werden ohne Nachfrage als <meta name="keywords"> in den
Code-Injection-Header geschrieben (Ghost kennt kein meta_keywords-Feld)
- Tag-Suche lädt alle Seiten, HTML-kodierte Namen werden dekodiert
Bilder
- Varianten eines WordPress-Bildes (Original, -scaled, -WxH, ?w=) werden
zusammengefasst, einmal geladen und im HTML alle umgeschrieben
- src bei Einzelbildern setzen, srcset/sizes entfernen
- Cache-Schlüssel ist der Pfad statt nur der Dateiname; Dateinamen eindeutig
- ZIP-Export enthält Cache-Bilder und feature_image
- Warnung bei Bild-URLs, die weiter auf WordPress zeigen
- Maximale Bildgröße 2048 px
Plugin / GhostImageManager
- Plugin liefert primäre Kategorie
- Kategorie- und Keyword-Felder samt Filter im Image Manager
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-09 12:26:18 +02:00
|
|
|
|
|
|
|
|
// Kategorien / Tags
|
|
|
|
|
public string? Category { get; set; } // Primäre Kategorie
|
|
|
|
|
public string? CategorySecondary { get; set; } // Sekundäre Kategorie (falls mehrere)
|
|
|
|
|
public bool HasMultipleCategories { get; set; }
|
|
|
|
|
public string? Keywords { get; set; } // HTML Meta Keywords
|
2026-09-28 19:09:09 +02:00
|
|
|
}
|