iArt.ai
AI 모션 그래픽 소프트웨어, 누구나 사용할 수 있는 After Effects 대안, 텍스트 프롬프트로 몇 분 안에 애니메이션·설명 영상 제작
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기Desktop Comic Manager
저장소 README에서 가져옴
README 전체를 불러오는 중입니다. 아래는 저장된 발췌입니다.
Ein Dateimanager, der nur Comics kennt: browsen, lesen, taggen, umbenennen, kopieren, verschieben, löschen. Python + Qt (PySide6), läuft unter Linux, Windows und macOS. Oberfläche auf Deutsch und Englisch. Auf demselben deskkit-Fundament wie MovieDesk, BookDesk und AudioDesk. Tags werden als ComicInfo.xml ins Archiv geschrieben — dasselbe Format, das ComicTagger, Komga, Kavita und ComicRack lesen. Automatisches Taggen gegen ComicVine oder einen lokalen Dump der Grand Comics Database.README 전문 보기 ↗
Ein Dateimanager, der nur Comics kennt: browsen, lesen, taggen, umbenennen, kopieren, verschieben, löschen. Python + Qt (PySide6), läuft unter Linux, Windows und macOS. Oberfläche auf Deutsch und Englisch. Auf demselben deskkit-Fundament wie MovieDesk, BookDesk und AudioDesk.
Tags werden als ComicInfo.xml ins Archiv geschrieben — dasselbe Format, das
ComicTagger, Komga, Kavita und ComicRack lesen. Automatisches Taggen gegen
ComicVine oder einen lokalen Dump der Grand Comics Database.
Projektseite: https://aaaaaprvdgrwwelt.github.io/comicdesk/
Status: nutzbar. Entwickelt und getestet unter Linux; Windows und macOS sollten funktionieren (reines Qt/Python), sind aber nicht manuell getestet — siehe Bekannte Grenzen.
Unter Releases liegen ein Windows-Installer und je ein DMG für Apple Silicon und Intel. Python muss dafür nicht installiert sein.
Beide sind nicht signiert — ein Zertifikat kostet mehr, als ein kostenloses Projekt ausgeben mag. Deshalb einmalig:
Wie die Pakete entstehen, steht in packaging/.
Voraussetzung ist Python 3.10 oder neuer.
git clone https://github.com/aaaaaprvdgrwwelt/comicdesk.git
cd comicdesk
python3 -m venv .venv
.venv/bin/pip install -r requirements.txt
Für CBR und CB7 wird zusätzlich 7z gebraucht:
sudo apt install p7zip-full p7zip-rar # Debian/Ubuntu
./comicdesk.sh # oder: .venv/bin/python -m comicdesk
./comicdesk.sh ~/Comics # direkt in einem Ordner starten
./install-desktop.sh # Eintrag im Anwendungsmenü und Symbole anlegen
Unter Windows und macOS entsprechend .venv/bin/python -m comicdesk bzw.
.venv\Scripts\python -m comicdesk.
| Was | Wo |
|---|---|
| Einstellungen, zuletzt besuchter Ordner | ~/.config/comicdesk/comicdesk.conf |
| Favoriten | ~/.local/share/comicdesk/favorites.json |
| Suchindex | ~/.local/share/comicdesk/index.sqlite |
| Cover-Thumbnails, ComicVine-Cache | ~/.cache/comicdesk/ |
Alles davon ist entbehrlich und wird bei Bedarf neu aufgebaut. Die Wahrheit
über einen Comic steht immer im ComicInfo.xml in der Datei selbst.
Favoriten — links oben. Strg+D legt den markierten Comic ab, oder den
aktuellen Ordner wenn nichts markiert ist; derselbe Befehl entfernt ihn wieder
(der Stern in der Werkzeugleiste zeigt den Zustand). Einfacher Klick springt
hin, Doppelklick auf einen Comic öffnet ihn. Reihenfolge per Ziehen. Über das
Rechtsklickmenü lassen sich Favoriten umbenennen (ein eigener Anzeigename statt
des Dateinamens) und verschwundene aufräumen — fehlende stehen bis dahin grau
und kursiv da. Umbenannte oder verschobene Dateien zieht ComicDesk automatisch
nach. Gespeichert wird in ~/.local/share/comicdesk/favorites.json.
Sitzung — zuletzt besuchtes Verzeichnis, Fenstergröße und Teilerpositionen
werden beim Beenden gemerkt. Ein Pfad als Startargument (./comicdesk.sh ~/X)
hat Vorrang und überschreibt das gemerkte Verzeichnis für diesen Start.
Browsen — der Ordnerbaum links beginnt bei deinen Sammlungen, nicht bei
/; das ganze Dateisystem hängt als letzter Eintrag darunter. Unterordner
werden erst beim Aufklappen gelesen. Mit Maus und Tastatur bedienbar
(Pfeiltasten wechseln das Verzeichnis sofort mit). Rechtsklick im Baum bietet Öffnen, zu den
Favoriten hinzufügen, hier automatisch taggen, neuer Unterordner. Ordner zeigen
das Cover ihres ersten Comics mit kleinem Ordner-Abzeichen; abschaltbar unter
Ansicht → Ordner mit Cover anzeigen, dann wird die Ansicht kompakter.
Weiterhin: Cover-Kacheln in der Mitte. Thumbnails werden
im Hintergrund erzeugt und in ~/.cache/comicdesk/thumbs zwischengespeichert.
Filterfeld oben rechts filtert nach Dateiname.
Lesen — Doppelklick oder Enter öffnet den Reader.
| Taste | Funktion |
|---|---|
| ←/Bild↑/Rücktaste | zurück |
| →/Bild↓/Leertaste | weiter |
| Pos1 / Ende | erste / letzte Seite |
| 1 / 2 / 3 | ganze Seite / Breite / 100 % |
| F11 | Vollbild |
| Esc | schließen |
Seiten verwalten (Strg+P) — Extras → Seiten verwalten …, oder direkt aus
dem Reader. Zeigt alle Seiten als Raster: mit der Maus ziehen zum Umsortieren,
Entf zum Löschen, Strg+Z macht rückgängig. Geschrieben wird erst mit
Strg+S nach Rückfrage — bis dahin bleibt die Datei unangetastet. Die Seiten
werden dabei fortlaufend neu nummeriert; ComicInfo.xml, freie Tags und
sonstige Dateien im Archiv bleiben erhalten, PageCount wird angepasst.
Das geht bei CBZ und PDF. CBR/CB7/CBT sind schreibgeschützt — erst „Nach CBZ konvertieren".
Taggen — rechte Seitenleiste, schreibt ComicInfo.xml ins Archiv
(Standardformat, das auch Komet, Kavita, Komga, ComicRack und ComicTagger lesen).
Freie Tags landen im <Tags>-Element. Strg+S speichert.
Sammlung durchsuchen (Strg+F) — Umschalter „Sammlung" neben dem
Filterfeld, daneben die Auswahl der aktiven Sammlung. Sucht über alle
indizierten Ordner hinweg, nicht nur im aktuellen. Siehe unten. Strg+G
springt vom Suchtreffer in dessen Ordner.
Herkunft der Tags — jede Kachel trägt oben rechts einen Punkt: blau für
ComicVine, grün für GCD, dunkelgrau für in ComicDesk von Hand eingetragen,
hellgrau für getaggt ohne erkennbare Quelle, orange mit Ausrufezeichen für
ungetaggt. Im Metadaten-Panel steht die Quelle im Klartext,
bei automatisch getaggten Dateien mit der Heft-ID. Erkannt wird das am
Notes-Feld; Dateien, die ComicTagger getaggt hat, werden ebenfalls erkannt.
Für vorhandene Dateien wird nichts geschrieben, die Erkennung liest nur.
Speicherst du selbst im Tag-Editor, hinterlässt ComicDesk die Marke
[ComicDesk: von Hand] im Notes-Feld — vorhandene Notizen bleiben erhalten,
eine schon erkannte Quelle wird nicht überschrieben. Tags ohne jeden Hinweis
gelten als „Quelle unbekannt"; „von Hand" wird nur behauptet, wo es belegt
ist.
Ungetaggte finden — Ansicht → Ungetaggte anzeigen (Strg+U), oder die
Suche getaggt:nein. Die Statuszeile zeigt beim Browsen nebenbei, wie viele
Comics im aktuellen Ordner noch keine Tags haben.
Einstellungen (Strg+,) — unter Extras → Einstellungen …. Zwei Reiter:
Metadaten-Quellen (ComicVine-API-Key, GCD-Dump, Schwellwert) und
Allgemein (Sprache: Deutsch, English, Automatisch). Die Sprachumstellung
greift sofort.
Bedienung — Menüleiste mit allen Befehlen (Datei, Bearbeiten, Ansicht, Extras, Hilfe); die Werkzeugleiste zeigt nur die sechs ständig gebrauchten Aktionen. Rechtsklick auf eine Datei bietet alle Dateibefehle.
Automatisch taggen (Strg+T) — gleicht die Auswahl (oder den ganzen Ordner,
wenn nichts ausgewählt ist) gegen ComicVine und/oder die lokale GCD ab. Siehe
unten.
Umbenennen nach Tags (Strg+R) — Massen-Umbenennung nach Schema, z. B.
{series} #{issue} ({year}){title_dash}. Platzhalter: {series} {issue} {title} {title_dash} {year} {month} {volume} {publisher}. Vorschau vor
dem Ausführen, das Schema wird gemerkt.
Dateioperationen — F2 umbenennen, Strg+C/Strg+X/Strg+V,
Entf (in den Papierkorb), Strg+Umschalt+N neuer Ordner. Die Kürzel gelten
nur im Dateibereich, in den Metadatenfeldern funktionieren sie normal.
| Format | Lesen | Tags schreiben | Seiten bearbeiten |
|---|---|---|---|
| CBZ / ZIP | ja | ja (ComicInfo.xml im Archiv) | ja |
| CBR / CB7 | ja, via 7z | nein → „Nach CBZ konvertieren“ | nein |
| CBT | ja | nein → „Nach CBZ konvertieren“ | nein |
| ja, via PyMuPDF | ja (datei.pdf.ComicInfo.xml daneben) | ja |
„Nach CBZ konvertieren“ erzeugt eine CBZ-Kopie und lässt das Original liegen.
Für CBR/CB7 wird das 7z-Kommando gebraucht:
sudo apt install p7zip-full p7zip-rar.
Die Sammlung wählst du oben in der Leiste oder im Ordnerbaum — beides ist
gekoppelt: Wer in „Kinder" blättert, sucht auch in „Kinder". Außerhalb aller
Sammlungen stellt sich der Bereich auf „Alle Sammlungen" zurück, damit die
Anzeige keine Einschränkung behauptet, die zum Ort nicht passt. Der
letzte Eintrag der Liste führt zur Verwaltung, ebenso Extras → Sammlungen …
(Strg+Umschalt+M).
Dort legst du beliebig viele benannte Sammlungen an, jede mit eigenen Ordnern — etwa „US-Comics" und „Kinderkram". Die Auswahl oben bestimmt, worin gesucht wird; „Alle Sammlungen" sucht überall. Umbenennen und Löschen einer Sammlung lässt die Comic-Dateien selbst unangetastet, entfernt nur die Index-Einträge.
Ordner zwischen Sammlungen verschieben — Rechtsklick im Ordnerbaum oder Extras → In Sammlung verschieben …. Der Ordner wandert dabei auch auf der Platte in das Verzeichnis der Zielsammlung. Der Index wird direkt umgeschrieben statt neu eingelesen (bei tausenden Heften über ein Netzlaufwerk der Unterschied zwischen Millisekunden und Minuten); Favoriten ziehen mit, und die Ansicht folgt, wenn du gerade darin stehst.
Gemessen an 300 CBZ in 25 verschachtelten Ordnern: 415 Comics/s beim Erstlauf (10.000 Stück in ~25 Sekunden), ein zweiter Lauf ist 21× schneller, weil nur geänderte Dateien neu gelesen werden. Der Index braucht ~830 Byte pro Comic. CBR und CB7 sind rund 10× langsamer als CBZ, weil zum Einlesen das ganze Archiv entpackt werden muss.
Sinnvolle Reihenfolge bei einer neuen Sammlung: erst automatisch taggen
(Strg+T), dann indizieren — der Index liest nur, was schon in den Dateien
steht.
Erst unter Extras → Sammlungen die Ordner festlegen und
einlesen lassen. Der Index liegt in ~/.local/share/comicdesk/index.sqlite und
ist reiner Cache — er lässt sich jederzeit neu aufbauen, Quelle der Wahrheit
bleibt das ComicInfo.xml in der Datei. Ein zweiter Lauf liest nur geänderte
Dateien neu; verschwundene Einträge fliegen raus. Tag-Änderungen im Panel und
Auto-Tag-Läufe aktualisieren den Index sofort, ohne neuen Scan.
Suchsyntax — Feldsuchen und freier Text lassen sich mischen:
| Beispiel | Wirkung |
|---|---|
joker | Volltext über alle Felder |
serie:batman | Serienname enthält „batman" |
jahr:1975 / jahr:1990-1999 | Jahr exakt oder Zeitraum |
verlag:ehapa | Verlag |
tag:gotham | freies Tag |
autor:gottfredson | beliebige mitwirkende Person |
figur:joker team: ort: | Charaktere, Teams, Orte |
titel:"der grosse fall" | Anführungszeichen für Mehrwortsuche |
getaggt:nein | alles ohne Tags |
quelle:comicvine | woher die Tags stammen (comicvine, gcd, manual) |
serie:batman jahr:2019 joker | alles kombinierbar (UND) |
sortiert:neu | Reihenfolge festlegen (siehe unten) |
Treffer erscheinen zweistufig: erst die Reihen (Ordner mit mindestens zwei Treffern) mit Cover und Heftzahl, darunter die einzelnen Ausgaben. Ein Klick auf eine Reihe springt in den Ordner.
Weitere Präfixe: nummer: genre: sprache: imprint: arc: datei:.
Die englischen Namen (series: year: publisher: …) funktionieren ebenso.
sortiert: kennt reihe (Standard), neu, alt, jahr, name, gross
und klein. Mit einer Sortierung entfällt die Bündelung nach Reihen — sonst
stünden die Ordner nach Trefferzahl vorn und von „neu" bliebe nichts übrig.
sortiert:neu allein ist eine gültige Suche und bedeutet „alles, zuletzt
Indiziertes zuerst".
Gespeicherte Suchen, die sich selbst pflegen — dasselbe Prinzip wie die Smart Lists von ComicRack, nur ohne Regel-Editor: eine Liste ist die Abfrage, die auch in der Suchleiste steht.
Suche eintippen, dann Ansicht → Suche als Liste speichern … (Strg+Umschalt+L).
Der Name wird aus der Abfrage vorgeschlagen (serie:akim getaggt:nein →
„Akim, ohne Tags"). Die Liste erscheint links unter den Favoriten; ein Klick
öffnet sie, per Ziehen lässt sich die Reihenfolge ändern. Über das
Kontextmenü: Abfrage bearbeiten, umbenennen, entfernen.
Ist beim Speichern eine Sammlung aktiv, merkt sich die Liste sie mit und schaltet beim Öffnen dorthin — im Tooltip steht dann „nur in: …".
Mitgeliefert sind Ohne Tags (getaggt:nein) und Zuletzt indiziert
(sortiert:neu). Sinnvolle eigene Listen sind etwa:
| Liste | Abfrage |
|---|---|
| Aktuelle Baustelle | serie:akim getaggt:nein |
| Fremdsprachiges | sprache:en getaggt:ja |
| Große Dateien | sortiert:gross |
| Ein Verlag, ein Jahrzehnt | verlag:ehapa jahr:1970-1979 |
Die Listen liegen als ~/.local/share/comicdesk/smartlists.json — leicht zu
sichern und weiterzugeben.
Ansicht → Reihen … (Strg+E). Zwei Aussagen, bewusst nie vermischt:
Lücke — zwischen zwei Heften, die du hast, fehlt eine Nummer. Folgt allein aus dem eigenen Bestand, braucht keine Quelle, ist nicht bestreitbar.
Laut Quelle — dass eine Reihe über dein höchstes Heft hinaus weiterging, weiß nur eine externe Quelle. Wird mit Quellenangabe geführt und als Angabe gekennzeichnet, nicht als Gewissheit.
Die Zuordnung zur Quell-Reihe läuft über die in den Tags gespeicherte Heft-ID, nicht über den Serientitel. Das ist der entscheidende Punkt: Eine Namenssuche nach „Die Rächer" greift bei GCD die Condor-Auflage von 1979 mit 47 Heften, obwohl die eigene Reihe eine andere ist. Über die Heft-ID gibt es keine Fehlzuordnung. Voraussetzung ist ein Indexlauf, der die IDs eingelesen hat; ohne ID sagt der Dialog das offen.
Weil eine lokale Reihe oft mehrere Reihen der Quelle abdeckt (andere Auflage, anderer Verlag), werden Hefte vom Anfang und vom Ende der Spanne abgefragt und die Ergebnisse zusammengeführt.
Nicht jede Reihe ist fortlaufend nummeriert: Magazine wie Zack oder Zorro
nummerieren nach Datum (198303 = März 1983). Wo die Nummerierung uneinheitlich
ist, wird keine Lücke behauptet.
Von Hand festlegen — wenn du es besser weißt als jede Quelle. Etwa weil
eine Reihe nur die Nummern 1–3 und 12–20 hat: Bereichsschreibweise
1-3, 12-20 eintragen, fertig. Diese Angabe schlägt jede Quelle, Nummern die
nicht darin stehen gelten nicht mehr als Lücke. Jederzeit änder- und aufhebbar.
Umgekehrt meldet ComicDesk auch, wenn du ein Heft besitzt, das laut Festlegung oder Quelle gar nicht existiert — dann stimmt entweder die Festlegung nicht oder das Heft ist falsch getaggt.
ComicVine erlaubt 200 Anfragen pro Stunde; „Alle ungeprüften prüfen" läuft deshalb lange, ist abbrechbar, wiederaufnehmbar und dauerhaft gecacht.
Konfiguration unter „Metadaten-Quellen …“. Beide Quellen können gleichzeitig aktiv sein; bewertet wird quellenübergreifend, der beste Treffer gewinnt.
API-Key kostenlos nach Registrierung auf comicvine.gamespot.com/api. Limit sind
200 Anfragen pro Stunde, deshalb wird auf ~1 Anfrage/Sekunde gedrosselt und
jede Antwort dauerhaft in ~/.cache/comicdesk/comicvine.sqlite gecacht (30 Tage).
Liefert Cover-URLs — nur damit ist die Bild-Verifikation möglich.
Die Grand Comics Database hat keine öffentliche API, stellt aber alle zwei Wochen SQLite3-Dumps bereit: https://www.comics.org/download/ (Account nötig, Daten unter CC-BY). Datei herunterladen, im Dialog auswählen, einmal „Suche vorbereiten" drücken.
Das ist nicht optional. Der Dump bringt zwar Indizes mit, aber LIKE '%…%'
kann keinen davon nutzen — SQLite scannt alle ~231.000 Serien. Gemessen an
einem echten Dump (6,2 GB, Stand Juli 2026):
| Serie suchen | Dauer |
|---|---|
| ohne Vorbereitung | 15.900 ms |
| mit Volltextindex | 0,2 ms |
Der Aufbau dauert ~10 Sekunden und legt eine eigene 7-MB-Datei unter
~/.local/share/comicdesk/ an; der Dump selbst wird nicht verändert. Wird
ein neuer Dump eingelegt, merkt ComicDesk das an Größe und Datum und der alte
Index verfällt.
Den Dump auf eine lokale Platte legen. Auf einer SMB-Freigabe war
dieselbe Abfrage 15× langsamer, das Nachladen der Details sogar 5× — SQLite
macht viele kleine wahlfreie Zugriffe, und genau das ist über Netz teuer.
ComicDesk warnt im Einstellungsdialog, wenn der Pfad auf einem Netzlaufwerk
liegt. Auf Netzlaufwerken wird die Datenbank mit immutable=1 geöffnet, weil
SQLite-Sperren über CIFS und NFS nicht zuverlässig funktionieren.
Offline, kein Limit, und deutlich besser bei europäischen Verlagen (Ehapa, Carlsen, Splitter, Bastei), die ComicVine kaum erfasst. Über „Nur Sprache“ lassen sich z. B. ausschließlich deutsche Ausgaben berücksichtigen. Der Dump enthält keine Cover-URLs, hier gibt es also keinen Bildabgleich.
Kein Schlüssel nötig, Limit 90 Anfragen/Minute, gedrosselt und gecacht.
AniList kennt Manga-Serien, aber keine einzelnen Bände einer deutschen Ausgabe — Verlag, Jahr und Bandtitel stehen in der GCD. Deshalb läuft AniList als Ergänzungsquelle: sie bestimmt nie, welches Heft eine Datei ist, und gewinnt nie eine Bewertung. Sie füllt nur Felder, die sonst leer blieben — Zeichner, Autor, Genre, Beschreibung, Leserichtung, Bandzahl. Vorhandene Angaben werden nie überschrieben, und eine Rolle, die schon besetzt ist, bleibt unangetastet.
Der Serienname muss zu mindestens 75 % passen, sonst wird nichts ergänzt. Bei einer Ergänzung ist eine Fehlzuordnung teuer und schwer zu bemerken, daher lieber nichts als das Falsche. Praktische Folge: deutsche Titel, die nichts mit dem Originaltitel zu tun haben („Pokémon Schwert und Schild" vs. „Pocket Monsters: Sword & Shield"), werden nicht erkannt.
Extras → Tags löschen entfernt die ComicInfo.xml aus den gewählten Dateien
(bei PDF die Sidecar-Datei) — für den Fall, dass die vorhandenen Tags aus einer
falschen Zuordnung stammen. Die Seiten bleiben unberührt.
Beide Schalter stehen im Tagging-Fenster selbst, direkt über dem Protokoll — und zusätzlich in den Einstellungen; beide Orte bleiben synchron.
„Auch Dateien anfassen, die schon Tags haben" erzwingt die Abfrage auch für bereits getaggte Dateien, die sonst übersprungen werden. Dazu „Vorhandene Tags dabei ersetzen statt ergänzen". Ohne Haken bleiben Felder stehen, welche die Quelle nicht füllt, und deine eigenen freien Tags; mit Haken wird alles verworfen und neu geschrieben. Die Option greift nur zusammen mit „Auch Dateien anfassen, die schon Tags haben" und ist sonst ausgegraut.
Was unterhalb des Schwellwerts landet, bleibt liegen — mit Strg+Umschalt+T
oder per Doppelklick auf eine Zeile im Auto-Tag-Protokoll siehst du alle
Vorschläge samt Bewertung, Quelle und Cover neben dem Cover deines Hefts und
wählst selbst.
Zu jedem Treffer gibt es einen Link auf die Seite der Quelle — anklickbar in den Details oder über „Im Browser ansehen". Damit lässt sich vor dem Übernehmen nachsehen, ob es wirklich dasselbe Heft ist; bei mehreren Ausgaben derselben Nummer ist das oft der einzige Weg.
Serie, Nummer und Jahr sind dort änderbar. Das ist meist der eigentliche Hebel: Ein niedriger Score kommt fast immer daher, dass der Dateiname falsch gelesen wurde — Begriff korrigieren, erneut suchen, fertig.
Aus Dateiname und vorhandenen Tags wird eine Anfrage gebaut (Tags schlagen Dateinamen). Jeder Kandidat bekommt einen Score aus gewichteten Signalen:
| Signal | Gewicht | Anmerkung |
|---|---|---|
| Serienname | 45 | Ähnlichkeit, nicht Gleichheit |
| Heftnummer | 20 | Abweichung disqualifiziert sofort |
| Jahr | 25 | ±1 Jahr zählt teilweise |
| Verlag | 10 | |
| Cover-Bildvergleich | 40 | nur ComicVine |
Signale, für die Daten fehlen, fallen samt Gewicht heraus — ein Treffer ohne Cover steht dadurch nicht automatisch schlechter da. Geschrieben wird nur ab dem eingestellten Schwellwert (Standard 80), alles darunter erscheint als „unsicher“ im Protokoll, ohne die Datei anzufassen. Dateien, die schon Tags haben, werden standardmäßig übersprungen.
Neue Werte werden über die vorhandenen gelegt, nicht ersetzt: Felder, die die Quelle nicht füllt, und deine eigenen freien Tags bleiben erhalten.
comicdesk/archive.py – Archiv- und Metadaten-Ebene (bewusst ohne comicapi's
RAR-Backend, das unrar bräuchte; ComicInfo-Mapping kommt von comicapi)comicdesk/thumbs.py – Cover-Thumbnails im Threadpool, Platten-Cachecomicdesk/mainwindow.py – Browser, Kachel-Delegate, Dateioperationencomicdesk/dirtree.py – Ordnerbaum mit den Sammlungen als Wurzelncomicdesk/reader.py – Lesefenstercomicdesk/metapanel.py – Tag-Editorcomicdesk/pageeditor.py – Seiten löschen und umsortierencomicdesk/favorites.py – Favoritenliste (JSON)comicdesk/provenance.py – erkennt, woher die Tags einer Datei stammencomicdesk/providers/ – Metadaten-Quellen hinter einer gemeinsamen
Schnittstelle (base.py), aktuell comicvine.py, gcd.py und
anilist.py; cache.py hält Netzantworten vorcomicdesk/autotag.py – Bewertung und Batch-Lauf im Hintergrund-Threadcomicdesk/autotagdialog.py – Quellen-Einstellungen und Lauf-Protokollcomicdesk/index.py – Sammlungs-Index (SQLite + FTS5) und Suchsyntaxcomicdesk/series.py – Reihen bündeln, Nummerierung erkennen, Lücken findencomicdesk/seriescheck.py – Vollständigkeit über die Quell-Heft-IDcomicdesk/seriesdialog.py – Reihen-Ansichtcomicdesk/indexdialog.py – Sammlungsverwaltung und Scan-Fortschrittcomicdesk/i18n.py – Übersetzungstabellencomicdesk/theme.py – Stylesheet, aus der Systempalette abgeleitetcomicdesk/icons.py – selbst gezeichnete SVG-Icons (Theme-unabhängig)comicdesk/appicon.py, comicdesk/assets/ – Programmsymbol; unter 32 px
wird eine vereinfachte Zeichnung benutzt, weil die ausführliche dort
zerfällt. install-desktop.sh legt die PNGs samt index.theme im
hicolor-Thema ab — unter Wayland kann eine Anwendung ihr Fenstersymbol nicht
selbst setzen, der Compositor sucht es über die app_id in der
.desktop-DateiNeue Sprache: in i18n.py ein Dict nach dem Muster von EN anlegen und in
LANGUAGES und TABLE eintragen. Schlüssel sind die deutschen Quelltext-
Strings; fehlt ein Eintrag, erscheint der Schlüssel — die App bleibt nutzbar.
Eine weitere Quelle anzubinden heißt: MetadataProvider ableiten, available,
search und enrich implementieren, in config.py eintragen.
.venv/bin/pip install -r requirements-dev.txt
QT_QPA_PLATFORM=offscreen .venv/bin/pytest
Windows-Installer und macOS-Pakete (Apple Silicon + Intel) entstehen per
PyInstaller + Inno Setup in CI, ausgelöst von einem Tag wie v0.2.0 —
siehe packaging/README.md.
LIKE '%…%' und dürfte bei ~150.000 Serien zu langsam sein; nötig wäre eine
FTS5-Volltexttabelle.MIT.
Verwendet PySide6 (LGPL), comicapi/ComicTagger (Apache-2.0), PyMuPDF (AGPL/kommerziell) und Send2Trash (BSD). Metadaten stammen von ComicVine und der Grand Comics Database (Daten CC-BY).