send report in python added, UTF encoding voor windows update

This commit is contained in:
Mark Kors
2025-10-31 08:52:25 +01:00
parent 288b7cd162
commit 83c78f01ff
2 changed files with 77 additions and 0 deletions

68
send_report.py Normal file
View File

@@ -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)

View File

@@ -8,8 +8,17 @@ import mysql.connector
from datetime import datetime, timedelta from datetime import datetime, timedelta
import argparse import argparse
import sys import sys
import io
import os
from typing import List, Dict, Optional 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: class SteVeReporter:
def __init__(self, host: str, database: str, user: str, password: str, port: int = 3306, 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): price_host: str = None, price_port: int = None, price_user: str = None, price_password: str = None):