62 lines
1.7 KiB
Python
62 lines
1.7 KiB
Python
#
|
|
# Copyright © 2021,2022 IsardVDI S.L.
|
|
#
|
|
# This file is part of DD
|
|
#
|
|
# DD is free software: you can redistribute it and/or modify
|
|
# it under the terms of the GNU Affero General Public License as published by
|
|
# the Free Software Foundation, either version 3 of the License, or (at your
|
|
# option) any later version.
|
|
#
|
|
# DD is distributed in the hope that it will be useful, but WITHOUT ANY
|
|
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
|
|
# details.
|
|
#
|
|
# You should have received a copy of the GNU Affero General Public License
|
|
# along with DD. If not, see <https://www.gnu.org/licenses/>.
|
|
#
|
|
# SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
import json
|
|
import logging as log
|
|
import os
|
|
import sys
|
|
import time
|
|
import traceback
|
|
from typing import TYPE_CHECKING
|
|
from uuid import uuid4
|
|
|
|
from flask import (
|
|
Response,
|
|
jsonify,
|
|
redirect,
|
|
render_template,
|
|
request,
|
|
send_from_directory,
|
|
url_for,
|
|
)
|
|
|
|
if TYPE_CHECKING:
|
|
from api.flaskapp import ApiFlaskApp
|
|
|
|
from ..lib.avatars import Avatars
|
|
|
|
avatars = Avatars()
|
|
|
|
|
|
def setup_avatar_views(app: "ApiFlaskApp") -> None:
|
|
# TODO: check if this is redundant and remove it
|
|
@app.route("/avatar/<username>", methods=["GET"])
|
|
def avatar(username: str) -> Response:
|
|
file = 'dd.jpg'
|
|
filepath = '/custom/avatars/'
|
|
if username != 'admin':
|
|
file = avatars.get_user_avatar(username)
|
|
filepath = os.path.join("", "../avatars/master-avatars/")
|
|
return send_from_directory(
|
|
filepath,
|
|
file,
|
|
mimetype="image/jpg",
|
|
)
|