Follow and unfollw via notification client

merge-requests/30/head
Bob Mottram 2021-03-10 13:38:11 +00:00
parent 196878aea0
commit 517e311e41
1 changed files with 58 additions and 0 deletions

View File

@ -11,6 +11,8 @@ import html
import time import time
import sys import sys
import select import select
from utils import getNicknameFromActor
from utils import getDomainFromActor
from utils import getFullDomain from utils import getFullDomain
from session import createSession from session import createSession
from speaker import getSpeakerFromServer from speaker import getSpeakerFromServer
@ -19,6 +21,8 @@ from speaker import getSpeakerRate
from speaker import getSpeakerRange from speaker import getSpeakerRange
from like import sendLikeViaServer from like import sendLikeViaServer
from like import sendUndoLikeViaServer from like import sendUndoLikeViaServer
from follow import sendFollowRequestViaServer
from follow import sendUnfollowRequestViaServer
def _waitForKeypress(timeout: int, debug: bool) -> str: def _waitForKeypress(timeout: int, debug: bool) -> str:
@ -333,6 +337,60 @@ def runNotificationsClient(baseDir: str, proxyType: str, httpPrefix: str,
cachedWebfingers, personCache, cachedWebfingers, personCache,
True, __version__) True, __version__)
print('') print('')
elif keyPress.startswith('follow '):
followHandle = keyPress.replace('follow ', '').strip()
if followHandle.startswith('@'):
followHandle = followHandle[1:]
if '@' in followHandle or '://' in followHandle:
followNickname = getNicknameFromActor(followHandle)
followDomain, followPort = \
getDomainFromActor(followHandle)
if followNickname and followDomain:
_sayCommand('Sending follow request to ' +
followNickname + '@' + followDomain,
screenreader, systemLanguage, espeak)
sendFollowRequestViaServer(baseDir, session,
nickname, password,
domain, port,
followNickname,
followDomain,
followPort,
httpPrefix,
cachedWebfingers,
personCache,
debug, __version__)
else:
_sayCommand(followHandle + ' is not valid',
screenreader, systemLanguage, espeak)
print('')
elif (keyPress.startswith('unfollow ') or
keyPress.startswith('stop following ')):
followHandle = keyPress.replace('unfollow ', '').strip()
followHandle = followHandle.replace('stop following ', '')
if followHandle.startswith('@'):
followHandle = followHandle[1:]
if '@' in followHandle or '://' in followHandle:
followNickname = getNicknameFromActor(followHandle)
followDomain, followPort = \
getDomainFromActor(followHandle)
if followNickname and followDomain:
_sayCommand('Stop following ' +
followNickname + '@' + followDomain,
screenreader, systemLanguage, espeak)
sendUnfollowRequestViaServer(baseDir, session,
nickname, password,
domain, port,
followNickname,
followDomain,
followPort,
httpPrefix,
cachedWebfingers,
personCache,
debug, __version__)
else:
_sayCommand(followHandle + ' is not valid',
screenreader, systemLanguage, espeak)
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: