mirror of https://gitlab.com/bashrc2/epicyon
Include federated shared items within shares timeline
parent
0db65ae069
commit
974b97dc87
58
daemon.py
58
daemon.py
|
@ -7665,6 +7665,7 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.debug,
|
||||
accessKeys, city,
|
||||
self.server.systemLanguage,
|
||||
self.server.sharedItemsFederatedDomains,
|
||||
rolesList,
|
||||
None, None)
|
||||
msg = msg.encode('utf-8')
|
||||
|
@ -7740,6 +7741,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
city = getSpoofedCity(self.server.city,
|
||||
baseDir,
|
||||
nickname, domain)
|
||||
sharedItemsFederatedDomains = \
|
||||
self.server.sharedItemsFederatedDomains
|
||||
msg = \
|
||||
htmlProfile(self.server.rssIconAtTop,
|
||||
self.server.cssCache,
|
||||
|
@ -7765,6 +7768,7 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.debug,
|
||||
accessKeys, city,
|
||||
self.server.systemLanguage,
|
||||
sharedItemsFederatedDomains,
|
||||
skills,
|
||||
None, None)
|
||||
msg = msg.encode('utf-8')
|
||||
|
@ -8076,6 +8080,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
accessKeys = \
|
||||
self.server.keyShortcuts[nickname]
|
||||
|
||||
sharedItemsFederatedDomains = \
|
||||
self.server.sharedItemsFederatedDomains
|
||||
msg = htmlInbox(self.server.cssCache,
|
||||
defaultTimeline,
|
||||
recentPostsCache,
|
||||
|
@ -8109,7 +8115,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.allowLocalNetworkAccess,
|
||||
self.server.textModeBanner,
|
||||
accessKeys,
|
||||
self.server.systemLanguage)
|
||||
self.server.systemLanguage,
|
||||
sharedItemsFederatedDomains)
|
||||
if GETstartTime:
|
||||
self._benchmarkGETtimings(GETstartTime, GETtimings,
|
||||
'show status done',
|
||||
|
@ -8213,6 +8220,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
accessKeys = \
|
||||
self.server.keyShortcuts[nickname]
|
||||
|
||||
sharedItemsFederatedDomains = \
|
||||
self.server.sharedItemsFederatedDomains
|
||||
msg = \
|
||||
htmlInboxDMs(self.server.cssCache,
|
||||
self.server.defaultTimeline,
|
||||
|
@ -8246,7 +8255,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.allowLocalNetworkAccess,
|
||||
self.server.textModeBanner,
|
||||
accessKeys,
|
||||
self.server.systemLanguage)
|
||||
self.server.systemLanguage,
|
||||
sharedItemsFederatedDomains)
|
||||
msg = msg.encode('utf-8')
|
||||
msglen = len(msg)
|
||||
self._set_headers('text/html', msglen,
|
||||
|
@ -8343,6 +8353,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
accessKeys = \
|
||||
self.server.keyShortcuts[nickname]
|
||||
|
||||
sharedItemsFederatedDomains = \
|
||||
self.server.sharedItemsFederatedDomains
|
||||
msg = \
|
||||
htmlInboxReplies(self.server.cssCache,
|
||||
self.server.defaultTimeline,
|
||||
|
@ -8376,7 +8388,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.allowLocalNetworkAccess,
|
||||
self.server.textModeBanner,
|
||||
accessKeys,
|
||||
self.server.systemLanguage)
|
||||
self.server.systemLanguage,
|
||||
sharedItemsFederatedDomains)
|
||||
msg = msg.encode('utf-8')
|
||||
msglen = len(msg)
|
||||
self._set_headers('text/html', msglen,
|
||||
|
@ -8507,7 +8520,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.allowLocalNetworkAccess,
|
||||
self.server.textModeBanner,
|
||||
accessKeys,
|
||||
self.server.systemLanguage)
|
||||
self.server.systemLanguage,
|
||||
self.server.sharedItemsFederatedDomains)
|
||||
msg = msg.encode('utf-8')
|
||||
msglen = len(msg)
|
||||
self._set_headers('text/html', msglen,
|
||||
|
@ -8638,7 +8652,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.allowLocalNetworkAccess,
|
||||
self.server.textModeBanner,
|
||||
accessKeys,
|
||||
self.server.systemLanguage)
|
||||
self.server.systemLanguage,
|
||||
self.server.sharedItemsFederatedDomains)
|
||||
msg = msg.encode('utf-8')
|
||||
msglen = len(msg)
|
||||
self._set_headers('text/html', msglen,
|
||||
|
@ -8778,7 +8793,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.allowLocalNetworkAccess,
|
||||
self.server.textModeBanner,
|
||||
accessKeys,
|
||||
self.server.systemLanguage)
|
||||
self.server.systemLanguage,
|
||||
self.server.sharedItemsFederatedDomains)
|
||||
msg = msg.encode('utf-8')
|
||||
msglen = len(msg)
|
||||
self._set_headers('text/html', msglen,
|
||||
|
@ -8880,6 +8896,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
accessKeys = \
|
||||
self.server.keyShortcuts[nickname]
|
||||
|
||||
sharedItemsFederatedDomains = \
|
||||
self.server.sharedItemsFederatedDomains
|
||||
msg = \
|
||||
htmlInboxFeatures(self.server.cssCache,
|
||||
self.server.defaultTimeline,
|
||||
|
@ -8914,7 +8932,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.allowLocalNetworkAccess,
|
||||
self.server.textModeBanner,
|
||||
accessKeys,
|
||||
self.server.systemLanguage)
|
||||
self.server.systemLanguage,
|
||||
sharedItemsFederatedDomains)
|
||||
msg = msg.encode('utf-8')
|
||||
msglen = len(msg)
|
||||
self._set_headers('text/html', msglen,
|
||||
|
@ -9011,7 +9030,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.allowLocalNetworkAccess,
|
||||
self.server.textModeBanner,
|
||||
accessKeys,
|
||||
self.server.systemLanguage)
|
||||
self.server.systemLanguage,
|
||||
self.server.sharedItemsFederatedDomains)
|
||||
msg = msg.encode('utf-8')
|
||||
msglen = len(msg)
|
||||
self._set_headers('text/html', msglen,
|
||||
|
@ -9091,6 +9111,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
accessKeys = \
|
||||
self.server.keyShortcuts[nickname]
|
||||
|
||||
sharedItemsFederatedDomains = \
|
||||
self.server.sharedItemsFederatedDomains
|
||||
msg = \
|
||||
htmlBookmarks(self.server.cssCache,
|
||||
self.server.defaultTimeline,
|
||||
|
@ -9125,7 +9147,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.allowLocalNetworkAccess,
|
||||
self.server.textModeBanner,
|
||||
accessKeys,
|
||||
self.server.systemLanguage)
|
||||
self.server.systemLanguage,
|
||||
sharedItemsFederatedDomains)
|
||||
msg = msg.encode('utf-8')
|
||||
msglen = len(msg)
|
||||
self._set_headers('text/html', msglen,
|
||||
|
@ -9252,7 +9275,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.allowLocalNetworkAccess,
|
||||
self.server.textModeBanner,
|
||||
accessKeys,
|
||||
self.server.systemLanguage)
|
||||
self.server.systemLanguage,
|
||||
self.server.sharedItemsFederatedDomains)
|
||||
msg = msg.encode('utf-8')
|
||||
msglen = len(msg)
|
||||
self._set_headers('text/html', msglen,
|
||||
|
@ -9335,6 +9359,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
accessKeys = \
|
||||
self.server.keyShortcuts[nickname]
|
||||
|
||||
sharedItemsFederatedDomains = \
|
||||
self.server.sharedItemsFederatedDomains
|
||||
msg = \
|
||||
htmlModeration(self.server.cssCache,
|
||||
self.server.defaultTimeline,
|
||||
|
@ -9368,7 +9394,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.allowLocalNetworkAccess,
|
||||
self.server.textModeBanner,
|
||||
accessKeys,
|
||||
self.server.systemLanguage)
|
||||
self.server.systemLanguage,
|
||||
sharedItemsFederatedDomains)
|
||||
msg = msg.encode('utf-8')
|
||||
msglen = len(msg)
|
||||
self._set_headers('text/html', msglen,
|
||||
|
@ -9485,6 +9512,7 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.debug,
|
||||
accessKeys, city,
|
||||
self.server.systemLanguage,
|
||||
self.server.sharedItemsFederatedDomains,
|
||||
shares,
|
||||
pageNumber, sharesPerPage)
|
||||
msg = msg.encode('utf-8')
|
||||
|
@ -9599,6 +9627,7 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.debug,
|
||||
accessKeys, city,
|
||||
self.server.systemLanguage,
|
||||
self.server.sharedItemsFederatedDomains,
|
||||
following,
|
||||
pageNumber,
|
||||
followsPerPage).encode('utf-8')
|
||||
|
@ -9713,6 +9742,7 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.debug,
|
||||
accessKeys, city,
|
||||
self.server.systemLanguage,
|
||||
self.server.sharedItemsFederatedDomains,
|
||||
followers,
|
||||
pageNumber,
|
||||
followsPerPage).encode('utf-8')
|
||||
|
@ -9850,6 +9880,7 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
self.server.debug,
|
||||
accessKeys, city,
|
||||
self.server.systemLanguage,
|
||||
self.server.sharedItemsFederatedDomains,
|
||||
None, None).encode('utf-8')
|
||||
msglen = len(msg)
|
||||
self._set_headers('text/html', msglen,
|
||||
|
@ -11901,6 +11932,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
'/users/' + nickname + '/' + self.server.defaultTimeline
|
||||
iconsAsButtons = self.server.iconsAsButtons
|
||||
defaultTimeline = self.server.defaultTimeline
|
||||
sharedItemsDomains = \
|
||||
self.server.sharedItemsFederatedDomains
|
||||
msg = htmlLinksMobile(self.server.cssCache,
|
||||
self.server.baseDir, nickname,
|
||||
self.server.domainFull,
|
||||
|
@ -11912,7 +11945,8 @@ class PubServer(BaseHTTPRequestHandler):
|
|||
iconsAsButtons,
|
||||
defaultTimeline,
|
||||
self.server.themeName,
|
||||
accessKeys).encode('utf-8')
|
||||
accessKeys,
|
||||
sharedItemsDomains).encode('utf-8')
|
||||
msglen = len(msg)
|
||||
self._set_headers('text/html', msglen, cookie, callingDomain)
|
||||
self._write(msg)
|
||||
|
|
|
@ -32,15 +32,16 @@ def _getLeftColumnShares(baseDir: str,
|
|||
httpPrefix: str, domainFull: str,
|
||||
nickname: str,
|
||||
maxSharesInLeftColumn: int,
|
||||
translate: {}) -> []:
|
||||
translate: {},
|
||||
sharedItemsFederatedDomains: []) -> []:
|
||||
"""get any shares and turn them into the left column links format
|
||||
"""
|
||||
pageNumber = 1
|
||||
actor = httpPrefix + '://' + domainFull + '/users/' + nickname
|
||||
sharesJson, lastPage = \
|
||||
sharesTimelineJson(actor, pageNumber,
|
||||
maxSharesInLeftColumn,
|
||||
baseDir, maxSharesInLeftColumn)
|
||||
sharesTimelineJson(actor, pageNumber, maxSharesInLeftColumn,
|
||||
baseDir, maxSharesInLeftColumn,
|
||||
sharedItemsFederatedDomains)
|
||||
if not sharesJson:
|
||||
return []
|
||||
|
||||
|
@ -69,7 +70,8 @@ def getLeftColumnContent(baseDir: str, nickname: str, domainFull: str,
|
|||
showBackButton: bool, timelinePath: str,
|
||||
rssIconAtTop: bool, showHeaderImage: bool,
|
||||
frontPage: bool, theme: str,
|
||||
accessKeys: {}) -> str:
|
||||
accessKeys: {},
|
||||
sharedItemsFederatedDomains: []) -> str:
|
||||
"""Returns html content for the left column
|
||||
"""
|
||||
htmlStr = ''
|
||||
|
@ -159,7 +161,8 @@ def getLeftColumnContent(baseDir: str, nickname: str, domainFull: str,
|
|||
sharesList = \
|
||||
_getLeftColumnShares(baseDir,
|
||||
httpPrefix, domainFull, nickname,
|
||||
maxSharesInLeftColumn, translate)
|
||||
maxSharesInLeftColumn, translate,
|
||||
sharedItemsFederatedDomains)
|
||||
if linksList and sharesList:
|
||||
linksList = sharesList + linksList
|
||||
|
||||
|
@ -272,7 +275,8 @@ def htmlLinksMobile(cssCache: {}, baseDir: str,
|
|||
rssIconAtTop: bool,
|
||||
iconsAsButtons: bool,
|
||||
defaultTimeline: str,
|
||||
theme: str, accessKeys: {}) -> str:
|
||||
theme: str, accessKeys: {},
|
||||
sharedItemsFederatedDomains: []) -> str:
|
||||
"""Show the left column links within mobile view
|
||||
"""
|
||||
htmlStr = ''
|
||||
|
@ -314,7 +318,8 @@ def htmlLinksMobile(cssCache: {}, baseDir: str,
|
|||
editor,
|
||||
False, timelinePath,
|
||||
rssIconAtTop, False, False,
|
||||
theme, accessKeys)
|
||||
theme, accessKeys,
|
||||
sharedItemsFederatedDomains)
|
||||
else:
|
||||
if editor:
|
||||
htmlStr += '<br><br><br>\n<center>\n '
|
||||
|
|
|
@ -99,6 +99,7 @@ def htmlFrontScreen(rssIconAtTop: bool,
|
|||
allowLocalNetworkAccess: bool,
|
||||
accessKeys: {},
|
||||
systemLanguage: str,
|
||||
sharedItemsFederatedDomains: [],
|
||||
extraJson: {} = None,
|
||||
pageNumber: int = None,
|
||||
maxItemsPerPage: int = None) -> str:
|
||||
|
@ -143,7 +144,8 @@ def htmlFrontScreen(rssIconAtTop: bool,
|
|||
getLeftColumnContent(baseDir, 'news', domainFull,
|
||||
httpPrefix, translate,
|
||||
False, False, None, rssIconAtTop, True,
|
||||
True, theme, accessKeys)
|
||||
True, theme, accessKeys,
|
||||
sharedItemsFederatedDomains)
|
||||
profileHeaderStr += \
|
||||
' </td>\n' + \
|
||||
' <td valign="top" class="col-center">\n'
|
||||
|
|
|
@ -47,7 +47,8 @@ def htmlModeration(cssCache: {}, defaultTimeline: str,
|
|||
theme: str, peertubeInstances: [],
|
||||
allowLocalNetworkAccess: bool,
|
||||
textModeBanner: str,
|
||||
accessKeys: {}, systemLanguage: str) -> str:
|
||||
accessKeys: {}, systemLanguage: str,
|
||||
sharedItemsFederatedDomains: []) -> str:
|
||||
"""Show the moderation feed as html
|
||||
This is what you see when selecting the "mod" timeline
|
||||
"""
|
||||
|
@ -63,7 +64,8 @@ def htmlModeration(cssCache: {}, defaultTimeline: str,
|
|||
iconsAsButtons, rssIconAtTop, publishButtonAtTop,
|
||||
authorized, moderationActionStr, theme,
|
||||
peertubeInstances, allowLocalNetworkAccess,
|
||||
textModeBanner, accessKeys, systemLanguage)
|
||||
textModeBanner, accessKeys, systemLanguage,
|
||||
sharedItemsFederatedDomains)
|
||||
|
||||
|
||||
def htmlAccountInfo(cssCache: {}, translate: {},
|
||||
|
|
|
@ -455,6 +455,7 @@ def htmlProfile(rssIconAtTop: bool,
|
|||
textModeBanner: str,
|
||||
debug: bool, accessKeys: {}, city: str,
|
||||
systemLanguage: str,
|
||||
sharedItemsFederatedDomains: [],
|
||||
extraJson: {} = None, pageNumber: int = None,
|
||||
maxItemsPerPage: int = None) -> str:
|
||||
"""Show the profile page as html
|
||||
|
@ -476,6 +477,7 @@ def htmlProfile(rssIconAtTop: bool,
|
|||
newswire, theme, extraJson,
|
||||
allowLocalNetworkAccess, accessKeys,
|
||||
systemLanguage,
|
||||
sharedItemsFederatedDomains,
|
||||
pageNumber, maxItemsPerPage)
|
||||
|
||||
domain, port = getDomainFromActor(profileJson['id'])
|
||||
|
|
|
@ -316,6 +316,8 @@ def htmlSearchSharedItems(cssCache: {}, translate: {},
|
|||
if currPage <= pageNumber and os.path.isdir(catalogsDir):
|
||||
for subdir, dirs, files in os.walk(catalogsDir):
|
||||
for f in files:
|
||||
if '#' in f:
|
||||
continue
|
||||
if not f.endswith('.shares.json'):
|
||||
continue
|
||||
federatedDomain = f.split('.')[0]
|
||||
|
|
|
@ -359,7 +359,8 @@ def htmlTimeline(cssCache: {}, defaultTimeline: str,
|
|||
peertubeInstances: [],
|
||||
allowLocalNetworkAccess: bool,
|
||||
textModeBanner: str,
|
||||
accessKeys: {}, systemLanguage: str) -> str:
|
||||
accessKeys: {}, systemLanguage: str,
|
||||
sharedItemsFederatedDomains: []) -> str:
|
||||
"""Show the timeline as html
|
||||
"""
|
||||
enableTimingLog = False
|
||||
|
@ -618,7 +619,8 @@ def htmlTimeline(cssCache: {}, defaultTimeline: str,
|
|||
getLeftColumnContent(baseDir, nickname, domainFull,
|
||||
httpPrefix, translate,
|
||||
editor, False, None, rssIconAtTop,
|
||||
True, False, theme, accessKeys)
|
||||
True, False, theme, accessKeys,
|
||||
sharedItemsFederatedDomains)
|
||||
tlStr += ' <td valign="top" class="col-left" ' + \
|
||||
'id="links" tabindex="-1">' + \
|
||||
leftColumnStr + ' </td>\n'
|
||||
|
@ -655,7 +657,8 @@ def htmlTimeline(cssCache: {}, defaultTimeline: str,
|
|||
return (tlStr +
|
||||
_htmlSharesTimeline(translate, pageNumber, itemsPerPage,
|
||||
baseDir, actor, nickname, domain, port,
|
||||
maxSharesPerAccount, httpPrefix) +
|
||||
maxSharesPerAccount, httpPrefix,
|
||||
sharedItemsFederatedDomains) +
|
||||
htmlFooter())
|
||||
|
||||
_logTimelineTiming(enableTimingLog, timelineStartTime, boxName, '7')
|
||||
|
@ -860,12 +863,14 @@ def htmlIndividualShare(actor: str, item: {}, translate: {},
|
|||
def _htmlSharesTimeline(translate: {}, pageNumber: int, itemsPerPage: int,
|
||||
baseDir: str, actor: str,
|
||||
nickname: str, domain: str, port: int,
|
||||
maxSharesPerAccount: int, httpPrefix: str) -> str:
|
||||
maxSharesPerAccount: int, httpPrefix: str,
|
||||
sharedItemsFederatedDomains: []) -> str:
|
||||
"""Show shared items timeline as html
|
||||
"""
|
||||
sharesJson, lastPage = \
|
||||
sharesTimelineJson(actor, pageNumber, itemsPerPage,
|
||||
baseDir, maxSharesPerAccount)
|
||||
baseDir, maxSharesPerAccount,
|
||||
sharedItemsFederatedDomains)
|
||||
domainFull = getFullDomain(domain, port)
|
||||
actor = httpPrefix + '://' + domainFull + '/users/' + nickname
|
||||
timelineStr = ''
|
||||
|
@ -931,7 +936,8 @@ def htmlShares(cssCache: {}, defaultTimeline: str,
|
|||
peertubeInstances: [],
|
||||
allowLocalNetworkAccess: bool,
|
||||
textModeBanner: str,
|
||||
accessKeys: {}, systemLanguage: str) -> str:
|
||||
accessKeys: {}, systemLanguage: str,
|
||||
sharedItemsFederatedDomains: []) -> str:
|
||||
"""Show the shares timeline as html
|
||||
"""
|
||||
manuallyApproveFollowers = \
|
||||
|
@ -953,7 +959,8 @@ def htmlShares(cssCache: {}, defaultTimeline: str,
|
|||
iconsAsButtons, rssIconAtTop, publishButtonAtTop,
|
||||
authorized, None, theme, peertubeInstances,
|
||||
allowLocalNetworkAccess, textModeBanner,
|
||||
accessKeys, systemLanguage)
|
||||
accessKeys, systemLanguage,
|
||||
sharedItemsFederatedDomains)
|
||||
|
||||
|
||||
def htmlInbox(cssCache: {}, defaultTimeline: str,
|
||||
|
@ -976,7 +983,8 @@ def htmlInbox(cssCache: {}, defaultTimeline: str,
|
|||
peertubeInstances: [],
|
||||
allowLocalNetworkAccess: bool,
|
||||
textModeBanner: str,
|
||||
accessKeys: {}, systemLanguage: str) -> str:
|
||||
accessKeys: {}, systemLanguage: str,
|
||||
sharedItemsFederatedDomains: []) -> str:
|
||||
"""Show the inbox as html
|
||||
"""
|
||||
manuallyApproveFollowers = \
|
||||
|
@ -998,7 +1006,8 @@ def htmlInbox(cssCache: {}, defaultTimeline: str,
|
|||
iconsAsButtons, rssIconAtTop, publishButtonAtTop,
|
||||
authorized, None, theme, peertubeInstances,
|
||||
allowLocalNetworkAccess, textModeBanner,
|
||||
accessKeys, systemLanguage)
|
||||
accessKeys, systemLanguage,
|
||||
sharedItemsFederatedDomains)
|
||||
|
||||
|
||||
def htmlBookmarks(cssCache: {}, defaultTimeline: str,
|
||||
|
@ -1021,7 +1030,8 @@ def htmlBookmarks(cssCache: {}, defaultTimeline: str,
|
|||
peertubeInstances: [],
|
||||
allowLocalNetworkAccess: bool,
|
||||
textModeBanner: str,
|
||||
accessKeys: {}, systemLanguage: str) -> str:
|
||||
accessKeys: {}, systemLanguage: str,
|
||||
sharedItemsFederatedDomains: []) -> str:
|
||||
"""Show the bookmarks as html
|
||||
"""
|
||||
manuallyApproveFollowers = \
|
||||
|
@ -1043,7 +1053,8 @@ def htmlBookmarks(cssCache: {}, defaultTimeline: str,
|
|||
iconsAsButtons, rssIconAtTop, publishButtonAtTop,
|
||||
authorized, None, theme, peertubeInstances,
|
||||
allowLocalNetworkAccess, textModeBanner,
|
||||
accessKeys, systemLanguage)
|
||||
accessKeys, systemLanguage,
|
||||
sharedItemsFederatedDomains)
|
||||
|
||||
|
||||
def htmlInboxDMs(cssCache: {}, defaultTimeline: str,
|
||||
|
@ -1066,7 +1077,8 @@ def htmlInboxDMs(cssCache: {}, defaultTimeline: str,
|
|||
peertubeInstances: [],
|
||||
allowLocalNetworkAccess: bool,
|
||||
textModeBanner: str,
|
||||
accessKeys: {}, systemLanguage: str) -> str:
|
||||
accessKeys: {}, systemLanguage: str,
|
||||
sharedItemsFederatedDomains: []) -> str:
|
||||
"""Show the DM timeline as html
|
||||
"""
|
||||
return htmlTimeline(cssCache, defaultTimeline,
|
||||
|
@ -1083,7 +1095,8 @@ def htmlInboxDMs(cssCache: {}, defaultTimeline: str,
|
|||
iconsAsButtons, rssIconAtTop, publishButtonAtTop,
|
||||
authorized, None, theme, peertubeInstances,
|
||||
allowLocalNetworkAccess, textModeBanner,
|
||||
accessKeys, systemLanguage)
|
||||
accessKeys, systemLanguage,
|
||||
sharedItemsFederatedDomains)
|
||||
|
||||
|
||||
def htmlInboxReplies(cssCache: {}, defaultTimeline: str,
|
||||
|
@ -1106,7 +1119,8 @@ def htmlInboxReplies(cssCache: {}, defaultTimeline: str,
|
|||
peertubeInstances: [],
|
||||
allowLocalNetworkAccess: bool,
|
||||
textModeBanner: str,
|
||||
accessKeys: {}, systemLanguage: str) -> str:
|
||||
accessKeys: {}, systemLanguage: str,
|
||||
sharedItemsFederatedDomains: []) -> str:
|
||||
"""Show the replies timeline as html
|
||||
"""
|
||||
return htmlTimeline(cssCache, defaultTimeline,
|
||||
|
@ -1124,7 +1138,8 @@ def htmlInboxReplies(cssCache: {}, defaultTimeline: str,
|
|||
iconsAsButtons, rssIconAtTop, publishButtonAtTop,
|
||||
authorized, None, theme, peertubeInstances,
|
||||
allowLocalNetworkAccess, textModeBanner,
|
||||
accessKeys, systemLanguage)
|
||||
accessKeys, systemLanguage,
|
||||
sharedItemsFederatedDomains)
|
||||
|
||||
|
||||
def htmlInboxMedia(cssCache: {}, defaultTimeline: str,
|
||||
|
@ -1147,7 +1162,8 @@ def htmlInboxMedia(cssCache: {}, defaultTimeline: str,
|
|||
peertubeInstances: [],
|
||||
allowLocalNetworkAccess: bool,
|
||||
textModeBanner: str,
|
||||
accessKeys: {}, systemLanguage: str) -> str:
|
||||
accessKeys: {}, systemLanguage: str,
|
||||
sharedItemsFederatedDomains: []) -> str:
|
||||
"""Show the media timeline as html
|
||||
"""
|
||||
return htmlTimeline(cssCache, defaultTimeline,
|
||||
|
@ -1165,7 +1181,8 @@ def htmlInboxMedia(cssCache: {}, defaultTimeline: str,
|
|||
iconsAsButtons, rssIconAtTop, publishButtonAtTop,
|
||||
authorized, None, theme, peertubeInstances,
|
||||
allowLocalNetworkAccess, textModeBanner,
|
||||
accessKeys, systemLanguage)
|
||||
accessKeys, systemLanguage,
|
||||
sharedItemsFederatedDomains)
|
||||
|
||||
|
||||
def htmlInboxBlogs(cssCache: {}, defaultTimeline: str,
|
||||
|
@ -1188,7 +1205,8 @@ def htmlInboxBlogs(cssCache: {}, defaultTimeline: str,
|
|||
peertubeInstances: [],
|
||||
allowLocalNetworkAccess: bool,
|
||||
textModeBanner: str,
|
||||
accessKeys: {}, systemLanguage: str) -> str:
|
||||
accessKeys: {}, systemLanguage: str,
|
||||
sharedItemsFederatedDomains: []) -> str:
|
||||
"""Show the blogs timeline as html
|
||||
"""
|
||||
return htmlTimeline(cssCache, defaultTimeline,
|
||||
|
@ -1206,7 +1224,8 @@ def htmlInboxBlogs(cssCache: {}, defaultTimeline: str,
|
|||
iconsAsButtons, rssIconAtTop, publishButtonAtTop,
|
||||
authorized, None, theme, peertubeInstances,
|
||||
allowLocalNetworkAccess, textModeBanner,
|
||||
accessKeys, systemLanguage)
|
||||
accessKeys, systemLanguage,
|
||||
sharedItemsFederatedDomains)
|
||||
|
||||
|
||||
def htmlInboxFeatures(cssCache: {}, defaultTimeline: str,
|
||||
|
@ -1230,7 +1249,8 @@ def htmlInboxFeatures(cssCache: {}, defaultTimeline: str,
|
|||
peertubeInstances: [],
|
||||
allowLocalNetworkAccess: bool,
|
||||
textModeBanner: str,
|
||||
accessKeys: {}, systemLanguage: str) -> str:
|
||||
accessKeys: {}, systemLanguage: str,
|
||||
sharedItemsFederatedDomains: []) -> str:
|
||||
"""Show the features timeline as html
|
||||
"""
|
||||
return htmlTimeline(cssCache, defaultTimeline,
|
||||
|
@ -1248,7 +1268,8 @@ def htmlInboxFeatures(cssCache: {}, defaultTimeline: str,
|
|||
iconsAsButtons, rssIconAtTop, publishButtonAtTop,
|
||||
authorized, None, theme, peertubeInstances,
|
||||
allowLocalNetworkAccess, textModeBanner,
|
||||
accessKeys, systemLanguage)
|
||||
accessKeys, systemLanguage,
|
||||
sharedItemsFederatedDomains)
|
||||
|
||||
|
||||
def htmlInboxNews(cssCache: {}, defaultTimeline: str,
|
||||
|
@ -1271,7 +1292,8 @@ def htmlInboxNews(cssCache: {}, defaultTimeline: str,
|
|||
peertubeInstances: [],
|
||||
allowLocalNetworkAccess: bool,
|
||||
textModeBanner: str,
|
||||
accessKeys: {}, systemLanguage: str) -> str:
|
||||
accessKeys: {}, systemLanguage: str,
|
||||
sharedItemsFederatedDomains: []) -> str:
|
||||
"""Show the news timeline as html
|
||||
"""
|
||||
return htmlTimeline(cssCache, defaultTimeline,
|
||||
|
@ -1289,7 +1311,8 @@ def htmlInboxNews(cssCache: {}, defaultTimeline: str,
|
|||
iconsAsButtons, rssIconAtTop, publishButtonAtTop,
|
||||
authorized, None, theme, peertubeInstances,
|
||||
allowLocalNetworkAccess, textModeBanner,
|
||||
accessKeys, systemLanguage)
|
||||
accessKeys, systemLanguage,
|
||||
sharedItemsFederatedDomains)
|
||||
|
||||
|
||||
def htmlOutbox(cssCache: {}, defaultTimeline: str,
|
||||
|
@ -1312,7 +1335,8 @@ def htmlOutbox(cssCache: {}, defaultTimeline: str,
|
|||
peertubeInstances: [],
|
||||
allowLocalNetworkAccess: bool,
|
||||
textModeBanner: str,
|
||||
accessKeys: {}, systemLanguage: str) -> str:
|
||||
accessKeys: {}, systemLanguage: str,
|
||||
sharedItemsFederatedDomains: []) -> str:
|
||||
"""Show the Outbox as html
|
||||
"""
|
||||
manuallyApproveFollowers = \
|
||||
|
@ -1331,4 +1355,5 @@ def htmlOutbox(cssCache: {}, defaultTimeline: str,
|
|||
iconsAsButtons, rssIconAtTop, publishButtonAtTop,
|
||||
authorized, None, theme, peertubeInstances,
|
||||
allowLocalNetworkAccess, textModeBanner,
|
||||
accessKeys, systemLanguage)
|
||||
accessKeys, systemLanguage,
|
||||
sharedItemsFederatedDomains)
|
||||
|
|
|
@ -10,6 +10,7 @@ __module_group__ = "Web Interface"
|
|||
import os
|
||||
from collections import OrderedDict
|
||||
from session import getJson
|
||||
from utils import isAccountDir
|
||||
from utils import removeHtml
|
||||
from utils import getImageExtensions
|
||||
from utils import getProtocolPrefixes
|
||||
|
@ -331,7 +332,8 @@ def scheduledPostsExist(baseDir: str, nickname: str, domain: str) -> bool:
|
|||
|
||||
|
||||
def sharesTimelineJson(actor: str, pageNumber: int, itemsPerPage: int,
|
||||
baseDir: str, maxSharesPerAccount: int) -> ({}, bool):
|
||||
baseDir: str, maxSharesPerAccount: int,
|
||||
sharedItemsFederatedDomains: []) -> ({}, bool):
|
||||
"""Get a page on the shared items timeline as json
|
||||
maxSharesPerAccount helps to avoid one person dominating the timeline
|
||||
by sharing a large number of things
|
||||
|
@ -339,7 +341,7 @@ def sharesTimelineJson(actor: str, pageNumber: int, itemsPerPage: int,
|
|||
allSharesJson = {}
|
||||
for subdir, dirs, files in os.walk(baseDir + '/accounts'):
|
||||
for handle in dirs:
|
||||
if '@' not in handle:
|
||||
if not isAccountDir(handle):
|
||||
continue
|
||||
accountDir = baseDir + '/accounts/' + handle
|
||||
sharesFilename = accountDir + '/shares.json'
|
||||
|
@ -360,6 +362,30 @@ def sharesTimelineJson(actor: str, pageNumber: int, itemsPerPage: int,
|
|||
if ctr >= maxSharesPerAccount:
|
||||
break
|
||||
break
|
||||
catalogsDir = baseDir + '/cache/catalogs'
|
||||
if os.path.isdir(catalogsDir):
|
||||
for subdir, dirs, files in os.walk(catalogsDir):
|
||||
for f in files:
|
||||
if '#' in f:
|
||||
continue
|
||||
if not f.endswith('.shares.json'):
|
||||
continue
|
||||
federatedDomain = f.split('.')[0]
|
||||
if federatedDomain not in sharedItemsFederatedDomains:
|
||||
continue
|
||||
sharesFilename = catalogsDir + '/' + f
|
||||
sharesJson = loadJson(sharesFilename)
|
||||
if not sharesJson:
|
||||
continue
|
||||
ctr = 0
|
||||
for itemID, item in sharesJson.items():
|
||||
# assign owner to the item
|
||||
item['actor'] = itemID.split('/shareditems/')[0]
|
||||
allSharesJson[str(item['published'])] = item
|
||||
ctr += 1
|
||||
if ctr >= maxSharesPerAccount:
|
||||
break
|
||||
break
|
||||
# sort the shared items in descending order of publication date
|
||||
sharesJson = OrderedDict(sorted(allSharesJson.items(), reverse=True))
|
||||
lastPage = False
|
||||
|
|
Loading…
Reference in New Issue