Set html page title

merge-requests/30/head
Bob Mottram 2021-01-11 19:46:21 +00:00
parent 1f7d9633b2
commit bcfba50553
19 changed files with 149 additions and 45 deletions

17
blog.py
View File

@ -14,6 +14,7 @@ from webapp_utils import htmlHeaderWithExternalStyle
from webapp_utils import htmlFooter from webapp_utils import htmlFooter
from webapp_utils import getPostAttachmentsAsHtml from webapp_utils import getPostAttachmentsAsHtml
from webapp_media import addEmbeddedElements from webapp_media import addEmbeddedElements
from utils import getConfigParam
from utils import getFullDomain from utils import getFullDomain
from utils import getMediaFormats from utils import getMediaFormats
from utils import getNicknameFromActor from utils import getNicknameFromActor
@ -386,7 +387,9 @@ def htmlBlogPost(authorized: bool,
cssFilename = baseDir + '/epicyon-blog.css' cssFilename = baseDir + '/epicyon-blog.css'
if os.path.isfile(baseDir + '/blog.css'): if os.path.isfile(baseDir + '/blog.css'):
cssFilename = baseDir + '/blog.css' cssFilename = baseDir + '/blog.css'
blogStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
blogStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
_htmlBlogRemoveCwButton(blogStr, translate) _htmlBlogRemoveCwButton(blogStr, translate)
blogStr += _htmlBlogPostContent(authorized, baseDir, blogStr += _htmlBlogPostContent(authorized, baseDir,
@ -433,7 +436,9 @@ def htmlBlogPage(authorized: bool, session,
cssFilename = baseDir + '/epicyon-profile.css' cssFilename = baseDir + '/epicyon-profile.css'
if os.path.isfile(baseDir + '/epicyon.css'): if os.path.isfile(baseDir + '/epicyon.css'):
cssFilename = baseDir + '/epicyon.css' cssFilename = baseDir + '/epicyon.css'
blogStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
blogStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
_htmlBlogRemoveCwButton(blogStr, translate) _htmlBlogRemoveCwButton(blogStr, translate)
blogsIndex = baseDir + '/accounts/' + \ blogsIndex = baseDir + '/accounts/' + \
@ -653,7 +658,9 @@ def htmlBlogView(authorized: bool,
cssFilename = baseDir + '/epicyon-profile.css' cssFilename = baseDir + '/epicyon-profile.css'
if os.path.isfile(baseDir + '/epicyon.css'): if os.path.isfile(baseDir + '/epicyon.css'):
cssFilename = baseDir + '/epicyon.css' cssFilename = baseDir + '/epicyon.css'
blogStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
blogStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
if _noOfBlogAccounts(baseDir) <= 1: if _noOfBlogAccounts(baseDir) <= 1:
nickname = _singleBlogAccountNickname(baseDir) nickname = _singleBlogAccountNickname(baseDir)
@ -755,7 +762,9 @@ def htmlEditBlog(mediaInstance: bool, translate: {},
dateAndLocation += '<input type="text" name="location">' dateAndLocation += '<input type="text" name="location">'
dateAndLocation += '</div>' dateAndLocation += '</div>'
editBlogForm = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
editBlogForm = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
editBlogForm += \ editBlogForm += \
'<form enctype="multipart/form-data" method="POST" ' + \ '<form enctype="multipart/form-data" method="POST" ' + \

View File

@ -37,7 +37,9 @@ def htmlAbout(cssCache: {}, baseDir: str, httpPrefix: str,
if os.path.isfile(baseDir + '/epicyon.css'): if os.path.isfile(baseDir + '/epicyon.css'):
cssFilename = baseDir + '/epicyon.css' cssFilename = baseDir + '/epicyon.css'
aboutForm = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
aboutForm = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
aboutForm += '<div class="container">' + aboutText + '</div>' aboutForm += '<div class="container">' + aboutText + '</div>'
if onionDomain: if onionDomain:
aboutForm += \ aboutForm += \

View File

@ -10,6 +10,7 @@ import os
from datetime import datetime from datetime import datetime
from datetime import date from datetime import date
from shutil import copyfile from shutil import copyfile
from utils import getConfigParam
from utils import getNicknameFromActor from utils import getNicknameFromActor
from utils import getDomainFromActor from utils import getDomainFromActor
from utils import locatePost from utils import locatePost
@ -52,7 +53,9 @@ def htmlCalendarDeleteConfirm(cssCache: {}, translate: {}, baseDir: str,
if os.path.isfile(baseDir + '/epicyon.css'): if os.path.isfile(baseDir + '/epicyon.css'):
cssFilename = baseDir + '/epicyon.css' cssFilename = baseDir + '/epicyon.css'
deletePostStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
deletePostStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
deletePostStr += \ deletePostStr += \
'<center><h1>' + postTime + ' ' + str(year) + '/' + \ '<center><h1>' + postTime + ' ' + str(year) + '/' + \
str(monthNumber) + \ str(monthNumber) + \
@ -109,7 +112,9 @@ def _htmlCalendarDay(cssCache: {}, translate: {},
if '/users/' in actor: if '/users/' in actor:
calActor = '/users/' + actor.split('/users/')[1] calActor = '/users/' + actor.split('/users/')[1]
calendarStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
calendarStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
calendarStr += '<main><table class="calendar">\n' calendarStr += '<main><table class="calendar">\n'
calendarStr += '<caption class="calendar__banner--month">\n' calendarStr += '<caption class="calendar__banner--month">\n'
calendarStr += \ calendarStr += \
@ -290,7 +295,9 @@ def htmlCalendar(cssCache: {}, translate: {},
if '/users/' in actor: if '/users/' in actor:
calActor = '/users/' + actor.split('/users/')[1] calActor = '/users/' + actor.split('/users/')[1]
calendarStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
calendarStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
calendarStr += '<main><table class="calendar">\n' calendarStr += '<main><table class="calendar">\n'
calendarStr += '<caption class="calendar__banner--month">\n' calendarStr += '<caption class="calendar__banner--month">\n'
calendarStr += \ calendarStr += \

View File

@ -260,7 +260,9 @@ def htmlLinksMobile(cssCache: {}, baseDir: str,
if ':' in domain: if ':' in domain:
domain = domain.split(':')[0] domain = domain.split(':')[0]
htmlStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
htmlStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
bannerFile, bannerFilename = \ bannerFile, bannerFilename = \
getBannerFile(baseDir, nickname, domain, theme) getBannerFile(baseDir, nickname, domain, theme)
htmlStr += \ htmlStr += \
@ -321,7 +323,9 @@ def htmlEditLinks(cssCache: {}, translate: {}, baseDir: str, path: str,
bannerFile, bannerFilename = \ bannerFile, bannerFilename = \
getBannerFile(baseDir, nickname, domain, theme) getBannerFile(baseDir, nickname, domain, theme)
editLinksForm = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
editLinksForm = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
# top banner # top banner
editLinksForm += \ editLinksForm += \

View File

@ -15,6 +15,7 @@ from utils import loadJson
from utils import votesOnNewswireItem from utils import votesOnNewswireItem
from utils import getNicknameFromActor from utils import getNicknameFromActor
from utils import isEditor from utils import isEditor
from utils import getConfigParam
from posts import isModerator from posts import isModerator
from webapp_utils import getRightImageFile from webapp_utils import getRightImageFile
from webapp_utils import htmlHeaderWithExternalStyle from webapp_utils import htmlHeaderWithExternalStyle
@ -342,7 +343,9 @@ def htmlCitations(baseDir: str, nickname: str, domain: str,
if os.path.isfile(baseDir + '/epicyon.css'): if os.path.isfile(baseDir + '/epicyon.css'):
cssFilename = baseDir + '/epicyon.css' cssFilename = baseDir + '/epicyon.css'
htmlStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
htmlStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
# top banner # top banner
bannerFile, bannerFilename = \ bannerFile, bannerFilename = \
@ -452,7 +455,9 @@ def htmlNewswireMobile(cssCache: {}, baseDir: str, nickname: str,
showPublishButton = editor showPublishButton = editor
htmlStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
htmlStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
bannerFile, bannerFilename = \ bannerFile, bannerFilename = \
getBannerFile(baseDir, nickname, domain, theme) getBannerFile(baseDir, nickname, domain, theme)
@ -515,7 +520,9 @@ def htmlEditNewswire(cssCache: {}, translate: {}, baseDir: str, path: str,
bannerFile, bannerFilename = \ bannerFile, bannerFilename = \
getBannerFile(baseDir, nickname, domain, theme) getBannerFile(baseDir, nickname, domain, theme)
editNewswireForm = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
editNewswireForm = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
# top banner # top banner
editNewswireForm += \ editNewswireForm += \
@ -631,7 +638,9 @@ def htmlEditNewsPost(cssCache: {}, translate: {}, baseDir: str, path: str,
if os.path.isfile(baseDir + '/links.css'): if os.path.isfile(baseDir + '/links.css'):
cssFilename = baseDir + '/links.css' cssFilename = baseDir + '/links.css'
editNewsPostForm = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
editNewsPostForm = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
editNewsPostForm += \ editNewsPostForm += \
'<form enctype="multipart/form-data" method="POST" ' + \ '<form enctype="multipart/form-data" method="POST" ' + \
'accept-charset="UTF-8" action="' + path + '/newseditdata">\n' 'accept-charset="UTF-8" action="' + path + '/newseditdata">\n'

View File

@ -13,6 +13,7 @@ from utils import getNicknameFromActor
from utils import getDomainFromActor from utils import getDomainFromActor
from utils import locatePost from utils import locatePost
from utils import loadJson from utils import loadJson
from utils import getConfigParam
from webapp_utils import getAltPath from webapp_utils import getAltPath
from webapp_utils import htmlHeaderWithExternalStyle from webapp_utils import htmlHeaderWithExternalStyle
from webapp_utils import htmlFooter from webapp_utils import htmlFooter
@ -57,7 +58,9 @@ def htmlConfirmDelete(cssCache: {},
if os.path.isfile(baseDir + '/epicyon.css'): if os.path.isfile(baseDir + '/epicyon.css'):
cssFilename = baseDir + '/epicyon.css' cssFilename = baseDir + '/epicyon.css'
deletePostStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
deletePostStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
deletePostStr += \ deletePostStr += \
individualPostAsHtml(True, recentPostsCache, maxRecentPosts, individualPostAsHtml(True, recentPostsCache, maxRecentPosts,
translate, pageNumber, translate, pageNumber,
@ -130,7 +133,9 @@ def htmlConfirmRemoveSharedItem(cssCache: {}, translate: {}, baseDir: str,
if os.path.isfile(baseDir + '/follow.css'): if os.path.isfile(baseDir + '/follow.css'):
cssFilename = baseDir + '/follow.css' cssFilename = baseDir + '/follow.css'
sharesStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
sharesStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
sharesStr += '<div class="follow">\n' sharesStr += '<div class="follow">\n'
sharesStr += ' <div class="followAvatar">\n' sharesStr += ' <div class="followAvatar">\n'
sharesStr += ' <center>\n' sharesStr += ' <center>\n'
@ -177,7 +182,9 @@ def htmlConfirmFollow(cssCache: {}, translate: {}, baseDir: str,
if os.path.isfile(baseDir + '/follow.css'): if os.path.isfile(baseDir + '/follow.css'):
cssFilename = baseDir + '/follow.css' cssFilename = baseDir + '/follow.css'
followStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
followStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
followStr += '<div class="follow">\n' followStr += '<div class="follow">\n'
followStr += ' <div class="followAvatar">\n' followStr += ' <div class="followAvatar">\n'
followStr += ' <center>\n' followStr += ' <center>\n'
@ -221,7 +228,9 @@ def htmlConfirmUnfollow(cssCache: {}, translate: {}, baseDir: str,
if os.path.isfile(baseDir + '/follow.css'): if os.path.isfile(baseDir + '/follow.css'):
cssFilename = baseDir + '/follow.css' cssFilename = baseDir + '/follow.css'
followStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
followStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
followStr += '<div class="follow">\n' followStr += '<div class="follow">\n'
followStr += ' <div class="followAvatar">\n' followStr += ' <div class="followAvatar">\n'
followStr += ' <center>\n' followStr += ' <center>\n'
@ -266,7 +275,9 @@ def htmlConfirmUnblock(cssCache: {}, translate: {}, baseDir: str,
if os.path.isfile(baseDir + '/follow.css'): if os.path.isfile(baseDir + '/follow.css'):
cssFilename = baseDir + '/follow.css' cssFilename = baseDir + '/follow.css'
blockStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
blockStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
blockStr += '<div class="block">\n' blockStr += '<div class="block">\n'
blockStr += ' <div class="blockAvatar">\n' blockStr += ' <div class="blockAvatar">\n'
blockStr += ' <center>\n' blockStr += ' <center>\n'

View File

@ -12,6 +12,7 @@ from utils import getNicknameFromActor
from utils import getDomainFromActor from utils import getDomainFromActor
from utils import getImageFormats from utils import getImageFormats
from utils import getMediaFormats from utils import getMediaFormats
from utils import getConfigParam
from webapp_utils import getBannerFile from webapp_utils import getBannerFile
from webapp_utils import htmlHeaderWithExternalStyle from webapp_utils import htmlHeaderWithExternalStyle
from webapp_utils import htmlFooter from webapp_utils import htmlFooter
@ -555,7 +556,9 @@ def htmlNewPost(cssCache: {}, mediaInstance: bool, translate: {},
dateAndLocation += '<input type="text" name="category">\n' dateAndLocation += '<input type="text" name="category">\n'
dateAndLocation += '</div>\n' dateAndLocation += '</div>\n'
newPostForm = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
newPostForm = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
newPostForm += \ newPostForm += \
'<header>\n' + \ '<header>\n' + \

View File

@ -9,6 +9,7 @@ __status__ = "Production"
import os import os
from utils import isSystemAccount from utils import isSystemAccount
from utils import getDomainFromActor from utils import getDomainFromActor
from utils import getConfigParam
from person import personBoxJson from person import personBoxJson
from webapp_utils import htmlHeaderWithExternalStyle from webapp_utils import htmlHeaderWithExternalStyle
from webapp_utils import htmlFooter from webapp_utils import htmlFooter
@ -170,7 +171,9 @@ def htmlFrontScreen(rssIconAtTop: bool,
profileFooterStr += ' </tbody>\n' profileFooterStr += ' </tbody>\n'
profileFooterStr += '</table>\n' profileFooterStr += '</table>\n'
instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
profileStr = \ profileStr = \
htmlHeaderWithExternalStyle(cssFilename) + \ htmlHeaderWithExternalStyle(cssFilename, instanceTitle) + \
profileStr + profileFooterStr + htmlFooter() profileStr + profileFooterStr + htmlFooter()
return profileStr return profileStr

View File

@ -10,6 +10,7 @@ import os
from shutil import copyfile from shutil import copyfile
from datetime import datetime from datetime import datetime
from utils import getNicknameFromActor from utils import getNicknameFromActor
from utils import getConfigParam
from categories import getHashtagCategories from categories import getHashtagCategories
from categories import getHashtagCategory from categories import getHashtagCategory
from webapp_utils import getSearchBannerFile from webapp_utils import getSearchBannerFile
@ -246,7 +247,9 @@ def htmlSearchHashtagCategory(cssCache: {}, translate: {},
if os.path.isfile(baseDir + '/search.css'): if os.path.isfile(baseDir + '/search.css'):
cssFilename = baseDir + '/search.css' cssFilename = baseDir + '/search.css'
htmlStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
htmlStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
# show a banner above the search box # show a banner above the search box
searchBannerFile, searchBannerFilename = \ searchBannerFile, searchBannerFilename = \

View File

@ -129,7 +129,9 @@ def htmlLogin(cssCache: {}, translate: {},
if not autocomplete: if not autocomplete:
autocompleteStr = 'autocomplete="off" value=""' autocompleteStr = 'autocomplete="off" value=""'
loginForm = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
loginForm = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
loginForm += '<br>\n' loginForm += '<br>\n'
loginForm += '<form method="POST" action="/login">\n' loginForm += '<form method="POST" action="/login">\n'
loginForm += ' <div class="imgcontainer">\n' loginForm += ' <div class="imgcontainer">\n'

View File

@ -12,6 +12,7 @@ from utils import isEditor
from utils import loadJson from utils import loadJson
from utils import getNicknameFromActor from utils import getNicknameFromActor
from utils import getDomainFromActor from utils import getDomainFromActor
from utils import getConfigParam
from posts import downloadFollowCollection from posts import downloadFollowCollection
from posts import getPublicPostInfo from posts import getPublicPostInfo
from posts import isModerator from posts import isModerator
@ -74,7 +75,9 @@ def htmlAccountInfo(cssCache: {}, translate: {},
if os.path.isfile(baseDir + '/epicyon.css'): if os.path.isfile(baseDir + '/epicyon.css'):
cssFilename = baseDir + '/epicyon.css' cssFilename = baseDir + '/epicyon.css'
infoForm = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
infoForm = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
searchNickname = getNicknameFromActor(searchHandle) searchNickname = getNicknameFromActor(searchHandle)
searchDomain, searchPort = getDomainFromActor(searchHandle) searchDomain, searchPort = getDomainFromActor(searchHandle)
@ -248,7 +251,9 @@ def htmlModerationInfo(cssCache: {}, translate: {},
if os.path.isfile(baseDir + '/epicyon.css'): if os.path.isfile(baseDir + '/epicyon.css'):
cssFilename = baseDir + '/epicyon.css' cssFilename = baseDir + '/epicyon.css'
infoForm = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
infoForm = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
infoForm += \ infoForm += \
'<center><h1><a href="/users/' + nickname + '/moderation">' + \ '<center><h1><a href="/users/' + nickname + '/moderation">' + \

View File

@ -109,7 +109,9 @@ def htmlPersonOptions(defaultTimeline: str,
'"><button class="button" name="submitDonate">' + \ '"><button class="button" name="submitDonate">' + \
translate['Donate'] + '</button></a>\n' translate['Donate'] + '</button></a>\n'
optionsStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
optionsStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
optionsStr += '<br><br>\n' optionsStr += '<br><br>\n'
optionsStr += '<div class="options">\n' optionsStr += '<div class="options">\n'
optionsStr += ' <div class="optionsAvatar">\n' optionsStr += ' <div class="optionsAvatar">\n'

View File

@ -22,6 +22,7 @@ from posts import getPersonBox
from posts import isDM from posts import isDM
from posts import downloadAnnounce from posts import downloadAnnounce
from posts import populateRepliesJson from posts import populateRepliesJson
from utils import getConfigParam
from utils import getFullDomain from utils import getFullDomain
from utils import isEditor from utils import isEditor
from utils import locatePost from utils import locatePost
@ -1705,7 +1706,10 @@ def htmlIndividualPost(cssCache: {},
if os.path.isfile(baseDir + '/epicyon.css'): if os.path.isfile(baseDir + '/epicyon.css'):
cssFilename = baseDir + '/epicyon.css' cssFilename = baseDir + '/epicyon.css'
return htmlHeaderWithExternalStyle(cssFilename) + postStr + htmlFooter() instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
return htmlHeaderWithExternalStyle(cssFilename, instanceTitle) + \
postStr + htmlFooter()
def htmlPostReplies(cssCache: {}, def htmlPostReplies(cssCache: {},
@ -1740,4 +1744,7 @@ def htmlPostReplies(cssCache: {},
if os.path.isfile(baseDir + '/epicyon.css'): if os.path.isfile(baseDir + '/epicyon.css'):
cssFilename = baseDir + '/epicyon.css' cssFilename = baseDir + '/epicyon.css'
return htmlHeaderWithExternalStyle(cssFilename) + repliesStr + htmlFooter() instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
return htmlHeaderWithExternalStyle(cssFilename, instanceTitle) + \
repliesStr + htmlFooter()

View File

@ -288,7 +288,10 @@ def htmlProfileAfterSearch(cssCache: {},
if i >= 20: if i >= 20:
break break
return htmlHeaderWithExternalStyle(cssFilename) + profileStr + htmlFooter() instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
return htmlHeaderWithExternalStyle(cssFilename, instanceTitle) + \
profileStr + htmlFooter()
def _getProfileHeader(baseDir: str, nickname: str, domain: str, def _getProfileHeader(baseDir: str, nickname: str, domain: str,
@ -680,8 +683,10 @@ def htmlProfile(rssIconAtTop: bool,
nickname, domainFull, nickname, domainFull,
extraJson) + licenseStr extraJson) + licenseStr
instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
profileStr = \ profileStr = \
htmlHeaderWithExternalStyle(cssFilename) + \ htmlHeaderWithExternalStyle(cssFilename, instanceTitle) + \
profileStr + htmlFooter() profileStr + htmlFooter()
return profileStr return profileStr
@ -1196,7 +1201,9 @@ def htmlEditProfile(cssCache: {}, translate: {}, baseDir: str, path: str,
'style="height:200px">' + peertubeInstancesStr + \ 'style="height:200px">' + peertubeInstancesStr + \
'</textarea>\n' '</textarea>\n'
editProfileForm = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
editProfileForm = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
# top banner # top banner
editProfileForm += \ editProfileForm += \

View File

@ -10,6 +10,7 @@ import os
from shutil import copyfile from shutil import copyfile
import urllib.parse import urllib.parse
from datetime import datetime from datetime import datetime
from utils import getConfigParam
from utils import getFullDomain from utils import getFullDomain
from utils import isEditor from utils import isEditor
from utils import loadJson from utils import loadJson
@ -50,7 +51,9 @@ def htmlSearchEmoji(cssCache: {}, translate: {},
emojiLookupFilename = baseDir + '/emoji/emoji.json' emojiLookupFilename = baseDir + '/emoji/emoji.json'
# create header # create header
emojiForm = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
emojiForm = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
emojiForm += '<center><h1>' + \ emojiForm += '<center><h1>' + \
translate['Emoji Search'] + \ translate['Emoji Search'] + \
'</h1></center>' '</h1></center>'
@ -110,8 +113,10 @@ def htmlSearchSharedItems(cssCache: {}, translate: {},
if os.path.isfile(baseDir + '/epicyon.css'): if os.path.isfile(baseDir + '/epicyon.css'):
cssFilename = baseDir + '/epicyon.css' cssFilename = baseDir + '/epicyon.css'
instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
sharedItemsForm = \ sharedItemsForm = \
htmlHeaderWithExternalStyle(cssFilename) htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
sharedItemsForm += \ sharedItemsForm += \
'<center><h1>' + \ '<center><h1>' + \
'<a href="' + actor + '/search">' + \ '<a href="' + actor + '/search">' + \
@ -285,7 +290,9 @@ def htmlSearchEmojiTextEntry(cssCache: {}, translate: {},
if os.path.isfile(baseDir + '/follow.css'): if os.path.isfile(baseDir + '/follow.css'):
cssFilename = baseDir + '/follow.css' cssFilename = baseDir + '/follow.css'
emojiStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
emojiStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
emojiStr += '<div class="follow">\n' emojiStr += '<div class="follow">\n'
emojiStr += ' <div class="followAvatar">\n' emojiStr += ' <div class="followAvatar">\n'
emojiStr += ' <center>\n' emojiStr += ' <center>\n'
@ -325,7 +332,9 @@ def htmlSearch(cssCache: {}, translate: {},
if os.path.isfile(baseDir + '/search.css'): if os.path.isfile(baseDir + '/search.css'):
cssFilename = baseDir + '/search.css' cssFilename = baseDir + '/search.css'
followStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
followStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
# show a banner above the search box # show a banner above the search box
searchBannerFile, searchBannerFilename = \ searchBannerFile, searchBannerFilename = \
@ -459,7 +468,9 @@ def htmlSkillsSearch(actor: str,
if os.path.isfile(baseDir + '/epicyon.css'): if os.path.isfile(baseDir + '/epicyon.css'):
cssFilename = baseDir + '/epicyon.css' cssFilename = baseDir + '/epicyon.css'
skillSearchForm = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
skillSearchForm = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
skillSearchForm += \ skillSearchForm += \
'<center><h1><a href = "' + actor + '/search">' + \ '<center><h1><a href = "' + actor + '/search">' + \
translate['Skills search'] + ': ' + \ translate['Skills search'] + ': ' + \
@ -525,8 +536,10 @@ def htmlHistorySearch(cssCache: {}, translate: {}, baseDir: str,
if os.path.isfile(baseDir + '/epicyon.css'): if os.path.isfile(baseDir + '/epicyon.css'):
cssFilename = baseDir + '/epicyon.css' cssFilename = baseDir + '/epicyon.css'
instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
historySearchForm = \ historySearchForm = \
htmlHeaderWithExternalStyle(cssFilename) htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
# add the page title # add the page title
domainFull = getFullDomain(domain, port) domainFull = getFullDomain(domain, port)
@ -650,8 +663,10 @@ def htmlHashtagSearch(cssCache: {},
endIndex = noOfLines - 1 endIndex = noOfLines - 1
# add the page title # add the page title
instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
hashtagSearchForm = \ hashtagSearchForm = \
htmlHeaderWithExternalStyle(cssFilename) htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
if nickname: if nickname:
hashtagSearchForm += '<center>\n' + \ hashtagSearchForm += '<center>\n' + \
'<h1><a href="/users/' + nickname + '/search">#' + \ '<h1><a href="/users/' + nickname + '/search">#' + \

View File

@ -7,6 +7,7 @@ __email__ = "bob@freedombone.net"
__status__ = "Production" __status__ = "Production"
import os import os
from utils import getConfigParam
from webapp_utils import htmlHeaderWithExternalStyle from webapp_utils import htmlHeaderWithExternalStyle
from webapp_utils import htmlFooter from webapp_utils import htmlFooter
@ -19,7 +20,9 @@ def htmlSuspended(cssCache: {}, baseDir: str) -> str:
if os.path.isfile(baseDir + '/suspended.css'): if os.path.isfile(baseDir + '/suspended.css'):
cssFilename = baseDir + '/suspended.css' cssFilename = baseDir + '/suspended.css'
suspendedForm = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
suspendedForm = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
suspendedForm += '<div><center>\n' suspendedForm += '<div><center>\n'
suspendedForm += ' <p class="screentitle">Account Suspended</p>\n' suspendedForm += ' <p class="screentitle">Account Suspended</p>\n'
suspendedForm += ' <p>See <a href="/terms">Terms of Service</a></p>\n' suspendedForm += ' <p>See <a href="/terms">Terms of Service</a></p>\n'

View File

@ -8,6 +8,7 @@ __status__ = "Production"
import os import os
import time import time
from utils import getConfigParam
from utils import getFullDomain from utils import getFullDomain
from utils import isEditor from utils import isEditor
from utils import removeIdEnding from utils import removeIdEnding
@ -255,7 +256,9 @@ def htmlTimeline(cssCache: {}, defaultTimeline: str,
eventsButton + '"><span>' + translate['Events'] + \ eventsButton + '"><span>' + translate['Events'] + \
'</span></button></a>' '</span></button></a>'
tlStr = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
tlStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
_logTimelineTiming(enableTimingLog, timelineStartTime, boxName, '4') _logTimelineTiming(enableTimingLog, timelineStartTime, boxName, '4')

View File

@ -37,7 +37,9 @@ def htmlTermsOfService(cssCache: {}, baseDir: str,
if os.path.isfile(baseDir + '/epicyon.css'): if os.path.isfile(baseDir + '/epicyon.css'):
cssFilename = baseDir + '/epicyon.css' cssFilename = baseDir + '/epicyon.css'
TOSForm = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
TOSForm = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
TOSForm += '<div class="container">' + TOSText + '</div>\n' TOSForm += '<div class="container">' + TOSText + '</div>\n'
if adminNickname: if adminNickname:
adminActor = httpPrefix + '://' + domainFull + \ adminActor = httpPrefix + '://' + domainFull + \

View File

@ -42,7 +42,10 @@ def htmlFollowingList(cssCache: {}, baseDir: str,
if os.path.isfile(baseDir + '/epicyon.css'): if os.path.isfile(baseDir + '/epicyon.css'):
cssFilename = baseDir + '/epicyon.css' cssFilename = baseDir + '/epicyon.css'
followingListHtml = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
followingListHtml = htmlHeaderWithExternalStyle(cssFilename,
instanceTitle)
for followingAddress in followingList: for followingAddress in followingList:
if followingAddress: if followingAddress:
followingListHtml += \ followingListHtml += \
@ -61,7 +64,10 @@ def htmlHashtagBlocked(cssCache: {}, baseDir: str, translate: {}) -> str:
if os.path.isfile(baseDir + '/suspended.css'): if os.path.isfile(baseDir + '/suspended.css'):
cssFilename = baseDir + '/suspended.css' cssFilename = baseDir + '/suspended.css'
blockedHashtagForm = htmlHeaderWithExternalStyle(cssFilename) instanceTitle = \
getConfigParam(baseDir, 'instanceTitle')
blockedHashtagForm = htmlHeaderWithExternalStyle(cssFilename,
instanceTitle)
blockedHashtagForm += '<div><center>\n' blockedHashtagForm += '<div><center>\n'
blockedHashtagForm += \ blockedHashtagForm += \
' <p class="screentitle">' + \ ' <p class="screentitle">' + \
@ -521,7 +527,8 @@ def getRightImageFile(baseDir: str,
nickname, domain, theme) nickname, domain, theme)
def htmlHeaderWithExternalStyle(cssFilename: str, lang='en') -> str: def htmlHeaderWithExternalStyle(cssFilename: str, instanceTitle: str,
lang='en') -> str:
htmlStr = '<!DOCTYPE html>\n' htmlStr = '<!DOCTYPE html>\n'
htmlStr += '<html lang="' + lang + '">\n' htmlStr += '<html lang="' + lang + '">\n'
htmlStr += ' <head>\n' htmlStr += ' <head>\n'
@ -530,7 +537,7 @@ def htmlHeaderWithExternalStyle(cssFilename: str, lang='en') -> str:
htmlStr += ' <link rel="stylesheet" href="' + cssFile + '">\n' htmlStr += ' <link rel="stylesheet" href="' + cssFile + '">\n'
htmlStr += ' <link rel="manifest" href="/manifest.json">\n' htmlStr += ' <link rel="manifest" href="/manifest.json">\n'
htmlStr += ' <meta name="theme-color" content="grey">\n' htmlStr += ' <meta name="theme-color" content="grey">\n'
htmlStr += ' <title>Epicyon</title>\n' htmlStr += ' <title>' + instanceTitle + '</title>\n'
htmlStr += ' </head>\n' htmlStr += ' </head>\n'
htmlStr += ' <body>\n' htmlStr += ' <body>\n'
return htmlStr return htmlStr