mirror of https://gitlab.com/bashrc2/epicyon
Send DMs from notification client
parent
85897ca526
commit
ec63a0ea44
|
@ -266,6 +266,76 @@ def _notificationNewPost(session,
|
|||
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||
|
||||
|
||||
def _notificationNewDM(session, toHandle: str,
|
||||
baseDir: str, nickname: str, password: str,
|
||||
domain: str, port: int, httpPrefix: str,
|
||||
cachedWebfingers: {}, personCache: {},
|
||||
debug: bool,
|
||||
screenreader: str, systemLanguage: str,
|
||||
espeak) -> None:
|
||||
"""Use the notification client to create a new direct message
|
||||
"""
|
||||
toPort = port
|
||||
if '://' in toHandle:
|
||||
toNickname = getNicknameFromActor(toHandle)
|
||||
toDomain, toPort = getDomainFromActor(toHandle)
|
||||
toHandle = toNickname + '@' + toDomain
|
||||
else:
|
||||
if toHandle.startswith('@'):
|
||||
toHandle = toHandle[1:]
|
||||
toNickname = toHandle.split('@')[0]
|
||||
toDomain = toHandle.split('@')[1]
|
||||
|
||||
sayStr = 'Create new direct message to ' + toHandle
|
||||
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||
sayStr = 'Type your direct message, then press Enter.'
|
||||
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||
newMessage = input()
|
||||
if not newMessage:
|
||||
sayStr = 'No direct message was entered.'
|
||||
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||
return
|
||||
newMessage = newMessage.strip()
|
||||
if not newMessage:
|
||||
sayStr = 'No direct message was entered.'
|
||||
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||
return
|
||||
sayStr = 'You entered this direct message to ' + toHandle + ':'
|
||||
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||
_sayCommand(newMessage, newMessage, screenreader, systemLanguage, espeak)
|
||||
sayStr = 'Send this direct message, yes or no?'
|
||||
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||
yesno = input()
|
||||
if 'y' not in yesno.lower():
|
||||
sayStr = 'Abandoning new direct message'
|
||||
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||
return
|
||||
ccUrl = None
|
||||
followersOnly = False
|
||||
attach = None
|
||||
mediaType = None
|
||||
attachedImageDescription = None
|
||||
isArticle = False
|
||||
subject = None
|
||||
commentsEnabled = True
|
||||
subject = None
|
||||
sayStr = 'Sending'
|
||||
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||
if sendPostViaServer(__version__,
|
||||
baseDir, session, nickname, password,
|
||||
domain, port,
|
||||
toNickname, toDomain, toPort, ccUrl,
|
||||
httpPrefix, newMessage, followersOnly,
|
||||
commentsEnabled, attach, mediaType,
|
||||
attachedImageDescription,
|
||||
cachedWebfingers, personCache, isArticle,
|
||||
debug, None, None, subject) == 0:
|
||||
sayStr = 'Direct message sent'
|
||||
else:
|
||||
sayStr = 'Direct message failed'
|
||||
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||
|
||||
|
||||
def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
||||
nickname: str, domain: str, port: int,
|
||||
password: str, screenreader: str,
|
||||
|
@ -463,15 +533,35 @@ def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
|||
screenreader, systemLanguage,
|
||||
espeak)
|
||||
print('')
|
||||
elif keyPress == 'post' or keyPress == 'p':
|
||||
elif (keyPress == 'post' or keyPress == 'p' or
|
||||
keyPress == 'send' or
|
||||
keyPress.startswith('post ') or
|
||||
keyPress.startswith('send ')):
|
||||
sessionPost = createSession(proxyType)
|
||||
_notificationNewPost(sessionPost,
|
||||
baseDir, nickname, password,
|
||||
domain, port, httpPrefix,
|
||||
cachedWebfingers, personCache,
|
||||
debug,
|
||||
screenreader, systemLanguage,
|
||||
espeak)
|
||||
if keyPress.startswith('post ') or \
|
||||
keyPress.startswith('send '):
|
||||
keyPress = keyPress.replace(' to ', '')
|
||||
# direct message
|
||||
if keyPress.startswith('post '):
|
||||
toHandle = keyPress.split('post ', 1)[1]
|
||||
else:
|
||||
toHandle = keyPress.split('send ', 1)[1]
|
||||
_notificationNewDM(sessionPost, toHandle,
|
||||
baseDir, nickname, password,
|
||||
domain, port, httpPrefix,
|
||||
cachedWebfingers, personCache,
|
||||
debug,
|
||||
screenreader, systemLanguage,
|
||||
espeak)
|
||||
else:
|
||||
# public post
|
||||
_notificationNewPost(sessionPost,
|
||||
baseDir, nickname, password,
|
||||
domain, port, httpPrefix,
|
||||
cachedWebfingers, personCache,
|
||||
debug,
|
||||
screenreader, systemLanguage,
|
||||
espeak)
|
||||
print('')
|
||||
elif keyPress == 'like':
|
||||
if nameStr and gender and messageStr:
|
||||
|
|
|
@ -169,7 +169,7 @@ def speakerReplaceLinks(sayText: str, translate: {},
|
|||
prevWord = ''
|
||||
for word in wordsList:
|
||||
if word.startswith('v='):
|
||||
replacements[word] = ''
|
||||
replacements[word] = ''
|
||||
if word.startswith(':'):
|
||||
if word.endswith(':'):
|
||||
replacements[word] = ', emowji ' + word.replace(':', '') + ','
|
||||
|
|
Loading…
Reference in New Issue