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/cleverbot.lua

37 lines
1.2 KiB
Lua
Raw Normal View History

2016-08-14 04:26:44 +02:00
local HTTPS = require('ssl.https')
local URL = require('socket.url')
local JSON = require('dkjson')
local utilities = require('otouto.utilities')
local bindings = require('otouto.bindings')
local cleverbot = {}
function cleverbot:init(config)
2016-08-14 04:46:18 +02:00
cleverbot.name = '^' .. self.info.first_name:lower() .. ', '
cleverbot.username = '^@' .. self.info.username:lower() .. ', '
cleverbot.triggers = {
'^' .. self.info.first_name:lower() .. ', ',
'^@' .. self.info.username:lower() .. ', '
}
cleverbot.url = config.cleverbot.cleverbot_api
2016-08-14 04:46:18 +02:00
cleverbot.error = false
2016-08-14 04:26:44 +02:00
end
function cleverbot:action(msg, config)
bindings.sendChatAction{ chat_id = msg.chat.id, action = 'typing' }
2016-08-14 04:46:18 +02:00
local input = msg.text_lower:gsub(cleverbot.name, ''):gsub(cleverbot.name, '')
local jstr, code = HTTPS.request(cleverbot.url .. URL.escape(input))
if code ~= 200 then
utilities.send_message(msg.chat.id, config.cleverbot.connection)
2016-08-14 04:46:18 +02:00
return
end
local data = JSON.decode(jstr)
if not data.clever then
utilities.send_message(msg.chat.id, config.cleverbot.response)
2016-08-14 04:46:18 +02:00
return
end
utilities.send_message(msg.chat.id, data.clever)
2016-08-14 04:26:44 +02:00
end
return cleverbot