diff --git a/daemon.py b/daemon.py index 8feeb9ed..9d06f388 100644 --- a/daemon.py +++ b/daemon.py @@ -645,7 +645,7 @@ class PubServer(BaseHTTPRequestHandler): if 'page=' not in self.path: # get a page of following, not the summary following=getFollowingFeed(self.server.baseDir,self.server.domain, \ - self.server.port,self.path+'?page=1', \ + self.server.port,self.path+'?page=true', \ self.server.httpPrefix, \ authorized,followsPerPage) getPerson = personLookup(self.server.domain,self.path.replace('/following',''), \ @@ -664,7 +664,7 @@ class PubServer(BaseHTTPRequestHandler): self._set_headers('application/json') self.wfile.write(json.dumps(following).encode('utf-8')) self.server.GETbusy=False - return + return followers=getFollowingFeed(self.server.baseDir,self.server.domain, \ self.server.port,self.path, \ self.server.httpPrefix, \ diff --git a/epicyon.py b/epicyon.py index 75dfe7a5..84c5f809 100644 --- a/epicyon.py +++ b/epicyon.py @@ -1041,7 +1041,14 @@ if args.unfilterStr: if args.testdata: useBlurhash=False nickname='testuser567' + password='boringpassword' print('Generating some test data for user: '+nickname) + + createPerson(baseDir,'maxboardroom',domain,port,httpPrefix,True,password) + createPerson(baseDir,'ultrapancake',domain,port,httpPrefix,True,password) + createPerson(baseDir,'drokk',domain,port,httpPrefix,True,password) + createPerson(baseDir,'sausagedog',domain,port,httpPrefix,True,password) + createPerson(baseDir,nickname,domain,port,httpPrefix,True,'likewhateveryouwantscoob') setSkillLevel(baseDir,nickname,domain,'testing',60) setSkillLevel(baseDir,nickname,domain,'typing',50) @@ -1051,8 +1058,6 @@ if args.testdata: setAvailability(baseDir,nickname,domain,'busy') deleteAllPosts(baseDir,nickname,domain,'inbox') deleteAllPosts(baseDir,nickname,domain,'outbox') - followPerson(baseDir,nickname,domain,'admin',domain,federationList,True) - followerOfPerson(baseDir,nickname,domain,'admin',domain,federationList,True) createPublicPost(baseDir,nickname,domain,port,httpPrefix,"like, this is totally just a test, man",False,True,False,None,None,useBlurhash) createPublicPost(baseDir,nickname,domain,port,httpPrefix,"Zoiks!!!",False,True,False,None,None,useBlurhash) createPublicPost(baseDir,nickname,domain,port,httpPrefix,"Hey scoob we need like a hundred more milkshakes",False,True,False,None,None,useBlurhash) @@ -1062,6 +1067,15 @@ if args.testdata: createPublicPost(baseDir,nickname,domain,port,httpPrefix,"another mystery solved hey",False,True,False,None,None,useBlurhash) createPublicPost(baseDir,nickname,domain,port,httpPrefix,"let's go bowling",False,True,False,None,None,useBlurhash) + domainFull=domain+':'+str(port) + clearFollows(baseDir,nickname,domain) + followPerson(baseDir,nickname,domain,'maxboardroom',domainFull,federationList,False) + followPerson(baseDir,nickname,domain,'ultrapancake',domainFull,federationList,False) + followPerson(baseDir,nickname,domain,'sausagedog',domainFull,federationList,False) + followPerson(baseDir,nickname,domain,'drokk',domainFull,federationList,False) + followerOfPerson(baseDir,nickname,domain,'drokk',domainFull,federationList,False) + followerOfPerson(baseDir,nickname,domain,'maxboardroom',domainFull,federationList,False) + runDaemon(args.client,baseDir,domain,port,httpPrefix, \ federationList, \ args.noreply,args.nolike,args.nopics, \ diff --git a/follow.py b/follow.py index 3db411ac..f018cabd 100644 --- a/follow.py +++ b/follow.py @@ -209,7 +209,10 @@ def getFollowingFeed(baseDir: str,domain: str,port: int,path: str, \ 'totalItems': 0, 'type': 'OrderedCollectionPage'} - handle=nickname.lower()+'@'+domain.lower() + handleDomain=domain + if ':' in handleDomain: + handleDomain=domain.split(':')[0] + handle=nickname.lower()+'@'+handleDomain.lower() filename=baseDir+'/accounts/'+handle+'/'+followFile+'.txt' if not os.path.isfile(filename): return following @@ -220,7 +223,7 @@ def getFollowingFeed(baseDir: str,domain: str,port: int,path: str, \ lines = f.readlines() for line in lines: if '#' not in line: - if '@' in line and '.' in line and not line.startswith('http'): + if '@' in line and not line.startswith('http'): pageCtr += 1 totalCtr += 1 if currPage==pageNumber: diff --git a/webinterface.py b/webinterface.py index 18dcab52..3fba05ce 100644 --- a/webinterface.py +++ b/webinterface.py @@ -7,6 +7,7 @@ __email__ = "bob@freedombone.net" __status__ = "Production" import json +from pprint import pprint from person import personBoxJson from utils import getNicknameFromActor from utils import getDomainFromActor @@ -51,6 +52,14 @@ def htmlProfilePosts(baseDir: str,httpPrefix: str,authorized: bool,ocapAlways: b profileStr+=individualPostAsHtml(item) return profileStr +def htmlProfileFollowing(baseDir: str,httpPrefix: str,authorized: bool,ocapAlways: bool,nickname: str,domain: str,port: int,followingJson: {}) -> str: + """Shows following on the profile screen + """ + profileStr='' + for item in followingJson['orderedItems']: + profileStr+=individualFollowAsHtml(item) + return profileStr + def htmlProfile(baseDir: str,httpPrefix: str,authorized: bool,ocapAlways: bool,profileJson: {},selected: str,extraJson=None) -> str: """Show the profile page as html """ @@ -295,9 +304,22 @@ def htmlProfile(baseDir: str,httpPrefix: str,authorized: bool,ocapAlways: bool,p if selected=='posts': profileStr+=htmlProfilePosts(baseDir,httpPrefix,authorized,ocapAlways,nickname,domain,port) + if selected=='following' or selected=='followers': + profileStr+=htmlProfileFollowing(baseDir,httpPrefix,authorized,ocapAlways,nickname,domain,port,extraJson) profileStr=htmlHeader(profileStyle)+profileStr+htmlFooter() return profileStr +def individualFollowAsHtml(followUrl: str) -> str: + nickname=getNicknameFromActor(followUrl) + domain,port=getDomainFromActor(followUrl) + titleStr='@'+nickname+'@'+domain + return \ + '
'+titleStr+'
'+ \ + '