blacklist now in json file
various bugfixes
This commit is contained in:
parent
566086c64d
commit
1a0b61814e
8
bot.lua
8
bot.lua
@ -6,11 +6,11 @@ HTTPS = require('ssl.https')
|
|||||||
URL = require('socket.url')
|
URL = require('socket.url')
|
||||||
JSON = require('dkjson')
|
JSON = require('dkjson')
|
||||||
|
|
||||||
VERSION = 2.6
|
VERSION = 2.7
|
||||||
|
|
||||||
function on_msg_receive(msg)
|
function on_msg_receive(msg)
|
||||||
|
|
||||||
if config.blacklist[msg.from.id] then return end
|
if config.blacklist[tostring(msg.from.id)] then return end
|
||||||
|
|
||||||
msg = process_msg(msg)
|
msg = process_msg(msg)
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ function on_msg_receive(msg)
|
|||||||
if not v.no_typing then
|
if not v.no_typing then
|
||||||
send_chat_action(msg.chat.id, 'typing')
|
send_chat_action(msg.chat.id, 'typing')
|
||||||
end
|
end
|
||||||
local a,b = pcall(function() -- Janky error handling, but it works.
|
local a,b = pcall(function() -- Janky error handling
|
||||||
v.action(msg)
|
v.action(msg)
|
||||||
end)
|
end)
|
||||||
if not a then
|
if not a then
|
||||||
@ -38,6 +38,7 @@ function on_msg_receive(msg)
|
|||||||
end
|
end
|
||||||
|
|
||||||
function bot_init()
|
function bot_init()
|
||||||
|
require('utilities')
|
||||||
|
|
||||||
print('\nLoading configuration...')
|
print('\nLoading configuration...')
|
||||||
|
|
||||||
@ -46,7 +47,6 @@ function bot_init()
|
|||||||
print(#config.plugins .. ' plugins enabled.')
|
print(#config.plugins .. ' plugins enabled.')
|
||||||
|
|
||||||
require('bindings')
|
require('bindings')
|
||||||
require('utilities')
|
|
||||||
|
|
||||||
print('\nFetching bot information...')
|
print('\nFetching bot information...')
|
||||||
|
|
||||||
|
@ -8,9 +8,7 @@ return {
|
|||||||
admins = {
|
admins = {
|
||||||
0
|
0
|
||||||
},
|
},
|
||||||
blaclist = {
|
blacklist = load_data('blacklist.json'),
|
||||||
0
|
|
||||||
},
|
|
||||||
plugins = {
|
plugins = {
|
||||||
'about.lua',
|
'about.lua',
|
||||||
'help.lua',
|
'help.lua',
|
||||||
|
41
plugins/blacklist.lua
Normal file
41
plugins/blacklist.lua
Normal file
@ -0,0 +1,41 @@
|
|||||||
|
-- Admins can blacklist a user from utilizing this bot. Use via reply or with an ID as an argument. Un-blacklist a user with the same command.
|
||||||
|
|
||||||
|
local triggers = {
|
||||||
|
'^/blacklist'
|
||||||
|
}
|
||||||
|
|
||||||
|
local action = function(msg)
|
||||||
|
|
||||||
|
if not config.admins[msg.from.id] then
|
||||||
|
return send_msg(msg, 'Permission denied.')
|
||||||
|
end
|
||||||
|
|
||||||
|
local input = get_input(msg.text)
|
||||||
|
if not input then
|
||||||
|
if msg.reply_to_message then
|
||||||
|
input = msg.reply_to_message.from.id
|
||||||
|
else
|
||||||
|
return send_msg(msg, 'Must be used via reply or by specifying a user\'s ID.')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
local id = tostring(input)
|
||||||
|
|
||||||
|
if config.blacklist[id] then
|
||||||
|
config.blacklist[id] = nil
|
||||||
|
send_msg(msg, 'User has been removed from the blacklist.')
|
||||||
|
else
|
||||||
|
config.blacklist[id] = true
|
||||||
|
send_msg(msg, 'User has been blacklisted.')
|
||||||
|
end
|
||||||
|
|
||||||
|
save_data('blacklist.json', config.blacklist)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
return {
|
||||||
|
doc = doc,
|
||||||
|
triggers = triggers,
|
||||||
|
action = action,
|
||||||
|
no_typing = true
|
||||||
|
}
|
@ -20,7 +20,7 @@ function PLUGIN.action(msg)
|
|||||||
local message, res = HTTP.request(url)
|
local message, res = HTTP.request(url)
|
||||||
|
|
||||||
if res ~= 200 then
|
if res ~= 200 then
|
||||||
return send_msg(msg, config.locale.errors.connection)
|
return send_msg(msg, config.locale.errors.syntax)
|
||||||
end
|
end
|
||||||
|
|
||||||
send_msg(msg, message)
|
send_msg(msg, message)
|
||||||
|
@ -21,7 +21,7 @@ function PLUGIN.action(msg)
|
|||||||
|
|
||||||
local jdat = JSON.decode(jstr)
|
local jdat = JSON.decode(jstr)
|
||||||
|
|
||||||
if string.match(jdat.res, '^I HAVE NO RESPONSE.') then
|
if string.match(jdat.res, '^I HAVE NO RESPONSE.') or not jdat then
|
||||||
jdat.res = "I don't know what to say to that."
|
jdat.res = "I don't know what to say to that."
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -36,10 +36,9 @@ local action = function(msg)
|
|||||||
return send_msg(msg, config.locale.errors.connection)
|
return send_msg(msg, config.locale.errors.connection)
|
||||||
end
|
end
|
||||||
|
|
||||||
local str = str:match('<span class=bld>.*</span>')
|
local str = str:match('<span class=bld>(.*) %u+</span>')
|
||||||
if not str then return send_msg(msg, config.locale.errors.results) end
|
if not str then return send_msg(msg, config.locale.errors.results) end
|
||||||
local str = str:sub(str:find('>')+1)
|
result = string.format('%.2f', str)
|
||||||
result = str:sub(1, str:find(' ')-1)
|
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -198,18 +198,23 @@ demote.action = function(msg)
|
|||||||
return send_message(msg.chat.id, 'Group is not added.')
|
return send_message(msg.chat.id, 'Group is not added.')
|
||||||
end
|
end
|
||||||
|
|
||||||
if not msg.reply_to_message then
|
local input = get_input(msg.text)
|
||||||
return send_message(msg.chat.id, 'Demotions must be done via reply.')
|
if not input then
|
||||||
|
if msg.reply_to_message then
|
||||||
|
input = msg.reply_to_message.from.id
|
||||||
|
else
|
||||||
|
return send_msg('Demotions must be done by reply or by specifying a moderator\'s ID.')
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
if not data[tostring(msg.chat.id)][tostring(msg.reply_to_message.from.id)] then
|
if not data[tostring(msg.chat.id)][tostring(input)] then
|
||||||
return send_message(msg.chat.id, msg.reply_to_message.from.first_name..' is not a moderator.')
|
return send_message(msg.chat.id, input..' is not a moderator.')
|
||||||
end
|
end
|
||||||
|
|
||||||
data[tostring(msg.chat.id)][tostring(msg.reply_to_message.from.id)] = nil
|
data[tostring(msg.chat.id)][tostring(input)] = nil
|
||||||
save_data(config.moderation.data, data)
|
save_data(config.moderation.data, data)
|
||||||
|
|
||||||
send_message(msg.chat.id, msg.reply_to_message.from.first_name..' has been demoted.')
|
send_message(msg.chat.id, input..' has been demoted.')
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -25,6 +25,9 @@ function PLUGIN.action(msg)
|
|||||||
return send_msg(msg, config.locale.errors.connection)
|
return send_msg(msg, config.locale.errors.connection)
|
||||||
end
|
end
|
||||||
local jdat = JSON.decode(jstr)
|
local jdat = JSON.decode(jstr)
|
||||||
|
if not jdat.query.results then
|
||||||
|
return send_msg(msg, config.locale.errors.results)
|
||||||
|
end
|
||||||
local data = jdat.query.results.channel.item.condition
|
local data = jdat.query.results.channel.item.condition
|
||||||
|
|
||||||
local fahrenheit = data.temp
|
local fahrenheit = data.temp
|
||||||
|
Reference in New Issue
Block a user