forked from indymedia/epicyon
Replies timeline
parent
7ed6728594
commit
8ea1e3306b
71
daemon.py
71
daemon.py
|
@ -83,6 +83,7 @@ from webinterface import htmlDeletePost
|
|||
from webinterface import htmlAbout
|
||||
from webinterface import htmlRemoveSharedItem
|
||||
from webinterface import htmlInboxDMs
|
||||
from webinterface import htmlInboxReplies
|
||||
from webinterface import htmlUnblockConfirm
|
||||
from webinterface import htmlPersonOptions
|
||||
from webinterface import htmlIndividualPost
|
||||
|
@ -1704,7 +1705,7 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.GETbusy=False
|
||||
return
|
||||
|
||||
# get the inbox for a given person
|
||||
# get the direct messages for a given person
|
||||
if self.path.endswith('/dm') or '/dm?page=' in self.path:
|
||||
if '/users/' in self.path:
|
||||
if authorized:
|
||||
|
@ -1770,6 +1771,74 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.GETbusy=False
|
||||
return
|
||||
|
||||
# get the replies for a given person
|
||||
if self.path.endswith('/replies') or '/replies?page=' in self.path:
|
||||
if '/users/' in self.path:
|
||||
if authorized:
|
||||
inboxRepliesFeed= \
|
||||
personBoxJson(self.server.baseDir, \
|
||||
self.server.domain, \
|
||||
self.server.port, \
|
||||
self.path, \
|
||||
self.server.httpPrefix, \
|
||||
maxPostsInFeed, 'replies', \
|
||||
True,self.server.ocapAlways)
|
||||
if inboxRepliesFeed:
|
||||
if self._requestHTTP():
|
||||
nickname=self.path.replace('/users/','').replace('/replies','')
|
||||
pageNumber=1
|
||||
if '?page=' in nickname:
|
||||
pageNumber=nickname.split('?page=')[1]
|
||||
nickname=nickname.split('?page=')[0]
|
||||
if pageNumber.isdigit():
|
||||
pageNumber=int(pageNumber)
|
||||
else:
|
||||
pageNumber=1
|
||||
if 'page=' not in self.path:
|
||||
# if no page was specified then show the first
|
||||
inboxRepliesFeed= \
|
||||
personBoxJson(self.server.baseDir, \
|
||||
self.server.domain, \
|
||||
self.server.port, \
|
||||
self.path+'?page=1', \
|
||||
self.server.httpPrefix, \
|
||||
maxPostsInFeed, 'replies', \
|
||||
True,self.server.ocapAlways)
|
||||
msg=htmlInboxReplies(self.server.translate, \
|
||||
pageNumber,maxPostsInFeed, \
|
||||
self.server.session, \
|
||||
self.server.baseDir, \
|
||||
self.server.cachedWebfingers, \
|
||||
self.server.personCache, \
|
||||
nickname, \
|
||||
self.server.domain, \
|
||||
self.server.port, \
|
||||
inboxRepliesFeed, \
|
||||
self.server.allowDeletion, \
|
||||
self.server.httpPrefix, \
|
||||
self.server.projectVersion).encode('utf-8')
|
||||
self._set_headers('text/html',len(msg),cookie)
|
||||
self.wfile.write(msg)
|
||||
else:
|
||||
msg=json.dumps(inboxDMFeed).encode('utf-8')
|
||||
self._set_headers('application/json',len(msg),None)
|
||||
self.wfile.write(msg)
|
||||
self.server.GETbusy=False
|
||||
return
|
||||
else:
|
||||
if self.server.debug:
|
||||
nickname=self.path.replace('/users/','').replace('/replies','')
|
||||
print('DEBUG: '+nickname+ \
|
||||
' was not authorized to access '+self.path)
|
||||
if self.path!='/replies':
|
||||
# not the replies inbox
|
||||
if self.server.debug:
|
||||
print('DEBUG: GET access to inbox is unauthorized')
|
||||
self.send_response(405)
|
||||
self.end_headers()
|
||||
self.server.GETbusy=False
|
||||
return
|
||||
|
||||
# get outbox feed for a person
|
||||
outboxFeed=personBoxJson(self.server.baseDir,self.server.domain, \
|
||||
self.server.port,self.path, \
|
||||
|
|
|
@ -137,5 +137,6 @@
|
|||
"Approve follow requests": "Cymeradwyo dilyn ceisiadau",
|
||||
"Page down": "Tudalen lawr",
|
||||
"Page up": "Tudalen i fyny",
|
||||
"Vote": "Vote"
|
||||
"Vote": "Vote",
|
||||
"Replies": "Replies"
|
||||
}
|
||||
|
|
|
@ -137,5 +137,6 @@
|
|||
"Approve follow requests": "Follow-Anfragen genehmigen",
|
||||
"Page down": "Bild runter",
|
||||
"Page up": "Bild auf",
|
||||
"Vote": "Vote"
|
||||
"Vote": "Vote",
|
||||
"Replies": "Replies"
|
||||
}
|
||||
|
|
|
@ -137,5 +137,6 @@
|
|||
"Approve follow requests": "Approve follow requests",
|
||||
"Page down": "Page down",
|
||||
"Page up": "Page up",
|
||||
"Vote": "Vote"
|
||||
"Vote": "Vote",
|
||||
"Replies": "Replies"
|
||||
}
|
||||
|
|
|
@ -137,5 +137,6 @@
|
|||
"Approve follow requests": "Aprobar seguir solicitudes",
|
||||
"Page down": "Página abajo",
|
||||
"Page up": "Página arriba",
|
||||
"Vote": "Vote"
|
||||
"Vote": "Vote",
|
||||
"Replies": "Replies"
|
||||
}
|
||||
|
|
|
@ -137,5 +137,6 @@
|
|||
"Approve follow requests": "Approuver les demandes de suivi",
|
||||
"Page down": "Bas de page",
|
||||
"Page up": "Haut de page",
|
||||
"Vote": "Vote"
|
||||
"Vote": "Vote",
|
||||
"Replies": "Replies"
|
||||
}
|
||||
|
|
|
@ -137,5 +137,6 @@
|
|||
"Approve follow requests": "Iarratais a leanúint a cheadú",
|
||||
"Page down": "Leathanach Síos",
|
||||
"Page up": "Leathanach suas",
|
||||
"Vote": "Vote"
|
||||
"Vote": "Vote",
|
||||
"Replies": "Replies"
|
||||
}
|
||||
|
|
|
@ -137,5 +137,6 @@
|
|||
"Approve follow requests": "Approvare seguire le richieste",
|
||||
"Page down": "Pagina giù",
|
||||
"Page up": "Pagina su",
|
||||
"Vote": "Vote"
|
||||
"Vote": "Vote",
|
||||
"Replies": "Replies"
|
||||
}
|
||||
|
|
|
@ -2076,12 +2076,15 @@ def htmlTimeline(translate: {},pageNumber: int, \
|
|||
|
||||
inboxButton='button'
|
||||
dmButton='button'
|
||||
repliesButton='button'
|
||||
sentButton='button'
|
||||
moderationButton='button'
|
||||
if boxName=='inbox':
|
||||
inboxButton='buttonselected'
|
||||
elif boxName=='dm':
|
||||
dmButton='buttonselected'
|
||||
elif boxName=='replies':
|
||||
repliesButton='buttonselected'
|
||||
elif boxName=='outbox':
|
||||
sentButton='buttonselected'
|
||||
elif boxName=='moderation':
|
||||
|
@ -2127,6 +2130,7 @@ def htmlTimeline(translate: {},pageNumber: int, \
|
|||
'<div class="container">\n'+ \
|
||||
' <a href="'+actor+'/inbox"><button class="'+inboxButton+'"><span>'+translate['Inbox']+'</span></button></a>' \
|
||||
' <a href="'+actor+'/dm"><button class="'+dmButton+'"><span>'+translate['DM']+'</span></button></a>' \
|
||||
' <a href="'+actor+'/replies"><button class="'+repliesButton+'"><span>'+translate['Replies']+'</span></button></a>' \
|
||||
' <a href="'+actor+'/outbox"><button class="'+sentButton+'"><span>'+translate['Outbox']+'</span></button></a>'+ \
|
||||
moderationButtonStr+newPostButtonStr+ \
|
||||
' <a href="'+actor+'/search"><img src="/'+iconsDir+'/search.png" title="'+translate['Search and follow']+'" alt="'+translate['Search and follow']+'" class="right"/></a>'+ \
|
||||
|
@ -2204,6 +2208,18 @@ def htmlInboxDMs(translate: {},pageNumber: int,itemsPerPage: int, \
|
|||
nickname,domain,port,inboxJson,'dm',allowDeletion, \
|
||||
httpPrefix,projectVersion,False)
|
||||
|
||||
def htmlInboxReplies(translate: {},pageNumber: int,itemsPerPage: int, \
|
||||
session,baseDir: str,wfRequest: {},personCache: {}, \
|
||||
nickname: str,domain: str,port: int,inboxJson: {}, \
|
||||
allowDeletion: bool, \
|
||||
httpPrefix: str,projectVersion: str) -> str:
|
||||
"""Show the replies timeline as html
|
||||
"""
|
||||
return htmlTimeline(translate,pageNumber, \
|
||||
itemsPerPage,session,baseDir,wfRequest,personCache, \
|
||||
nickname,domain,port,inboxJson,'replies',allowDeletion, \
|
||||
httpPrefix,projectVersion,False)
|
||||
|
||||
def htmlModeration(translate: {},pageNumber: int,itemsPerPage: int, \
|
||||
session,baseDir: str,wfRequest: {},personCache: {}, \
|
||||
nickname: str,domain: str,port: int,inboxJson: {}, \
|
||||
|
|
Loading…
Reference in New Issue