diff options
Diffstat (limited to 'aports.lua')
-rwxr-xr-x | aports.lua | 113 |
1 files changed, 56 insertions, 57 deletions
@@ -10,87 +10,86 @@ local tpl = turbo.web.Mustache.TemplateHelper("./tpl") local ContentsRenderer = class("ContentsRenderer", turbo.web.RequestHandler) function ContentsRenderer:get() - local table = {} + local table = {} local args = { filename = self:get_argument("filename","", true), arch = self:get_argument("arch", "x86", true), } - if args.filename ~= "" then + if args.filename ~= "" then local result = QueryContents(args) if next(result) ~= nil then table.rows = result end end table.contents = true - table.filename = args.filename - table.header = tpl:render("header.tpl", table) + table.filename = args.filename + table.header = tpl:render("header.tpl", table) table.footer = tpl:render("footer.tpl", table) - local page = tpl:render(self.options, table) - self:write(page) + local page = tpl:render(self.options, table) + self:write(page) end local PackagesRenderer = class("PackagesRenderer", turbo.web.RequestHandler) function PackagesRenderer:get() - local table = {} + local table = {} local args = { package = self:get_argument("package","", true) } - if args.package == "" then - args.package = "%" - end - local result = QueryPackages(args) - if next(result) ~= nil then - table.rows = result - end + if args.package == "" then + args.package = "%" + end + local result = QueryPackages(args) + if next(result) ~= nil then + table.rows = result + end table.packages = true - table.header = tpl:render("header.tpl", table) - table.footer = tpl:render("footer.tpl", table) - local page = tpl:render(self.options, table) - self:write(page) + table.header = tpl:render("header.tpl", table) + table.footer = tpl:render("footer.tpl", table) + local page = tpl:render(self.options, table) + self:write(page) print(inspect(table)) end local PackageRenderer = class("PackageRenderer", turbo.web.RequestHandler) function PackageRenderer:get(arch, pkgname) - local fields = {} - local table = {} - fields.arch = arch - fields.pkgname = pkgname - result = QueryPackage(fields) - - if result ~= nil then - table = result - for k in pairs (table) do + local fields = {} + local table = {} + fields.arch = arch + fields.pkgname = pkgname + result = QueryPackage(fields) + if result ~= nil then + table = result + for k in pairs (table) do if table[k] == "" then table[k] = nil end end - end - table.header = tpl:render("header.tpl") - table.footer = tpl:render("footer.tpl") - local page = tpl:render(self.options, table) - self:write(page) + end + table.header = tpl:render("header.tpl") + table.footer = tpl:render("footer.tpl") + local page = tpl:render(self.options, table) + self:write(page) end function QueryContents(terms) - require('DBI') - local dbh = assert(DBI.Connect('SQLite3', 'db/filelist.db')) - local sth = assert(dbh:prepare('select * from filelist where file like ? and arch like ? limit 100')) - sth:execute(terms.filename, terms.arch) - local r = {} - for row in sth:rows(true) do - r[#r + 1] = { - file = "/" .. row.path .. "/" .. row.file, - pkgname = row.pkgname, - repo = row.repo, - arch = row.arch, - } - end - return r - + require('DBI') + local dbh = assert(DBI.Connect('SQLite3', 'db/filelist.db')) + local sth = assert(dbh:prepare('select * from filelist where file like ? and arch like ? limit 100')) + sth:execute(terms.filename, terms.arch) + local r = {} + for row in sth:rows(true) do + r[#r + 1] = { + file = "/" .. row.path .. "/" .. row.file, + pkgname = row.pkgname, + repo = row.repo, + arch = row.arch, + } + end + return r end + function QueryPackages(terms) require('DBI') local dbh = assert(DBI.Connect('SQLite3', 'db/apkindex.db')) @@ -114,21 +113,21 @@ function QueryPackages(terms) end function QueryPackage(fields) - require('DBI') - local dbh = assert(DBI.Connect('SQLite3', 'db/apkindex.db')) + require('DBI') + local dbh = assert(DBI.Connect('SQLite3', 'db/apkindex.db')) local sth = assert(dbh:prepare('select *, datetime(build_time, \'unixepoch\') as build_time from apkindex where name like ? and arch like ? limit 1')) - sth:execute(fields.pkgname, fields.arch) - local r = {} - r = sth:fetch(true) + sth:execute(fields.pkgname, fields.arch) + local r = {} + r = sth:fetch(true) print(inspect(r)) - return r + return r end turbo.web.Application({ - {"^/$", turbo.web.RedirectHandler, "/packages"}, - {"^/contents$", ContentsRenderer, "contents.tpl"}, + {"^/$", turbo.web.RedirectHandler, "/packages"}, + {"^/contents$", ContentsRenderer, "contents.tpl"}, {"^/packages$", PackagesRenderer, "packages.tpl"}, - {"^/package/(.*)/(.*)$", PackageRenderer, "package.tpl"}, - {"/assets/(.*)$", turbo.web.StaticFileHandler, "assets/"}, + {"^/package/(.*)/(.*)$", PackageRenderer, "package.tpl"}, + {"/assets/(.*)$", turbo.web.StaticFileHandler, "assets/"}, }):listen(8888) turbo.ioloop.instance():start() |