120 lines
3.0 KiB
Python
120 lines
3.0 KiB
Python
#!/usr/bin/env python3
|
|
|
|
# this is stolen from https://koronawirus.lol
|
|
|
|
import csv
|
|
import pathlib
|
|
import random
|
|
|
|
from .tlib import b, c, d, sh
|
|
|
|
DATAPATH = (pathlib.Path(__file__).parent
|
|
/ 'thirdparty/koronawirus.lol/src/generation-logic/data.tsv')
|
|
def load_data():
|
|
with open(DATAPATH) as file:
|
|
return [[cell for cell in line if cell]
|
|
for line in csv.reader(file, delimiter='\t')]
|
|
_data = load_data()
|
|
|
|
TEMPLATE_QUARANTINE = [
|
|
'wszystkie osoby przybywające do Polski z ', c(*_data[4]), ' ',
|
|
c(*_data[5]),
|
|
' są ',
|
|
b(0.25,
|
|
'zwolnione z kwarantanny',
|
|
[
|
|
'zobowiązane do odbycia kwarantanny przez ',
|
|
(lambda: str(random.randrange(7, 15))),
|
|
' dni',
|
|
]),
|
|
'.',
|
|
]
|
|
|
|
TEMPLATE_KINDERGARTENS = [
|
|
'żłobki i przedszkola są ', c(*_data[25]), '.'
|
|
]
|
|
|
|
TEMPLATE_HOURS = [
|
|
'w godzinach ', c(*_data[29]),
|
|
' zakupy mogą robić tylko osoby ', c(*_data[30]), '.'
|
|
]
|
|
|
|
TEMPLATE_HOTELS = [
|
|
'hotele dostępne są tylko dla ',
|
|
c(*_data[0]), ', ',
|
|
c(*_data[1]), ', ',
|
|
c(*_data[2]), ' oraz ',
|
|
c(*_data[3]), '.',
|
|
]
|
|
|
|
TEMPLATE_ORG = [
|
|
'obowiązuje zakaz organizacji ',
|
|
c(*_data[10]),
|
|
' oraz ',
|
|
c(*_data[11]),
|
|
'.'
|
|
]
|
|
|
|
TEMPLATE_AREA = [
|
|
'w ',
|
|
c(*_data[26]),
|
|
' i ',
|
|
c(*_data[27]),
|
|
' może przebywać maksymalnie jedna osoba na ',
|
|
c(*_data[28]),
|
|
' m² pomieszczenia.'
|
|
]
|
|
|
|
TEMPLATE_SCHOOLS = [
|
|
'nauka zdalna w klasach ', c(*_data[20]), ' szkół podstawowych, ',
|
|
c(*_data[21]), ', oraz ', c(*_data[22]),
|
|
', za wyjątkiem ', c(*_data[23]), ' (chyba, że ', c(*_data[24]), ').'
|
|
]
|
|
|
|
TEMPLATE_CLOSED = [
|
|
'zamknięte są ', c(*_data[12]), ', ', c(*_data[13]), ' i ', c(*_data[14]),
|
|
'. Otwarte zostaną ', c(*_data[15]), ' oraz ', c(*_data[16]),
|
|
', ale wyłącznie w ', c(*_data[17]), '.'
|
|
]
|
|
|
|
|
|
def TEMPLATE_RESTAURANTS():
|
|
yield 'restauracje i bary są '
|
|
opened = random.choice(_data[18])
|
|
yield opened
|
|
if 'zamknięte' not in opened:
|
|
yield ', pod warunkiem '
|
|
yield c(*_data[19])
|
|
yield '.'
|
|
|
|
def TEMPLATE_MEETINGS():
|
|
n = int(random.choice(_data[7]))
|
|
v1, v2 = ('mogą', 'osoby') if 2 <= n % 10 <= 4 else ('może', 'osób')
|
|
yield from [
|
|
'w zgromadzeniach ', v1, ' uczestniczyć maksymalnie ', str(n), ' ', v2,
|
|
' (nie dotyczy ', c(*_data[8]), ' oraz ', c(*_data[9]), ').']
|
|
|
|
def TEMPLATE_BUS_SEATS():
|
|
p = int(random.choice(_data[31]))
|
|
n = int(60 * p / 100)
|
|
yield from [
|
|
'w autobusach może być zajęte max. ', str(n),
|
|
' miejsc siedzących (lub ', str(p), '% wszystkich miejsc).']
|
|
|
|
TEMPLATE = [
|
|
'Kancelaria Prezesa Rady Ministrów informuje, że od ', d('%e.%m.%Y'), ' r. ',
|
|
c(
|
|
TEMPLATE_HOTELS,
|
|
TEMPLATE_MEETINGS,
|
|
TEMPLATE_ORG,
|
|
TEMPLATE_AREA,
|
|
TEMPLATE_SCHOOLS,
|
|
TEMPLATE_CLOSED,
|
|
TEMPLATE_QUARANTINE,
|
|
TEMPLATE_RESTAURANTS,
|
|
TEMPLATE_KINDERGARTENS,
|
|
TEMPLATE_HOURS,
|
|
TEMPLATE_BUS_SEATS,
|
|
),
|
|
]
|