X-Git-Url: https://plomlompom.com/repos/?p=berlin-corona-table;a=blobdiff_plain;f=enhance_table.py;h=7be6b2986cd361d104c6526e1a5e60cd7927cefe;hp=c5c11c22bfe1d52518243e13a279ad800c77301d;hb=4b3850e78196c23f4d361ea65dc8346ff578bc52;hpb=dc7fd6818afda18eb8e2d0c8c99af29ccf3655c1 diff --git a/enhance_table.py b/enhance_table.py index c5c11c2..7be6b29 100755 --- a/enhance_table.py +++ b/enhance_table.py @@ -134,22 +134,24 @@ for i in range(len(sorted_dates)): db[district][date]['week_incidence'] = (week_sum / district_pop) * 100000 # Optimized for web browser viewing. +import calendar if output_type == 'html': print(""" Berlin's Corona infection numbers, development by districts home · contact · privacy

Berlin's Corona infection numbers, development by districts

-

Updated daily at 9pm based on data from the "Senatsverwaltung für Gesundheit, Pflege und Gleichstellung". Source code. Text view optimized for terminal curl.

+

Updated daily at 7pm based on data from the "Senatsverwaltung für Gesundheit, Pflege und Gleichstellung". Updates currently inactive – check out the new dashboard instead that they offer by themselves.

+

Source code. Plain text view (optimized for terminal curl).

""") @@ -160,17 +162,19 @@ th { text-align: left; vertical-align: bottom; } print('' % translate[district]) print('') - print('') - # In Chromium, the th only stay fixed if also given this class. - print('') - print('') - for district in sorted_districts: - print('' % - (translate[district], district)) - print('') + weekday_count = 0 for date in sorted_dates: + if weekday_count == 0: + print('') + print('') + print('') + for district in sorted_districts: + print('' % + (translate[district], district)) + print('') print('') - print('' % date) + weekday = calendar.day_name[datetime.date.fromisoformat(date).weekday()] + print('' % (date, weekday)) print('') print('') + weekday_count += 1 + if weekday_count != 7: + continue + weekday_count = 0 print('
%s
date?%s
date?%s
%s%s
%s
') for abbr in ['+', 'Σ', 'Ø', 'i']: print('' % @@ -195,6 +199,10 @@ th { text-align: left; vertical-align: bottom; } print('
%s
') print('
') print('

Symbols

') print('
') @@ -209,7 +217,8 @@ elif output_type == 'txt': # Explain what this is. intro = \ """Table of Berlin's Corona infection number development by districts. -Updated daily at 9pm based on data from the "Senatsverwaltung für Gesundheit, Pflege und Gleichstellung". +NO LONGER Updated daily at 7pm based on data from the "Senatsverwaltung für Gesundheit, Pflege und Gleichstellung". +Currently inactive. Instead check out the new dashboard they offer: https://www.berlin.de/corona/lagebericht/desktop/corona.html#bezirke Abbrevations/explanations: """ @@ -233,24 +242,30 @@ HTML view: https://plomlompom.com/berlin_corona.html""" print('-'*77) # Day table. - print(date) + weekday = calendar.day_name[datetime.date.fromisoformat(date).weekday()] + print('%s (%s)' % (date, weekday)) new_infections = [] - weekly_sums = [] - weekly_avgs = [] - weekly_incs = [] + weekly_sum_strings = [] + weekly_avg_strings = [] + weekly_inc_strings = [] for district in sorted_districts: district_day_data = db[district][date] new_infections += [district_day_data['new_infections']] + wsum_string = ' '*3 + '?' + wavg_string = winc_string = ' '*4 + '?' if 'week_sum' in district_day_data: - weekly_sums += [district_day_data['week_sum']] + wsum_string = '%4s' % district_day_data['week_sum'] + weekly_sum_strings += [wsum_string] if 'week_average' in district_day_data: - weekly_avgs += [district_day_data['week_average']] + wavg_string = '%5.1f' % district_day_data['week_average'] + weekly_avg_strings += [wavg_string] if 'week_incidence' in district_day_data: - weekly_incs += [district_day_data['week_incidence']] + winc_string = '%5.1f' % district_day_data['week_incidence'] + weekly_inc_strings += [winc_string] print('+', ' '*11, ' '.join(['%3s' % i for i in new_infections])) - print('Σ', ' '*10, ' '.join(['%4s' % wsum for wsum in weekly_sums])) - print('Ø', ' '*9, ''.join(['%5.1f' % wavg for wavg in weekly_avgs])) - print('i', ' '*9, ''.join(['%5.1f' % winc for winc in weekly_incs])) + print('Σ', ' '*10, ' '.join(weekly_sum_strings)) + print('Ø', ' '*9, ''.join(weekly_avg_strings)) + print('i', ' '*9, ''.join(weekly_inc_strings)) weekday_count += 1 if weekday_count != 7: continue