forked from indymedia/epicyon
Followers and following on profile screen
parent
e334eeae14
commit
ed6a98af07
|
@ -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, \
|
||||
|
|
18
epicyon.py
18
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, \
|
||||
|
|
|
@ -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:
|
||||
|
|
|
@ -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 \
|
||||
'<div class="container">\n' \
|
||||
'<a href="'+followUrl+'">' \
|
||||
'<img src="'+followUrl+'/avatar.png" alt="Avatar">\n'+ \
|
||||
'<p>'+titleStr+'</p></a>'+ \
|
||||
'</div>\n'
|
||||
|
||||
def individualPostAsHtml(postJsonObject: {}) -> str:
|
||||
avatarPosition=''
|
||||
containerClass='container'
|
||||
|
|
Loading…
Reference in New Issue