Skip to content

Instantly share code, notes, and snippets.

@SchneiderSam
Last active November 13, 2024 13:30
Show Gist options
  • Save SchneiderSam/5f0fecd31fc4c74ae51ececce4ea6d3a to your computer and use it in GitHub Desktop.
Save SchneiderSam/5f0fecd31fc4c74ae51ececce4ea6d3a to your computer and use it in GitHub Desktop.
Convert sqlite to Markdown
import sqlite3
import os
# Hier den Pfad zur SQLite-Datenbank festlegen
database_path = "nwtsty-X.sqlite" # Pfad zur Datenbank
output_folder = ".\\Output" # Pfad zum Ausgabeordner
# Zuordnung der Bibelbuchnummern zu ihren Namen
bibelbuch_namen = {
1: "1. Mose", 2: "2. Mose", 3: "3. Mose", 4: "4. Mose", 5: "5. Mose",
6: "Josua", 7: "Richter", 8: "Ruth", 9: "1. Samuel", 10: "2. Samuel",
11: "1. Könige", 12: "2. Könige", 13: "1. Chronika", 14: "2. Chronika",
15: "Esra", 16: "Nehemia", 17: "Esther", 18: "Hiob", 19: "Psalmen",
20: "Sprüche", 21: "Prediger", 22: "Hohes Lied", 23: "Jesaja",
24: "Jeremia", 25: "Klagelieder", 26: "Hesekiel", 27: "Daniel",
28: "Hosea", 29: "Joel", 30: "Amos", 31: "Obadja", 32: "Jona",
33: "Micha", 34: "Nahum", 35: "Habakuk", 36: "Zephanja", 37: "Haggai",
38: "Sacharja", 39: "Maleachi", 40: "Matthäus", 41: "Markus", 42: "Lukas",
43: "Johannes", 44: "Apostelgeschichte", 45: "Römer", 46: "1. Korinther",
47: "2. Korinther", 48: "Galater", 49: "Epheser", 50: "Philipper",
51: "Kolosser", 52: "1. Thessalonicher", 53: "2. Thessalonicher",
54: "1. Timotheus", 55: "2. Timotheus", 56: "Titus", 57: "Philemon",
58: "Hebräer", 59: "Jakobus", 60: "1. Petrus", 61: "2. Petrus",
62: "1. Johannes", 63: "2. Johannes", 64: "3. Johannes", 65: "Judas",
66: "Offenbarung"
}
# Verbindung zur SQLite-Datenbank herstellen
print(f"{database_path}")
conn = sqlite3.connect(database_path)
print(conn)
cursor = conn.cursor()
print(cursor)
# SQL-Abfrage, um die relevanten Spalten zu laden
cursor.execute("SELECT BCV, X FROM Verses")
# Alle Zeilen abrufen und für jede Zeile eine .md-Datei erstellen
for row in cursor.fetchall():
# Werte aus der Datenbank zuordnen
bcv, text = row
buch = int(bcv[:2]) # Buchnummer aus den ersten beiden Zeichen
kapitel = int(bcv[2:5]) # Kapitel aus den Zeichen 3-5
vers = int(bcv[5:]) # Vers aus den letzten drei Zeichen
# Namen des Bibelbuches basierend auf der Buchnummer bestimmen
buch_name = bibelbuch_namen.get(buch, f"Buch {buch}")
buch_folder_name = f"{buch:02}_{buch_name}"
# Unterordnerstruktur erstellen
buch_folder_path = os.path.join(output_folder, buch_folder_name)
kapitel_folder_path = os.path.join(buch_folder_path, f"{kapitel:03}")
os.makedirs(kapitel_folder_path, exist_ok=True)
# Dateiname und Verlinkung erstellen
filename = f"{bcv}.md"
link = f"https://www.jw.org/finder?wtlocale=2&pub=nwtsty&bible={bcv}"
# .md-Datei-Inhalt erstellen
content = f"""\
---
tags:
- 📝-type/vers
aliases:
- {buch_name} {kapitel}:{vers}
- {buch_name} {kapitel}v{vers}
link: {link}
related:
---
[{buch_name} {kapitel}:{vers}](jwlibrary:///finder?bible={bcv})
{text}
"""
# Datei im Kapitel-Unterordner speichern
with open(os.path.join(kapitel_folder_path, filename), "w", encoding="utf-8") as file:
file.write(content)
# Verbindung zur Datenbank schließen
conn.close()
print("Markdown-Dateien wurden erfolgreich erstellt.")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment