6de2455917
- 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
75 lines
2.4 KiB
Python
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)
|