Give minified own FileHandler
This commit is contained in:
@@ -6,6 +6,7 @@ from couchpotato.core.plugins.base import Plugin
|
|||||||
from couchpotato.environment import Env
|
from couchpotato.environment import Env
|
||||||
from minify.cssmin import cssmin
|
from minify.cssmin import cssmin
|
||||||
from minify.jsmin import jsmin
|
from minify.jsmin import jsmin
|
||||||
|
from tornado.web import StaticFileHandler
|
||||||
import os
|
import os
|
||||||
import re
|
import re
|
||||||
import traceback
|
import traceback
|
||||||
@@ -90,6 +91,13 @@ class ClientScript(Plugin):
|
|||||||
|
|
||||||
def minify(self):
|
def minify(self):
|
||||||
|
|
||||||
|
# Create cache dir
|
||||||
|
cache = Env.get('cache_dir')
|
||||||
|
parent_dir = os.path.join(cache, 'minified')
|
||||||
|
self.makeDir(parent_dir)
|
||||||
|
|
||||||
|
Env.get('app').add_handlers(".*$", [(Env.get('web_base') + 'minified/(.*)', StaticFileHandler, {'path': parent_dir})])
|
||||||
|
|
||||||
for file_type in ['style', 'script']:
|
for file_type in ['style', 'script']:
|
||||||
ext = 'js' if file_type is 'script' else 'css'
|
ext = 'js' if file_type is 'script' else 'css'
|
||||||
positions = self.paths.get(file_type, {})
|
positions = self.paths.get(file_type, {})
|
||||||
@@ -100,8 +108,8 @@ class ClientScript(Plugin):
|
|||||||
def _minify(self, file_type, files, position, out):
|
def _minify(self, file_type, files, position, out):
|
||||||
|
|
||||||
cache = Env.get('cache_dir')
|
cache = Env.get('cache_dir')
|
||||||
out_name = 'minified_' + out
|
out_name = out
|
||||||
out = os.path.join(cache, out_name)
|
out = os.path.join(cache, 'minified', out_name)
|
||||||
|
|
||||||
raw = []
|
raw = []
|
||||||
for file_path in files:
|
for file_path in files:
|
||||||
@@ -131,7 +139,7 @@ class ClientScript(Plugin):
|
|||||||
if not self.minified[file_type].get(position):
|
if not self.minified[file_type].get(position):
|
||||||
self.minified[file_type][position] = []
|
self.minified[file_type][position] = []
|
||||||
|
|
||||||
minified_url = 'api/%s/file.cache/%s?%s' % (Env.setting('api_key'), out_name, tryInt(os.path.getmtime(out)))
|
minified_url = 'minified/%s?%s' % (out_name, tryInt(os.path.getmtime(out)))
|
||||||
self.minified[file_type][position].append(minified_url)
|
self.minified[file_type][position].append(minified_url)
|
||||||
|
|
||||||
def getStyles(self, *args, **kwargs):
|
def getStyles(self, *args, **kwargs):
|
||||||
|
|||||||
@@ -71,7 +71,7 @@ class FileManager(Plugin):
|
|||||||
db = get_session()
|
db = get_session()
|
||||||
for root, dirs, walk_files in os.walk(Env.get('cache_dir')):
|
for root, dirs, walk_files in os.walk(Env.get('cache_dir')):
|
||||||
for filename in walk_files:
|
for filename in walk_files:
|
||||||
if root == python_cache or 'minified' in filename or 'version' in filename or 'temp_updater' in root: continue
|
if root == python_cache or 'minified' in root or 'version' in filename or 'temp_updater' in root: continue
|
||||||
file_path = os.path.join(root, filename)
|
file_path = os.path.join(root, filename)
|
||||||
f = db.query(File).filter(File.path == toUnicode(file_path)).first()
|
f = db.query(File).filter(File.path == toUnicode(file_path)).first()
|
||||||
if not f:
|
if not f:
|
||||||
|
|||||||
Reference in New Issue
Block a user