diff --git a/otouto/plugins/gSearch.lua b/otouto/plugins/gSearch.lua index b9e53d9..f7054fa 100644 --- a/otouto/plugins/gSearch.lua +++ b/otouto/plugins/gSearch.lua @@ -26,7 +26,7 @@ function gSearch:googlethat(query, config) utilities.send_reply(self, msg, config.errors.connection) return end - local data = JSON.decode(res) + local data = json.decode(res) if data.searchInformation.formattedTotalResults == "0" then return nil end local results={} diff --git a/otouto/plugins/remind.lua b/otouto/plugins/remind.lua index e691d83..01575f5 100644 --- a/otouto/plugins/remind.lua +++ b/otouto/plugins/remind.lua @@ -11,54 +11,56 @@ function remind:init(config) end function remind:action(msg) - -- Ensure there are arguments. If not, send doc. - local input = utilities.input(msg.text) - if not input then - utilities.send_message(self, msg.chat.id, remind.doc, true, msg.message_id, true) - return - end - -- Ensure first arg is a number. If not, send doc. - local duration = utilities.get_word(input, 1) - if not tonumber(duration) then - utilities.send_message(self, msg.chat.id, remind.doc, true, msg.message_id, true) - return - end - -- Duration must be between one minute and one year (approximately). - duration = tonumber(duration) - if duration < 1 then - duration = 1 - elseif duration > 526000 then - duration = 526000 - end - -- Ensure there is a second arg. - local message = utilities.input(input) - if not message then - utilities.send_message(self, msg.chat.id, remind.doc, true, msg.message_id, true) - return - end - -- Make a database entry for the group/user if one does not exist. - self.database.reminders[msg.chat.id_str] = self.database.reminders[msg.chat.id_str] or {} - -- Limit group reminders to 10 and private reminders to 50. - if msg.chat.type ~= 'private' and utilities.table_size(self.database.reminders[msg.chat.id_str]) > 9 then - utilities.send_reply(self, msg, 'Diese Gruppe hat schon zehn Erinnerungen!') - return - elseif msg.chat.type == 'private' and utilities.table_size(self.database.reminders[msg.chat.id_str]) > 49 then - utilities.send_reply(msg, 'Du hast schon 50 Erinnerungen!') - return - end - -- Put together the reminder with the expiration, message, and message to reply to. - local reminder = { - time = os.time() + duration * 60, - message = message - } - table.insert(self.database.reminders[msg.chat.id_str], reminder) - local output = 'Ich werde dich in ' .. duration - if duration == 1 then - output = output .. ' Minute erinnern!' - else - output = output .. ' Minuten erinnern!' - end - utilities.send_reply(self, msg, output) + -- Ensure there are arguments. If not, send doc. + local input = utilities.input(msg.text) + if not input then + utilities.send_message(self, msg.chat.id, remind.doc, true, msg.message_id, true) + return + end + + -- Ensure first arg is a number. If not, send doc. + local duration = utilities.get_word(input, 1) + if not tonumber(duration) then + utilities.send_message(self, msg.chat.id, remind.doc, true, msg.message_id, true) + return + end + + -- Duration must be between one minute and one day (approximately). + duration = tonumber(duration) + if duration < 1 then + duration = 1 + elseif duration > 1440 then + duration = 1440 + end + + -- Ensure there is a second arg. + local message = utilities.input(input) + if not message then + utilities.send_message(self, msg.chat.id, remind.doc, true, msg.message_id, true) + return + end + + -- Make a database entry for the group/user if one does not exist. + self.database.reminders[msg.chat.id_str] = self.database.reminders[msg.chat.id_str] or {} + -- Limit group reminders to 10 and private reminders to 50. + if msg.chat.type ~= 'private' and utilities.table_size(self.database.reminders[msg.chat.id_str]) > 9 then + utilities.send_reply(self, msg, 'Diese Gruppe hat schon zehn Erinnerungen!') + return + elseif msg.chat.type == 'private' and utilities.table_size(self.database.reminders[msg.chat.id_str]) > 49 then + utilities.send_reply(msg, 'Du hast schon 50 Erinnerungen!') + return + end + + -- Put together the reminder with the expiration, message, and message to reply to. + local timestamp = os.time() + duration * 60 + local reminder = { + time = timestamp, + message = message + } + table.insert(self.database.reminders[msg.chat.id_str], reminder) + local human_readable_time = convert_timestamp(timestamp, '%H:%M:%S') + local output = 'Ich werde dich um *'..human_readable_time..' Uhr* erinnern.' + utilities.send_reply(self, msg, output, true) end function remind:cron() diff --git a/otouto/plugins/service_leave_group.lua b/otouto/plugins/service_leave_group.lua index 61b2bb0..ca7a0b2 100644 --- a/otouto/plugins/service_leave_group.lua +++ b/otouto/plugins/service_leave_group.lua @@ -23,7 +23,7 @@ function leave_group:check_for_admin(msg, self, config) end end -function leave_group:action(msg) +function leave_group:action(msg, config) if not is_service_msg(msg) then return end -- Bad attempt at trolling! local admin_in_group = leave_group:check_for_admin(msg, self, config) if not admin_in_group then diff --git a/otouto/utilities.lua b/otouto/utilities.lua index aa0b204..06931e1 100644 --- a/otouto/utilities.lua +++ b/otouto/utilities.lua @@ -254,7 +254,7 @@ function utilities.trim(str) return s end --- Retruns true if the string is empty +-- Returns true if the string is empty function string:isempty() return self == nil or self == '' end