diff --git a/code/app.lua b/code/app.lua index cfa3606..c2cd8f2 100644 --- a/code/app.lua +++ b/code/app.lua @@ -49,6 +49,11 @@ app:get("/latest.json", function(self) return handlers.Latesthandler(self) end) +app:get("/latest.rss", function(self) + self.titles = page_titles + return handlers.RSShandler(self) +end) + app:get("/*", function(self) self.titles = page_titles return handlers.Roothandler(self) diff --git a/code/handlers/RSShandler.lua b/code/handlers/RSShandler.lua new file mode 100644 index 0000000..d9fdf08 --- /dev/null +++ b/code/handlers/RSShandler.lua @@ -0,0 +1,23 @@ +local to_json = require("lapis.util").to_json +local escape = require("lapis.util").escape +local autoload = require("lapis.util").autoload +local config = require("lapis.config") +local hotmixes = autoload("hotmixes") + +local function RSShandler(self) + + local path = config.get().mount .. self.titles.url + local latest_path, latest_name = hotmixes.utils.these_latest( path ) + + local host = self.req.parsed_url.scheme .. '://' .. self.req.parsed_url.host + local data_path = host .. '/data/' .. self.titles.url .. '/' + local latest_json = {} + latest_json["files"] = {} + + self.latestpath = latest_path + self.latestname = latest_name + + return { content_type = "text/rss", layout = require "views.rss" } +end + +return RSShandler diff --git a/code/views/rss.etlua b/code/views/rss.etlua new file mode 100644 index 0000000..5f76c1e --- /dev/null +++ b/code/views/rss.etlua @@ -0,0 +1,18 @@ + + + + + + Hotmixes + <%= titles['url'] %> + Latest uploads + <% for i, file in ipairs(latestpath) do %> + + <%= latestname[i] %> + <%= 'https://' .. titles.url .. '/data/' .. titles.url .. '/' .. file:gsub("#", "%%23") %> + ]]> + <%= 'https://' .. titles.url .. '/data/' .. titles.url .. '/' .. file:gsub("#", "%%23") %> + + <% end %> + +