#!/usr/bin/env python3 """ Anpassa branschspecifika infographics per undersektor. Användning: python3 customize-industry.py [industry-dir] """ import os import sys import re from pathlib import Path # Branschspecifika konfigurationer INDUSTRIES = { 'facade-inspection': { 'name': 'Fasadinspektion', 'step_1_title': 'Hitta fasader nära dig', 'step_1_desc': 'Se tillgängliga fasaduppdrag på kartan. Välj byggnader i ditt område.', 'step_2_title': 'Dokumentera skick', 'step_2_desc': 'Fotografera fasad, fönster och entré enligt instruktionerna i appen.', 'step_3_title': 'Få betalt', 'step_3_desc': 'Ladda upp bilderna. Godkännande inom 24h. Betalt varje måndag.', 'value_1_title': 'Snabbare än traditionell besiktning', 'value_1_desc': 'Få bilddata inom timmar istället för veckor.', 'value_2_title': 'Kvalitetssäkrat', 'value_2_desc': 'Varje submission granskas av AI och valideras mot GPS.', 'cta_subtext': 'Börja tjäna på fasadinspektion idag.', 'cta_button_text': 'Bli Zoomer', }, 'bridge-inspection': { 'name': 'Broinspektion', 'step_1_title': 'Hitta broar i ditt område', 'step_1_desc': 'Se tillgängliga broinspektionsuppdrag. Välj de som passar din rutt.', 'step_2_title': 'Dokumentera broskick', 'step_2_desc': 'Fotografera brokropp, leder, räcken och fundament enligt spec.', 'step_3_title': 'Bidra till säkerhet', 'step_3_desc': 'Dina bilder hjälper kommuner att upptäcka skador tidigt. Betalt varje måndag.', 'value_1_title': 'Kritisk infrastruktur', 'value_1_desc': 'Hjälp till att hålla Sveriges broar säkra.', 'value_2_title': 'Högre ersättning', 'value_2_desc': 'Broinspektion betalar 200–500 kr per uppdrag.', 'cta_subtext': 'Bidra till säkrare infrastruktur och tjäna pengar.', 'cta_button_text': 'Bli broinspektör', }, 'storm-damage': { 'name': 'Stormskadebedömning', 'step_1_title': 'Få notis vid storm', 'step_1_desc': 'quiXzoom skickar push-notiser när stormskadeuppdrag aktiveras i ditt område.', 'step_2_title': 'Dokumentera skador', 'step_2_desc': 'Fotografera tak, fasader, träd och vägar. Prioritera säkerheten.', 'step_3_title': 'Snabbast betalt', 'step_3_desc': 'Stormskadeuppdrag har högst prioritet. Godkännande och betalning inom 48h.', 'value_1_title': 'Högst ersättning', 'value_1_desc': '300–500 kr per uppdrag. Bonus för snabb insamling.', 'value_2_title': 'Hjälp samhället', 'value_2_desc': 'Dina bilder påskyndar skadebedömning och återställning.', 'cta_subtext': 'Bli först på plats efter stormen.', 'cta_button_text': 'Registrera dig', }, 'property-documentation': { 'name': 'Fastighetsdokumentation', 'step_1_title': 'Hitta fastigheter', 'step_1_desc': 'Se tillgängliga fastighetsuppdrag. Välj bostadsrätter, kontor eller butiker.', 'step_2_title': 'Dokumentera noggrant', 'step_2_desc': 'Fotografera exteriör, interiör och detaljer enligt checklista.', 'step_3_title': 'Få betalt veckovis', 'step_3_desc': 'Godkända uppdrag betalas ut varje måndag. Ingen väntetid.', 'value_1_title': 'Stort utbud', 'value_1_desc': 'Många fastighetsbolag behöver löpande dokumentation.', 'value_2_title': 'Flexibelt', 'value_2_desc': 'Välj uppdrag som passar din dag.', 'cta_subtext': 'Dokumentera fastigheter och tjäna pengar.', 'cta_button_text': 'Bli Zoomer', }, } # Default för branscher som inte finns i config DEFAULT_CONFIG = { 'name': 'Fältdatainsamling', 'step_1_title': 'Hitta uppdrag', 'step_1_desc': 'Se tillgängliga uppdrag nära dig i quiXzoom-appen.', 'step_2_title': 'Dokumentera', 'step_2_desc': 'Följ instruktionerna och ta bilder med din smartphone.', 'step_3_title': 'Få betalt', 'step_3_desc': 'Betalt varje vecka för godkända uppdrag.', 'value_1_title': 'Flexibelt arbete', 'value_1_desc': 'Jobba när du vill, där du vill.', 'value_2_title': 'Snabb betalning', 'value_2_desc': 'Få betalt varje måndag via Stripe.', 'cta_subtext': 'Börja tjäna pengar på fältdatainsamling idag.', 'cta_button_text': 'Bli Zoomer', } def customize_industry_page(industry_dir): """Anpassa infographic för en specifik bransch.""" industry_name = industry_dir.name config = INDUSTRIES.get(industry_name, DEFAULT_CONFIG) # Läs template template_path = industry_dir.parent / '_components' / 'infographic-industry.html' if not template_path.exists(): print(f" ❌ Template saknas: {template_path}") return False template = template_path.read_text(encoding='utf-8') # Ersätt placeholders result = template for key, value in config.items(): placeholder = '{{' + key.upper() + '}}' result = result.replace(placeholder, value) # Ta bort oersatta placeholders (men inte kommentaren) result = re.sub(r'\{\{([A-Z_]+)\}\}', lambda m: '' if m.group(1) != 'PLACEHOLDERS' else m.group(0), result) # Skriv till fil output_path = industry_dir / 'infographic-custom.html' output_path.write_text(result, encoding='utf-8') print(f" ✅ {industry_name}/infographic-custom.html skapad") return True def main(): root = Path(__file__).parent.parent / 'se' print("=== Branschanpassade Infographics ===\n") count = 0 for subdir in sorted(root.iterdir()): if not subdir.is_dir(): continue if subdir.name.startswith('_'): continue if not (subdir / 'index.html').exists(): continue if customize_industry_page(subdir): count += 1 print(f"\n=== {count} branschspecifika infographics skapade ===") print("\nNästa steg:") print(" 1. Uppdatera integrate.py för att använda custom infographics") print(" 2. Testa lokalt") print(" 3. Deploy till S3") if __name__ == '__main__': main()