💾 Archived View for gemini.conman.org › extensions › GLV-1 › handlers › qotd.lua captured on 2020-10-31 at 23:59:12.

View Raw

More Information

➡️ Next capture (2021-12-03)

-=-=-=-=-=-=-

-- ************************************************************************
--
--    QOTD module
--    Copyright 2019 by Sean Conner.  All Rights Reserved.
--
--    This program is free software: you can redistribute it and/or modify
--    it under the terms of the GNU General Public License as published by
--    the Free Software Foundation, either version 3 of the License, or
--    (at your option) any later version.
--
--    This program is distributed in the hope that it will be useful,
--    but WITHOUT ANY WARRANTY; without even the implied warranty of
--    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
--    GNU General Public License for more details.
--
--    You should have received a copy of the GNU General Public License
--    along with this program.  If not, see <http://www.gnu.org/licenses/>.
--
--    Comments, questions and criticisms can be sent to: sean@conman.org
--
-- ************************************************************************
-- luacheck: globals init handler
-- luacheck: ignore 611

local net    = require "org.conman.net"
local tcp    = require "org.conman.nfl.tcp"
local MSG    = require "GLV-1.MSG"
local table  = require "table"

_ENV = {}

-- ************************************************************************

function init(conf)
  if not conf.host then
    conf.host = "127.0.0.1"
  end
  
  if not conf.port then
    conf.port = 'qotd'
  end
  
  conf.addr = net.address2(conf.host,'any','tcp',conf.port)[1]
  return true
end

-- ************************************************************************

function handler(conf)
  local ios = tcp.connecta(conf.addr,1)
  if ios then
    local res = {}
    for line in ios:lines() do
      table.insert(res,line)
    end
    ios:close()
    return 20,"text/plain",table.concat(res,"\n")
  else
    return 40,MSG[40],""
  end
end

-- ************************************************************************

return _ENV