From 83c78f01ffeeae6c10dd9426c33f51b23a23a221 Mon Sep 17 00:00:00 2001 From: Mark Kors Date: Fri, 31 Oct 2025 08:52:25 +0100 Subject: [PATCH] send report in python added, UTF encoding voor windows update --- send_report.py | 68 +++++++++++++++++++++++++++++++++++++ steve_transaction_report.py | 9 +++++ 2 files changed, 77 insertions(+) create mode 100644 send_report.py diff --git a/send_report.py b/send_report.py new file mode 100644 index 0000000..e506e87 --- /dev/null +++ b/send_report.py @@ -0,0 +1,68 @@ +#!/usr/bin/env python3 +import os +import subprocess +import smtplib +import os +import argparse +from email.mime.text import MIMEText +from email.mime.multipart import MIMEMultipart +from datetime import datetime + + +os.environ['PYTHONIOENCODING'] = 'utf-8' + +# Parse command line arguments +parser = argparse.ArgumentParser(description='Genereer en verstuur laadrapport') +parser.add_argument('--transaction', type=int, help='Specifieke transactie ID') +parser.add_argument('--limit', type=int, default=1, help='Aantal transacties (default: 1)') +args = parser.parse_args() + +# Configuratie +TO_EMAIL = "mark@markkors.nl" +FROM_EMAIL = "laadpaal@raspberry.local" +SUBJECT = f"Laadrapport {datetime.now().strftime('%d-%m-%Y')}" + +# SMTP configuratie +SMTP_SERVER = "192.168.178.201" +SMTP_PORT = 25 + +# Genereer rapport commando +cmd = [ + 'python', 'steve_transaction_report.py', + '--host', '192.168.178.201', + '--port', '3307', + '--user', 'steve', + '--password', 'kS9R*xp17ZwCD@CV&E^N', + '--price-user', 'alfen_user', + '--price-password', '5uVgr%f%s2P5GR@3q!', +] + +# Voeg optionele parameters toe +if args.transaction: + cmd.extend(['--transaction', str(args.transaction)]) +else: + cmd.extend(['--limit', str(args.limit)]) + +try: + # BELANGRIJK: encoding='utf-8' toevoegen om UTF-8 correct te lezen op Windows + report = subprocess.check_output(cmd, encoding='utf-8') +except subprocess.CalledProcessError as e: + print(f"✗ Fout bij genereren rapport: {e}") + exit(1) + +# Email samenstellen +msg = MIMEMultipart() +msg['From'] = FROM_EMAIL +msg['To'] = TO_EMAIL +msg['Subject'] = SUBJECT +msg['Content-Type'] = 'text/plain; charset=utf-8' +msg.attach(MIMEText(report, 'plain', 'utf-8')) + +# Verstuur email +try: + with smtplib.SMTP(SMTP_SERVER, SMTP_PORT) as server: + server.send_message(msg) + print(f"✓ Rapport verzonden naar {TO_EMAIL}") +except Exception as e: + print(f"✗ Fout bij verzenden: {e}") + exit(1) \ No newline at end of file diff --git a/steve_transaction_report.py b/steve_transaction_report.py index 319ba9f..3ddd697 100755 --- a/steve_transaction_report.py +++ b/steve_transaction_report.py @@ -8,8 +8,17 @@ import mysql.connector from datetime import datetime, timedelta import argparse import sys +import io +import os from typing import List, Dict, Optional +os.environ['PYTHONIOENCODING'] = 'utf-8' + +# Forceer UTF-8 encoding voor stdout/stderr op Windows +if sys.platform == 'win32': + sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8') + sys.stderr = io.TextIOWrapper(sys.stderr.buffer, encoding='utf-8') + class SteVeReporter: def __init__(self, host: str, database: str, user: str, password: str, port: int = 3306, price_host: str = None, price_port: int = None, price_user: str = None, price_password: str = None):