75 lines
1.7 KiB
Python
75 lines
1.7 KiB
Python
from datetime import UTC, datetime, timedelta
|
|
from random import randint, sample
|
|
from zoneinfo import ZoneInfo
|
|
|
|
from faker import Faker
|
|
from faker.providers import company
|
|
|
|
from fhdhview.services.screenwriter.schema import AAMPos, Session, Sessions
|
|
|
|
fake = Faker()
|
|
fake.add_provider(company)
|
|
|
|
zaal = [
|
|
"DenHaag_zaal_1",
|
|
"DenHaag_zaal_2",
|
|
"DenHaag_zaal_3",
|
|
"DenHaag_zaal_4",
|
|
"DenHaag_zaal_5",
|
|
"DenHaag_zaal_6",
|
|
"Filmhuis Den Haag 10 (buitenbios)"
|
|
]
|
|
|
|
kw_age = [
|
|
"vanaf 6 jaar",
|
|
"vanaf 9 jaar",
|
|
"vanaf 12 jaar",
|
|
"vanaf 14 jaar",
|
|
"vanaf 18 jaar",
|
|
"Alle leeftijden"
|
|
]
|
|
|
|
kw_keywords = [
|
|
"Angst",
|
|
"Discriminatie",
|
|
"Drugs- en/of alcoholmisbruik",
|
|
"Grof taalgebruik",
|
|
"Gevaarlijk gedrag",
|
|
"Geweld",
|
|
"Seks"
|
|
]
|
|
|
|
attr_extra = [
|
|
"EN subs"
|
|
]
|
|
|
|
sessions: list[Session] = []
|
|
|
|
for i in range(20):
|
|
start_time = datetime.now(tz=ZoneInfo("Europe/Amsterdam"))+timedelta(minutes=randint(-20, 59))
|
|
|
|
attrs = sample(kw_age, 1) + sample(kw_keywords, randint(0, 3)) + sample(attr_extra, randint(0, 1))
|
|
|
|
|
|
session = Session(
|
|
session_id=randint(1000, 9999),
|
|
screen_identifier=sample(zaal, 1)[0],
|
|
complex_identifier="Filmhuis Den Haag",
|
|
start=start_time,
|
|
end=start_time+timedelta(hours=2),
|
|
feature_duration=int(timedelta(hours=2).total_seconds()),
|
|
title=fake.catch_phrase(),
|
|
rating=randint(1, 10),
|
|
seats_available=100,
|
|
seats_sold=randint(0, 100),
|
|
attributes=attrs
|
|
)
|
|
sessions.append(session)
|
|
|
|
xml_data = AAMPos(sessions=Sessions(root=sessions))
|
|
|
|
|
|
with open("test_xml.xml", "wb") as f:
|
|
result = xml_data.to_xml(pretty_print=True)
|
|
f.write(result if isinstance(result, bytes) else result.encode("utf-8"))
|