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:
|
if 'page=' not in self.path:
|
||||||
# get a page of following, not the summary
|
# get a page of following, not the summary
|
||||||
following=getFollowingFeed(self.server.baseDir,self.server.domain, \
|
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, \
|
self.server.httpPrefix, \
|
||||||
authorized,followsPerPage)
|
authorized,followsPerPage)
|
||||||
getPerson = personLookup(self.server.domain,self.path.replace('/following',''), \
|
getPerson = personLookup(self.server.domain,self.path.replace('/following',''), \
|
||||||
|
@ -664,7 +664,7 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
self._set_headers('application/json')
|
self._set_headers('application/json')
|
||||||
self.wfile.write(json.dumps(following).encode('utf-8'))
|
self.wfile.write(json.dumps(following).encode('utf-8'))
|
||||||
self.server.GETbusy=False
|
self.server.GETbusy=False
|
||||||
return
|
return
|
||||||
followers=getFollowingFeed(self.server.baseDir,self.server.domain, \
|
followers=getFollowingFeed(self.server.baseDir,self.server.domain, \
|
||||||
self.server.port,self.path, \
|
self.server.port,self.path, \
|
||||||
self.server.httpPrefix, \
|
self.server.httpPrefix, \
|
||||||
|
|
18
epicyon.py
18
epicyon.py
|
@ -1041,7 +1041,14 @@ if args.unfilterStr:
|
||||||
if args.testdata:
|
if args.testdata:
|
||||||
useBlurhash=False
|
useBlurhash=False
|
||||||
nickname='testuser567'
|
nickname='testuser567'
|
||||||
|
password='boringpassword'
|
||||||
print('Generating some test data for user: '+nickname)
|
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')
|
createPerson(baseDir,nickname,domain,port,httpPrefix,True,'likewhateveryouwantscoob')
|
||||||
setSkillLevel(baseDir,nickname,domain,'testing',60)
|
setSkillLevel(baseDir,nickname,domain,'testing',60)
|
||||||
setSkillLevel(baseDir,nickname,domain,'typing',50)
|
setSkillLevel(baseDir,nickname,domain,'typing',50)
|
||||||
|
@ -1051,8 +1058,6 @@ if args.testdata:
|
||||||
setAvailability(baseDir,nickname,domain,'busy')
|
setAvailability(baseDir,nickname,domain,'busy')
|
||||||
deleteAllPosts(baseDir,nickname,domain,'inbox')
|
deleteAllPosts(baseDir,nickname,domain,'inbox')
|
||||||
deleteAllPosts(baseDir,nickname,domain,'outbox')
|
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,"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,"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)
|
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,"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)
|
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, \
|
runDaemon(args.client,baseDir,domain,port,httpPrefix, \
|
||||||
federationList, \
|
federationList, \
|
||||||
args.noreply,args.nolike,args.nopics, \
|
args.noreply,args.nolike,args.nopics, \
|
||||||
|
|
|
@ -209,7 +209,10 @@ def getFollowingFeed(baseDir: str,domain: str,port: int,path: str, \
|
||||||
'totalItems': 0,
|
'totalItems': 0,
|
||||||
'type': 'OrderedCollectionPage'}
|
'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'
|
filename=baseDir+'/accounts/'+handle+'/'+followFile+'.txt'
|
||||||
if not os.path.isfile(filename):
|
if not os.path.isfile(filename):
|
||||||
return following
|
return following
|
||||||
|
@ -220,7 +223,7 @@ def getFollowingFeed(baseDir: str,domain: str,port: int,path: str, \
|
||||||
lines = f.readlines()
|
lines = f.readlines()
|
||||||
for line in lines:
|
for line in lines:
|
||||||
if '#' not in line:
|
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
|
pageCtr += 1
|
||||||
totalCtr += 1
|
totalCtr += 1
|
||||||
if currPage==pageNumber:
|
if currPage==pageNumber:
|
||||||
|
|
|
@ -7,6 +7,7 @@ __email__ = "bob@freedombone.net"
|
||||||
__status__ = "Production"
|
__status__ = "Production"
|
||||||
|
|
||||||
import json
|
import json
|
||||||
|
from pprint import pprint
|
||||||
from person import personBoxJson
|
from person import personBoxJson
|
||||||
from utils import getNicknameFromActor
|
from utils import getNicknameFromActor
|
||||||
from utils import getDomainFromActor
|
from utils import getDomainFromActor
|
||||||
|
@ -51,6 +52,14 @@ def htmlProfilePosts(baseDir: str,httpPrefix: str,authorized: bool,ocapAlways: b
|
||||||
profileStr+=individualPostAsHtml(item)
|
profileStr+=individualPostAsHtml(item)
|
||||||
return profileStr
|
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:
|
def htmlProfile(baseDir: str,httpPrefix: str,authorized: bool,ocapAlways: bool,profileJson: {},selected: str,extraJson=None) -> str:
|
||||||
"""Show the profile page as html
|
"""Show the profile page as html
|
||||||
"""
|
"""
|
||||||
|
@ -295,9 +304,22 @@ def htmlProfile(baseDir: str,httpPrefix: str,authorized: bool,ocapAlways: bool,p
|
||||||
|
|
||||||
if selected=='posts':
|
if selected=='posts':
|
||||||
profileStr+=htmlProfilePosts(baseDir,httpPrefix,authorized,ocapAlways,nickname,domain,port)
|
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()
|
profileStr=htmlHeader(profileStyle)+profileStr+htmlFooter()
|
||||||
return profileStr
|
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:
|
def individualPostAsHtml(postJsonObject: {}) -> str:
|
||||||
avatarPosition=''
|
avatarPosition=''
|
||||||
containerClass='container'
|
containerClass='container'
|
||||||
|
|
Loading…
Reference in New Issue