Function to set custom backgrounds

merge-requests/30/head
Bob Mottram 2021-10-30 12:08:57 +01:00
parent 15e2f28bb2
commit 105fe03426
5 changed files with 43 additions and 34 deletions

View File

@ -10,7 +10,6 @@ __module_group__ = "Calendar"
import os import os
from datetime import datetime from datetime import datetime
from datetime import date from datetime import date
from shutil import copyfile
from utils import getDisplayName from utils import getDisplayName
from utils import getConfigParam from utils import getConfigParam
from utils import getNicknameFromActor from utils import getNicknameFromActor
@ -25,6 +24,7 @@ from utils import localActorUrl
from utils import replaceUsersWithAt from utils import replaceUsersWithAt
from happening import getTodaysEvents from happening import getTodaysEvents
from happening import getCalendarEvents from happening import getCalendarEvents
from webapp_utils import setCustomBackground
from webapp_utils import htmlHeaderWithExternalStyle from webapp_utils import htmlHeaderWithExternalStyle
from webapp_utils import htmlFooter from webapp_utils import htmlFooter
from webapp_utils import htmlHideFromScreenReader from webapp_utils import htmlHideFromScreenReader
@ -51,10 +51,7 @@ def htmlCalendarDeleteConfirm(cssCache: {}, translate: {}, baseDir: str,
if not postJsonObject: if not postJsonObject:
return None return None
if os.path.isfile(baseDir + '/img/delete-background.png'): setCustomBackground(baseDir, 'delete-background')
if not os.path.isfile(baseDir + '/accounts/delete-background.png'):
copyfile(baseDir + '/img/delete-background.png',
baseDir + '/accounts/delete-background.png')
deletePostStr = None deletePostStr = None
cssFilename = baseDir + '/epicyon-profile.css' cssFilename = baseDir + '/epicyon-profile.css'
@ -287,10 +284,7 @@ def htmlCalendar(personCache: {}, cssCache: {}, translate: {},
nickname = getNicknameFromActor(actor) nickname = getNicknameFromActor(actor)
if os.path.isfile(baseDir + '/img/calendar-background.png'): setCustomBackground(baseDir, 'calendar-background')
if not os.path.isfile(baseDir + '/accounts/calendar-background.png'):
copyfile(baseDir + '/img/calendar-background.png',
baseDir + '/accounts/calendar-background.png')
months = ('January', 'February', 'March', 'April', months = ('January', 'February', 'March', 'April',
'May', 'June', 'July', 'August', 'September', 'May', 'June', 'July', 'August', 'September',

View File

@ -17,6 +17,7 @@ from utils import loadJson
from utils import getConfigParam from utils import getConfigParam
from utils import getAltPath from utils import getAltPath
from utils import acctDir from utils import acctDir
from webapp_utils import setCustomBackground
from webapp_utils import htmlHeaderWithExternalStyle from webapp_utils import htmlHeaderWithExternalStyle
from webapp_utils import htmlFooter from webapp_utils import htmlFooter
from webapp_post import individualPostAsHtml from webapp_post import individualPostAsHtml
@ -54,10 +55,7 @@ def htmlConfirmDelete(cssCache: {},
if not postJsonObject: if not postJsonObject:
return None return None
if os.path.isfile(baseDir + '/img/delete-background.png'): setCustomBackground(baseDir, 'delete-background')
if not os.path.isfile(baseDir + '/accounts/delete-background.png'):
copyfile(baseDir + '/img/delete-background.png',
baseDir + '/accounts/delete-background.png')
deletePostStr = None deletePostStr = None
cssFilename = baseDir + '/epicyon-profile.css' cssFilename = baseDir + '/epicyon-profile.css'
@ -134,10 +132,7 @@ def htmlConfirmRemoveSharedItem(cssCache: {}, translate: {}, baseDir: str,
if sharesJson[itemID].get('imageUrl'): if sharesJson[itemID].get('imageUrl'):
sharedItemImageUrl = sharesJson[itemID]['imageUrl'] sharedItemImageUrl = sharesJson[itemID]['imageUrl']
if os.path.isfile(baseDir + '/img/shares-background.png'): setCustomBackground(baseDir, 'shares-background')
if not os.path.isfile(baseDir + '/accounts/shares-background.png'):
copyfile(baseDir + '/img/shares-background.png',
baseDir + '/accounts/shares-background.png')
cssFilename = baseDir + '/epicyon-follow.css' cssFilename = baseDir + '/epicyon-follow.css'
if os.path.isfile(baseDir + '/follow.css'): if os.path.isfile(baseDir + '/follow.css'):
@ -278,10 +273,7 @@ def htmlConfirmUnblock(cssCache: {}, translate: {}, baseDir: str,
""" """
blockDomain, port = getDomainFromActor(blockActor) blockDomain, port = getDomainFromActor(blockActor)
if os.path.isfile(baseDir + '/img/block-background.png'): setCustomBackground(baseDir, 'block-background')
if not os.path.isfile(baseDir + '/accounts/block-background.png'):
copyfile(baseDir + '/img/block-background.png',
baseDir + '/accounts/block-background.png')
cssFilename = baseDir + '/epicyon-follow.css' cssFilename = baseDir + '/epicyon-follow.css'
if os.path.isfile(baseDir + '/follow.css'): if os.path.isfile(baseDir + '/follow.css'):

View File

@ -8,12 +8,12 @@ __status__ = "Production"
__module_group__ = "Web Interface" __module_group__ = "Web Interface"
import os import os
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 utils import getConfigParam
from categories import getHashtagCategories from categories import getHashtagCategories
from categories import getHashtagCategory from categories import getHashtagCategory
from webapp_utils import setCustomBackground
from webapp_utils import getSearchBannerFile from webapp_utils import getSearchBannerFile
from webapp_utils import getContentWarningButton from webapp_utils import getContentWarningButton
from webapp_utils import htmlHeaderWithExternalStyle from webapp_utils import htmlHeaderWithExternalStyle
@ -201,10 +201,7 @@ def htmlSearchHashtagCategory(cssCache: {}, translate: {},
categoryStr = path.split('/category/')[1].strip() categoryStr = path.split('/category/')[1].strip()
searchNickname = getNicknameFromActor(actor) searchNickname = getNicknameFromActor(actor)
if os.path.isfile(baseDir + '/img/search-background.png'): backgroundExt = setCustomBackground(baseDir, 'search-background')
if not os.path.isfile(baseDir + '/accounts/search-background.png'):
copyfile(baseDir + '/img/search-background.png',
baseDir + '/accounts/search-background.png')
cssFilename = baseDir + '/epicyon-search.css' cssFilename = baseDir + '/epicyon-search.css'
if os.path.isfile(baseDir + '/search.css'): if os.path.isfile(baseDir + '/search.css'):
@ -213,6 +210,11 @@ def htmlSearchHashtagCategory(cssCache: {}, translate: {},
instanceTitle = \ instanceTitle = \
getConfigParam(baseDir, 'instanceTitle') getConfigParam(baseDir, 'instanceTitle')
htmlStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle) htmlStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
if backgroundExt:
if backgroundExt != 'jpg':
htmlStr = htmlStr.replace('"follow-background.jpg"',
'"follow-background.' +
backgroundExt + '"')
# show a banner above the search box # show a banner above the search box
searchBannerFile, searchBannerFilename = \ searchBannerFile, searchBannerFilename = \

View File

@ -31,6 +31,7 @@ from skills import getSkillsFromList
from categories import getHashtagCategory from categories import getHashtagCategory
from feeds import rss2TagHeader from feeds import rss2TagHeader
from feeds import rss2TagFooter from feeds import rss2TagFooter
from webapp_utils import setCustomBackground
from webapp_utils import htmlKeyboardNavigation from webapp_utils import htmlKeyboardNavigation
from webapp_utils import htmlHeaderWithExternalStyle from webapp_utils import htmlHeaderWithExternalStyle
from webapp_utils import htmlFooter from webapp_utils import htmlFooter
@ -327,10 +328,7 @@ def htmlSearchEmojiTextEntry(cssCache: {}, translate: {},
actor = path.replace('/search', '') actor = path.replace('/search', '')
domain, port = getDomainFromActor(actor) domain, port = getDomainFromActor(actor)
if os.path.isfile(baseDir + '/img/search-background.png'): backgroundExt = setCustomBackground(baseDir, 'search-background')
if not os.path.isfile(baseDir + '/accounts/search-background.png'):
copyfile(baseDir + '/img/search-background.png',
baseDir + '/accounts/search-background.png')
cssFilename = baseDir + '/epicyon-follow.css' cssFilename = baseDir + '/epicyon-follow.css'
if os.path.isfile(baseDir + '/follow.css'): if os.path.isfile(baseDir + '/follow.css'):
@ -339,6 +337,11 @@ def htmlSearchEmojiTextEntry(cssCache: {}, translate: {},
instanceTitle = \ instanceTitle = \
getConfigParam(baseDir, 'instanceTitle') getConfigParam(baseDir, 'instanceTitle')
emojiStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle) emojiStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
if backgroundExt:
if backgroundExt != 'jpg':
emojiStr = emojiStr.replace('"follow-background.jpg"',
'"follow-background.' +
backgroundExt + '"')
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'
@ -370,10 +373,7 @@ def htmlSearch(cssCache: {}, translate: {},
actor = path.replace('/search', '') actor = path.replace('/search', '')
searchNickname = getNicknameFromActor(actor) searchNickname = getNicknameFromActor(actor)
if os.path.isfile(baseDir + '/img/search-background.png'): backgroundExt = setCustomBackground(baseDir, 'search-background')
if not os.path.isfile(baseDir + '/accounts/search-background.png'):
copyfile(baseDir + '/img/search-background.png',
baseDir + '/accounts/search-background.png')
cssFilename = baseDir + '/epicyon-search.css' cssFilename = baseDir + '/epicyon-search.css'
if os.path.isfile(baseDir + '/search.css'): if os.path.isfile(baseDir + '/search.css'):
@ -381,6 +381,11 @@ def htmlSearch(cssCache: {}, translate: {},
instanceTitle = getConfigParam(baseDir, 'instanceTitle') instanceTitle = getConfigParam(baseDir, 'instanceTitle')
followStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle) followStr = htmlHeaderWithExternalStyle(cssFilename, instanceTitle)
if backgroundExt:
if backgroundExt != 'jpg':
followStr = followStr.replace('"follow-background.jpg"',
'"follow-background.' +
backgroundExt + '"')
# show a banner above the search box # show a banner above the search box
searchBannerFile, searchBannerFilename = \ searchBannerFile, searchBannerFilename = \

View File

@ -8,6 +8,7 @@ __status__ = "Production"
__module_group__ = "Web Interface" __module_group__ = "Web Interface"
import os import os
from shutil import copyfile
from collections import OrderedDict from collections import OrderedDict
from session import getJson from session import getJson
from utils import isAccountDir from utils import isAccountDir
@ -1455,3 +1456,18 @@ def htmlShowShare(baseDir: str, domain: str, nickname: str,
return htmlHeaderWithExternalStyle(cssFilename, instanceTitle) + \ return htmlHeaderWithExternalStyle(cssFilename, instanceTitle) + \
shareStr + htmlFooter() shareStr + htmlFooter()
def setCustomBackground(baseDir: str, background: str) -> str:
"""Sets a custom background
Returns the extension, if found
"""
extensions = getImageExtensions()
for ext in extensions:
if os.path.isfile(baseDir + '/img/' + background + '.' + ext):
if not os.path.isfile(baseDir + '/accounts/' +
background + '.' + ext):
copyfile(baseDir + '/img/' + background + '.' + ext,
baseDir + '/accounts/' + background + '.' + ext)
return ext
return None