Function to remove calendar event

merge-requests/30/head
Bob Mottram 2020-02-23 13:28:27 +00:00
parent 13afcca48f
commit 56b101a6fc
3 changed files with 44 additions and 0 deletions

View File

@ -175,6 +175,7 @@ from schedule import runPostSchedule
from schedule import runPostScheduleWatchdog from schedule import runPostScheduleWatchdog
from schedule import removeScheduledPosts from schedule import removeScheduledPosts
from outbox import postMessageToOutbox from outbox import postMessageToOutbox
from happening import removeCalendarEvent
import os import os
import sys import sys
@ -4792,6 +4793,16 @@ class PubServer(BaseHTTPRequestHandler):
pageNumberStr=pageNumberStr.split('&')[0] pageNumberStr=pageNumberStr.split('&')[0]
if pageNumberStr.isdigit(): if pageNumberStr.isdigit():
pageNumber=int(pageNumberStr) pageNumber=int(pageNumberStr)
yearStr=None
if 'year=' in removePostConfirmParams:
yearStr=removePostConfirmParams.split('year=')[1]
if '&' in yearStr:
yearStr=yearStr.split('&')[0]
monthStr=None
if 'month=' in removePostConfirmParams:
monthStr=removePostConfirmParams.split('month=')[1]
if '&' in monthStr:
monthStr=monthStr.split('&')[0]
if '/statuses/' in removeMessageId: if '/statuses/' in removeMessageId:
removePostActor=removeMessageId.split('/statuses/')[0] removePostActor=removeMessageId.split('/statuses/')[0]
if originPathStr in removePostActor: if originPathStr in removePostActor:
@ -4805,6 +4816,13 @@ class PubServer(BaseHTTPRequestHandler):
} }
self.postToNickname=getNicknameFromActor(removePostActor) self.postToNickname=getNicknameFromActor(removePostActor)
if self.postToNickname: if self.postToNickname:
if monthStr and yearStr:
if monthStr.isdigit() and yearStr.isdigit():
removeCalendarEvent(self.server.baseDir, \
self.postToNickname, \
self.server.domain, \
int(yearStr),int(monthStr), \
removeMessageId)
self._postToOutboxThread(deleteJson) self._postToOutboxThread(deleteJson)
if pageNumber==1: if pageNumber==1:
self._redirect_headers(originPathStr+'/outbox',cookie) self._redirect_headers(originPathStr+'/outbox',cookie)

View File

@ -369,3 +369,26 @@ def getCalendarEvents(baseDir: str,nickname: str,domain: str, \
calendarFile.close() calendarFile.close()
return events return events
def removeCalendarEvent(baseDir: str,nickname: str,domain: str, \
year: int,monthNumber: int,messageId: str) -> None:
"""Removes a calendar event
"""
calendarFilename= \
baseDir+'/accounts/'+nickname+'@'+domain+ \
'/calendar/'+str(year)+'/'+str(monthNumber)+'.txt'
if not os.path.isfile(calendarFilename):
return
if '/' in messageId:
messageId=messageId.replace('/','#')
if messageId not in open(calendarFilename).read():
return
lines=None
with open(calendarFilename, "r") as f:
lines = f.readlines()
if not lines:
return
with open(calendarFilename, "w+") as f:
for line in lines:
if messageId not in line:
f.write(line)

View File

@ -3400,6 +3400,9 @@ def htmlCalendarDeleteConfirm(translate: {},baseDir: str, \
deletePostStr+='<center>' deletePostStr+='<center>'
deletePostStr+=' <p class="followText">'+translate['Delete this event']+'</p>' deletePostStr+=' <p class="followText">'+translate['Delete this event']+'</p>'
deletePostStr+=' <form method="POST" action="'+actor+'/rmpost">' deletePostStr+=' <form method="POST" action="'+actor+'/rmpost">'
deletePostStr+=' <input type="hidden" name="year" value="'+str(year)+'">'
deletePostStr+=' <input type="hidden" name="month" value="'+str(monthNumber)+'">'
deletePostStr+=' <input type="hidden" name="day" value="'+str(dayNumber)+'">'
deletePostStr+=' <input type="hidden" name="pageNumber" value="1">' deletePostStr+=' <input type="hidden" name="pageNumber" value="1">'
deletePostStr+=' <input type="hidden" name="messageId" value="'+messageId+'">' deletePostStr+=' <input type="hidden" name="messageId" value="'+messageId+'">'
deletePostStr+=' <button type="submit" class="button" name="submitYes">'+translate['Yes']+'</button>' deletePostStr+=' <button type="submit" class="button" name="submitYes">'+translate['Yes']+'</button>'