Files
boc/projects/landvex/20-automation/bakdatera.py
T
Bernt 6de2455917 v1.2.0: Add Global Markets footer, translated to 9 languages
- Added GLOBAL_MARKETS_TITLE to all translation files
- Updated footer with 12 markets (4 active + 8 upcoming)
- Translated market section to: zh-cn, zh-tw, ja, ko, th, vi, id, ms, hi
- Built and deployed to production
- CloudFront invalidation: I3RTMXVFDJXWLG3SYX208OP1CC
2026-07-08 19:56:03 +00:00

75 lines
2.4 KiB
Python

#!/usr/bin/env python3
"""
Bakdatera artiklar för att simulera publicering över tid.
Används för att testa flödet med historisk data.
"""
import json
import random
from datetime import datetime, timedelta, timezone
from pathlib import Path
def bakdatera_artiklar(filnamn, dagar_tillbaka=30):
"""
Bakdatera artiklar i en kandidatfil.
Args:
filnamn: Sökväg till kandidatfil
dagar_tillbaka: Antal dagar bakåt att fördela artiklar över
"""
with open(filnamn, "r", encoding="utf-8") as f:
data = json.load(f)
kandidater = data["kandidater"]
antal = len(kandidater)
print(f"Bakdaterar {antal} artiklar över {dagar_tillbaka} dagar...")
# Fördela artiklar jämnt över dagarna
for i, kandidat in enumerate(kandidater):
# Beräkna dag (0 = idag, dagar_tillbaka = längst bak)
dag = int((i / antal) * dagar_tillbaka)
# Slumpa tid på dagen (06:00 - 22:00)
timme = random.randint(6, 22)
minut = random.randint(0, 59)
# Beräkna datum
datum = datetime.now(timezone.utc) - timedelta(days=dag, hours=random.randint(0, 12))
datum = datum.replace(hour=timme, minute=minut, second=0, microsecond=0)
# Uppdatera kandidat
datum_str = datum.strftime("%Y-%m-%d")
tid_str = datum.isoformat()
kandidat["kandidat_id"] = f"K-{datum.strftime('%Y%m%d')}-test-{i+1:03d}"
kandidat["post"]["proveniens"]["skapad"] = datum_str
kandidat["post"]["proveniens"]["uppdaterad"] = datum_str
print(f" {i+1}. {kandidat['post']['namn']['sv']}{datum_str} {timme:02d}:{minut:02d}")
# Uppdatera metadata
data["genererad"] = datetime.now(timezone.utc).strftime("%Y-%m-%d")
data["beskrivning"] = f"Landvex produktionsagent — bakdaterade kandidatposter ({antal} artiklar över {dagar_tillbaka} dagar)"
# Spara
with open(filnamn, "w", encoding="utf-8") as f:
json.dump(data, f, ensure_ascii=False, indent=2)
print(f"\n✓ Sparade bakdaterade artiklar till {filnamn}")
return antal
if __name__ == "__main__":
import sys
if len(sys.argv) < 2:
print("Användning: python3 bakdatera.py <filnamn> [dagar_tillbaka]")
sys.exit(1)
filnamn = sys.argv[1]
dagar = int(sys.argv[2]) if len(sys.argv) > 2 else 30
bakdatera_artiklar(filnamn, dagar)