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

44 lines
1.1 KiB
Lua
Raw Normal View History

2016-08-14 04:26:44 +02:00
-- 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)
2016-08-14 04:46:18 +02:00
isup.triggers = utilities.triggers(self.info.username, config.cmd_pat)
:t('websitedown', true):t('isitup', true):t('isup', true).table
2016-08-14 04:26:44 +02:00
2016-08-14 04:46:18 +02:00
isup.doc = config.cmd_pat .. [[isup <url>
2016-08-14 04:26:44 +02:00
Returns the up or down status of a website.]]
2016-08-14 04:46:18 +02:00
isup.command = 'isup <url>'
2016-08-14 04:26:44 +02:00
end
function isup:action(msg, config)
2016-08-14 04:46:18 +02:00
local input = utilities.input_from_msg(msg)
if not input then
utilities.send_reply(msg, isup.doc, true)
2016-08-14 04:46:18 +02:00
return
end
2016-08-14 04:26:44 +02:00
2016-08-14 04:46:18 +02:00
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(msg, output, true)
2016-08-14 04:26:44 +02:00
end
return isup