This repository has been archived on 2021-04-24. You can view files and clone it, but cannot push or open issues or pull requests.
Mikubot-2/otouto/plugins/isup.lua
2016-08-13 22:46:18 -04:00

44 lines
1.1 KiB
Lua

-- Based on a plugin by matthewhesketh.
local HTTP = require('socket.http')
local HTTPS = require('ssl.https')
local utilities = require('otouto.utilities')
local isup = {}
function isup:init(config)
isup.triggers = utilities.triggers(self.info.username, config.cmd_pat)
:t('websitedown', true):t('isitup', true):t('isup', true).table
isup.doc = config.cmd_pat .. [[isup <url>
Returns the up or down status of a website.]]
isup.command = 'isup <url>'
end
function isup:action(msg, config)
local input = utilities.input_from_msg(msg)
if not input then
utilities.send_reply(self, msg, isup.doc)
return
end
local protocol = HTTP
local url_lower = input:lower()
if url_lower:match('^https') then
protocol = HTTPS
elseif not url_lower:match('^http') then
input = 'http://' .. input
end
local _, code = protocol.request(input)
code = tonumber(code)
local output
if not code or code > 399 then
output = 'This website is down or nonexistent.'
else
output = 'This website is up.'
end
utilities.send_reply(self, msg, output, true)
end
return isup