mirror of https://gitlab.com/bashrc2/epicyon
Merge branch 'main' of ssh://code.freedombone.net:2222/bashrc/epicyon into main
commit
9e7476a08c
|
|
@ -113,7 +113,7 @@ parser.add_argument('--notificationType', '--notifyType',
|
||||||
dest='notificationType', type=str,
|
dest='notificationType', type=str,
|
||||||
default='notify-send',
|
default='notify-send',
|
||||||
help='Type of desktop notification command: ' +
|
help='Type of desktop notification command: ' +
|
||||||
'notify-send/osascript/New-BurntToastNotification')
|
'notify-send/zenity/osascript/New-BurntToastNotification')
|
||||||
parser.add_argument('-o', '--onion', dest='onion', type=str,
|
parser.add_argument('-o', '--onion', dest='onion', type=str,
|
||||||
default=None,
|
default=None,
|
||||||
help='Onion domain name of the server if ' +
|
help='Onion domain name of the server if ' +
|
||||||
|
|
|
||||||
|
|
@ -95,6 +95,10 @@ def _desktopNotification(notificationType: str,
|
||||||
if notificationType == 'notify-send':
|
if notificationType == 'notify-send':
|
||||||
# Ubuntu
|
# Ubuntu
|
||||||
os.system('notify-send "' + title + '" "' + message + '"')
|
os.system('notify-send "' + title + '" "' + message + '"')
|
||||||
|
elif notificationType == 'zenity':
|
||||||
|
# Zenity
|
||||||
|
os.system('zenity --notification --title "' + title +
|
||||||
|
'" --text="' + message + '"')
|
||||||
elif notificationType == 'osascript':
|
elif notificationType == 'osascript':
|
||||||
# Mac
|
# Mac
|
||||||
os.system("osascript -e 'display notification \"" +
|
os.system("osascript -e 'display notification \"" +
|
||||||
|
|
@ -118,14 +122,14 @@ def _textToSpeech(sayStr: str, screenreader: str,
|
||||||
systemLanguage, sayStr)
|
systemLanguage, sayStr)
|
||||||
|
|
||||||
|
|
||||||
def _sayCommand(sayStr: str, screenreader: str,
|
def _sayCommand(content: str, sayStr: str, screenreader: str,
|
||||||
systemLanguage: str,
|
systemLanguage: str,
|
||||||
espeak=None,
|
espeak=None,
|
||||||
speakerName='screen reader',
|
speakerName='screen reader',
|
||||||
speakerGender='They/Them') -> None:
|
speakerGender='They/Them') -> None:
|
||||||
"""Speaks a command
|
"""Speaks a command
|
||||||
"""
|
"""
|
||||||
print(sayStr)
|
print(content)
|
||||||
if not screenreader:
|
if not screenreader:
|
||||||
return
|
return
|
||||||
|
|
||||||
|
|
@ -153,29 +157,30 @@ def _notificationReplyToPost(session, postId: str,
|
||||||
toNickname = getNicknameFromActor(postId)
|
toNickname = getNicknameFromActor(postId)
|
||||||
toDomain, toPort = getDomainFromActor(postId)
|
toDomain, toPort = getDomainFromActor(postId)
|
||||||
sayStr = 'Replying to ' + toNickname + '@' + toDomain
|
sayStr = 'Replying to ' + toNickname + '@' + toDomain
|
||||||
_sayCommand(sayStr,
|
_sayCommand(sayStr, sayStr,
|
||||||
screenreader, systemLanguage, espeak)
|
screenreader, systemLanguage, espeak)
|
||||||
sayStr = 'Type your reply message, then press Enter.'
|
sayStr = 'Type your reply message, then press Enter.'
|
||||||
_sayCommand(sayStr, screenreader, systemLanguage, espeak)
|
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||||
replyMessage = input()
|
replyMessage = input()
|
||||||
if not replyMessage:
|
if not replyMessage:
|
||||||
sayStr = 'No reply was entered.'
|
sayStr = 'No reply was entered.'
|
||||||
_sayCommand(sayStr, screenreader, systemLanguage, espeak)
|
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||||
return
|
return
|
||||||
replyMessage = replyMessage.strip()
|
replyMessage = replyMessage.strip()
|
||||||
if not replyMessage:
|
if not replyMessage:
|
||||||
sayStr = 'No reply was entered.'
|
sayStr = 'No reply was entered.'
|
||||||
_sayCommand(sayStr, screenreader, systemLanguage, espeak)
|
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||||
return
|
return
|
||||||
sayStr = 'You entered this reply:'
|
sayStr = 'You entered this reply:'
|
||||||
_sayCommand(sayStr, screenreader, systemLanguage, espeak)
|
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||||
_sayCommand(replyMessage, screenreader, systemLanguage, espeak)
|
_sayCommand(replyMessage, replyMessage, screenreader,
|
||||||
|
systemLanguage, espeak)
|
||||||
sayStr = 'Send this reply, yes or no?'
|
sayStr = 'Send this reply, yes or no?'
|
||||||
_sayCommand(sayStr, screenreader, systemLanguage, espeak)
|
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||||
yesno = input()
|
yesno = input()
|
||||||
if 'y' not in yesno.lower():
|
if 'y' not in yesno.lower():
|
||||||
sayStr = 'Abandoning reply'
|
sayStr = 'Abandoning reply'
|
||||||
_sayCommand(sayStr, screenreader, systemLanguage, espeak)
|
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||||
return
|
return
|
||||||
ccUrl = None
|
ccUrl = None
|
||||||
followersOnly = False
|
followersOnly = False
|
||||||
|
|
@ -186,7 +191,7 @@ def _notificationReplyToPost(session, postId: str,
|
||||||
subject = None
|
subject = None
|
||||||
commentsEnabled = True
|
commentsEnabled = True
|
||||||
sayStr = 'Sending reply'
|
sayStr = 'Sending reply'
|
||||||
_sayCommand(sayStr, screenreader, systemLanguage, espeak)
|
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||||
if sendPostViaServer(__version__,
|
if sendPostViaServer(__version__,
|
||||||
baseDir, session, nickname, password,
|
baseDir, session, nickname, password,
|
||||||
domain, port,
|
domain, port,
|
||||||
|
|
@ -199,7 +204,7 @@ def _notificationReplyToPost(session, postId: str,
|
||||||
sayStr = 'Reply sent'
|
sayStr = 'Reply sent'
|
||||||
else:
|
else:
|
||||||
sayStr = 'Reply failed'
|
sayStr = 'Reply failed'
|
||||||
_sayCommand(sayStr, screenreader, systemLanguage, espeak)
|
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||||
|
|
||||||
|
|
||||||
def _notificationNewPost(session,
|
def _notificationNewPost(session,
|
||||||
|
|
@ -212,28 +217,28 @@ def _notificationNewPost(session,
|
||||||
"""Use the notification client to create a new post
|
"""Use the notification client to create a new post
|
||||||
"""
|
"""
|
||||||
sayStr = 'Create new post'
|
sayStr = 'Create new post'
|
||||||
_sayCommand(sayStr, screenreader, systemLanguage, espeak)
|
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||||
sayStr = 'Type your post, then press Enter.'
|
sayStr = 'Type your post, then press Enter.'
|
||||||
_sayCommand(sayStr, screenreader, systemLanguage, espeak)
|
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||||
newMessage = input()
|
newMessage = input()
|
||||||
if not newMessage:
|
if not newMessage:
|
||||||
sayStr = 'No post was entered.'
|
sayStr = 'No post was entered.'
|
||||||
_sayCommand(sayStr, screenreader, systemLanguage, espeak)
|
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||||
return
|
return
|
||||||
newMessage = newMessage.strip()
|
newMessage = newMessage.strip()
|
||||||
if not newMessage:
|
if not newMessage:
|
||||||
sayStr = 'No post was entered.'
|
sayStr = 'No post was entered.'
|
||||||
_sayCommand(sayStr, screenreader, systemLanguage, espeak)
|
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||||
return
|
return
|
||||||
sayStr = 'You entered this public post:'
|
sayStr = 'You entered this public post:'
|
||||||
_sayCommand(sayStr, screenreader, systemLanguage, espeak)
|
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||||
_sayCommand(newMessage, screenreader, systemLanguage, espeak)
|
_sayCommand(newMessage, newMessage, screenreader, systemLanguage, espeak)
|
||||||
sayStr = 'Send this post, yes or no?'
|
sayStr = 'Send this post, yes or no?'
|
||||||
_sayCommand(sayStr, screenreader, systemLanguage, espeak)
|
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||||
yesno = input()
|
yesno = input()
|
||||||
if 'y' not in yesno.lower():
|
if 'y' not in yesno.lower():
|
||||||
sayStr = 'Abandoning new post'
|
sayStr = 'Abandoning new post'
|
||||||
_sayCommand(sayStr, screenreader, systemLanguage, espeak)
|
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||||
return
|
return
|
||||||
ccUrl = None
|
ccUrl = None
|
||||||
followersOnly = False
|
followersOnly = False
|
||||||
|
|
@ -245,7 +250,7 @@ def _notificationNewPost(session,
|
||||||
commentsEnabled = True
|
commentsEnabled = True
|
||||||
subject = None
|
subject = None
|
||||||
sayStr = 'Sending'
|
sayStr = 'Sending'
|
||||||
_sayCommand(sayStr, screenreader, systemLanguage, espeak)
|
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||||
if sendPostViaServer(__version__,
|
if sendPostViaServer(__version__,
|
||||||
baseDir, session, nickname, password,
|
baseDir, session, nickname, password,
|
||||||
domain, port,
|
domain, port,
|
||||||
|
|
@ -258,7 +263,7 @@ def _notificationNewPost(session,
|
||||||
sayStr = 'Post sent'
|
sayStr = 'Post sent'
|
||||||
else:
|
else:
|
||||||
sayStr = 'Post failed'
|
sayStr = 'Post failed'
|
||||||
_sayCommand(sayStr, screenreader, systemLanguage, espeak)
|
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
|
||||||
|
|
||||||
|
|
||||||
def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
||||||
|
|
@ -281,7 +286,7 @@ def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
||||||
return
|
return
|
||||||
|
|
||||||
sayStr = 'Running ' + screenreader + ' for ' + nickname + '@' + domain
|
sayStr = 'Running ' + screenreader + ' for ' + nickname + '@' + domain
|
||||||
_sayCommand(sayStr, screenreader,
|
_sayCommand(sayStr, sayStr, screenreader,
|
||||||
systemLanguage, espeak)
|
systemLanguage, espeak)
|
||||||
else:
|
else:
|
||||||
print('Running desktop notifications for ' + nickname + '@' + domain)
|
print('Running desktop notifications for ' + nickname + '@' + domain)
|
||||||
|
|
@ -289,10 +294,10 @@ def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
||||||
sayStr = 'Notification sounds on'
|
sayStr = 'Notification sounds on'
|
||||||
else:
|
else:
|
||||||
sayStr = 'Notification sounds off'
|
sayStr = 'Notification sounds off'
|
||||||
_sayCommand(sayStr, screenreader,
|
_sayCommand(sayStr, sayStr, screenreader,
|
||||||
systemLanguage, espeak)
|
systemLanguage, espeak)
|
||||||
sayStr = '/q or /quit to exit'
|
sayStr = '/q or /quit to exit'
|
||||||
_sayCommand(sayStr, screenreader,
|
_sayCommand(sayStr, sayStr, screenreader,
|
||||||
systemLanguage, espeak)
|
systemLanguage, espeak)
|
||||||
print('')
|
print('')
|
||||||
keyPress = _waitForKeypress(2, debug)
|
keyPress = _waitForKeypress(2, debug)
|
||||||
|
|
@ -410,15 +415,19 @@ def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
||||||
messageStr = speakerJson['say'] + '. ' + \
|
messageStr = speakerJson['say'] + '. ' + \
|
||||||
speakerJson['imageDescription']
|
speakerJson['imageDescription']
|
||||||
|
|
||||||
|
content = messageStr
|
||||||
|
if speakerJson.get('content'):
|
||||||
|
content = speakerJson['content']
|
||||||
|
|
||||||
# say the speaker's name
|
# say the speaker's name
|
||||||
_sayCommand(nameStr, screenreader,
|
_sayCommand(nameStr, nameStr, screenreader,
|
||||||
systemLanguage, espeak,
|
systemLanguage, espeak,
|
||||||
nameStr, gender)
|
nameStr, gender)
|
||||||
|
|
||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
|
|
||||||
# speak the post content
|
# speak the post content
|
||||||
_sayCommand(messageStr, screenreader,
|
_sayCommand(content, messageStr, screenreader,
|
||||||
systemLanguage, espeak,
|
systemLanguage, espeak,
|
||||||
nameStr, gender)
|
nameStr, gender)
|
||||||
|
|
||||||
|
|
@ -433,7 +442,7 @@ def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
||||||
keyPress = keyPress[1:]
|
keyPress = keyPress[1:]
|
||||||
if keyPress == 'q' or keyPress == 'quit' or keyPress == 'exit':
|
if keyPress == 'q' or keyPress == 'quit' or keyPress == 'exit':
|
||||||
sayStr = 'Quit'
|
sayStr = 'Quit'
|
||||||
_sayCommand(sayStr, screenreader,
|
_sayCommand(sayStr, sayStr, screenreader,
|
||||||
systemLanguage, espeak)
|
systemLanguage, espeak)
|
||||||
if screenreader:
|
if screenreader:
|
||||||
keyPress = _waitForKeypress(2, debug)
|
keyPress = _waitForKeypress(2, debug)
|
||||||
|
|
@ -465,7 +474,8 @@ def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
||||||
print('')
|
print('')
|
||||||
elif keyPress == 'like':
|
elif keyPress == 'like':
|
||||||
if nameStr and gender and messageStr:
|
if nameStr and gender and messageStr:
|
||||||
_sayCommand('Liking post by ' + nameStr,
|
sayStr = 'Liking post by ' + nameStr
|
||||||
|
_sayCommand(sayStr, sayStr,
|
||||||
screenreader,
|
screenreader,
|
||||||
systemLanguage, espeak)
|
systemLanguage, espeak)
|
||||||
sessionLike = createSession(proxyType)
|
sessionLike = createSession(proxyType)
|
||||||
|
|
@ -478,7 +488,8 @@ def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
||||||
print('')
|
print('')
|
||||||
elif keyPress == 'unlike' or keyPress == 'undo like':
|
elif keyPress == 'unlike' or keyPress == 'undo like':
|
||||||
if nameStr and gender and messageStr:
|
if nameStr and gender and messageStr:
|
||||||
_sayCommand('Undoing like of post by ' + nameStr,
|
sayStr = 'Undoing like of post by ' + nameStr
|
||||||
|
_sayCommand(sayStr, sayStr,
|
||||||
screenreader,
|
screenreader,
|
||||||
systemLanguage, espeak)
|
systemLanguage, espeak)
|
||||||
sessionUnlike = createSession(proxyType)
|
sessionUnlike = createSession(proxyType)
|
||||||
|
|
@ -495,7 +506,8 @@ def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
||||||
if speakerJson.get('id'):
|
if speakerJson.get('id'):
|
||||||
if nameStr and gender and messageStr:
|
if nameStr and gender and messageStr:
|
||||||
postId = speakerJson['id']
|
postId = speakerJson['id']
|
||||||
_sayCommand('Announcing post by ' + nameStr,
|
sayStr = 'Announcing post by ' + nameStr
|
||||||
|
_sayCommand(sayStr, sayStr,
|
||||||
screenreader,
|
screenreader,
|
||||||
systemLanguage, espeak)
|
systemLanguage, espeak)
|
||||||
sessionAnnounce = createSession(proxyType)
|
sessionAnnounce = createSession(proxyType)
|
||||||
|
|
@ -515,8 +527,9 @@ def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
||||||
followDomain, followPort = \
|
followDomain, followPort = \
|
||||||
getDomainFromActor(followHandle)
|
getDomainFromActor(followHandle)
|
||||||
if followNickname and followDomain:
|
if followNickname and followDomain:
|
||||||
_sayCommand('Sending follow request to ' +
|
sayStr = 'Sending follow request to ' + \
|
||||||
followNickname + '@' + followDomain,
|
followNickname + '@' + followDomain
|
||||||
|
_sayCommand(sayStr, sayStr,
|
||||||
screenreader, systemLanguage, espeak)
|
screenreader, systemLanguage, espeak)
|
||||||
sessionFollow = createSession(proxyType)
|
sessionFollow = createSession(proxyType)
|
||||||
sendFollowRequestViaServer(baseDir, sessionFollow,
|
sendFollowRequestViaServer(baseDir, sessionFollow,
|
||||||
|
|
@ -530,7 +543,8 @@ def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
||||||
personCache,
|
personCache,
|
||||||
debug, __version__)
|
debug, __version__)
|
||||||
else:
|
else:
|
||||||
_sayCommand(followHandle + ' is not valid',
|
sayStr = followHandle + ' is not valid'
|
||||||
|
_sayCommand(sayStr,
|
||||||
screenreader, systemLanguage, espeak)
|
screenreader, systemLanguage, espeak)
|
||||||
print('')
|
print('')
|
||||||
elif (keyPress.startswith('unfollow ') or
|
elif (keyPress.startswith('unfollow ') or
|
||||||
|
|
@ -544,8 +558,9 @@ def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
||||||
followDomain, followPort = \
|
followDomain, followPort = \
|
||||||
getDomainFromActor(followHandle)
|
getDomainFromActor(followHandle)
|
||||||
if followNickname and followDomain:
|
if followNickname and followDomain:
|
||||||
_sayCommand('Stop following ' +
|
sayStr = 'Stop following ' + \
|
||||||
followNickname + '@' + followDomain,
|
followNickname + '@' + followDomain
|
||||||
|
_sayCommand(sayStr, sayStr,
|
||||||
screenreader, systemLanguage, espeak)
|
screenreader, systemLanguage, espeak)
|
||||||
sessionUnfollow = createSession(proxyType)
|
sessionUnfollow = createSession(proxyType)
|
||||||
sendUnfollowRequestViaServer(baseDir, sessionUnfollow,
|
sendUnfollowRequestViaServer(baseDir, sessionUnfollow,
|
||||||
|
|
@ -559,28 +574,30 @@ def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
||||||
personCache,
|
personCache,
|
||||||
debug, __version__)
|
debug, __version__)
|
||||||
else:
|
else:
|
||||||
_sayCommand(followHandle + ' is not valid',
|
sayStr = followHandle + ' is not valid'
|
||||||
|
_sayCommand(sayStr, sayStr,
|
||||||
screenreader, systemLanguage, espeak)
|
screenreader, systemLanguage, espeak)
|
||||||
print('')
|
print('')
|
||||||
elif (keyPress == 'repeat' or keyPress == 'replay' or
|
elif (keyPress == 'repeat' or keyPress == 'replay' or
|
||||||
keyPress == 'rp'):
|
keyPress == 'rp'):
|
||||||
if nameStr and gender and messageStr:
|
if nameStr and gender and messageStr and content:
|
||||||
_sayCommand('Repeating ' + nameStr, screenreader,
|
sayStr = 'Repeating ' + nameStr, screenreader
|
||||||
|
_sayCommand(sayStr, sayStr,
|
||||||
systemLanguage, espeak,
|
systemLanguage, espeak,
|
||||||
nameStr, gender)
|
nameStr, gender)
|
||||||
time.sleep(2)
|
time.sleep(2)
|
||||||
_sayCommand(messageStr, screenreader,
|
_sayCommand(content, messageStr, screenreader,
|
||||||
systemLanguage, espeak,
|
systemLanguage, espeak,
|
||||||
nameStr, gender)
|
nameStr, gender)
|
||||||
print('')
|
print('')
|
||||||
elif keyPress == 'sounds on' or keyPress == 'sound':
|
elif keyPress == 'sounds on' or keyPress == 'sound':
|
||||||
sayStr = 'Notification sounds on'
|
sayStr = 'Notification sounds on'
|
||||||
_sayCommand(sayStr, screenreader,
|
_sayCommand(sayStr, sayStr, screenreader,
|
||||||
systemLanguage, espeak)
|
systemLanguage, espeak)
|
||||||
notificationSounds = True
|
notificationSounds = True
|
||||||
elif keyPress == 'sounds off' or keyPress == 'nosound':
|
elif keyPress == 'sounds off' or keyPress == 'nosound':
|
||||||
sayStr = 'Notification sounds off'
|
sayStr = 'Notification sounds off'
|
||||||
_sayCommand(sayStr, screenreader,
|
_sayCommand(sayStr, sayStr, screenreader,
|
||||||
systemLanguage, espeak)
|
systemLanguage, espeak)
|
||||||
notificationSounds = False
|
notificationSounds = False
|
||||||
elif (keyPress == 'speak' or
|
elif (keyPress == 'speak' or
|
||||||
|
|
@ -591,7 +608,7 @@ def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
||||||
if originalScreenReader:
|
if originalScreenReader:
|
||||||
screenreader = originalScreenReader
|
screenreader = originalScreenReader
|
||||||
sayStr = 'Screen reader on'
|
sayStr = 'Screen reader on'
|
||||||
_sayCommand(sayStr, screenreader,
|
_sayCommand(sayStr, sayStr, screenreader,
|
||||||
systemLanguage, espeak)
|
systemLanguage, espeak)
|
||||||
else:
|
else:
|
||||||
print('No --screenreader option was specified')
|
print('No --screenreader option was specified')
|
||||||
|
|
@ -603,7 +620,7 @@ def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
|
||||||
if originalScreenReader:
|
if originalScreenReader:
|
||||||
screenreader = None
|
screenreader = None
|
||||||
sayStr = 'Screen reader off'
|
sayStr = 'Screen reader off'
|
||||||
_sayCommand(sayStr, originalScreenReader,
|
_sayCommand(sayStr, sayStr, originalScreenReader,
|
||||||
systemLanguage, espeak)
|
systemLanguage, espeak)
|
||||||
else:
|
else:
|
||||||
print('No --screenreader option was specified')
|
print('No --screenreader option was specified')
|
||||||
|
|
|
||||||
31
speaker.py
31
speaker.py
|
|
@ -274,18 +274,21 @@ def getSpeakerFromServer(baseDir: str, session,
|
||||||
|
|
||||||
|
|
||||||
def _speakerEndpointJson(displayName: str, summary: str,
|
def _speakerEndpointJson(displayName: str, summary: str,
|
||||||
content: str, imageDescription: str,
|
content: str, sayContent: str,
|
||||||
|
imageDescription: str,
|
||||||
links: [], gender: str, postId: str,
|
links: [], gender: str, postId: str,
|
||||||
postDM: bool, postReply: bool,
|
postDM: bool, postReply: bool,
|
||||||
followRequestsExist: bool,
|
followRequestsExist: bool,
|
||||||
likedBy: str, postCal: bool,
|
likedBy: str, published: str, postCal: bool,
|
||||||
postShare: bool, themeName: str) -> {}:
|
postShare: bool, themeName: str) -> {}:
|
||||||
"""Returns a json endpoint for the TTS speaker
|
"""Returns a json endpoint for the TTS speaker
|
||||||
"""
|
"""
|
||||||
speakerJson = {
|
speakerJson = {
|
||||||
"name": displayName,
|
"name": displayName,
|
||||||
"summary": summary,
|
"summary": summary,
|
||||||
"say": content,
|
"content": content,
|
||||||
|
"say": sayContent,
|
||||||
|
"published": published,
|
||||||
"imageDescription": imageDescription,
|
"imageDescription": imageDescription,
|
||||||
"detectedLinks": links,
|
"detectedLinks": links,
|
||||||
"id": postId,
|
"id": postId,
|
||||||
|
|
@ -412,11 +415,16 @@ def _postToSpeakerJson(baseDir: str, httpPrefix: str,
|
||||||
content = content.replace(' <3', ' ' + translate['heart'])
|
content = content.replace(' <3', ' ' + translate['heart'])
|
||||||
content = removeHtml(htmlReplaceQuoteMarks(content))
|
content = removeHtml(htmlReplaceQuoteMarks(content))
|
||||||
content = speakerReplaceLinks(content, translate, detectedLinks)
|
content = speakerReplaceLinks(content, translate, detectedLinks)
|
||||||
content = _speakerPronounce(baseDir, content, translate)
|
|
||||||
# replace all double spaces
|
# replace all double spaces
|
||||||
while ' ' in content:
|
while ' ' in content:
|
||||||
content = content.replace(' ', ' ')
|
content = content.replace(' ', ' ')
|
||||||
content = content.replace(' . ', '. ')
|
content = content.replace(' . ', '. ').strip()
|
||||||
|
sayContent = content
|
||||||
|
sayContent = _speakerPronounce(baseDir, content, translate)
|
||||||
|
# replace all double spaces
|
||||||
|
while ' ' in sayContent:
|
||||||
|
sayContent = sayContent.replace(' ', ' ')
|
||||||
|
sayContent = sayContent.replace(' . ', '. ').strip()
|
||||||
|
|
||||||
imageDescription = ''
|
imageDescription = ''
|
||||||
if postJsonObject['object'].get('attachment'):
|
if postJsonObject['object'].get('attachment'):
|
||||||
|
|
@ -430,6 +438,10 @@ def _postToSpeakerJson(baseDir: str, httpPrefix: str,
|
||||||
imageDescription += \
|
imageDescription += \
|
||||||
img['name'] + '. '
|
img['name'] + '. '
|
||||||
|
|
||||||
|
published = ''
|
||||||
|
if postJsonObject['object'].get('published'):
|
||||||
|
published = postJsonObject['object']['published']
|
||||||
|
|
||||||
summary = ''
|
summary = ''
|
||||||
if postJsonObject['object'].get('summary'):
|
if postJsonObject['object'].get('summary'):
|
||||||
if isinstance(postJsonObject['object']['summary'], str):
|
if isinstance(postJsonObject['object']['summary'], str):
|
||||||
|
|
@ -451,8 +463,9 @@ def _postToSpeakerJson(baseDir: str, httpPrefix: str,
|
||||||
announcedDomain, announcedport = getDomainFromActor(announcingActor)
|
announcedDomain, announcedport = getDomainFromActor(announcingActor)
|
||||||
if announcedNickname and announcedDomain:
|
if announcedNickname and announcedDomain:
|
||||||
announcedHandle = announcedNickname + '@' + announcedDomain
|
announcedHandle = announcedNickname + '@' + announcedDomain
|
||||||
content = \
|
sayContent = \
|
||||||
translate['announces'] + ' ' + announcedHandle + '. ' + content
|
translate['announces'] + ' ' + \
|
||||||
|
announcedHandle + '. ' + sayContent
|
||||||
postId = None
|
postId = None
|
||||||
if postJsonObject['object'].get('id'):
|
if postJsonObject['object'].get('id'):
|
||||||
postId = postJsonObject['object']['id']
|
postId = postJsonObject['object']['id']
|
||||||
|
|
@ -484,11 +497,11 @@ def _postToSpeakerJson(baseDir: str, httpPrefix: str,
|
||||||
postShare = os.path.isfile(shareFilename)
|
postShare = os.path.isfile(shareFilename)
|
||||||
|
|
||||||
return _speakerEndpointJson(speakerName, summary,
|
return _speakerEndpointJson(speakerName, summary,
|
||||||
content, imageDescription,
|
content, sayContent, imageDescription,
|
||||||
detectedLinks, gender, postId,
|
detectedLinks, gender, postId,
|
||||||
postDM, postReply,
|
postDM, postReply,
|
||||||
followRequestsExist,
|
followRequestsExist,
|
||||||
likedBy,
|
likedBy, published,
|
||||||
postCal, postShare, themeName)
|
postCal, postShare, themeName)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue