From cc52d917b26f6e48b4949d43c47a3efd9e60c395 Mon Sep 17 00:00:00 2001 From: Bob Mottram Date: Sun, 4 Aug 2019 19:29:26 +0100 Subject: [PATCH] Deleting posts from the web interface --- daemon.py | 27 +++++++++++++++++++++++---- img/icons/delete.png | Bin 0 -> 5829 bytes webinterface.py | 5 ++++- 3 files changed, 27 insertions(+), 5 deletions(-) create mode 100644 img/icons/delete.png diff --git a/daemon.py b/daemon.py index 3e32ab92..d2a4a2a5 100644 --- a/daemon.py +++ b/daemon.py @@ -759,8 +759,7 @@ class PubServer(BaseHTTPRequestHandler): 'to': [likeActor+'/followers'], 'cc': [] } - if likeJson: - self._postToOutbox(likeJson) + self._postToOutbox(likeJson) self.server.GETbusy=False self._redirect_headers(actor+'/inbox',cookie) return @@ -787,8 +786,28 @@ class PubServer(BaseHTTPRequestHandler): 'to': [undoActor+'/followers'], 'cc': [] } - if undoLikeJson: - self._postToOutbox(undoLikeJson) + self._postToOutbox(undoLikeJson) + self.server.GETbusy=False + self._redirect_headers(actor+'/inbox',cookie) + return + + # delete a post from the web interface icon + if authorized and '?delete=' in self.path: + deleteUrl=self.path.split('?delete=')[1] + actor=self.path.split('?delete=')[0] + self.postToNickname=getNicknameFromActor(actor) + if not self.server.session: + self.server.session= \ + createSession(self.server.domain,self.server.port,self.server.useTor) + deleteActor=self.server.httpPrefix+'://'+self.server.domainFull+'/users/'+self.postToNickname + deleteJson= { + 'actor': actor, + 'object': deleteUrl, + 'to': ['https://www.w3.org/ns/activitystreams#Public'], + 'cc': [actor+'/followers'], + 'type': 'Delete' + } + self._postToOutbox(deleteJson) self.server.GETbusy=False self._redirect_headers(actor+'/inbox',cookie) return diff --git a/img/icons/delete.png b/img/icons/delete.png new file mode 100644 index 0000000000000000000000000000000000000000..68d4a1e0c98ad40f90ad2e9f4806d030ec14c184 GIT binary patch literal 5829 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 literal 0 HcmV?d00001 diff --git a/webinterface.py b/webinterface.py index 3e854dbf..d2042ff0 100644 --- a/webinterface.py +++ b/webinterface.py @@ -693,12 +693,15 @@ def individualPostAsHtml(baseDir: str, \ likeStr= \ '' \ '' + deleteStr= \ + '' \ + '' if showIcons: footerStr='
' footerStr+='' footerStr+='' - footerStr+=announceStr+likeStr + footerStr+=announceStr+likeStr+deleteStr footerStr+=''+publishedStr+'' footerStr+='
'