Support different background formats

main
Bob Mottram 2020-07-25 18:07:22 +01:00
parent 69749a958c
commit a428372e8e
2 changed files with 59 additions and 58 deletions

114
daemon.py
View File

@ -1840,35 +1840,36 @@ class PubServer(BaseHTTPRequestHandler):
self._benchmarkGETtimings(GETstartTime, GETtimings, 16) self._benchmarkGETtimings(GETstartTime, GETtimings, 16)
# login screen background image for ext in ('png', 'jpg', 'gif'):
if self.path == '/login-background.png': # login screen background image
mediaFilename = \ if self.path == '/login-background.' + ext:
self.server.baseDir + '/accounts/login-background.png' mediaFilename = \
if os.path.isfile(mediaFilename): self.server.baseDir + '/accounts/login-background.' + ext
if self._etag_exists(mediaFilename): if os.path.isfile(mediaFilename):
# The file has not changed if self._etag_exists(mediaFilename):
self._304() # The file has not changed
return self._304()
return
tries = 0 tries = 0
mediaBinary = None mediaBinary = None
while tries < 5: while tries < 5:
try: try:
with open(mediaFilename, 'rb') as avFile: with open(mediaFilename, 'rb') as avFile:
mediaBinary = avFile.read() mediaBinary = avFile.read()
break break
except Exception as e: except Exception as e:
print(e) print(e)
time.sleep(1) time.sleep(1)
tries += 1 tries += 1
if mediaBinary: if mediaBinary:
self._set_headers_etag(mediaFilename, 'image/png', self._set_headers_etag(mediaFilename, 'image/' + ext,
mediaBinary, cookie, mediaBinary, cookie,
callingDomain) callingDomain)
self._write(mediaBinary) self._write(mediaBinary)
return return
self._404() self._404()
return return
# QR code for account handle # QR code for account handle
if '/users/' in self.path and \ if '/users/' in self.path and \
@ -1941,35 +1942,36 @@ class PubServer(BaseHTTPRequestHandler):
self._benchmarkGETtimings(GETstartTime, GETtimings, 17) self._benchmarkGETtimings(GETstartTime, GETtimings, 17)
# follow screen background image for ext in ('png', 'jpg', 'gif'):
if self.path == '/follow-background.png': # follow screen background image
mediaFilename = \ if self.path == '/follow-background.' + ext:
self.server.baseDir + '/accounts/follow-background.png' mediaFilename = \
if os.path.isfile(mediaFilename): self.server.baseDir + '/accounts/follow-background.' + ext
if self._etag_exists(mediaFilename): if os.path.isfile(mediaFilename):
# The file has not changed if self._etag_exists(mediaFilename):
self._304() # The file has not changed
return self._304()
return
tries = 0 tries = 0
mediaBinary = None mediaBinary = None
while tries < 5: while tries < 5:
try: try:
with open(mediaFilename, 'rb') as avFile: with open(mediaFilename, 'rb') as avFile:
mediaBinary = avFile.read() mediaBinary = avFile.read()
break break
except Exception as e: except Exception as e:
print(e) print(e)
time.sleep(1) time.sleep(1)
tries += 1 tries += 1
if mediaBinary: if mediaBinary:
self._set_headers_etag(mediaFilename, 'image/png', self._set_headers_etag(mediaFilename, 'image/' + ext,
mediaBinary, cookie, mediaBinary, cookie,
callingDomain) callingDomain)
self._write(mediaBinary) self._write(mediaBinary)
return return
self._404() self._404()
return return
self._benchmarkGETtimings(GETstartTime, GETtimings, 18) self._benchmarkGETtimings(GETstartTime, GETtimings, 18)

View File

@ -646,8 +646,7 @@ def setThemeImages(baseDir: str, name: str) -> None:
else: else:
backgroundImageFilename = \ backgroundImageFilename = \
baseDir + '/img/' + backgroundType + \ baseDir + '/img/' + backgroundType + \
'_background_' + \ '_background_' + themeNameLower + '.' + ext
themeNameLower + '.' + ext
if os.path.isfile(backgroundImageFilename): if os.path.isfile(backgroundImageFilename):
try: try: