Files
boc/quixzoom-market-pages/_scripts/customize-industry.py
T

145 lines
6.1 KiB
Python
Raw Normal View History

#!/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 200500 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': '300500 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()