\n'
# day events list
calendar_str += '\n'
if day_events:
for event_post in day_events:
event_time = None
event_time_markup = None
event_end_time = None
start_time_str = ''
end_time_str = ''
event_description = None
event_language = system_language
event_place = None
event_address = None
post_id = None
sender_name = ''
sender_actor = None
event_is_public = False
# get the time place and description
for evnt in event_post:
event_language = system_language
if evnt.get('language'):
event_language = evnt['language']
if evnt['type'] == 'Event':
if evnt.get('post_id'):
post_id = evnt['post_id']
if evnt.get('startTime'):
start_time_str = evnt['startTime']
event_date = \
date_from_string_format(start_time_str,
["%Y-%m-%dT%H:%M:%S%z"])
event_time = event_date.strftime("%H:%M").strip()
if evnt.get('endTime'):
end_time_str = evnt['endTime']
event_end_date = \
date_from_string_format(end_time_str,
["%Y-%m-%dT%H:%M:%S%z"])
event_end_time = \
event_end_date.strftime("%H:%M").strip()
if 'public' in evnt:
if evnt['public'] is True:
event_is_public = True
if evnt.get('sender'):
# get display name from sending actor
if evnt.get('sender'):
sender_actor = evnt['sender']
disp_name = \
get_display_name(base_dir, sender_actor,
person_cache)
if disp_name:
sender_name = \
'' + \
disp_name + ': '
if evnt.get('name'):
event_description = evnt['name'].strip()
elif evnt['type'] == 'Place':
if evnt.get('address'):
event_address = remove_html(evnt['address'])
if evnt.get('name'):
event_place = remove_html(evnt['name'])
if '://' in event_place:
bounding_box_degrees = 0.001
event_map = \
html_open_street_map(event_place,
bounding_box_degrees,
translate, session,
session_onion,
session_i2p,
'320', '320')
if event_map:
event_place = event_map
# prepend a link to the sender of the calendar item
if sender_name and event_description:
# if the sender is also mentioned within the event
# description then this is a reminder
sender_actor2 = replace_users_with_at(sender_actor)
if sender_actor not in event_description and \
sender_actor2 not in event_description:
event_description = sender_name + event_description
else:
event_description = \
translate['Reminder'] + ': ' + event_description
delete_button_str = ''
if post_id:
delete_button_str = \
'
\n'
is_rtl = language_right_to_left(event_language)
event_class = 'calendar__day__event'
if is_rtl:
event_class = 'calendar__day__event__rtl'
cal_item_class = 'calItem'
if event_is_public:
event_class = 'calendar__day__event__public'
if is_rtl:
event_class = 'calendar__day__event__public__rtl'
cal_item_class = 'calItemPublic'
if event_time:
event_time_markup = \
''
if event_time and event_end_time and \
start_time_str != end_time_str:
event_time_int_str = event_time.replace(':', '')
event_end_time_int_str = event_end_time.replace(':', '')
if event_time_int_str.isdigit() and \
event_end_time_int_str.isdigit():
if int(event_end_time_int_str) > \
int(event_time_int_str):
event_time_markup = \
' - ' + \
''
# if an address is given then append it to the description
if event_address and event_description:
event_description += \
'' + event_address + ''
if event_time and event_description and event_place:
calendar_str += \
'
\n'
days = ('Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat')
for day in days:
calendar_str += '
' + \
translate[day] + '
\n'
calendar_str += '
\n'
calendar_str += '\n'
calendar_str += '\n'
# beginning of the links used for accessibility
nav_links = {}
timeline_link_str = html_hide_from_screen_reader('🏠') + ' ' + \
translate['Switch to timeline view']
nav_links[timeline_link_str] = cal_actor + '/' + default_timeline
day_of_month = 0
dow = week_day_of_month_start(month_number, year)
for week_of_month in range(1, 7):
if day_of_month == days_in_month:
continue
calendar_str += '
\n'
for day_number in range(1, 8):
if not ((week_of_month > 1 and day_of_month < days_in_month) or
(week_of_month == 1 and day_number >= dow)):
calendar_str += '
\n'
continue
day_of_month += 1
is_today = False
if year == curr_date.year:
if curr_date.month == month_number:
if day_of_month == curr_date.day:
is_today = True
if events.get(str(day_of_month)):
url = cal_actor + '/calendar?year=' + \
str(year) + '?month=' + \
str(month_number) + '?day=' + str(day_of_month)
day_description = month_name + ' ' + str(day_of_month)
datetime_str = \
str(year) + '-' + str(month_number) + '-' + \
str(day_of_month)
day_link = '' + \
''
# accessibility menu links
menu_option_str = \
html_hide_from_screen_reader('📅') + ' ' + \
''
nav_links[menu_option_str] = url
# there are events for this day
if not is_today:
calendar_str += \
'
' + day_link + '
\n'
else:
calendar_str += \
'
' + day_link + '
\n'
else:
# No events today
if not is_today:
calendar_str += \
'