#!/usr/bin/env python3 """ Preview the new Matrix message format """ def preview_message(): # Sample data name = "Anna Schmidt" comment = "Bitte auf mattem Papier drucken. Danke!" analysis = { 'filename': 'presentation.pdf', 'grand_total': 12.50, 'total_area_black': 1.5, 'total_cost_black': 6.0, 'total_area_color': 1.3, 'total_cost_color': 6.5, 'pages': [ {'page': 1, 'width_m': 0.21, 'height_m': 0.297, 'is_color': False, 'cost': 2.0}, {'page': 2, 'width_m': 0.21, 'height_m': 0.297, 'is_color': True, 'cost': 2.5}, {'page': 3, 'width_m': 0.21, 'height_m': 0.297, 'is_color': False, 'cost': 2.0}, {'page': 4, 'width_m': 0.21, 'height_m': 0.297, 'is_color': True, 'cost': 2.5}, {'page': 5, 'width_m': 0.21, 'height_m': 0.297, 'is_color': False, 'cost': 2.0}, {'page': 6, 'width_m': 0.21, 'height_m': 0.297, 'is_color': True, 'cost': 1.5}, ] } # Generate filename preview from datetime import datetime timestamp = datetime.now().strftime("%Y-%m-%dT%H%M") safe_name = "".join(c for c in name if c.isalnum() or c in (' ', '-', '_')).strip() safe_name = safe_name.replace(' ', '_')[:30] has_color = analysis['total_area_color'] > 0 color_marker = "Farbe" if has_color else "SW" price_str = f"{analysis['grand_total']:.2f}".replace('.', '_') new_filename = f"{timestamp}_{safe_name}_{price_str}EUR_{color_marker}.pdf" # Generate message summary_lines = [ "=== NEUER DRUCKAUFTRAG ===", "", f"Name: {name}", f"Preis: {analysis['grand_total']:.2f} EUR", ] if comment.strip(): summary_lines.extend([ "", f"Kommentar:", f"{comment.strip()}", ]) summary_lines.extend([ "", "Details:", ]) if analysis['total_area_black'] > 0: summary_lines.append( f" - S/W: {analysis['total_area_black']:.2f} m2 -> {analysis['total_cost_black']:.2f} EUR" ) if analysis['total_area_color'] > 0: summary_lines.append( f" - Farbe: {analysis['total_area_color']:.2f} m2 -> {analysis['total_cost_color']:.2f} EUR" ) total_pages = len(analysis['pages']) color_pages = sum(1 for p in analysis['pages'] if p['is_color']) bw_pages = total_pages - color_pages summary_lines.append(f" - Seiten: {total_pages} gesamt ({bw_pages} S/W, {color_pages} Farbe)") # Only show page details for <= 5 pages if total_pages <= 5: summary_lines.append("") summary_lines.append("Seiten:") for page in analysis["pages"]: seitenart = "Farbe" if page["is_color"] else "S/W" summary_lines.append( f" - S.{page['page']}: {page['width_m']*1000:.0f}x{page['height_m']*1000:.0f}mm, {seitenart}, {page['cost']:.2f} EUR" ) print("=" * 60) print("NEW FILENAME:") print("=" * 60) print(new_filename) print() print("=" * 60) print("MESSAGE PREVIEW:") print("=" * 60) print("\n".join(summary_lines)) print() print("=" * 60) if __name__ == "__main__": print("\nšŸ“ SMALL DOCUMENT EXAMPLE (5 pages, with details):\n") preview_message() print("\n\nšŸ“š LARGE DOCUMENT EXAMPLE (6+ pages, no details):\n") # Simulate larger document import random name = "Max Mustermann" comment = "" analysis = { 'filename': 'thesis.pdf', 'grand_total': 45.80, 'total_area_black': 8.5, 'total_cost_black': 34.0, 'total_area_color': 2.36, 'total_cost_color': 11.8, 'pages': [{'page': i, 'width_m': 0.21, 'height_m': 0.297, 'is_color': i % 3 == 0, 'cost': 5.0 if i % 3 == 0 else 4.0} for i in range(1, 11)] } from datetime import datetime timestamp = datetime.now().strftime("%Y-%m-%dT%H%M") safe_name = "Max_Mustermann" has_color = analysis['total_area_color'] > 0 color_marker = "Farbe" if has_color else "SW" price_str = f"{analysis['grand_total']:.2f}".replace('.', '_') new_filename = f"{timestamp}_{safe_name}_{price_str}EUR_{color_marker}.pdf" summary_lines = [ "=== NEUER DRUCKAUFTRAG ===", "", f"Name: {name}", f"Preis: {analysis['grand_total']:.2f} EUR", "", "Details:", f" - S/W: {analysis['total_area_black']:.2f} m2 -> {analysis['total_cost_black']:.2f} EUR", f" - Farbe: {analysis['total_area_color']:.2f} m2 -> {analysis['total_cost_color']:.2f} EUR", ] total_pages = len(analysis['pages']) color_pages = sum(1 for p in analysis['pages'] if p['is_color']) bw_pages = total_pages - color_pages summary_lines.append(f" - Seiten: {total_pages} gesamt ({bw_pages} S/W, {color_pages} Farbe)") print("=" * 60) print("NEW FILENAME:") print("=" * 60) print(new_filename) print() print("=" * 60) print("MESSAGE PREVIEW:") print("=" * 60) print("\n".join(summary_lines)) print("\n(Page details omitted for documents > 5 pages)") print() print("=" * 60)