forked from indymedia/epicyon
Newswire screen for mobile
parent
17eb1a7c9b
commit
13e4d6ce3a
28
daemon.py
28
daemon.py
|
@ -142,6 +142,7 @@ from webinterface import htmlNewPost
|
||||||
from webinterface import htmlFollowConfirm
|
from webinterface import htmlFollowConfirm
|
||||||
from webinterface import htmlCalendar
|
from webinterface import htmlCalendar
|
||||||
from webinterface import htmlSearch
|
from webinterface import htmlSearch
|
||||||
|
from webinterface import htmlNewswireMobile
|
||||||
from webinterface import htmlSearchEmoji
|
from webinterface import htmlSearchEmoji
|
||||||
from webinterface import htmlSearchEmojiTextEntry
|
from webinterface import htmlSearchEmojiTextEntry
|
||||||
from webinterface import htmlUnfollowConfirm
|
from webinterface import htmlUnfollowConfirm
|
||||||
|
@ -9152,6 +9153,33 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
'search screen shown')
|
'search screen shown')
|
||||||
return
|
return
|
||||||
|
|
||||||
|
if htmlGET and '/users/' in self.path:
|
||||||
|
if self.path.endswith('/newswire'):
|
||||||
|
nickname = getNicknameFromActor(self.path)
|
||||||
|
if not nickname:
|
||||||
|
self._404()
|
||||||
|
self.server.GETbusy = False
|
||||||
|
return
|
||||||
|
boxname = self.path.replace('/users/' + nickname, '')
|
||||||
|
if not boxname:
|
||||||
|
self._404()
|
||||||
|
self.server.GETbusy = False
|
||||||
|
return
|
||||||
|
timelinePath = '/users/' + nickname + '/' + boxname
|
||||||
|
msg = htmlNewswireMobile(self.server.baseDir,
|
||||||
|
nickname,
|
||||||
|
self.server.domain,
|
||||||
|
self.server.domainFull,
|
||||||
|
self.server.httpPrefix,
|
||||||
|
self.server.translate,
|
||||||
|
self.server.newswire,
|
||||||
|
self.server.positiveVoting,
|
||||||
|
timelinePath)
|
||||||
|
self._set_headers('text/html', len(msg), cookie, callingDomain)
|
||||||
|
self._write(msg)
|
||||||
|
self.server.GETbusy = False
|
||||||
|
return
|
||||||
|
|
||||||
self._benchmarkGETtimings(GETstartTime, GETtimings,
|
self._benchmarkGETtimings(GETstartTime, GETtimings,
|
||||||
'hashtag search done',
|
'hashtag search done',
|
||||||
'search screen shown done')
|
'search screen shown done')
|
||||||
|
|
|
@ -5572,7 +5572,8 @@ def htmlNewswire(newswire: str, nickname: str, moderator: bool,
|
||||||
def getRightColumnContent(baseDir: str, nickname: str, domainFull: str,
|
def getRightColumnContent(baseDir: str, nickname: str, domainFull: str,
|
||||||
httpPrefix: str, translate: {},
|
httpPrefix: str, translate: {},
|
||||||
iconsDir: str, moderator: bool, editor: bool,
|
iconsDir: str, moderator: bool, editor: bool,
|
||||||
newswire: {}, positiveVoting: bool) -> str:
|
newswire: {}, positiveVoting: bool,
|
||||||
|
showBackButton: bool, timelinePath: str) -> str:
|
||||||
"""Returns html content for the right column
|
"""Returns html content for the right column
|
||||||
"""
|
"""
|
||||||
htmlStr = ''
|
htmlStr = ''
|
||||||
|
@ -5609,6 +5610,12 @@ def getRightColumnContent(baseDir: str, nickname: str, domainFull: str,
|
||||||
if editImageClass == 'rightColEdit':
|
if editImageClass == 'rightColEdit':
|
||||||
htmlStr += '\n <center>\n'
|
htmlStr += '\n <center>\n'
|
||||||
|
|
||||||
|
if showBackButton:
|
||||||
|
htmlStr += \
|
||||||
|
' <a href="' + timelinePath + '">' + \
|
||||||
|
'<button class="cancelbtn">' + \
|
||||||
|
translate['Go Back'] + '</button></a>\n'
|
||||||
|
|
||||||
if editor:
|
if editor:
|
||||||
if os.path.isfile(baseDir + '/accounts/newswiremoderation.txt'):
|
if os.path.isfile(baseDir + '/accounts/newswiremoderation.txt'):
|
||||||
# show the edit icon highlighted
|
# show the edit icon highlighted
|
||||||
|
@ -5649,6 +5656,71 @@ def getRightColumnContent(baseDir: str, nickname: str, domainFull: str,
|
||||||
return htmlStr
|
return htmlStr
|
||||||
|
|
||||||
|
|
||||||
|
def htmlNewswireMobile(baseDir: str, nickname: str,
|
||||||
|
domain: str, domainFull: str,
|
||||||
|
httpPrefix: str, translate: {},
|
||||||
|
newswire: {},
|
||||||
|
positiveVoting: bool,
|
||||||
|
timelinePath: str) -> str:
|
||||||
|
"""Shows the mobile version of the newswire right column
|
||||||
|
"""
|
||||||
|
htmlStr = ''
|
||||||
|
|
||||||
|
# the css filename
|
||||||
|
cssFilename = baseDir + '/epicyon-profile.css'
|
||||||
|
if os.path.isfile(baseDir + '/epicyon.css'):
|
||||||
|
cssFilename = baseDir + '/epicyon.css'
|
||||||
|
|
||||||
|
# filename of the banner shown at the top
|
||||||
|
bannerFile = 'banner.png'
|
||||||
|
bannerFilename = baseDir + '/accounts/' + \
|
||||||
|
nickname + '@' + domain + '/' + bannerFile
|
||||||
|
if not os.path.isfile(bannerFilename):
|
||||||
|
bannerFile = 'banner.jpg'
|
||||||
|
bannerFilename = baseDir + '/accounts/' + \
|
||||||
|
nickname + '@' + domain + '/' + bannerFile
|
||||||
|
if not os.path.isfile(bannerFilename):
|
||||||
|
bannerFile = 'banner.gif'
|
||||||
|
bannerFilename = baseDir + '/accounts/' + \
|
||||||
|
nickname + '@' + domain + '/' + bannerFile
|
||||||
|
if not os.path.isfile(bannerFilename):
|
||||||
|
bannerFile = 'banner.avif'
|
||||||
|
bannerFilename = baseDir + '/accounts/' + \
|
||||||
|
nickname + '@' + domain + '/' + bannerFile
|
||||||
|
if not os.path.isfile(bannerFilename):
|
||||||
|
bannerFile = 'banner.webp'
|
||||||
|
|
||||||
|
profileStyle = None
|
||||||
|
with open(cssFilename, 'r') as cssFile:
|
||||||
|
# load css
|
||||||
|
profileStyle = \
|
||||||
|
cssFile.read().replace('banner.png',
|
||||||
|
'/users/' + nickname + '/' + bannerFile)
|
||||||
|
# replace any https within the css with whatever prefix is needed
|
||||||
|
if httpPrefix != 'https':
|
||||||
|
profileStyle = \
|
||||||
|
profileStyle.replace('https://',
|
||||||
|
httpPrefix + '://')
|
||||||
|
|
||||||
|
iconsDir = getIconsDir(baseDir)
|
||||||
|
|
||||||
|
# is the user a moderator?
|
||||||
|
moderator = isModerator(baseDir, nickname)
|
||||||
|
|
||||||
|
# is the user a site editor?
|
||||||
|
editor = isEditor(baseDir, nickname)
|
||||||
|
|
||||||
|
htmlStr = htmlHeader(cssFilename, profileStyle)
|
||||||
|
htmlStr += \
|
||||||
|
getRightColumnContent(baseDir, nickname, domainFull,
|
||||||
|
httpPrefix, translate,
|
||||||
|
iconsDir, moderator, editor,
|
||||||
|
newswire, positiveVoting,
|
||||||
|
True, timelinePath)
|
||||||
|
htmlStr += htmlFooter()
|
||||||
|
return htmlStr
|
||||||
|
|
||||||
|
|
||||||
def htmlTimeline(defaultTimeline: str,
|
def htmlTimeline(defaultTimeline: str,
|
||||||
recentPostsCache: {}, maxRecentPosts: int,
|
recentPostsCache: {}, maxRecentPosts: int,
|
||||||
translate: {}, pageNumber: int,
|
translate: {}, pageNumber: int,
|
||||||
|
@ -6137,7 +6209,8 @@ def htmlTimeline(defaultTimeline: str,
|
||||||
|
|
||||||
# the newswire button to show right column links
|
# the newswire button to show right column links
|
||||||
tlStr += \
|
tlStr += \
|
||||||
' <a class="imageAnchorMobile" href="' + usersPath + '/newswire' + \
|
' <a class="imageAnchorMobile" href="' + \
|
||||||
|
usersPath + '/newswire' + \
|
||||||
'"><img loading="lazy" src="/' + iconsDir + \
|
'"><img loading="lazy" src="/' + iconsDir + \
|
||||||
'/newswire.png" title="' + translate['News'] + \
|
'/newswire.png" title="' + translate['News'] + \
|
||||||
'" alt="| ' + translate['News'] + \
|
'" alt="| ' + translate['News'] + \
|
||||||
|
@ -6145,7 +6218,8 @@ def htmlTimeline(defaultTimeline: str,
|
||||||
|
|
||||||
# the links button to show left column links
|
# the links button to show left column links
|
||||||
tlStr += \
|
tlStr += \
|
||||||
' <a class="imageAnchorMobile" href="' + usersPath + '/links' + \
|
' <a class="imageAnchorMobile" href="' + \
|
||||||
|
usersPath + '/links' + \
|
||||||
'"><img loading="lazy" src="/' + iconsDir + \
|
'"><img loading="lazy" src="/' + iconsDir + \
|
||||||
'/links.png" title="' + translate['Edit Links'] + \
|
'/links.png" title="' + translate['Edit Links'] + \
|
||||||
'" alt="| ' + translate['Edit Links'] + \
|
'" alt="| ' + translate['Edit Links'] + \
|
||||||
|
@ -6319,7 +6393,8 @@ def htmlTimeline(defaultTimeline: str,
|
||||||
rightColumnStr = getRightColumnContent(baseDir, nickname, domainFull,
|
rightColumnStr = getRightColumnContent(baseDir, nickname, domainFull,
|
||||||
httpPrefix, translate, iconsDir,
|
httpPrefix, translate, iconsDir,
|
||||||
moderator, editor,
|
moderator, editor,
|
||||||
newswire, positiveVoting)
|
newswire, positiveVoting,
|
||||||
|
False, None)
|
||||||
tlStr += ' <td valign="top" class="col-right">' + \
|
tlStr += ' <td valign="top" class="col-right">' + \
|
||||||
rightColumnStr + ' </td>\n'
|
rightColumnStr + ' </td>\n'
|
||||||
tlStr += ' </tr>\n'
|
tlStr += ' </tr>\n'
|
||||||
|
|
Loading…
Reference in New Issue