diff --git a/otouto/bot.lua b/otouto/bot.lua index c5c107a..fd831d8 100644 --- a/otouto/bot.lua +++ b/otouto/bot.lua @@ -218,7 +218,7 @@ function pre_process_msg(self, msg, config) end function match_inline_plugins(self, inline_query, config, plugin) - for _, trigger in pairs(plugin.inline_triggers or {}) do + for _, trigger in ipairs(plugin.inline_triggers or {}) do if string.match(string.lower(inline_query.query), trigger) then local success, result = pcall(function() for k, pattern in pairs(plugin.inline_triggers) do @@ -238,7 +238,7 @@ function match_inline_plugins(self, inline_query, config, plugin) end function match_plugins(self, msg, config, plugin) - for _, trigger in pairs(plugin.triggers or {}) do + for _, trigger in ipairs(plugin.triggers or {}) do if string.match(msg.text_lower, trigger) then -- Check if Plugin is disabled if is_plugin_disabled_on_chat(plugin.name, msg) then return end diff --git a/otouto/plugins/control.lua b/otouto/plugins/control.lua index ae0bd50..d093437 100644 --- a/otouto/plugins/control.lua +++ b/otouto/plugins/control.lua @@ -28,9 +28,11 @@ function control:action(msg, config) package.loaded['otouto.bindings'] = nil package.loaded['otouto.utilities'] = nil package.loaded['config'] = nil - if msg.text_lower:match('%+config') then for k, v in pairs(require('config')) do - config[k] = v - end end + if not msg.text_lower:match('%-config') then + for k, v in pairs(require('config')) do + config[k] = v + end + end bot.init(self, config) utilities.send_reply(self, msg, 'Bot neu gestartet!') elseif msg.text_lower:match('^'..cmd_pat..'halt') then diff --git a/otouto/plugins/rmspic.lua b/otouto/plugins/rmspic.lua new file mode 100644 index 0000000..40cf66f --- /dev/null +++ b/otouto/plugins/rmspic.lua @@ -0,0 +1,34 @@ +local https = require('ssl.https') +local utilities = require('otouto.utilities') +local bindings = require('otouto.bindings') + +local rms = {} + +function rms:init(config) + rms.BASE_URL = 'https://rms.sexy/img/' + rms.LIST = {} + local s, r = https.request(rms.BASE_URL) + if r ~= 200 then + print('Error connecting to rms.sexy.\nrmspic.lua will not be enabled.') + return + end + for link in s:gmatch('(.-)') do + table.insert(rms.LIST, link) + end + rms.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('rms').table +end + +function rms:action(msg, config) + bindings.sendChatAction(self, { chat_id = msg.chat.id, action = 'upload_photo' }) + local choice = rms.LIST[math.random(#rms.LIST)] + local filename = '/tmp/' .. choice + local image_file = io.open(filename) + if image_file then + image_file:close() + else + utilities.download_file(rms.BASE_URL .. choice, filename) + end + bindings.sendPhoto(self, { chat_id = msg.chat.id }, { photo = filename }) +end + +return rms diff --git a/otouto/utilities.lua b/otouto/utilities.lua index 8d4157e..09ce8af 100644 --- a/otouto/utilities.lua +++ b/otouto/utilities.lua @@ -576,6 +576,7 @@ utilities.char = { em_dash = '—' } + -- taken from http://stackoverflow.com/a/11130774/3163199 function scandir(directory) local i, t, popen = 0, {}, io.popen @@ -904,4 +905,4 @@ function table.contains(table, element) return false end -return utilities +return utilities \ No newline at end of file