mirror of https://gitlab.com/bashrc2/epicyon
Receive friendica-style event objects
parent
d77e4ea9fc
commit
0035c0a8c7
52
inbox.py
52
inbox.py
|
@ -3921,8 +3921,8 @@ def _send_to_group_members(server, session, session_onion, session_i2p,
|
||||||
sites_unavailable, system_language)
|
sites_unavailable, system_language)
|
||||||
|
|
||||||
|
|
||||||
def _inbox_update_calendar(base_dir: str, handle: str,
|
def _inbox_update_calendar_from_tag(base_dir: str, handle: str,
|
||||||
post_json_object: {}) -> None:
|
post_json_object: {}) -> None:
|
||||||
"""Detects whether the tag list on a post contains calendar events
|
"""Detects whether the tag list on a post contains calendar events
|
||||||
and if so saves the post id to a file in the calendar directory
|
and if so saves the post id to a file in the calendar directory
|
||||||
for the account
|
for the account
|
||||||
|
@ -3963,6 +3963,42 @@ def _inbox_update_calendar(base_dir: str, handle: str,
|
||||||
save_event_post(base_dir, handle, post_id, tag_dict)
|
save_event_post(base_dir, handle, post_id, tag_dict)
|
||||||
|
|
||||||
|
|
||||||
|
def _inbox_update_calendar_from_event(base_dir: str, handle: str,
|
||||||
|
post_json_object: {}) -> None:
|
||||||
|
"""Detects whether the post contains calendar events
|
||||||
|
and if so saves the post id to a file in the calendar directory
|
||||||
|
for the account
|
||||||
|
This is for Friendica-style calendar events
|
||||||
|
"""
|
||||||
|
if not post_json_object.get('actor'):
|
||||||
|
return
|
||||||
|
if not has_object_dict(post_json_object):
|
||||||
|
return
|
||||||
|
if post_json_object['object']['type'] != 'Event':
|
||||||
|
return
|
||||||
|
if not post_json_object['object'].get('startTime'):
|
||||||
|
return
|
||||||
|
if not isinstance(post_json_object['object']['startTime'], str):
|
||||||
|
return
|
||||||
|
|
||||||
|
actor = post_json_object['actor']
|
||||||
|
actor_nickname = get_nickname_from_actor(actor)
|
||||||
|
if not actor_nickname:
|
||||||
|
return
|
||||||
|
actor_domain, _ = get_domain_from_actor(actor)
|
||||||
|
if not actor_domain:
|
||||||
|
return
|
||||||
|
handle_nickname = handle.split('@')[0]
|
||||||
|
handle_domain = handle.split('@')[1]
|
||||||
|
if not receiving_calendar_events(base_dir,
|
||||||
|
handle_nickname, handle_domain,
|
||||||
|
actor_nickname, actor_domain):
|
||||||
|
return
|
||||||
|
|
||||||
|
post_id = remove_id_ending(post_json_object['id']).replace('/', '#')
|
||||||
|
save_event_post(base_dir, handle, post_id, post_json_object['object'])
|
||||||
|
|
||||||
|
|
||||||
def inbox_update_index(boxname: str, base_dir: str, handle: str,
|
def inbox_update_index(boxname: str, base_dir: str, handle: str,
|
||||||
destination_filename: str, debug: bool) -> bool:
|
destination_filename: str, debug: bool) -> bool:
|
||||||
"""Updates the index of received posts
|
"""Updates the index of received posts
|
||||||
|
@ -5228,10 +5264,18 @@ def _inbox_after_initial(server, inbox_start_time,
|
||||||
debug)
|
debug)
|
||||||
inbox_start_time = time.time()
|
inbox_start_time = time.time()
|
||||||
|
|
||||||
_inbox_update_calendar(base_dir, handle, post_json_object)
|
_inbox_update_calendar_from_tag(base_dir, handle, post_json_object)
|
||||||
fitness_performance(inbox_start_time,
|
fitness_performance(inbox_start_time,
|
||||||
server.fitness,
|
server.fitness,
|
||||||
'INBOX', '_inbox_update_calendar',
|
'INBOX', '_inbox_update_calendar_from_tag',
|
||||||
|
debug)
|
||||||
|
inbox_start_time = time.time()
|
||||||
|
|
||||||
|
_inbox_update_calendar_from_event(base_dir, handle,
|
||||||
|
post_json_object)
|
||||||
|
fitness_performance(inbox_start_time,
|
||||||
|
server.fitness,
|
||||||
|
'INBOX', '_inbox_update_calendar_from_event',
|
||||||
debug)
|
debug)
|
||||||
inbox_start_time = time.time()
|
inbox_start_time = time.time()
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue