mirror of https://gitlab.com/bashrc2/epicyon
Handle avatars and banners within HEAD
parent
6bf0798a8d
commit
225f9d9270
45
daemon.py
45
daemon.py
|
@ -18598,13 +18598,47 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
etag = None
|
etag = None
|
||||||
file_length = -1
|
file_length = -1
|
||||||
|
|
||||||
if '/media/' in self.path:
|
if '/media/' in self.path or \
|
||||||
|
'/accounts/avatars/' in self.path or \
|
||||||
|
'/accounts/headers/' in self.path:
|
||||||
if is_image_file(self.path) or \
|
if is_image_file(self.path) or \
|
||||||
path_is_video(self.path) or \
|
path_is_video(self.path) or \
|
||||||
path_is_audio(self.path):
|
path_is_audio(self.path):
|
||||||
media_str = self.path.split('/media/')[1]
|
if '/media/' in self.path:
|
||||||
media_filename = \
|
media_str = self.path.split('/media/')[1]
|
||||||
self.server.base_dir + '/media/' + media_str
|
media_filename = \
|
||||||
|
self.server.base_dir + '/media/' + media_str
|
||||||
|
elif '/accounts/avatars/' in self.path:
|
||||||
|
avatar_file = self.path.split('/accounts/avatars/')[1]
|
||||||
|
if '/' not in avatar_file:
|
||||||
|
self._404()
|
||||||
|
return
|
||||||
|
nickname = avatar_file.split('/')[0]
|
||||||
|
avatar_file = avatar_file.split('/')[1]
|
||||||
|
avatar_file_ext = avatar_file.split('.')[-1]
|
||||||
|
# remove any numbers, eg. avatar123.png becomes avatar.png
|
||||||
|
if avatar_file.startswith('avatar'):
|
||||||
|
avatar_file = 'avatar.' + avatar_file_ext
|
||||||
|
media_filename = \
|
||||||
|
self.server.base_dir + '/accounts/' + \
|
||||||
|
nickname + '@' + self.server.domain + '/' + \
|
||||||
|
avatar_file
|
||||||
|
else:
|
||||||
|
banner_file = self.path.split('/accounts/headers/')[1]
|
||||||
|
if '/' not in banner_file:
|
||||||
|
self._404()
|
||||||
|
return
|
||||||
|
nickname = banner_file.split('/')[0]
|
||||||
|
banner_file = banner_file.split('/')[1]
|
||||||
|
banner_file_ext = banner_file.split('.')[-1]
|
||||||
|
# remove any numbers, eg. banner123.png becomes banner.png
|
||||||
|
if banner_file.startswith('banner'):
|
||||||
|
banner_file = 'banner.' + banner_file_ext
|
||||||
|
media_filename = \
|
||||||
|
self.server.base_dir + '/accounts/' + \
|
||||||
|
nickname + '@' + self.server.domain + '/' + \
|
||||||
|
banner_file
|
||||||
|
|
||||||
if os.path.isfile(media_filename):
|
if os.path.isfile(media_filename):
|
||||||
check_path = media_filename
|
check_path = media_filename
|
||||||
file_length = os.path.getsize(media_filename)
|
file_length = os.path.getsize(media_filename)
|
||||||
|
@ -18632,6 +18666,9 @@ class PubServer(BaseHTTPRequestHandler):
|
||||||
except OSError:
|
except OSError:
|
||||||
print('EX: do_HEAD unable to write ' +
|
print('EX: do_HEAD unable to write ' +
|
||||||
media_tag_filename)
|
media_tag_filename)
|
||||||
|
else:
|
||||||
|
self._404()
|
||||||
|
return
|
||||||
|
|
||||||
media_file_type = media_file_mime_type(check_path)
|
media_file_type = media_file_mime_type(check_path)
|
||||||
self._set_headers_head(media_file_type, file_length,
|
self._set_headers_head(media_file_type, file_length,
|
||||||
|
|
Loading…
Reference in New Issue