Refactoring.
This commit is contained in:
parent
6f701e02ea
commit
7a56366cbf
|
|
@ -31,4 +31,3 @@ td {
|
|||
img {
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,48 +1,35 @@
|
|||
from owrx.controllers.template import WebpageController
|
||||
from owrx.controllers.assets import ModificationAwareController
|
||||
from owrx.breadcrumb import Breadcrumb, BreadcrumbItem, BreadcrumbMixin
|
||||
from owrx.controllers.settings import SettingsBreadcrumb
|
||||
from owrx.controllers.assets import AssetsController
|
||||
from owrx.config.core import CoreConfig
|
||||
|
||||
from datetime import datetime, timezone
|
||||
import mimetypes
|
||||
import os
|
||||
import re
|
||||
|
||||
class FileController(ModificationAwareController):
|
||||
def getModified(self, file):
|
||||
return datetime.fromtimestamp(os.path.getmtime(file), timezone.utc)
|
||||
|
||||
def openFile(self, file):
|
||||
return open(file, "rb")
|
||||
|
||||
def serve_file(self, file, content_type=None):
|
||||
try:
|
||||
modified = self.getModified(file)
|
||||
|
||||
if not self.wasModified(file):
|
||||
self.send_response("", code=304)
|
||||
return
|
||||
|
||||
f = self.openFile(file)
|
||||
data = f.read()
|
||||
f.close()
|
||||
|
||||
if content_type is None:
|
||||
(content_type, encoding) = mimetypes.guess_type(file)
|
||||
self.send_response(data, content_type=content_type, last_modified=modified, max_age=3600)
|
||||
except FileNotFoundError:
|
||||
self.send_response("file '%s' not found" % file, code=404)
|
||||
|
||||
def indexAction(self):
|
||||
tmpDir = CoreConfig().get_temporary_directory()
|
||||
filename = self.request.matches.group(1)
|
||||
self.serve_file("%s/%s" % (tmpDir, filename))
|
||||
class FileController(AssetsController):
|
||||
def getFilePath(self, file):
|
||||
return CoreConfig().get_temporary_directory() + "/" + file
|
||||
|
||||
|
||||
class FilesController(WebpageController):
|
||||
# Get list of files to work on, sorted in reverse alphabetic
|
||||
# order (so that newer files appear first)
|
||||
def getFileList(self):
|
||||
dir = CoreConfig().get_temporary_directory()
|
||||
files = [f for f in os.listdir(dir) if re.match(r'SSTV-[0-9]+-[0-9]+\.bmp', f)]
|
||||
return sorted(files, reverse=True)
|
||||
|
||||
# Delete all files except for <keepN> newest ones
|
||||
def cleanFiles(self, keepN):
|
||||
dir = CoreConfig().get_temporary_directory()
|
||||
files = self.getFileList()
|
||||
for f in files[keepN:]:
|
||||
try:
|
||||
os.unlink(dir + "/" + f)
|
||||
except:
|
||||
pass
|
||||
|
||||
def template_variables(self):
|
||||
files = [f for f in os.listdir('/tmp') if re.match(r'SSTV-[0-9]+-[0-9]+\.bmp', f)]
|
||||
files = self.getFileList()
|
||||
rows = ""
|
||||
|
||||
for i in range(len(files)):
|
||||
|
|
|
|||
Loading…
Reference in New Issue