Delete posts via desktop client

main
Bob Mottram 2021-03-21 18:37:06 +00:00
parent 681cb126ee
commit 800ff69f9a
2 changed files with 41 additions and 1 deletions

View File

@ -92,7 +92,7 @@ def sendDeleteViaServer(baseDir: str, session,
'Authorization': authHeader 'Authorization': authHeader
} }
postResult = \ postResult = \
postJson(session, newDeleteJson, [], inboxUrl, headers, 30, True) postJson(session, newDeleteJson, [], inboxUrl, headers, 3, True)
if not postResult: if not postResult:
if debug: if debug:
print('DEBUG: POST delete failed for c2s to ' + inboxUrl) print('DEBUG: POST delete failed for c2s to ' + inboxUrl)

View File

@ -14,6 +14,7 @@ import select
import webbrowser import webbrowser
import urllib.parse import urllib.parse
from random import randint from random import randint
from utils import getFullDomain
from utils import isDM from utils import isDM
from utils import loadTranslationsFromFile from utils import loadTranslationsFromFile
from utils import removeHtml from utils import removeHtml
@ -43,6 +44,7 @@ from pgp import pgpPublicKeyUpload
from like import noOfLikes from like import noOfLikes
from bookmarks import sendBookmarkViaServer from bookmarks import sendBookmarkViaServer
from bookmarks import sendUndoBookmarkViaServer from bookmarks import sendUndoBookmarkViaServer
from delete import sendDeleteViaServer
def _desktopHelp() -> None: def _desktopHelp() -> None:
@ -1581,6 +1583,44 @@ def runDesktopClient(baseDir: str, proxyType: str, httpPrefix: str,
print('') print('')
elif commandStr.startswith('h'): elif commandStr.startswith('h'):
_desktopHelp() _desktopHelp()
elif (commandStr == 'delete' or
commandStr == 'rm' or
commandStr.startswith('delete ') or
commandStr.startswith('rm ')):
currIndex = 0
if ' ' in commandStr:
postIndex = commandStr.split(' ')[-1].strip()
if postIndex.isdigit():
currIndex = int(postIndex)
if currIndex > 0 and boxJson:
postJsonObject = \
_desktopGetBoxPostObject(boxJson, currIndex)
if postJsonObject:
if postJsonObject.get('id'):
domainFull = getFullDomain(domain, port)
actor = httpPrefix + '://' + \
domainFull + '/users/' + nickname
rmActor = postJsonObject['object']['attributedTo']
if rmActor != actor:
sayStr = 'You can only delete your own posts'
_sayCommand(sayStr, sayStr,
screenreader,
systemLanguage, espeak)
else:
sayStr = 'Deleting post'
_sayCommand(sayStr, sayStr,
screenreader,
systemLanguage, espeak)
sessionrm = createSession(proxyType)
sendDeleteViaServer(baseDir, sessionrm,
nickname, password,
domain, port,
httpPrefix,
postJsonObject['id'],
cachedWebfingers, personCache,
False, __version__)
refreshTimeline = True
print('')
if refreshTimeline: if refreshTimeline:
boxJson = c2sBoxJson(baseDir, session, boxJson = c2sBoxJson(baseDir, session,