Show follow requests with timeline in desktop client

merge-requests/30/head
Bob Mottram 2021-03-24 17:07:14 +00:00
parent 542f34a7d1
commit 16a93ac74d
1 changed files with 62 additions and 20 deletions

View File

@ -872,7 +872,10 @@ def _highlightText(text: str) -> str:
return '\33[7m' + text + '\33[0m' return '\33[7m' + text + '\33[0m'
def _desktopShowBox(yourActor: str, boxName: str, boxJson: {}, def _desktopShowBox(indent: str,
followRequestsJson: {},
yourActor: str, boxName: str, boxJson: {},
translate: {},
screenreader: str, systemLanguage: str, espeak, screenreader: str, systemLanguage: str, espeak,
pageNumber=1, pageNumber=1,
newReplies=False, newReplies=False,
@ -882,7 +885,6 @@ def _desktopShowBox(yourActor: str, boxName: str, boxJson: {},
numberWidth = 2 numberWidth = 2
nameWidth = 16 nameWidth = 16
contentWidth = 50 contentWidth = 50
indent = ' '
# title # title
_desktopClearScreen() _desktopClearScreen()
@ -1024,6 +1026,9 @@ def _desktopShowBox(yourActor: str, boxName: str, boxJson: {},
print(lineStr) print(lineStr)
ctr += 1 ctr += 1
if followRequestsJson:
_desktopShowFollowRequests(followRequestsJson, translate)
print('') print('')
# say the post number range # say the post number range
@ -1176,6 +1181,24 @@ def _desktopNewDMbase(session, toHandle: str,
_sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak) _sayCommand(sayStr, sayStr, screenreader, systemLanguage, espeak)
def _desktopShowFollowRequests(followRequestsJson: {}, translate: {}) -> None:
"""Shows any follow requests
"""
if not followRequestsJson['orderedItems']:
return
indent = ' '
print('')
print(indent + 'Follow requests:')
print('')
for item in followRequestsJson['orderedItems']:
handleNickname = getNicknameFromActor(item)
handleDomain, handlePort = getDomainFromActor(item)
handleDomainFull = \
getFullDomain(handleDomain, handlePort)
print(indent + ' 👤 ' +
handleNickname + '@' + handleDomainFull)
def runDesktopClient(baseDir: str, proxyType: str, httpPrefix: str, def runDesktopClient(baseDir: str, proxyType: str, httpPrefix: str,
nickname: str, domain: str, port: int, nickname: str, domain: str, port: int,
password: str, screenreader: str, password: str, screenreader: str,
@ -1297,6 +1320,14 @@ def runDesktopClient(baseDir: str, proxyType: str, httpPrefix: str,
currTimeline, pageNumber, currTimeline, pageNumber,
debug) debug)
followRequestsJson = \
getFollowRequestsViaServer(baseDir, session,
nickname, password,
domain, port,
httpPrefix, 1,
cachedWebfingers, personCache,
debug, __version__)
if not (currTimeline == 'inbox' and pageNumber == 1): if not (currTimeline == 'inbox' and pageNumber == 1):
# monitor the inbox to generate notifications # monitor the inbox to generate notifications
inboxJson = c2sBoxJson(baseDir, session, inboxJson = c2sBoxJson(baseDir, session,
@ -1330,7 +1361,9 @@ def runDesktopClient(baseDir: str, proxyType: str, httpPrefix: str,
timelineFirstId = _getFirstItemId(boxJson) timelineFirstId = _getFirstItemId(boxJson)
if timelineFirstId != prevTimelineFirstId: if timelineFirstId != prevTimelineFirstId:
_desktopClearScreen() _desktopClearScreen()
_desktopShowBox(yourActor, currTimeline, boxJson, _desktopShowBox(indent, followRequestsJson,
yourActor, currTimeline, boxJson,
translate,
None, systemLanguage, espeak, None, systemLanguage, espeak,
pageNumber, pageNumber,
newRepliesExist, newRepliesExist,
@ -1368,7 +1401,9 @@ def runDesktopClient(baseDir: str, proxyType: str, httpPrefix: str,
currTimeline, pageNumber, currTimeline, pageNumber,
debug) debug)
if boxJson: if boxJson:
_desktopShowBox(yourActor, currTimeline, boxJson, _desktopShowBox(indent, followRequestsJson,
yourActor, currTimeline, boxJson,
translate,
screenreader, systemLanguage, espeak, screenreader, systemLanguage, espeak,
pageNumber, pageNumber,
newRepliesExist, newDMsExist) newRepliesExist, newDMsExist)
@ -1383,7 +1418,9 @@ def runDesktopClient(baseDir: str, proxyType: str, httpPrefix: str,
currTimeline, pageNumber, currTimeline, pageNumber,
debug) debug)
if boxJson: if boxJson:
_desktopShowBox(yourActor, currTimeline, boxJson, _desktopShowBox(indent, followRequestsJson,
yourActor, currTimeline, boxJson,
translate,
screenreader, systemLanguage, espeak, screenreader, systemLanguage, espeak,
pageNumber, pageNumber,
newRepliesExist, newDMsExist) newRepliesExist, newDMsExist)
@ -1399,7 +1436,9 @@ def runDesktopClient(baseDir: str, proxyType: str, httpPrefix: str,
currTimeline, pageNumber, currTimeline, pageNumber,
debug) debug)
if boxJson: if boxJson:
_desktopShowBox(yourActor, currTimeline, boxJson, _desktopShowBox(indent, followRequestsJson,
yourActor, currTimeline, boxJson,
translate,
screenreader, systemLanguage, espeak, screenreader, systemLanguage, espeak,
pageNumber, pageNumber,
newRepliesExist, newDMsExist) newRepliesExist, newDMsExist)
@ -1416,7 +1455,9 @@ def runDesktopClient(baseDir: str, proxyType: str, httpPrefix: str,
currTimeline, pageNumber, currTimeline, pageNumber,
debug) debug)
if boxJson: if boxJson:
_desktopShowBox(yourActor, currTimeline, boxJson, _desktopShowBox(indent, followRequestsJson,
yourActor, currTimeline, boxJson,
translate,
screenreader, systemLanguage, espeak, screenreader, systemLanguage, espeak,
pageNumber, pageNumber,
newRepliesExist, newDMsExist) newRepliesExist, newDMsExist)
@ -1441,7 +1482,9 @@ def runDesktopClient(baseDir: str, proxyType: str, httpPrefix: str,
currTimeline, pageNumber, currTimeline, pageNumber,
debug) debug)
if boxJson: if boxJson:
_desktopShowBox(yourActor, currTimeline, boxJson, _desktopShowBox(indent, followRequestsJson,
yourActor, currTimeline, boxJson,
translate,
screenreader, systemLanguage, espeak, screenreader, systemLanguage, espeak,
pageNumber, pageNumber,
newRepliesExist, newDMsExist) newRepliesExist, newDMsExist)
@ -1451,7 +1494,9 @@ def runDesktopClient(baseDir: str, proxyType: str, httpPrefix: str,
else: else:
postIndexStr = commandStr.split('read ')[1] postIndexStr = commandStr.split('read ')[1]
if boxJson and postIndexStr.isdigit(): if boxJson and postIndexStr.isdigit():
_desktopShowBox(yourActor, currTimeline, boxJson, _desktopShowBox(indent, followRequestsJson,
yourActor, currTimeline, boxJson,
translate,
screenreader, systemLanguage, screenreader, systemLanguage,
espeak, pageNumber, espeak, pageNumber,
newRepliesExist, newDMsExist) newRepliesExist, newDMsExist)
@ -1480,7 +1525,9 @@ def runDesktopClient(baseDir: str, proxyType: str, httpPrefix: str,
postIndexStr = commandStr.split('profile ')[1] postIndexStr = commandStr.split('profile ')[1]
if not actorJson and boxJson and postIndexStr.isdigit(): if not actorJson and boxJson and postIndexStr.isdigit():
_desktopShowBox(yourActor, currTimeline, boxJson, _desktopShowBox(indent, followRequestsJson,
yourActor, currTimeline, boxJson,
translate,
screenreader, systemLanguage, screenreader, systemLanguage,
espeak, pageNumber, espeak, pageNumber,
newRepliesExist, newDMsExist) newRepliesExist, newDMsExist)
@ -1903,15 +1950,8 @@ def runDesktopClient(baseDir: str, proxyType: str, httpPrefix: str,
cachedWebfingers, personCache, cachedWebfingers, personCache,
debug, __version__) debug, __version__)
if followRequestsJson: if followRequestsJson:
print('') _desktopShowFollowRequests(followRequestsJson, translate)
for item in followRequestsJson['orderedItems']: print('')
handleNickname = getNicknameFromActor(item)
handleDomain, handlePort = getDomainFromActor(item)
handleDomainFull = \
getFullDomain(handleDomain, handlePort)
print(' 👤 ' +
handleNickname + '@' + handleDomainFull)
print('')
elif (commandStr == 'follow' or elif (commandStr == 'follow' or
commandStr.startswith('follow ')): commandStr.startswith('follow ')):
if commandStr == 'follow': if commandStr == 'follow':
@ -2130,7 +2170,9 @@ def runDesktopClient(baseDir: str, proxyType: str, httpPrefix: str,
if refreshTimeline: if refreshTimeline:
if boxJson: if boxJson:
_desktopShowBox(yourActor, currTimeline, boxJson, _desktopShowBox(indent, followRequestsJson,
yourActor, currTimeline, boxJson,
translate,
screenreader, systemLanguage, screenreader, systemLanguage,
espeak, pageNumber, espeak, pageNumber,
newRepliesExist, newDMsExist) newRepliesExist, newDMsExist)