import bs4 import requests import configparser import urllib.parse import mechanize import pushover import datetime pushover.init('a5uja274ec5h46paanzjqy5zo1ym6y') def main(): requests.get("https://health.d1v3.de/ping/5185e698-ea0b-44e0-857e-8f52487dca5d/start") allinfo = [] allinfo += check('40008532980', '4F3sf7KfQC') allinfo += check('400006306065', '54zjxTHvIY') requests.post("https://health.d1v3.de/ping/5185e698-ea0b-44e0-857e-8f52487dca5d", data='\n'.join(allinfo).encode('utf8')) def check(username, password): br = mechanize.Browser() starturl = 'https://ssl.muenchen.de/aDISWeb/app?service=direct/0/Home/$DirectLink&sp=SOPAC' response = br.open(starturl) br.follow_link(text_regex=r"Anmelden") br.select_form('Form0') br['$Textfield'] = username br['$Textfield$0'] = password response = br.submit() br.follow_link(text_regex=r"Konto") response = br.follow_link(text_regex=r"Ausleihe zeigen") br.select_form('Form0') response = br.submit(name='textButton$0', label='Alle verlängern') lentlist = bs4.BeautifulSoup(response.read(), 'html.parser') table = lentlist.select('table[class="rTable_table"]')[0] allinfo = [] for entry in table.tbody.select('tr'): info = list(map(lambda x: str(x.text).strip(), entry.select('td'))) date = datetime.datetime.strptime(info[1], '%d.%m.%Y') delta = date - datetime.datetime.now() allinfo.append(str(info)) if delta.days <= 10 or delta.days == 20 or delta.days == 15: pushover.Client('u5w9h8gc7hpzvr5a2kh2xh4m9zpidq').send_message('Bitte an {} denken, Abgabe {}'.format(info[3], info[1]), title="Erinnerung") return allinfo if __name__ == "__main__": main()