Simplify weekly events function

merge-requests/30/head
Bob Mottram 2021-05-31 14:00:17 +01:00
parent 45029d45d0
commit f4bce1034b
1 changed files with 6 additions and 29 deletions

View File

@ -9,13 +9,12 @@ __status__ = "Production"
import os import os
from uuid import UUID from uuid import UUID
from datetime import datetime from datetime import datetime
from datetime import timedelta
from utils import isPublicPost from utils import isPublicPost
from utils import loadJson from utils import loadJson
from utils import saveJson from utils import saveJson
from utils import locatePost from utils import locatePost
from utils import daysInMonth
from utils import mergeDicts
def _validUuid(testUuid: str, version=4): def _validUuid(testUuid: str, version=4):
@ -315,9 +314,9 @@ def getThisWeeksEvents(baseDir: str, nickname: str, domain: str) -> {}:
Note: currently not used but could be with a weekly calendar screen Note: currently not used but could be with a weekly calendar screen
""" """
now = datetime.now() now = datetime.now()
endOfWeek = now + timedelta(7)
year = now.year year = now.year
monthNumber = now.month monthNumber = now.month
dayNumber = now.day
calendarFilename = \ calendarFilename = \
baseDir + '/accounts/' + nickname + '@' + domain + \ baseDir + '/accounts/' + nickname + '@' + domain + \
@ -342,7 +341,6 @@ def getThisWeeksEvents(baseDir: str, nickname: str, domain: str) -> {}:
continue continue
postEvent = [] postEvent = []
dayOfMonth = None
weekDayIndex = None weekDayIndex = None
for tag in postJsonObject['object']['tag']: for tag in postJsonObject['object']['tag']:
if not _isHappeningEvent(tag): if not _isHappeningEvent(tag):
@ -355,21 +353,17 @@ def getThisWeeksEvents(baseDir: str, nickname: str, domain: str) -> {}:
eventTime = \ eventTime = \
datetime.strptime(tag['startTime'], datetime.strptime(tag['startTime'],
"%Y-%m-%dT%H:%M:%S%z") "%Y-%m-%dT%H:%M:%S%z")
if (int(eventTime.strftime("%Y")) == year and if eventTime >= now and eventTime <= endOfWeek:
int(eventTime.strftime("%m")) == monthNumber and weekDayIndex = (eventTime - now).days()
(int(eventTime.strftime("%d")) >= dayNumber and
int(eventTime.strftime("%d")) <= dayNumber + 6)):
dayOfMonth = str(int(eventTime.strftime("%d")))
weekDayIndex = dayOfMonth - dayNumber
postEvent.append(tag) postEvent.append(tag)
else: else:
# tag is a place # tag is a place
postEvent.append(tag) postEvent.append(tag)
if postEvent and weekDayIndex: if postEvent and weekDayIndex:
calendarPostIds.append(postId) calendarPostIds.append(postId)
if not events.get(dayOfMonth): if not events.get(weekDayIndex):
events[weekDayIndex] = [] events[weekDayIndex] = []
events[dayOfMonth].append(postEvent) events[weekDayIndex].append(postEvent)
# if some posts have been deleted then regenerate the calendar file # if some posts have been deleted then regenerate the calendar file
if recreateEventsFile: if recreateEventsFile:
@ -378,23 +372,6 @@ def getThisWeeksEvents(baseDir: str, nickname: str, domain: str) -> {}:
calendarFile.write(postId + '\n') calendarFile.write(postId + '\n')
calendarFile.close() calendarFile.close()
lastDayOfMonth = daysInMonth(year, monthNumber)
if dayNumber+6 > lastDayOfMonth:
monthNumber += 1
if monthNumber > 12:
monthNumber = 1
year += 1
for d in range(1, dayNumber + 6 - lastDayOfMonth):
dailyEvents = \
getTodaysEvents(baseDir, nickname, domain,
year, monthNumber, d)
if dailyEvents:
if dailyEvents.get(d):
newEvents = {}
newEvents[d + (7 - (dayNumber + 6 - lastDayOfMonth))] = \
dailyEvents[d]
events = mergeDicts(events, newEvents)
return events return events