From 6b89f77ce6050f4978360be40b0e6ef9cd0a016f Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 6 Mar 2021 18:12:43 +0000 Subject: [PATCH 1/8] Show who sent calendar entry --- daemon.py | 3 ++- webapp_calendar.py | 16 ++++++++++++---- webapp_profile.py | 2 +- 3 files changed, 15 insertions(+), 6 deletions(-) diff --git a/daemon.py b/daemon.py index d79b2f44b..b1c30a742 100644 --- a/daemon.py +++ b/daemon.py @@ -11472,7 +11472,8 @@ class PubServer(BaseHTTPRequestHandler): if htmlGET and usersInPath: if '/calendar' in self.path: # show the calendar screen - msg = htmlCalendar(self.server.cssCache, + msg = htmlCalendar(self.server.personCache, + self.server.cssCache, self.server.translate, self.server.baseDir, self.path, self.server.httpPrefix, diff --git a/webapp_calendar.py b/webapp_calendar.py index 025614e79..5851abda6 100644 --- a/webapp_calendar.py +++ b/webapp_calendar.py @@ -10,6 +10,7 @@ import os from datetime import datetime from datetime import date from shutil import copyfile +from utils import getDisplayName from utils import getConfigParam from utils import getNicknameFromActor from utils import getDomainFromActor @@ -94,7 +95,7 @@ def htmlCalendarDeleteConfirm(cssCache: {}, translate: {}, baseDir: str, return deletePostStr -def _htmlCalendarDay(cssCache: {}, translate: {}, +def _htmlCalendarDay(personCache: {}, cssCache: {}, translate: {}, baseDir: str, path: str, year: int, monthNumber: int, dayNumber: int, nickname: str, domain: str, dayEvents: [], @@ -134,6 +135,12 @@ def _htmlCalendarDay(cssCache: {}, translate: {}, eventDescription = None eventPlace = None postId = None + # get display name from sending actor + senderName = '' + if eventPost.get('actor'): + actor = eventPost['actor'] + senderName = '' + \ + getDisplayName(baseDir, actor, personCache) + ': ' # get the time place and description for ev in eventPost: if ev['type'] == 'Event': @@ -145,7 +152,7 @@ def _htmlCalendarDay(cssCache: {}, translate: {}, "%Y-%m-%dT%H:%M:%S%z") eventTime = eventDate.strftime("%H:%M").strip() if ev.get('name'): - eventDescription = ev['name'].strip() + eventDescription = senderName + ev['name'].strip() elif ev['type'] == 'Place': if ev.get('name'): eventPlace = ev['name'] @@ -200,7 +207,7 @@ def _htmlCalendarDay(cssCache: {}, translate: {}, return calendarStr -def htmlCalendar(cssCache: {}, translate: {}, +def htmlCalendar(personCache: {}, cssCache: {}, translate: {}, baseDir: str, path: str, httpPrefix: str, domainFull: str, textModeBanner: str) -> str: @@ -259,7 +266,8 @@ def htmlCalendar(cssCache: {}, translate: {}, if events: if events.get(str(dayNumber)): dayEvents = events[str(dayNumber)] - return _htmlCalendarDay(cssCache, translate, baseDir, path, + return _htmlCalendarDay(personCache, cssCache, + translate, baseDir, path, year, monthNumber, dayNumber, nickname, domain, dayEvents, monthName, actor) diff --git a/webapp_profile.py b/webapp_profile.py index b5398be0d..272719eb5 100644 --- a/webapp_profile.py +++ b/webapp_profile.py @@ -1757,7 +1757,7 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str, # danger zone section editProfileForm += '
' + \ - translate['Danger Zone'] + '\n' + translate['Danger Zone'] + '\n' editProfileForm += '
\n' editProfileForm += '
\n' From c345290354f73d26a3b9be4f0e0db10c72684c4f Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 6 Mar 2021 18:20:10 +0000 Subject: [PATCH 2/8] Getting calendar item actor --- webapp_calendar.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/webapp_calendar.py b/webapp_calendar.py index 5851abda6..a5bc1611d 100644 --- a/webapp_calendar.py +++ b/webapp_calendar.py @@ -135,12 +135,6 @@ def _htmlCalendarDay(personCache: {}, cssCache: {}, translate: {}, eventDescription = None eventPlace = None postId = None - # get display name from sending actor - senderName = '' - if eventPost.get('actor'): - actor = eventPost['actor'] - senderName = '' + \ - getDisplayName(baseDir, actor, personCache) + ': ' # get the time place and description for ev in eventPost: if ev['type'] == 'Event': @@ -152,6 +146,15 @@ def _htmlCalendarDay(personCache: {}, cssCache: {}, translate: {}, "%Y-%m-%dT%H:%M:%S%z") eventTime = eventDate.strftime("%H:%M").strip() if ev.get('name'): + # get display name from sending actor + senderName = '' + # if ev.get('actor'): + # actor = ev['actor'] + # senderName = \ + # '' + \ + # getDisplayName(baseDir, actor, + # personCache) + \ + # ': ' eventDescription = senderName + ev['name'].strip() elif ev['type'] == 'Place': if ev.get('name'): From c038d86e22f190b5d37c4bde233879254654235b Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 6 Mar 2021 18:38:36 +0000 Subject: [PATCH 3/8] Sender tag for calendar events --- happening.py | 2 ++ webapp_calendar.py | 20 +++++++++++--------- 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/happening.py b/happening.py index 3c78521be..e13c8270b 100644 --- a/happening.py +++ b/happening.py @@ -233,6 +233,8 @@ def getTodaysEvents(baseDir: str, nickname: str, domain: str, # link to the id so that the event can be # easily deleted tag['postId'] = postId.split('#statuses#')[1] + tag['sender'] = postId.split('#statuses#')[0] + tag['sender'] = tag['sender'].replace('#', '/') postEvent.append(tag) else: # tag is a place diff --git a/webapp_calendar.py b/webapp_calendar.py index a5bc1611d..cf6c72521 100644 --- a/webapp_calendar.py +++ b/webapp_calendar.py @@ -135,6 +135,7 @@ def _htmlCalendarDay(personCache: {}, cssCache: {}, translate: {}, eventDescription = None eventPlace = None postId = None + senderName = '' # get the time place and description for ev in eventPost: if ev['type'] == 'Event': @@ -145,21 +146,22 @@ def _htmlCalendarDay(personCache: {}, cssCache: {}, translate: {}, datetime.strptime(ev['startTime'], "%Y-%m-%dT%H:%M:%S%z") eventTime = eventDate.strftime("%H:%M").strip() - if ev.get('name'): + if ev.get('sender'): # get display name from sending actor - senderName = '' - # if ev.get('actor'): - # actor = ev['actor'] - # senderName = \ - # '' + \ - # getDisplayName(baseDir, actor, - # personCache) + \ - # ': ' + if ev.get('sender'): + senderActor = ev['sender'] + senderName = \ + '' + \ + getDisplayName(baseDir, senderActor, + personCache) + ': ' + if ev.get('name'): eventDescription = senderName + ev['name'].strip() elif ev['type'] == 'Place': if ev.get('name'): eventPlace = ev['name'] + if senderName and eventDescription: + eventDescription = senderName + eventDescription deleteButtonStr = '' if postId: deleteButtonStr = \ From 72ea07ceac55319541c7500cf66aac050035a40e Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 6 Mar 2021 18:41:13 +0000 Subject: [PATCH 4/8] Actor link --- webapp_calendar.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webapp_calendar.py b/webapp_calendar.py index cf6c72521..55a2ad010 100644 --- a/webapp_calendar.py +++ b/webapp_calendar.py @@ -151,7 +151,7 @@ def _htmlCalendarDay(personCache: {}, cssCache: {}, translate: {}, if ev.get('sender'): senderActor = ev['sender'] senderName = \ - '' + \ + '' + \ getDisplayName(baseDir, senderActor, personCache) + ': ' if ev.get('name'): From 4e5c05004ce43312ed25a9b58d959122083b3d19 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 6 Mar 2021 18:44:33 +0000 Subject: [PATCH 5/8] Check that display name exists --- webapp_calendar.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/webapp_calendar.py b/webapp_calendar.py index 55a2ad010..89da70f61 100644 --- a/webapp_calendar.py +++ b/webapp_calendar.py @@ -150,10 +150,13 @@ def _htmlCalendarDay(personCache: {}, cssCache: {}, translate: {}, # get display name from sending actor if ev.get('sender'): senderActor = ev['sender'] - senderName = \ - '' + \ + dispName = \ getDisplayName(baseDir, senderActor, - personCache) + ': ' + personCache) + if dispName: + senderName = \ + '' + \ + dispName + ': ' if ev.get('name'): eventDescription = senderName + ev['name'].strip() elif ev['type'] == 'Place': From 4667b455b7ab4a02b739558e931b2d90edd88cf1 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 6 Mar 2021 18:48:16 +0000 Subject: [PATCH 6/8] Duplicate prepends --- webapp_calendar.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/webapp_calendar.py b/webapp_calendar.py index 89da70f61..56ea86e5f 100644 --- a/webapp_calendar.py +++ b/webapp_calendar.py @@ -158,13 +158,15 @@ def _htmlCalendarDay(personCache: {}, cssCache: {}, translate: {}, '' + \ dispName + ': ' if ev.get('name'): - eventDescription = senderName + ev['name'].strip() + eventDescription = ev['name'].strip() elif ev['type'] == 'Place': if ev.get('name'): eventPlace = ev['name'] + # prepend a link to the sender of the calendar item if senderName and eventDescription: eventDescription = senderName + eventDescription + deleteButtonStr = '' if postId: deleteButtonStr = \ From 3cd11b73cf1229c5ada478d924e24e220764dd43 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 6 Mar 2021 19:04:41 +0000 Subject: [PATCH 7/8] Indicate calendar reminder events --- webapp_calendar.py | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/webapp_calendar.py b/webapp_calendar.py index 56ea86e5f..829cd577b 100644 --- a/webapp_calendar.py +++ b/webapp_calendar.py @@ -136,6 +136,7 @@ def _htmlCalendarDay(personCache: {}, cssCache: {}, translate: {}, eventPlace = None postId = None senderName = '' + senderActor = None # get the time place and description for ev in eventPost: if ev['type'] == 'Event': @@ -158,14 +159,20 @@ def _htmlCalendarDay(personCache: {}, cssCache: {}, translate: {}, '' + \ dispName + ': ' if ev.get('name'): - eventDescription = ev['name'].strip() + eventDescription = ev['name'].strip() elif ev['type'] == 'Place': if ev.get('name'): eventPlace = ev['name'] # prepend a link to the sender of the calendar item if senderName and eventDescription: - eventDescription = senderName + eventDescription + senderActor2 = senderActor.replace('/users/', '/@') + if senderActor not in eventDescription and \ + senderActor2 not in eventDescription: + eventDescription = senderName + eventDescription + else: + eventDescription = \ + translate['Reminder'] + ': ' + eventDescription deleteButtonStr = '' if postId: From b67063113ed4691c8e31b112d829ee8976c535a9 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sat, 6 Mar 2021 19:41:39 +0000 Subject: [PATCH 8/8] Comment --- webapp_calendar.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/webapp_calendar.py b/webapp_calendar.py index 829cd577b..787d64165 100644 --- a/webapp_calendar.py +++ b/webapp_calendar.py @@ -166,6 +166,8 @@ def _htmlCalendarDay(personCache: {}, cssCache: {}, translate: {}, # prepend a link to the sender of the calendar item if senderName and eventDescription: + # if the sender is also mentioned within the event + # description then this is a reminder senderActor2 = senderActor.replace('/users/', '/@') if senderActor not in eventDescription and \ senderActor2 not in eventDescription: