Einlesesen der CSV-Datei mit Modul CSV
This commit is contained in:
parent
1cfcc38f08
commit
ce2889991a
@ -10,13 +10,14 @@ Um die Daten an Telegram zu senden, musst du dir ein Skript/Programm schreiben,
|
|||||||
von Telegram verwendet und Daten an dich oder deine Gruppe senden kann!
|
von Telegram verwendet und Daten an dich oder deine Gruppe senden kann!
|
||||||
|
|
||||||
Beispiel für eine Konfigurationsdatei:
|
Beispiel für eine Konfigurationsdatei:
|
||||||
tgReceiver: <hier die ID der Gruppe/ des Teilnhemers eintragen>
|
tgReceiver: <hier die ID der Gruppe/ des Teilnehmers eintragen>
|
||||||
kommune: 2601
|
kommune: 2601
|
||||||
strasse: 2146
|
strasse: 2146
|
||||||
pathBot: '~/bin/YMBot'
|
pathBot: '~/bin/YMBot'
|
||||||
tgBotOwner: <hier DEINE Telegram-ID eintragen>
|
tgBotOwner: <hier DEINE Telegram-ID eintragen>
|
||||||
'''
|
'''
|
||||||
|
|
||||||
|
import csv
|
||||||
import re
|
import re
|
||||||
import requests
|
import requests
|
||||||
import httplib2
|
import httplib2
|
||||||
@ -28,7 +29,7 @@ from pathlib import Path
|
|||||||
|
|
||||||
# Funktionen
|
# Funktionen
|
||||||
def get_index_positions(list_of_elems, element):
|
def get_index_positions(list_of_elems, element):
|
||||||
''' Returns the indexes of all occurrences of give element in
|
''' Returns the indexes of all occurrences of given element in
|
||||||
the list- listOfElements '''
|
the list- listOfElements '''
|
||||||
index_pos_list = []
|
index_pos_list = []
|
||||||
for i in range(len(list_of_elems)):
|
for i in range(len(list_of_elems)):
|
||||||
@ -53,7 +54,7 @@ def init(key, modus, host, headers):
|
|||||||
url = f'https://{host}/?key={key}&modus={modus}&waction=init'
|
url = f'https://{host}/?key={key}&modus={modus}&waction=init'
|
||||||
http = httplib2.Http()
|
http = httplib2.Http()
|
||||||
(resp, content) = http.request(url, "POST", headers = headers, body = urllib.parse.urlencode(postdata))
|
(resp, content) = http.request(url, "POST", headers = headers, body = urllib.parse.urlencode(postdata))
|
||||||
# print(content)
|
|
||||||
result = re.findall(r"<input .*?name=.*? value=.*?/>", str(content))
|
result = re.findall(r"<input .*?name=.*? value=.*?/>", str(content))
|
||||||
|
|
||||||
datum = result[1].split(' ')
|
datum = result[1].split(' ')
|
||||||
@ -74,9 +75,17 @@ def read_file(jahr):
|
|||||||
|
|
||||||
antwort_liste = None
|
antwort_liste = None
|
||||||
try:
|
try:
|
||||||
f = open(f'muell{jahr}.csv', 'rb')
|
with open(f'muell{jahr}.csv', 'r', encoding="latin1") as f:
|
||||||
antwort = str(f.read())
|
csv_reader = csv.reader(f, delimiter=';')
|
||||||
antwort_liste = antwort[antwort.find('Biom'):].strip("'").replace('\\n', '\n').split('\n')
|
lines = 0
|
||||||
|
antwort_liste = []
|
||||||
|
for row in csv_reader:
|
||||||
|
if lines == 0:
|
||||||
|
# print(f'Column names are {", ".join(row)}')
|
||||||
|
lines += 1
|
||||||
|
else:
|
||||||
|
if isinstance(row, list):
|
||||||
|
antwort_liste.extend(row)
|
||||||
except FileNotFoundError:
|
except FileNotFoundError:
|
||||||
pass
|
pass
|
||||||
|
|
||||||
@ -119,40 +128,41 @@ muell_arten = [
|
|||||||
'Schadstoffmobil',
|
'Schadstoffmobil',
|
||||||
]
|
]
|
||||||
|
|
||||||
# __main__
|
if __name__ == '__main__':
|
||||||
antwort_liste = read_file(current_year)
|
antwort_liste = read_file(current_year)
|
||||||
if antwort_liste == None:
|
|
||||||
# Keine vernünftigen Daten, ergo mal gucken, was die Webseite ergibt
|
|
||||||
config = readConfig()
|
|
||||||
postdata['f_id_kommune'] = config['kommune']
|
|
||||||
postdata['f_id_strasse'] = config['strasse']
|
|
||||||
|
|
||||||
(name, value) = init(key, modus, host, headers)
|
if antwort_liste == None:
|
||||||
if name != None and value != None:
|
# Keine vernünftigen Daten, ergo mal gucken, was die Webseite ergibt
|
||||||
postdata[name] = value
|
config = readConfig()
|
||||||
|
postdata['f_id_kommune'] = config['kommune']
|
||||||
|
postdata['f_id_strasse'] = config['strasse']
|
||||||
|
|
||||||
http = httplib2.Http()
|
(name, value) = init(key, modus, host, headers)
|
||||||
(resp, content) = http.request(url, "POST", headers = headers, body = urllib.parse.urlencode(postdata))
|
if name != None and value != None:
|
||||||
|
postdata[name] = value
|
||||||
|
|
||||||
antwort = str(content)
|
http = httplib2.Http()
|
||||||
f = open(f'muell{current_year}.csv', 'wb')
|
(resp, content) = http.request(url, "POST", headers = headers, body = urllib.parse.urlencode(postdata))
|
||||||
f.write(content)
|
|
||||||
f.close()
|
|
||||||
antwort_liste = antwort[antwort.find('Biom'):].strip("'").replace('\\n', '\n').split('\n')
|
|
||||||
|
|
||||||
daten = set(antwort_liste)
|
antwort = str(content)
|
||||||
|
f = open(f'muell{current_year}.csv', 'wb')
|
||||||
|
f.write(content)
|
||||||
|
f.close()
|
||||||
|
antwort_liste = read_file(current_year)
|
||||||
|
|
||||||
for datum in daten:
|
daten = set(antwort_liste)
|
||||||
tomorrow = (datetime.now() + timedelta(1)).strftime('%d.%m.%Y')
|
# TODO: Leider weiss ich ab hier nur, dass Müll abgeholt wird, leider nicht, welcher :-/
|
||||||
datum = datum.split(';')
|
tomorrow = (datetime.now() + timedelta(1)).strftime('%d.%m.%Y')
|
||||||
l_muell = get_index_positions(datum, tomorrow)
|
for datum in daten:
|
||||||
if len(l_muell) > 0:
|
datum = datum.split(';')
|
||||||
wird = 'wird' if len(l_muell) < 2 else 'werden'
|
l_muell = get_index_positions(datum, tomorrow)
|
||||||
tonnen = []
|
if len(l_muell) > 0:
|
||||||
for i in l_muell:
|
wird = 'wird' if len(l_muell) < 2 else 'werden'
|
||||||
tonnen.append(muell_arten[i])
|
tonnen = []
|
||||||
|
for i in l_muell:
|
||||||
|
tonnen.append(muell_arten[i])
|
||||||
|
|
||||||
if len(tonnen) > 0:
|
if len(tonnen) > 0:
|
||||||
tonnen = ' und '.join(tonnen)
|
tonnen = ' und '.join(tonnen)
|
||||||
print(f'Morgen {wird} {tonnen} abgeholt')
|
print(f'Morgen {wird} {tonnen} abgeholt')
|
||||||
break
|
break
|
||||||
|
Loading…
Reference in New Issue
Block a user