Browse Source

ics2table: the email view contains now also the location

master
Holger Frey 3 months ago
parent
commit
44ee128649
  1. 38
      work_helpers/ics2table.py

38
work_helpers/ics2table.py

@ -138,17 +138,32 @@ def create_wiki_table(events: Iterable[Event]) -> str: @@ -138,17 +138,32 @@ def create_wiki_table(events: Iterable[Event]) -> str:
table_meta_data = _get_table_meta_data(events)
headers = {key: f"'''{key.capitalize()}'''" for key in TABLE_COLUMN_ORDER}
lines = [
_create_table_line(headers, table_meta_data),
_create_table_line(headers, table_meta_data, sep="||", bracket=True),
]
for event in events:
lines.append(_create_table_line(event, table_meta_data))
lines.extend(
_create_table_body(events, table_meta_data, sep="||", bracket=True)
)
return "\n".join(lines)
def create_email_table(events: Iterable[Event]) -> str:
table_meta_data = _get_table_meta_data(events)
lines = _create_table_body(events, table_meta_data, sep="|", bracket=False)
return "\n".join(lines)
def _create_table_line(event: Event, meta: TableMetaData) -> str:
def _create_table_body(
events: Iterable[Event], meta: TableMetaData, sep: str, *, bracket: bool
) -> list[str]:
return [_create_table_line(event, meta, sep=sep, bracket=bracket) for event in events]
def _create_table_line(
event: Event, meta: TableMetaData, sep: str, *, bracket: bool
) -> str:
columns = [event[key].ljust(meta[key]) for key in TABLE_COLUMN_ORDER]
inner = " || ".join(columns)
return f"|| {inner} ||"
inner = f" {sep} ".join(columns)
return f"{sep} {inner} {sep}" if bracket else inner
def _get_table_meta_data(events: Iterable[Event]) -> TableMetaData:
@ -159,17 +174,6 @@ def _get_table_meta_data(events: Iterable[Event]) -> TableMetaData: @@ -159,17 +174,6 @@ def _get_table_meta_data(events: Iterable[Event]) -> TableMetaData:
return meta
def create_email_table(events: Iterable[Event]) -> str:
table_meta_data = _get_table_meta_data(events)
date_key, _, name_key = TABLE_COLUMN_ORDER
pad_date = table_meta_data[date_key]
lines = [
(event[date_key].ljust(pad_date) + " | " + event[name_key])
for event in events
]
return "\n".join(lines)
@click.command()
def group_schedule():
ics_file = get_ics(ICAL_URL)

Loading…
Cancel
Save