properly handle escaping of paths
This commit is contained in:
parent
0493632932
commit
807e124570
@ -11,13 +11,14 @@ local function Roothandler(self)
|
|||||||
local latest_path, latest_name = hotmixes.utils.these_latest( path )
|
local latest_path, latest_name = hotmixes.utils.these_latest( path )
|
||||||
|
|
||||||
self.total = hotmixes.utils.total_files_dir( path )
|
self.total = hotmixes.utils.total_files_dir( path )
|
||||||
self.uri = hotmixes.utils.request_path
|
self.uri = hotmixes.utils.request_path:sub(2) -- remove leading slash
|
||||||
self.path = '/data/' .. self.titles.url .. hotmixes.utils.request_path
|
self.path = '/data/' .. self.titles.url .. hotmixes.utils.request_path
|
||||||
self.dirs = stuff.dirs
|
self.dirs = stuff.dirs
|
||||||
self.files = stuff.files
|
self.files = stuff.files
|
||||||
self.images = stuff.images
|
self.images = stuff.images
|
||||||
self.latestpath = latest_path
|
self.latestpath = latest_path
|
||||||
self.latestname = latest_name
|
self.latestname = latest_name
|
||||||
|
self.functions = { escape = escape }
|
||||||
|
|
||||||
if self.titles['url'] == "panamaracing.club" then
|
if self.titles['url'] == "panamaracing.club" then
|
||||||
return { render = "root", layout = require "views.prc_layout" }
|
return { render = "root", layout = require "views.prc_layout" }
|
||||||
|
|||||||
@ -30,14 +30,6 @@ local type_allowed = { jpg=true, jpeg=true, png=true, gif=true, mp3=true, flac=t
|
|||||||
|
|
||||||
local utils = {}
|
local utils = {}
|
||||||
|
|
||||||
utils['compare_file'] = function(a, b)
|
|
||||||
return a["file"] < b["file"]
|
|
||||||
end
|
|
||||||
|
|
||||||
utils['compare_dir'] = function(a, b)
|
|
||||||
return a["dir"] < b["dir"]
|
|
||||||
end
|
|
||||||
|
|
||||||
utils['request_path'] = request_path
|
utils['request_path'] = request_path
|
||||||
utils['data_path'] = data_path
|
utils['data_path'] = data_path
|
||||||
|
|
||||||
@ -72,17 +64,17 @@ utils['these_files'] = function( path )
|
|||||||
if utils.match_ext( file, type_image ) then
|
if utils.match_ext( file, type_image ) then
|
||||||
table.insert( images, file )
|
table.insert( images, file )
|
||||||
elseif utils.match_ext( file, type_media ) then
|
elseif utils.match_ext( file, type_media ) then
|
||||||
table.insert( files, {sane=escape(file), file=file} )
|
table.insert( files, file )
|
||||||
end
|
end
|
||||||
elseif lfs.attributes( path .. file, "mode" ) == "directory" then
|
elseif lfs.attributes( path .. file, "mode" ) == "directory" then
|
||||||
table.insert( dirs, {sane=escape(file), dir=file} )
|
table.insert( dirs, file )
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
table.sort( images )
|
table.sort( images )
|
||||||
table.sort( files, utils.compare_file )
|
table.sort( files )
|
||||||
table.sort( dirs, utils.compare_dir )
|
table.sort( dirs )
|
||||||
|
|
||||||
local stuff = {
|
local stuff = {
|
||||||
files = files,
|
files = files,
|
||||||
|
|||||||
@ -10,14 +10,14 @@
|
|||||||
|
|
||||||
<% for i, dir in ipairs(dirs) do %>
|
<% for i, dir in ipairs(dirs) do %>
|
||||||
<br>
|
<br>
|
||||||
<a href="<%= uri .. dir["sane"] %>" class="djsection"><span><%= dir["dir"] %></span></a>
|
<a href="<%- functions.escape(uri .. dir) %>" class="djsection"><span><%= dir %></span></a>
|
||||||
<br>
|
<br>
|
||||||
<% end %>
|
<% end %>
|
||||||
<br>
|
<br>
|
||||||
|
|
||||||
<% for i, file in ipairs(files) do %>
|
<% for i, file in ipairs(files) do %>
|
||||||
<a class="amixlink" href="<%= path .. file["sane"] %>">
|
<a class="amixlink" href="<%- functions.escape(path .. file) %>">
|
||||||
<span class="mixlink"><%= file["file"] %></span>
|
<span class="mixlink"><%= file %></span>
|
||||||
</a>
|
</a>
|
||||||
<br>
|
<br>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user