import os

# Ordner, in dem sich die Textdateien und das Skript befinden
ordner_pfad = os.path.dirname(os.path.abspath(__file__))

# Listen von Titeln, Start- und Endmustern
titel = [
"Name",  # 1
"Verifizierter Club",  # 2
"Mitglieder",  # 3
"Kategorie",  # 4
"Land",  # 5
"Club ID",  # 6
"Logo",  # 7
"Titel8",  # 8
"Titel9",  # 9
"Titel10",  # 10
]

start_muster = [
'<meta content="',  # 1 
'original-title="Verifizierter Club">',  # 2
'<div class="club-members section">\n<h3>\n',  # 3
'icon-lg">',  # 4
'</span>\n\r&nbsp;\n\r<img alt="',  # 5
'<meta content="https://www.strava.com/clubs/',  # 6
'<meta content="https://dgalywyr863hv.cloudfront.net/pictures/clubs/',  # 7
"START8",  # 8
"START9",  # 9
"START10",  # 10
]

end_muster = [
'" property="og:title">',  # 1
"</span>",  # 2
' Mitglieder\n</h3>',  # 3
"</span>",  # 4
'" src="data:,">',  # 5
'" property="og:url">',  # 6
'/large.jpg"',  # 7
"END8",  # 8
"END9",  # 9
"END10",  # 10
]

# Ausgabedatei
ausgabe_datei = "extrahierte_werte.txt"

def extrahiere_werte(datei):
    extrahierte_werte = {t: [] for t in titel}
    with open(datei, 'r') as textdatei:
        zeilen = textdatei.readlines()
        for zeile in zeilen:
            for i in range(len(start_muster)):
                start_index = zeile.find(start_muster[i])
                end_index = zeile.find(end_muster[i])
                if start_index != -1 and end_index != -1:
                    wert = zeile[start_index + len(start_muster[i]):end_index]
                    extrahierte_werte[titel[i]].append(wert)
    return extrahierte_werte

def main():
    with open(ausgabe_datei, 'w') as ausgabe:
        ausgabe.write("Dateiname\t" + "\t".join(titel) + "\n")
        for datei_name in os.listdir(ordner_pfad):
            if datei_name.endswith(".html"):
                datei_pfad = os.path.join(ordner_pfad, datei_name)
                extrahierte_werte = extrahiere_werte(datei_pfad)
                if extrahierte_werte:
                    dateiname = os.path.splitext(datei_name)[0]
                    ausgabe.write(dateiname)
                    for t in titel:
                        ausgabe.write("\t" + "\t".join(extrahierte_werte[t]))
                    ausgabe.write("\n")

if __name__ == "__main__":
    main()
