Mehr Notizen geändert

This commit is contained in:
2025-07-01 21:28:19 +02:00
parent c790f13e36
commit ffae7eb8a5
2 changed files with 1744 additions and 638 deletions

File diff suppressed because it is too large Load Diff

55
Lernfortschritt.py Normal file
View File

@@ -0,0 +1,55 @@
import zipfile
import sqlite3
import csv
import os
import tempfile
def extract_learning_progress(apkg_path, output_csv):
# Temporäres Verzeichnis zum Entpacken
with tempfile.TemporaryDirectory() as temp_dir:
# .apkg entpacken
with zipfile.ZipFile(apkg_path, 'r') as zip_ref:
zip_ref.extractall(temp_dir)
db_path = os.path.join(temp_dir, "collection.anki2")
if not os.path.exists(db_path):
print("Fehler: collection.anki2 nicht gefunden.")
return
# Verbindung zur Datenbank
conn = sqlite3.connect(db_path)
cursor = conn.cursor()
#cursor.execute("SELECT COUNT(*) FROM cards")
#print("Anzahl Karten in der Datenbank:", cursor.fetchone()[0])
cursor.execute("""
SELECT cards.id, notes.flds, cards.ivl, cards.reps, cards.type
FROM cards
JOIN notes ON cards.nid = notes.id
""")
results = cursor.fetchall()
print("Anzahl verknüpfte Karten:", len(results))
for row in results[:5]:
print(row)
# Daten auslesen: id, fälligkeitsdatum, Intervall, Wiederholungen, Lapses, Kartentyp
cursor.execute("""
SELECT id, nid, due, ivl, reps, lapses, type
FROM cards
""")
rows = cursor.fetchall()
# In CSV-Datei schreiben
with open(output_csv, mode='w', newline='', encoding='utf-8') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(["card_id", "note_id", "due", "interval_days", "repetitions", "lapses", "type"])
writer.writerows(rows)
conn.close()
print(f"{len(rows)} Karten wurden exportiert nach: {output_csv}")
# Beispiel-Aufruf
extract_learning_progress("Langzeit.apkg", "lernfortschritt.csv")