Merge branch 'main' of ssh://code.freedombone.net:2222/bashrc/epicyon into main

main
Bob Mottram 2021-03-10 19:25:36 +00:00
commit ccf9bc1960
12 changed files with 92 additions and 40 deletions

View File

@ -256,7 +256,8 @@ def sendAnnounceViaServer(baseDir: str, session,
'Content-type': 'application/json',
'Authorization': authHeader
}
postResult = postJson(session, newAnnounceJson, [], inboxUrl, headers)
postResult = postJson(session, newAnnounceJson, [], inboxUrl,
headers, 30, True)
if not postResult:
print('WARN: Announce not posted')

View File

@ -142,7 +142,7 @@ def sendAvailabilityViaServer(baseDir: str, session,
'Authorization': authHeader
}
postResult = postJson(session, newAvailabilityJson, [],
inboxUrl, headers)
inboxUrl, headers, 30, True)
if not postResult:
print('WARN: failed to post availability')

View File

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

View File

@ -1004,7 +1004,7 @@ def sendFollowRequestViaServer(baseDir: str, session,
'Authorization': authHeader
}
postResult = \
postJson(session, newFollowJson, [], inboxUrl, headers)
postJson(session, newFollowJson, [], inboxUrl, headers, 30, True)
if not postResult:
if debug:
print('DEBUG: POST announce failed for c2s to ' + inboxUrl)
@ -1096,7 +1096,7 @@ def sendUnfollowRequestViaServer(baseDir: str, session,
'Authorization': authHeader
}
postResult = \
postJson(session, unfollowJson, [], inboxUrl, headers)
postJson(session, unfollowJson, [], inboxUrl, headers, 30, True)
if not postResult:
if debug:
print('DEBUG: POST announce failed for c2s to ' + inboxUrl)

View File

@ -203,7 +203,8 @@ def sendLikeViaServer(baseDir: str, session,
'Content-type': 'application/json',
'Authorization': authHeader
}
postResult = postJson(session, newLikeJson, [], inboxUrl, headers, 30)
postResult = postJson(session, newLikeJson, [], inboxUrl,
headers, 30, True)
if not postResult:
print('WARN: POST announce failed for c2s to ' + inboxUrl)
return 5
@ -282,7 +283,8 @@ def sendUndoLikeViaServer(baseDir: str, session,
'Content-type': 'application/json',
'Authorization': authHeader
}
postResult = postJson(session, newUndoLikeJson, [], inboxUrl, headers)
postResult = postJson(session, newUndoLikeJson, [], inboxUrl,
headers, 30, True)
if not postResult:
print('WARN: POST announce failed for c2s to ' + inboxUrl)
return 5

View File

@ -23,6 +23,7 @@ from like import sendLikeViaServer
from like import sendUndoLikeViaServer
from follow import sendFollowRequestViaServer
from follow import sendUnfollowRequestViaServer
from posts import sendPostViaServer
def _waitForKeypress(timeout: int, debug: bool) -> str:
@ -137,7 +138,11 @@ def _sayCommand(sayStr: str, screenreader: str,
systemLanguage, espeak)
def _replyToPost(postId: str,
def _replyToPost(session, postId: str,
baseDir: str, nickname: str, password: str,
domain: str, port: int, httpPrefix: str,
cachedWebfingers: {}, personCache: {},
debug: bool, subject: str,
screenreader: str, systemLanguage: str, espeak) -> None:
"""Use the notification client to send a reply to the most recent post
"""
@ -171,6 +176,23 @@ def _replyToPost(postId: str,
sayStr = 'Abandoning reply'
_sayCommand(sayStr, screenreader, systemLanguage, espeak)
return
ccUrl = None
followersOnly = False
attach = None
mediaType = None
attachedImageDescription = None
isArticle = False
subject = None
commentsEnabled = True
sendPostViaServer(__version__,
baseDir, session, nickname, password,
domain, port,
toNickname, toDomain, toPort, ccUrl,
httpPrefix, replyMessage, followersOnly,
commentsEnabled, attach, mediaType,
attachedImageDescription,
cachedWebfingers, personCache, isArticle,
debug, postId, postId, subject)
def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
@ -348,12 +370,21 @@ def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
_sayCommand(sayStr, screenreader,
systemLanguage, espeak)
if screenreader:
keyPress = _waitForKeypress(2, dbug)
keyPress = _waitForKeypress(2, debug)
break
elif keyPress == 'reply' or keyPress == 'r':
if speakerJson.get('id'):
postId = speakerJson['id']
_replyToPost(postId, screenreader, systemLanguage, espeak)
subject = None
if speakerJson.get('summary'):
subject = speakerJson['summary']
sessionReply = createSession(proxyType)
_replyToPost(sessionReply, postId,
baseDir, nickname, password,
domain, port, httpPrefix,
cachedWebfingers, personCache,
debug, subject,
screenreader, systemLanguage, espeak)
print('')
elif keyPress == 'like':
if nameStr and gender and messageStr:

View File

@ -2141,7 +2141,7 @@ def sendPostViaServer(projectVersion: str,
postDumps = json.dumps(postJsonObject)
postResult = \
postJsonString(session, postDumps, [],
inboxUrl, headers, debug)
inboxUrl, headers, debug, 60, True)
if not postResult:
if debug:
print('DEBUG: POST failed for c2s to '+inboxUrl)
@ -4184,7 +4184,8 @@ def sendBlockViaServer(baseDir: str, session,
'Content-type': 'application/json',
'Authorization': authHeader
}
postResult = postJson(session, newBlockJson, [], inboxUrl, headers)
postResult = postJson(session, newBlockJson, [], inboxUrl,
headers, 30, True)
if not postResult:
print('WARN: Unable to post block')
@ -4266,7 +4267,8 @@ def sendUndoBlockViaServer(baseDir: str, session,
'Content-type': 'application/json',
'Authorization': authHeader
}
postResult = postJson(session, newBlockJson, [], inboxUrl, headers)
postResult = postJson(session, newBlockJson, [], inboxUrl,
headers, 30, True)
if not postResult:
print('WARN: Unable to post block')

View File

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

View File

@ -137,11 +137,12 @@ def getJson(session, url: str, headers: {}, params: {},
def postJson(session, postJsonObject: {}, federationList: [],
inboxUrl: str, headers: {}, timeoutSec=60) -> str:
inboxUrl: str, headers: {}, timeoutSec=60, quiet=False) -> str:
"""Post a json message to the inbox of another person
"""
# check that we are posting to a permitted domain
if not urlPermitted(inboxUrl, federationList):
if not quiet:
print('postJson: ' + inboxUrl + ' not permitted')
return None
@ -151,15 +152,17 @@ def postJson(session, postJsonObject: {}, federationList: [],
data=json.dumps(postJsonObject),
headers=headers, timeout=timeoutSec)
except requests.exceptions.RequestException as e:
if not quiet:
print('ERROR: postJson requests failed ' + inboxUrl + ' ' +
json.dumps(postJsonObject) + ' ' + str(headers))
print(e)
return None
except SocketError as e:
if e.errno == errno.ECONNRESET:
if not quiet and e.errno == errno.ECONNRESET:
print('WARN: connection was reset during postJson')
return None
except ValueError as e:
if not quiet:
print('ERROR: postJson failed ' + inboxUrl + ' ' +
json.dumps(postJsonObject) + ' ' + str(headers))
print(e)
@ -173,7 +176,9 @@ def postJsonString(session, postJsonStr: str,
federationList: [],
inboxUrl: str,
headers: {},
debug: bool) -> (bool, bool):
debug: bool,
timeoutSec=30,
quiet=False) -> (bool, bool):
"""Post a json message string to the inbox of another person
The second boolean returned is true if the send is unauthorized
NOTE: Here we post a string rather than the original json so that
@ -182,18 +187,22 @@ def postJsonString(session, postJsonStr: str,
"""
try:
postResult = \
session.post(url=inboxUrl, data=postJsonStr, headers=headers)
session.post(url=inboxUrl, data=postJsonStr,
headers=headers, timeout=timeoutSec)
except requests.exceptions.RequestException as e:
if not quiet:
print('WARN: error during postJsonString requests')
print(e)
return None, None
except SocketError as e:
if e.errno == errno.ECONNRESET:
if not quiet and e.errno == errno.ECONNRESET:
print('WARN: connection was reset during postJsonString')
if not quiet:
print('ERROR: postJsonString failed ' + inboxUrl + ' ' +
postJsonStr + ' ' + str(headers))
return None, None
except ValueError as e:
if not quiet:
print('WARN: error during postJsonString')
print(e)
return None, None
@ -201,10 +210,13 @@ def postJsonString(session, postJsonStr: str,
if postResult.status_code >= 400 and \
postResult.status_code <= 405 and \
postResult.status_code != 404:
print('WARN: Post to ' + inboxUrl + ' is unauthorized. Code ' +
if not quiet:
print('WARN: Post to ' + inboxUrl +
' is unauthorized. Code ' +
str(postResult.status_code))
return False, True
else:
if not quiet:
print('WARN: Failed to post to ' + inboxUrl +
' with headers ' + str(headers))
print('status code ' + str(postResult.status_code))

View File

@ -406,7 +406,7 @@ def sendShareViaServer(baseDir, session,
'Authorization': authHeader
}
postResult = \
postJson(session, newShareJson, [], inboxUrl, headers)
postJson(session, newShareJson, [], inboxUrl, headers, 30, True)
if not postResult:
if debug:
print('DEBUG: POST announce failed for c2s to ' + inboxUrl)
@ -495,7 +495,8 @@ def sendUndoShareViaServer(baseDir: str, session,
'Authorization': authHeader
}
postResult = \
postJson(session, undoShareJson, [], inboxUrl, headers)
postJson(session, undoShareJson, [], inboxUrl,
headers, 30, True)
if not postResult:
if debug:
print('DEBUG: POST announce failed for c2s to ' + inboxUrl)

View File

@ -160,7 +160,8 @@ def sendSkillViaServer(baseDir: str, session, nickname: str, password: str,
'Authorization': authHeader
}
postResult = \
postJson(session, newSkillJson, [], inboxUrl, headers)
postJson(session, newSkillJson, [], inboxUrl,
headers, 30, True)
if not postResult:
if debug:
print('DEBUG: POST announce failed for c2s to ' + inboxUrl)

View File

@ -90,6 +90,8 @@ def _speakerPronounce(baseDir: str, sayText: str, translate: {}) -> str:
"Gmail": "G-mail",
"OpenPGP": "Open P-G-P",
"Tor": "Toor",
"memes": "meemes",
"Memes": "Meemes",
"fwiw": "for what it's worth",
"fyi": "for your information",
"imho": "in my opinion",