import os import requests from bs4 import BeautifulSoup import smtplib from email.mime.text import MIMEText import time # Umgebungsvariablen smtp_server = os.getenv('SMTP_SERVER', 'default-smtp-server') smtp_port = int(os.getenv('SMTP_PORT', 25)) absender_email = os.getenv('SENDER_EMAIL', 'default-sender@example.com') empfaenger_email = os.getenv('RECEIVER_EMAIL', 'default-receiver@example.com') url = os.getenv('FORUM_URL', 'default-forum-url') topic = os.getenv('FORUM_TOPIC', 'default-forum-topic') wait_time = int(os.getenv('WAIT_TIME', 60)) # Letzter bekannter Beitrag letzter_beitrag = "" while True: response = requests.get(url) soup = BeautifulSoup(response.text, 'html.parser') # Alle Beiträge gemäß des festgelegten Musters auswählen beitraege = soup.select('div:nth-child(3) > header:nth-child(1) > ul:nth-child(2) > li:nth-child(1) > a:nth-child(1)') # Überprüfe, ob neue Beiträge vorhanden sind if beitraege and beitraege[-1].text != letzter_beitrag: neuer_beitrag = beitraege[-1].text letzter_beitrag = neuer_beitrag # E-Mail-Inhalte subject = "Neuer Beitrag im Forum" body = f"Es gibt einen neuen Forenbeitrag im Thema: {topic}\n\nLink zum Beitrag: {url}" # E-Mail senden msg = MIMEText(body) msg['Subject'] = subject msg['From'] = absender_email msg['To'] = empfaenger_email # Verbindung zum SMTP-Server herstellen server = smtplib.SMTP(smtp_server, smtp_port) server.send_message(msg) server.quit() # Wartezeit zwischen den Überprüfungen time.sleep(wait_time)