first docker release

This commit is contained in:
scriptos 2024-03-21 21:44:38 +01:00
parent c327998c10
commit ae13431522
4 changed files with 78 additions and 0 deletions

14
docker/Dockerfile Normal file
View File

@ -0,0 +1,14 @@
FROM python:3.8-slim
# Arbeitsverzeichnis im Container festlegen
WORKDIR /app
# Abhängigkeiten installieren
COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt
# Skript in das Arbeitsverzeichnis kopieren
COPY nox-forum-watcher.v1.py .
# Script festlegen, der ausgeführt werden soll, wenn der Container startet
CMD [ "python", "./nox-forum-watcher.v1.py" ]

View File

@ -0,0 +1,14 @@
version: '3.8'
services:
nox-forum-watcher:
build: .
container_name: nox-forum-watcher
restart: unless-stopped
environment:
SMTP_SERVER: smtp.media-techport.int
SMTP_PORT: 25
SENDER_EMAIL: noreply@media-techport.de
RECEIVER_EMAIL:
FORUM_URL: https://forum.nox.to/index.php?thread/133929-gutschein-angebote/
FORUM_TOPIC: Forum NOX.TO | Gutschein Angebote

View File

@ -0,0 +1,48 @@
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)

2
docker/requirements.txt Normal file
View File

@ -0,0 +1,2 @@
requests
beautifulsoup4