seitime-frappe/frappe/middlewares.py
Gavin D'souza 3446026555 chore: Update header: license.txt => LICENSE
The license.txt file has been replaced with LICENSE for quite a while
now. INAL but it didn't seem accurate to say "hey, checkout license.txt
although there's no such file". Apart from this, there were
inconsistencies in the headers altogether...this change brings
consistency.
2021-09-03 12:02:59 +05:30

26 lines
835 B
Python

# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
# License: MIT. See LICENSE
import frappe
import os
from werkzeug.exceptions import NotFound
from werkzeug.middleware.shared_data import SharedDataMiddleware
from frappe.utils import get_site_name, cstr
class StaticDataMiddleware(SharedDataMiddleware):
def __call__(self, environ, start_response):
self.environ = environ
return super(StaticDataMiddleware, self).__call__(environ, start_response)
def get_directory_loader(self, directory):
def loader(path):
site = get_site_name(frappe.app._site or self.environ.get('HTTP_HOST'))
path = os.path.join(directory, site, 'public', 'files', cstr(path))
if os.path.isfile(path):
return os.path.basename(path), self._opener(path)
else:
raise NotFound
# return None, None
return loader