Anki-Karteikarten in MySQL bearbeiten

1702
Léo Léopold Hertz 준영

Ich muss eine kleine Änderung in 77777 Anki- Karteikarten vornehmen, vorzugsweise programmgesteuert, nicht mit ihrem Ersetzungswerkzeug, das nicht ausreicht. Ich habe dort Daten ursprünglich als CSV-Dateien importiert, deren Daten leicht zu ändern sind. Ich erhielt eine Antwort von ihrem Support : Sie verwenden MySQL als Datenbank:

Nun, für Anfänger gehe ich davon aus, dass man ein Verständnis für das Lesen und Schreiben in eine MySQL-Datenbank haben muss. Wenn das nicht etwas ist, was Sie wissen, würde ich einfach dort aufhören.

Ich möchte zum Beispiel ihr Datenbankschema kennen. Beispiel Pseudobefehl, den ich auf einem Deck ausführen möchte

sed s/;/1)/ [anki-deck's-cards] 

wo nur die ersten Einträge der Zeilenumbrüche übereinstimmen. Tatsächlich besteht die Anforderung darin, einige einfache Arithmetik auszuführen. Ich kenne die Connector-Details von MySQL nicht. Ich möchte einen Überblick über ihre MySQL-Details erhalten.

Wie kann man Karten in Deck mit Anki Flashcards bearbeiten?

3
Wenn die Änderung so ist, dass sich nur eine Seite der Karte ändert, können Sie die aktualisierte CSV-Datei erneut importieren, wobei Sie sicherstellen müssen, dass Karten mit demselben Inhalt auf der Vorderseite (oder der Rückseite) überschrieben / aktualisiert werden, anstatt erneut hinzugefügt zu werden. Dann können Sie bei Bedarf Änderungen auf der anderen Seite vornehmen und wiederholen. Wird das dein Problem lösen? musically_ut vor 8 Jahren 0

2 Antworten auf die Frage

2
hlovdal

Die apkg-Dateien enthalten eine eingebettete sqlite-Datenbankdatei. Zum Beispiel wird das Deck " Capital Cities of South America" als "Capital_Cities_of_South_America.apkg" heruntergeladen. Dabei handelt es sich tatsächlich um eine ZIP-Datei. Beim Entpacken werden mehrere Dateien extrahiert

$ unzip ../Capital_Cities_of_South_America.apkg Archive: ../Capital_Cities_of_South_America.apkg inflating: collection.anki2  extracting: 0  extracting: 1  extracting: 2  extracting: 3  extracting: 4  extracting: 5  extracting: 6  extracting: 7  extracting: 8  extracting: 9  extracting: 10  extracting: 11  inflating: media  $ 

aber das Interessante ist collection.anki2, eine sqlite-Datei.

$ sqlite3 collection.anki2  SQLite version 3.13.0 2016-05-18 10:57:30 Enter ".help" for usage hints. sqlite> .tables cards col graves notes revlog sqlite> .dump notes PRAGMA foreign_keys=OFF; BEGIN TRANSACTION; CREATE TABLE notes ( id integer primary key, /* 0 */ guid text not null, /* 1 */ mid integer not null, /* 2 */ mod integer not null, /* 3 */ usn integer not null, /* 4 */ tags text not null, /* 5 */ flds text not null, /* 6 */ sfld integer not null, /* 7 */ csum integer not null, /* 8 */ flags integer not null, /* 9 */ data text not null /* 10 */ ); INSERT INTO "notes" VALUES(1475868715241,'P1Dh$4r;;P',1475850444584,1476205558,13,' South_America capitals ','Capital of French Guiana?Cayenne<div><br /></div><div><img src="053_Hood_135.jpg" /></div>','Capital of French Guiana?',511387741,0,''); INSERT INTO "notes" VALUES(1476020723949,'D3h>i:~1(}',1475850444584,1476205484,13,' South_America capitals ','Capital of Brazil?Brasilia<div><br /></div><div><img src="brasilia-006.jpg" /></div>','Capital of Brazil?',139249191,0,''); INSERT INTO "notes" VALUES(1476020740304,'I=w5}vz;',1475850444584,1476205460,13,' South_America capitals ','Capital of Guyana?Georgetown<div><br /></div><div><img src="georgetown-guyana.jpg" /></div>','Capital of Guyana?',1383243232,0,''); INSERT INTO "notes" VALUES(1476021159549,'d_}(&UOcN0',1475850444584,1476205474,13,' South_America capitals ','Capital of Venezuela?Caracas<div><br /></div><div><img src="CaracasAvila.jpg" /></div>','Capital of Venezuela?',3460219780,0,''); INSERT INTO "notes" VALUES(1476021305082,'hF6^dUFOU_',1475850444584,1476205202,13,' South_America capitals ','Capital of Colombia?Bagota<div><br /></div><div><!--anki--><img src="asuncion-paraguay.jpg" /></div>','Capital of Colombia?',3745298320,0,''); INSERT INTO "notes" VALUES(1476021329578,'BF<CKCw&@X',1475850444584,1476021353,4,' South_America capitals ','Capital of Ecuador?Quito','Capital of Ecuador?',93805795,0,''); INSERT INTO "notes" VALUES(1476021353212,'s-x)P3;UJ+',1475850444584,1476205337,13,' South_America capitals ','Capital of Peru?Lima<div><br /></div><div><img src="lima-miraflores-rw.jpg" /></div>','Capital of Peru?',1899195448,0,''); INSERT INTO "notes" VALUES(1476021369814,'p~,SBD&um#',1475850444584,1476205352,13,' South_America capitals ','Capital of Bolivia?La Paz<div><br /></div><div><img src="La_Paz_Skyline.jpg" /></div>','Capital of Bolivia?',2475357406,0,''); INSERT INTO "notes" VALUES(1476021495601,'h(+l3fJs48',1475850444584,1476205311,13,' South_America capitals ','Capital of Uruguay?Montevideo<div><br /></div><div><img src="montevideo-uruguay.jpg" /></div><div><br /></div><div>[sound:rec1476205311.mp3]</div>','Capital of Uruguay?',3423412928,0,''); INSERT INTO "notes" VALUES(1476021520017,'g[QWvAO[:]',1475850444584,1476205181,13,' South_America capitals ','Capital of Paraguay?Asuncion<div><br /></div><div><img src="asuncion-paraguay.jpg" /></div><div><br /></div><div>[sound:rec1476205181.mp3]</div>','Capital of Paraguay?',3088135100,0,''); CREATE INDEX ix_notes_usn on notes (usn); CREATE INDEX ix_notes_csum on notes (csum); COMMIT; sqlite>  

An dieser Stelle können Sie die Einträge mit Standard-SQL-Befehlen aktualisieren.

Es wäre großartig, einige grundlegende Beispiele hier zu haben, usw. einen Tippfehler in all Ihren Anki-Karten zu ersetzen. Léo Léopold Hertz 준영 vor 7 Jahren 0
Für das Bearbeiten des Exports nach JSON mit dem Plugin [CrowdAnki] (https://ankiweb.net/shared/info/1788670778) ist der Pfad wahrscheinlich einfacher. hlovdal vor 7 Jahren 1
0
fsalazar_sch

Im Handbuch von Anki gibt es eine Hilfe, die Anki-Karten sind in XML geschrieben, und die Vorlage hat eine ähnliche sintaxis: http://ankisrs.net/docs/manual.html#cards-and-templates

Beim Importieren von Anki können Textdateien, mit der Exportfunktion erstellte Anki-Decks, Mnemosyne 2.0 .db-Dateien und SuperMemo-.xml-Dateien importiert werden. Um eine Datei zu importieren, klicken Sie auf das Menü Datei und dann auf "Importieren".

Sie verwenden die MySQL-Datenbank mit ihrem System. XML ist eine andere Geschichte. Léo Léopold Hertz 준영 vor 8 Jahren 1