Refactoring.

This commit is contained in:
Marat Fayzullin 2023-02-21 22:52:30 -05:00
parent 6f701e02ea
commit 7a56366cbf
2 changed files with 22 additions and 36 deletions

View File

@ -31,4 +31,3 @@ td {
img {
width: 100%;
}

View File

@ -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)):