Show emoji to indicate new follower domain

merge-requests/30/head
Bob Mottram 2021-11-08 14:49:18 +00:00
parent 135f0f760f
commit 3548b8795c
2 changed files with 38 additions and 1 deletions

View File

@ -209,6 +209,28 @@ def followerOfPerson(baseDir: str, nickname: str, domain: str,
federationList, debug, groupAccount, 'followers.txt') federationList, debug, groupAccount, 'followers.txt')
def getFollowerDomains(baseDir: str, nickname: str, domain: str) -> []:
"""Returns a list of domains for followers
"""
domain = removeDomainPort(domain)
followersFile = acctDir(baseDir, nickname, domain) + '/followers.txt'
if not os.path.isfile(followersFile):
return []
lines = []
with open(followersFile, 'r') as fpFollowers:
lines = fpFollowers.readlines()
domainsList = []
for handle in lines:
followerDomain, _ = getDomainFromActor(handle)
if not followerDomain:
continue
if followerDomain not in domainsList:
domainsList.append(followerDomain)
return domainsList
def isFollowerOfPerson(baseDir: str, nickname: str, domain: str, def isFollowerOfPerson(baseDir: str, nickname: str, domain: str,
followerNickname: str, followerDomain: str) -> bool: followerNickname: str, followerDomain: str) -> bool:
"""is the given nickname a follower of followerNickname? """is the given nickname a follower of followerNickname?

View File

@ -53,6 +53,7 @@ from jami import getJamiAddress
from cwtch import getCwtchAddress from cwtch import getCwtchAddress
from filters import isFiltered from filters import isFiltered
from follow import isFollowerOfPerson from follow import isFollowerOfPerson
from follow import getFollowerDomains
from webapp_frontscreen import htmlFrontScreen from webapp_frontscreen import htmlFrontScreen
from webapp_utils import htmlKeyboardNavigation from webapp_utils import htmlKeyboardNavigation
from webapp_utils import htmlHideFromScreenReader from webapp_utils import htmlHideFromScreenReader
@ -716,6 +717,8 @@ def htmlProfile(signingPrivateKeyPem: str,
break break
if selected == 'followers': if selected == 'followers':
if followApprovals: if followApprovals:
currFollowerDomains = \
getFollowerDomains(baseDir, nickname, domain)
with open(followRequestsFilename, 'r') as f: with open(followRequestsFilename, 'r') as f:
for followerHandle in f: for followerHandle in f:
if len(line) > 0: if len(line) > 0:
@ -726,13 +729,25 @@ def htmlProfile(signingPrivateKeyPem: str,
dom = followerHandle.split('@')[1] dom = followerHandle.split('@')[1]
followerActor = \ followerActor = \
localActorUrl(httpPrefix, nick, dom) localActorUrl(httpPrefix, nick, dom)
# is this a new domain?
# if so then append a new instance indicator
followerDomain, _ = \
getDomainFromActor(followerActor)
newFollowerDomain = ''
if followerDomain not in currFollowerDomains:
newFollowerDomain = ''
basePath = '/users/' + nickname basePath = '/users/' + nickname
followApprovalsSection += '<div class="container">' followApprovalsSection += '<div class="container">'
followApprovalsSection += \ followApprovalsSection += \
'<a href="' + followerActor + '">' '<a href="' + followerActor + '">'
followApprovalsSection += \ followApprovalsSection += \
'<span class="followRequestHandle">' + \ '<span class="followRequestHandle">' + \
followerHandle + '</span></a>' followerHandle + \
newFollowerDomain + '</span></a>'
# show Approve and Deny buttons
followApprovalsSection += \ followApprovalsSection += \
'<a href="' + basePath + \ '<a href="' + basePath + \
'/followapprove=' + followerHandle + '">' '/followapprove=' + followerHandle + '">'