Upstream + alle Plugins angepasst
This commit is contained in:
@@ -1,9 +1,23 @@
|
||||
--[[
|
||||
bindings.lua (rev. 2016/05/28)
|
||||
otouto's bindings for the Telegram bot API.
|
||||
https://core.telegram.org/bots/api
|
||||
Copyright 2016 topkecleon. Published under the AGPLv3.
|
||||
See the "Bindings" section of README.md for usage information.
|
||||
bindings.lua (rev. 2016/08/20)
|
||||
otouto's bindings for the Telegram bot API.
|
||||
https://core.telegram.org/bots/api
|
||||
See the "Bindings" section of README.md for usage information.
|
||||
|
||||
Copyright 2016 topkecleon <drew@otou.to>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Affero General Public License version 3 as
|
||||
published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
]]--
|
||||
|
||||
local bindings = {}
|
||||
@@ -14,6 +28,11 @@ local JSON = require('dkjson')
|
||||
local ltn12 = require('ltn12')
|
||||
local MP_ENCODE = require('multipart-post').encode
|
||||
|
||||
function bindings.init(token)
|
||||
bindings.BASE_URL = 'https://api.telegram.org/bot' .. token .. '/'
|
||||
return bindings
|
||||
end
|
||||
|
||||
-- Build and send a request to the API.
|
||||
-- Expecting self, method, and parameters, where method is a string indicating
|
||||
-- the API method and parameters is a key/value table of parameters with their
|
||||
@@ -21,7 +40,7 @@ local MP_ENCODE = require('multipart-post').encode
|
||||
-- Returns the table response with success. Returns false and the table
|
||||
-- response with failure. Returns false and false with a connection error.
|
||||
-- To mimic old/normal behavior, it errs if used with an invalid method.
|
||||
function bindings:request(method, parameters, file)
|
||||
function bindings.request(method, parameters, file)
|
||||
parameters = parameters or {}
|
||||
for k,v in pairs(parameters) do
|
||||
parameters[k] = tostring(v)
|
||||
@@ -48,7 +67,7 @@ function bindings:request(method, parameters, file)
|
||||
local response = {}
|
||||
local body, boundary = MP_ENCODE(parameters)
|
||||
local success, code = HTTPS.request{
|
||||
url = self.BASE_URL .. method,
|
||||
url = bindings.BASE_URL .. method,
|
||||
method = 'POST',
|
||||
headers = {
|
||||
["Content-Type"] = "multipart/form-data; boundary=" .. boundary,
|
||||
@@ -75,8 +94,8 @@ function bindings:request(method, parameters, file)
|
||||
end
|
||||
|
||||
function bindings.gen(_, key)
|
||||
return function(self, params, file)
|
||||
return bindings.request(self, key, params, file)
|
||||
return function(params, file)
|
||||
return bindings.request(key, params, file)
|
||||
end
|
||||
end
|
||||
setmetatable(bindings, { __index = bindings.gen })
|
||||
|
62
miku/bot.lua
62
miku/bot.lua
@@ -1,23 +1,39 @@
|
||||
--[[
|
||||
bot.lua
|
||||
The heart and sole of otouto, ie the init and main loop.
|
||||
|
||||
Copyright 2016 topkecleon <drew@otou.to>
|
||||
|
||||
This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU Affero General Public License version 3 as
|
||||
published by the Free Software Foundation.
|
||||
|
||||
This program is distributed in the hope that it will be useful, but WITHOUT
|
||||
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License
|
||||
for more details.
|
||||
|
||||
You should have received a copy of the GNU Affero General Public License
|
||||
along with this program; if not, write to the Free Software Foundation,
|
||||
Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
]]--
|
||||
|
||||
local bot = {}
|
||||
|
||||
bindings = require('miku.bindings')
|
||||
utilities = require('miku.utilities')
|
||||
|
||||
bot.version = '160823'
|
||||
bot.version = '160824'
|
||||
|
||||
function bot:init(config) -- The function run when the bot is started or reloaded.
|
||||
bindings = require('otouto.bindings').init(config.bot_api_key)
|
||||
utilities = require('otouto.utilities')
|
||||
cred_data = load_cred()
|
||||
|
||||
assert(
|
||||
config.bot_api_key,
|
||||
'You did not set your bot token in the config!'
|
||||
)
|
||||
self.BASE_URL = 'https://api.telegram.org/bot' .. config.bot_api_key .. '/'
|
||||
|
||||
-- Fetch bot information. Try until it succeeds.
|
||||
repeat
|
||||
print('Sammel Bot-Informationen...')
|
||||
self.info = bindings.getMe(self)
|
||||
self.info = bindings.getMe()
|
||||
until self.info
|
||||
self.info = self.info.result
|
||||
|
||||
@@ -87,7 +103,7 @@ function bot:on_callback_receive(callback, msg, config) -- whenever a new callba
|
||||
-- vardump(callback)
|
||||
|
||||
if msg.date < os.time() - 1800 then -- Do not process old messages.
|
||||
utilities.answer_callback_query(self, callback, 'Nachricht älter als eine halbe Stunde, bitte sende den Befehl selbst noch einmal.', true)
|
||||
utilities.answer_callback_query(callback, 'Nachricht älter als eine halbe Stunde, bitte sende den Befehl selbst noch einmal.', true)
|
||||
return
|
||||
end
|
||||
|
||||
@@ -99,14 +115,14 @@ function bot:on_callback_receive(callback, msg, config) -- whenever a new callba
|
||||
local user_id = callback.from.id
|
||||
local chat_id = msg.chat.id
|
||||
if redis:get('blocked:'..user_id) then
|
||||
utilities.answer_callback_query(self, callback, 'Du darfst den Bot nicht nutzen!', true)
|
||||
utilities.answer_callback_query(callback, 'Du darfst den Bot nicht nutzen!', true)
|
||||
return
|
||||
end
|
||||
|
||||
-- Check if user is banned
|
||||
local banned = redis:get('banned:'..chat_id..':'..user_id)
|
||||
if banned then
|
||||
utilities.answer_callback_query(self, callback, 'Du darfst den Bot nicht nutzen!', true)
|
||||
utilities.answer_callback_query(callback, 'Du darfst den Bot nicht nutzen!', true)
|
||||
return
|
||||
end
|
||||
|
||||
@@ -119,11 +135,11 @@ function bot:on_callback_receive(callback, msg, config) -- whenever a new callba
|
||||
if msg.chat.type == 'group' or msg.chat.type == 'supergroup' then
|
||||
local allowed = redis:get('whitelist:chat#id'.. chat_id)
|
||||
if not allowed then
|
||||
utilities.answer_callback_query(self, callback, 'Du darfst den Bot nicht nutzen!', true)
|
||||
utilities.answer_callback_query(callback, 'Du darfst den Bot nicht nutzen!', true)
|
||||
return
|
||||
end
|
||||
else
|
||||
utilities.answer_callback_query(self, callback, 'Du darfst den Bot nicht nutzen!', true)
|
||||
utilities.answer_callback_query(callback, 'Du darfst den Bot nicht nutzen!', true)
|
||||
return
|
||||
end
|
||||
end
|
||||
@@ -156,13 +172,13 @@ function bot:process_inline_query(inline_query, config) -- When an inline query
|
||||
-- but he WON'T be able to make new requests.
|
||||
local user_id = inline_query.from.id
|
||||
if redis:get('blocked:'..user_id) then
|
||||
utilities.answer_inline_query(self, inline_query, nil, 0, true)
|
||||
abort_inline_query(inline_query)
|
||||
return
|
||||
end
|
||||
|
||||
if not config.enable_inline_for_everyone then
|
||||
local is_whitelisted = redis:get('whitelist:user#id'..inline_query.from.id)
|
||||
if not is_whitelisted then utilities.answer_inline_query(self, inline_query, nil, 0, true) return end
|
||||
if not is_whitelisted then abort_inline_query(inline_query) return end
|
||||
end
|
||||
|
||||
if inline_query.query:match('"') then
|
||||
@@ -175,7 +191,7 @@ function bot:process_inline_query(inline_query, config) -- When an inline query
|
||||
end
|
||||
|
||||
-- Stop the spinning circle
|
||||
utilities.answer_inline_query(self, inline_query, nil, 0, true)
|
||||
abort_inline_query(inline_query)
|
||||
end
|
||||
|
||||
function bot:run(config)
|
||||
@@ -183,7 +199,7 @@ function bot:run(config)
|
||||
|
||||
while self.is_started do
|
||||
-- Update loop
|
||||
local res = bindings.getUpdates(self, { timeout = 20, offset = self.last_update+1 } )
|
||||
local res = bindings.getUpdates{ timeout = 20, offset = self.last_update+1 }
|
||||
if res then
|
||||
-- Iterate over every new message.
|
||||
for n=1, #res.result do
|
||||
@@ -210,7 +226,7 @@ function bot:run(config)
|
||||
if v.cron then -- Call each plugin's cron function, if it has one.
|
||||
local result, err = pcall(function() v.cron(self, config) end)
|
||||
if not result then
|
||||
utilities.handle_exception(self, err, 'CRON: ' .. n, config)
|
||||
utilities.handle_exception(self, err, 'CRON: ' .. n, config.log_chat)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -232,7 +248,8 @@ function pre_process_msg(self, msg, config)
|
||||
local plugin = self.plugins[n]
|
||||
if plugin.pre_process and msg then
|
||||
-- print('Preprocess '..plugin.name) -- remove comment to restore old behaviour
|
||||
new_msg = plugin:pre_process(msg, self, config)
|
||||
new_msg = plugin:pre_process(msg, config)
|
||||
if not new_msg then return end -- Message was deleted
|
||||
end
|
||||
end
|
||||
return new_msg
|
||||
@@ -274,7 +291,7 @@ function match_plugins(self, msg, config, plugin)
|
||||
end
|
||||
end)
|
||||
if not success then
|
||||
utilities.handle_exception(self, result, msg.from.id .. ': ' .. msg.text, config)
|
||||
utilities.handle_exception(self, result, msg.from.id .. ': ' .. msg.text, config.log_chat)
|
||||
return
|
||||
end
|
||||
-- if one pattern matches, end
|
||||
@@ -310,11 +327,16 @@ function create_plugin_set()
|
||||
'control',
|
||||
'about',
|
||||
'id',
|
||||
'post_photo',
|
||||
'images',
|
||||
'media',
|
||||
'service_migrate_to_supergroup',
|
||||
'creds',
|
||||
'echo',
|
||||
'banhammer',
|
||||
'channels',
|
||||
'plugins',
|
||||
'settings',
|
||||
'help'
|
||||
}
|
||||
print ('Aktiviere Plugins und speicher in telegram:enabled_plugins')
|
||||
|
@@ -31,7 +31,7 @@ end
|
||||
|
||||
function ninegag:inline_callback(inline_query, config)
|
||||
local res, code = http.request(url)
|
||||
if code ~= 200 then utilities.answer_inline_query(self, inline_query) return end
|
||||
if code ~= 200 then abort_inline_query(inline_query) return end
|
||||
local gag = json.decode(res)
|
||||
|
||||
local results = '['
|
||||
@@ -45,19 +45,19 @@ function ninegag:inline_callback(inline_query, config)
|
||||
end
|
||||
end
|
||||
local results = results..']'
|
||||
utilities.answer_inline_query(self, inline_query, results, 300)
|
||||
utilities.answer_inline_query(inline_query, results, 300)
|
||||
end
|
||||
|
||||
function ninegag:action(msg, config)
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local url, title, post_url = ninegag:get_9GAG()
|
||||
if not url then
|
||||
utilities.send_reply(self, msg, config.errors.connection)
|
||||
utilities.send_reply(msg, config.errors.connection)
|
||||
return
|
||||
end
|
||||
|
||||
local file = download_to_file(url)
|
||||
utilities.send_photo(self, msg.chat.id, file, title, msg.message_id, '{"inline_keyboard":[[{"text":"Post aufrufen","url":"'..post_url..'"}]]}')
|
||||
utilities.send_photo(msg.chat.id, file, title, msg.message_id, '{"inline_keyboard":[[{"text":"Post aufrufen","url":"'..post_url..'"}]]}')
|
||||
end
|
||||
|
||||
return ninegag
|
@@ -14,7 +14,7 @@ function about:init(config)
|
||||
end
|
||||
|
||||
function about:action(msg, config)
|
||||
utilities.send_message(self, msg.chat.id, about.text, true, nil, true)
|
||||
utilities.send_message(msg.chat.id, about.text, true, nil, true)
|
||||
end
|
||||
|
||||
return about
|
@@ -27,11 +27,11 @@ function adfly:inline_callback(inline_query, config, matches)
|
||||
url = redis:get(hash)
|
||||
end
|
||||
|
||||
if not url then utilities.answer_inline_query(self, inline_query) return end
|
||||
if url == 'NOTFOUND' then utilities.answer_inline_query(self, inline_query) return end
|
||||
if not url then abort_inline_query(inline_query) return end
|
||||
if url == 'NOTFOUND' then abort_inline_query(inline_query) return end
|
||||
|
||||
local results = '[{"type":"article","id":"1","title":"Verlängerte URL","description":"'..url..'","url":"'..url..'","thumb_url":"https://anditest.perseus.uberspace.de/inlineQuerys/generic/internet.jpg","thumb_width":165,"thumb_height":150,"hide_url":true,"input_message_content":{"message_text":"'..url..'"}}]'
|
||||
utilities.answer_inline_query(self, inline_query, results, 3600, true)
|
||||
utilities.answer_inline_query(inline_query, results, 3600, true)
|
||||
end
|
||||
|
||||
function adfly:action(msg, config, matches)
|
||||
@@ -40,17 +40,17 @@ function adfly:action(msg, config, matches)
|
||||
if redis:exists(hash) == false then
|
||||
local expanded_url = adfly:expand_adfly_link(adfly_code)
|
||||
if not expanded_url then
|
||||
utilities.send_reply(self, msg, config.errors.connection)
|
||||
utilities.send_reply(msg, config.errors.connection)
|
||||
return
|
||||
end
|
||||
if expanded_url == 'NOTFOUND' then
|
||||
utilities.send_reply(self, msg, 'Fehler: Keine Adf.ly-URL gefunden!')
|
||||
utilities.send_reply(msg, 'Fehler: Keine Adf.ly-URL gefunden!')
|
||||
return
|
||||
end
|
||||
utilities.send_reply(self, msg, expanded_url)
|
||||
utilities.send_reply(msg, expanded_url)
|
||||
else
|
||||
local data = redis:get(hash)
|
||||
utilities.send_reply(self, msg, data)
|
||||
utilities.send_reply(msg, data)
|
||||
end
|
||||
end
|
||||
|
||||
|
@@ -58,10 +58,10 @@ function afk:switch_afk(user_name, user_id, chat_id, timestamp, text)
|
||||
end
|
||||
end
|
||||
|
||||
function afk:pre_process(msg, self)
|
||||
function afk:pre_process(msg)
|
||||
if msg.chat.type == "private" then
|
||||
-- Ignore
|
||||
return
|
||||
return msg
|
||||
end
|
||||
|
||||
local user_name = get_name(msg)
|
||||
@@ -84,15 +84,15 @@ function afk:pre_process(msg, self)
|
||||
if afk_text then
|
||||
redis:hset(hash, 'afk_text', false)
|
||||
if show_afk_keyboard == 'true' then
|
||||
utilities.send_reply(self, msg, user_name..' ist wieder da! (war: <b>'..afk_text..'</b> für '..duration..')', 'HTML', '{"hide_keyboard":true,"selective":true}')
|
||||
utilities.send_reply(msg, user_name..' ist wieder da! (war: <b>'..afk_text..'</b> für '..duration..')', 'HTML', '{"hide_keyboard":true,"selective":true}')
|
||||
else
|
||||
utilities.send_message(self, chat_id, user_name..' ist wieder da! (war: <b>'..afk_text..'</b> für '..duration..')', true, nil, 'HTML')
|
||||
utilities.send_message(chat_id, user_name..' ist wieder da! (war: <b>'..afk_text..'</b> für '..duration..')', true, nil, 'HTML')
|
||||
end
|
||||
else
|
||||
if show_afk_keyboard == 'true' then
|
||||
utilities.send_reply(self, msg, user_name..' ist wieder da! (war '..duration..' weg)', nil, '{"hide_keyboard":true,"selective":true}')
|
||||
utilities.send_reply(msg, user_name..' ist wieder da! (war '..duration..' weg)', nil, '{"hide_keyboard":true,"selective":true}')
|
||||
else
|
||||
utilities.send_message(self, chat_id, user_name..' ist wieder da! (war '..duration..' weg)')
|
||||
utilities.send_message(chat_id, user_name..' ist wieder da! (war '..duration..' weg)')
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -102,7 +102,7 @@ end
|
||||
|
||||
function afk:action(msg, config, matches)
|
||||
if msg.chat.type == "private" then
|
||||
utilities.send_reply(self, msg, "Mir ist's egal, ob du AFK bist.")
|
||||
utilities.send_reply(msg, "Mir ist's egal, ob du AFK bist.")
|
||||
return
|
||||
end
|
||||
|
||||
@@ -118,7 +118,7 @@ function afk:action(msg, config, matches)
|
||||
keyboard = nil
|
||||
end
|
||||
|
||||
utilities.send_reply(self, msg, afk:switch_afk(user_name, user_id, chat_id, timestamp, matches[2]), false, keyboard)
|
||||
utilities.send_reply(msg, afk:switch_afk(user_name, user_id, chat_id, timestamp, matches[2]), false, keyboard)
|
||||
end
|
||||
|
||||
return afk
|
@@ -96,15 +96,15 @@ function app_store:action(msg, config, matches)
|
||||
local data = app_store:get_appstore_data()
|
||||
if data == nil then print('Das Appstore-Plugin unterstützt nur Apps!') end
|
||||
if data == 'HTTP-FEHLER' or data == 'NOTFOUND' then
|
||||
utilities.send_reply(self, msg, '<b>App nicht gefunden!</b>', 'HTML')
|
||||
utilities.send_reply(msg, '<b>App nicht gefunden!</b>', 'HTML')
|
||||
return
|
||||
else
|
||||
local output, image_url = app_store:send_appstore_data(data)
|
||||
utilities.send_reply(self, msg, output, 'HTML')
|
||||
utilities.send_reply(msg, output, 'HTML')
|
||||
if image_url then
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(image_url)
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@@ -59,8 +59,8 @@ function bImages:inline_callback(inline_query, config, matches)
|
||||
results = bImages:getImages(query)
|
||||
end
|
||||
|
||||
if not results then utilities.answer_inline_query(self, inline_query) return end
|
||||
utilities.answer_inline_query(self, inline_query, results, 3600)
|
||||
if not results then abort_inline_query(inline_query) return end
|
||||
utilities.answer_inline_query(inline_query, results, 3600)
|
||||
end
|
||||
|
||||
function bImages:action()
|
||||
|
@@ -39,11 +39,11 @@ function banhammer:init(config)
|
||||
Alternativ kann auch auf die Nachricht des Users geantwortet werden, die Befehle sind dnn die obrigen ohne `user` bzw.`delete`.]]
|
||||
end
|
||||
|
||||
function banhammer:kick_user(user_id, chat_id, self, onlykick)
|
||||
function banhammer:kick_user(user_id, chat_id, onlykick)
|
||||
if user_id == tostring(our_id) then
|
||||
return "Ich werde mich nicht selbst kicken!"
|
||||
else
|
||||
local request = bindings.request(self, 'kickChatMember', {
|
||||
local request = bindings.request('kickChatMember', {
|
||||
chat_id = chat_id,
|
||||
user_id = user_id
|
||||
} )
|
||||
@@ -56,7 +56,7 @@ function banhammer:kick_user(user_id, chat_id, self, onlykick)
|
||||
end
|
||||
end
|
||||
|
||||
function banhammer:ban_user(user_id, chat_id, self)
|
||||
function banhammer:ban_user(user_id, chat_id)
|
||||
if user_id == tostring(our_id) then
|
||||
return "Ich werde mich nicht selbst kicken!"
|
||||
else
|
||||
@@ -64,15 +64,15 @@ function banhammer:ban_user(user_id, chat_id, self)
|
||||
local hash = 'banned:'..chat_id..':'..user_id
|
||||
redis:set(hash, true)
|
||||
-- Kick from chat
|
||||
return banhammer:kick_user(user_id, chat_id, self)
|
||||
return banhammer:kick_user(user_id, chat_id)
|
||||
end
|
||||
end
|
||||
|
||||
function banhammer:unban_user(user_id, chat_id, self, chat_type)
|
||||
function banhammer:unban_user(user_id, chat_id, chat_type)
|
||||
local hash = 'banned:'..chat_id..':'..user_id
|
||||
redis:del(hash)
|
||||
if chat_type == 'supergroup' then
|
||||
bindings.request(self, 'unbanChatMember', {
|
||||
bindings.request('unbanChatMember', {
|
||||
chat_id = chat_id,
|
||||
user_id = user_id
|
||||
} )
|
||||
@@ -98,7 +98,7 @@ function banhammer:is_chat_whitelisted(id)
|
||||
return white
|
||||
end
|
||||
|
||||
function banhammer:pre_process(msg, self, config)
|
||||
function banhammer:pre_process(msg, config)
|
||||
-- SERVICE MESSAGE
|
||||
if msg.new_chat_member then
|
||||
local user_id = msg.new_chat_member.id
|
||||
@@ -106,7 +106,7 @@ function banhammer:pre_process(msg, self, config)
|
||||
local banned = banhammer:is_banned(user_id, msg.chat.id)
|
||||
if banned then
|
||||
print('User is banned!')
|
||||
banhammer:kick_user(user_id, msg.chat.id, self, true)
|
||||
banhammer:kick_user(user_id, msg.chat.id, true)
|
||||
end
|
||||
-- No further checks
|
||||
return msg
|
||||
@@ -119,7 +119,7 @@ function banhammer:pre_process(msg, self, config)
|
||||
local banned = banhammer:is_banned(user_id, chat_id)
|
||||
if banned then
|
||||
print('Banned user talking!')
|
||||
banhammer:ban_user(user_id, chat_id, self)
|
||||
banhammer:ban_user(user_id, chat_id)
|
||||
return
|
||||
end
|
||||
end
|
||||
@@ -155,7 +155,7 @@ function banhammer:pre_process(msg, self, config)
|
||||
end
|
||||
else
|
||||
if not has_been_warned then
|
||||
utilities.send_reply(self, msg, "Dies ist ein privater Bot, der erst nach einer Freischaltung benutzt werden kann.\nThis is a private bot, which can only be after an approval.")
|
||||
utilities.send_reply(msg, "Dies ist ein privater Bot, der erst nach einer Freischaltung benutzt werden kann.\nThis is a private bot, which can only be after an approval.")
|
||||
redis:hset('user:'..user_id, 'has_been_warned', true)
|
||||
else
|
||||
print('User has already been warned!')
|
||||
@@ -181,7 +181,7 @@ function banhammer:action(msg, config, matches)
|
||||
|
||||
if matches[1] == 'leave' then
|
||||
if msg.chat.type == 'group' or msg.chat.type == 'supergroup' then
|
||||
bindings.request(self, 'leaveChat', {
|
||||
bindings.request('leaveChat', {
|
||||
chat_id = msg.chat.id
|
||||
} )
|
||||
return
|
||||
@@ -206,17 +206,17 @@ function banhammer:action(msg, config, matches)
|
||||
|
||||
if msg.chat.type == 'group' or msg.chat.type == 'supergroup' then
|
||||
if matches[2] == 'user' or not matches[2] then
|
||||
local text = banhammer:ban_user(user_id, chat_id, self)
|
||||
utilities.send_reply(self, msg, text)
|
||||
local text = banhammer:ban_user(user_id, chat_id)
|
||||
utilities.send_reply(msg, text)
|
||||
return
|
||||
end
|
||||
if matches[2] == 'delete' then
|
||||
local text = banhammer:unban_user(user_id, chat_id, self, msg.chat.type)
|
||||
utilities.send_reply(self, msg, text)
|
||||
local text = banhammer:unban_user(user_id, chat_id, msg.chat.type)
|
||||
utilities.send_reply(msg, text)
|
||||
return
|
||||
end
|
||||
else
|
||||
utilities.send_reply(self, msg, 'Das ist keine Chat-Gruppe')
|
||||
utilities.send_reply(msg, 'Das ist keine Chat-Gruppe')
|
||||
return
|
||||
end
|
||||
end
|
||||
@@ -234,10 +234,10 @@ function banhammer:action(msg, config, matches)
|
||||
user_id = msg.reply_to_message.from.id
|
||||
end
|
||||
end
|
||||
banhammer:kick_user(user_id, msg.chat.id, self, true)
|
||||
banhammer:kick_user(user_id, msg.chat.id, true)
|
||||
return
|
||||
else
|
||||
utilities.send_reply(self, msg, 'Das ist keine Chat-Gruppe')
|
||||
utilities.send_reply(msg, 'Das ist keine Chat-Gruppe')
|
||||
return
|
||||
end
|
||||
end
|
||||
@@ -246,14 +246,14 @@ function banhammer:action(msg, config, matches)
|
||||
if matches[2] == 'enable' then
|
||||
local hash = 'whitelist:enabled'
|
||||
redis:set(hash, true)
|
||||
utilities.send_reply(self, msg, 'Whitelist aktiviert')
|
||||
utilities.send_reply(msg, 'Whitelist aktiviert')
|
||||
return
|
||||
end
|
||||
|
||||
if matches[2] == 'disable' then
|
||||
local hash = 'whitelist:enabled'
|
||||
redis:del(hash)
|
||||
utilities.send_reply(self, msg, 'Whitelist deaktiviert')
|
||||
utilities.send_reply(msg, 'Whitelist deaktiviert')
|
||||
return
|
||||
end
|
||||
|
||||
@@ -268,7 +268,7 @@ function banhammer:action(msg, config, matches)
|
||||
end
|
||||
local hash = 'whitelist:user#id'..user_id
|
||||
redis:set(hash, true)
|
||||
utilities.send_reply(self, msg, 'User '..user_id..' whitelisted')
|
||||
utilities.send_reply(msg, 'User '..user_id..' whitelisted')
|
||||
return
|
||||
end
|
||||
|
||||
@@ -285,14 +285,14 @@ function banhammer:action(msg, config, matches)
|
||||
end
|
||||
local hash = 'whitelist:user#id'..user_id
|
||||
redis:del(hash)
|
||||
utilities.send_reply(self, msg, 'User '..user_id..' von der Whitelist entfernt!')
|
||||
utilities.send_reply(msg, 'User '..user_id..' von der Whitelist entfernt!')
|
||||
return
|
||||
end
|
||||
|
||||
if matches[2] == 'user' then
|
||||
local hash = 'whitelist:user#id'..matches[3]
|
||||
redis:set(hash, true)
|
||||
utilities.send_reply(self, msg, 'User '..matches[3]..' whitelisted')
|
||||
utilities.send_reply(msg, 'User '..matches[3]..' whitelisted')
|
||||
return
|
||||
end
|
||||
|
||||
@@ -300,10 +300,10 @@ function banhammer:action(msg, config, matches)
|
||||
if msg.chat.type == 'group' or msg.chat.type == 'supergroup' then
|
||||
local hash = 'whitelist:chat#id'..msg.chat.id
|
||||
redis:set(hash, true)
|
||||
utilities.send_reply(self, msg, 'Chat '..msg.chat.id..' whitelisted')
|
||||
utilities.send_reply(msg, 'Chat '..msg.chat.id..' whitelisted')
|
||||
return
|
||||
else
|
||||
utilities.send_reply(self, msg, 'Das ist keine Chat-Gruppe!')
|
||||
utilities.send_reply(msg, 'Das ist keine Chat-Gruppe!')
|
||||
return
|
||||
end
|
||||
end
|
||||
@@ -311,7 +311,7 @@ function banhammer:action(msg, config, matches)
|
||||
if matches[2] == 'delete' and matches[3] == 'user' then
|
||||
local hash = 'whitelist:user#id'..matches[4]
|
||||
redis:del(hash)
|
||||
utilities.send_reply(self, msg, 'User '..matches[4]..' von der Whitelist entfernt!')
|
||||
utilities.send_reply(msg, 'User '..matches[4]..' von der Whitelist entfernt!')
|
||||
return
|
||||
end
|
||||
|
||||
@@ -319,10 +319,10 @@ function banhammer:action(msg, config, matches)
|
||||
if msg.chat.type == 'group' or msg.chat.type == 'supergroup' then
|
||||
local hash = 'whitelist:chat#id'..msg.chat.id
|
||||
redis:del(hash)
|
||||
utilities.send_reply(self, msg, 'Chat '..msg.chat.id..' von der Whitelist entfernt')
|
||||
utilities.send_reply(msg, 'Chat '..msg.chat.id..' von der Whitelist entfernt')
|
||||
return
|
||||
else
|
||||
utilities.send_reply(self, msg, 'Das ist keine Chat-Gruppe!')
|
||||
utilities.send_reply(msg, 'Das ist keine Chat-Gruppe!')
|
||||
return
|
||||
end
|
||||
end
|
||||
@@ -333,14 +333,14 @@ function banhammer:action(msg, config, matches)
|
||||
if matches[2] == 'user' and matches[3] then
|
||||
local hash = 'blocked:'..matches[3]
|
||||
redis:set(hash, true)
|
||||
utilities.send_reply(self, msg, 'User '..matches[3]..' darf den Bot nun nicht mehr nutzen.')
|
||||
utilities.send_reply(msg, 'User '..matches[3]..' darf den Bot nun nicht mehr nutzen.')
|
||||
return
|
||||
end
|
||||
|
||||
if matches[2] == 'delete' and matches[3] then
|
||||
local hash = 'blocked:'..matches[3]
|
||||
redis:del(hash)
|
||||
utilities.send_reply(self, msg, 'User '..matches[3]..' darf den Bot wieder nutzen.')
|
||||
utilities.send_reply(msg, 'User '..matches[3]..' darf den Bot wieder nutzen.')
|
||||
return
|
||||
end
|
||||
|
||||
@@ -357,7 +357,7 @@ function banhammer:action(msg, config, matches)
|
||||
end
|
||||
local hash = 'blocked:'..user_id
|
||||
redis:set(hash, true)
|
||||
utilities.send_reply(self, msg, 'User '..user_id..' darf den Bot nun nicht mehr nutzen.')
|
||||
utilities.send_reply(msg, 'User '..user_id..' darf den Bot nun nicht mehr nutzen.')
|
||||
return
|
||||
end
|
||||
|
||||
@@ -374,7 +374,7 @@ function banhammer:action(msg, config, matches)
|
||||
end
|
||||
local hash = 'blocked:'..user_id
|
||||
redis:del(hash)
|
||||
utilities.send_reply(self, msg, 'User '..user_id..' darf den Bot wieder nutzen.')
|
||||
utilities.send_reply(msg, 'User '..user_id..' darf den Bot wieder nutzen.')
|
||||
return
|
||||
end
|
||||
|
||||
|
@@ -90,7 +90,7 @@ function birthday:action(msg, config, matches)
|
||||
end
|
||||
end
|
||||
|
||||
utilities.send_reply(self, msg, text, 'HTML')
|
||||
utilities.send_reply(msg, text, 'HTML')
|
||||
end
|
||||
|
||||
return birthday
|
||||
|
@@ -38,10 +38,10 @@ function bitly:inline_callback(inline_query, config, matches)
|
||||
url = data.long_url
|
||||
end
|
||||
|
||||
if not url then utilities.answer_inline_query(self, inline_query) return end
|
||||
if not url then abort_inline_query(inline_query) return end
|
||||
|
||||
local results = '[{"type":"article","id":"2","title":"Verlängerte URL","description":"'..url..'","url":"'..url..'","thumb_url":"https://anditest.perseus.uberspace.de/inlineQuerys/generic/internet.jpg","thumb_width":165,"thumb_height":150,"hide_url":true,"input_message_content":{"message_text":"'..url..'"}}]'
|
||||
utilities.answer_inline_query(self, inline_query, results, 3600)
|
||||
utilities.answer_inline_query(inline_query, results, 3600)
|
||||
end
|
||||
|
||||
function bitly:action(msg, config, matches)
|
||||
@@ -50,14 +50,14 @@ function bitly:action(msg, config, matches)
|
||||
if redis:exists(hash) == false then
|
||||
local longurl = bitly:expand_bitly_link(shorturl)
|
||||
if not longurl then
|
||||
utilities.send_reply(self, msg, config.errors.connection)
|
||||
utilities.send_reply( msg, config.errors.connection)
|
||||
return
|
||||
end
|
||||
utilities.send_reply(self, msg, longurl)
|
||||
utilities.send_reply(msg, longurl)
|
||||
return
|
||||
else
|
||||
local data = redis:hgetall(hash)
|
||||
utilities.send_reply(self, msg, data.long_url)
|
||||
utilities.send_reply(msg, data.long_url)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -83,38 +83,38 @@ function bitly_create:action(msg, config, matches)
|
||||
bitly_access_token = redis:hget(hash, 'bitly')
|
||||
|
||||
if matches[1] == 'auth' and matches[2] then
|
||||
utilities.send_reply(self, msg, bitly_create:get_bitly_access_token(hash, matches[2]), true)
|
||||
utilities.send_reply(msg, bitly_create:get_bitly_access_token(hash, matches[2]), true)
|
||||
local message_id = redis:hget(hash, 'bitly_login_msg')
|
||||
utilities.edit_message(self, msg.chat.id, message_id, '*Anmeldung abgeschlossen!*', true, true)
|
||||
utilities.edit_message(msg.chat.id, message_id, '*Anmeldung abgeschlossen!*', true, true)
|
||||
redis:hdel(hash, 'bitly_login_msg')
|
||||
return
|
||||
end
|
||||
|
||||
if matches[1] == 'auth' then
|
||||
local result = utilities.send_reply(self, msg, '*Bitte logge dich ein und folge den Anweisungen.*', true, '{"inline_keyboard":[[{"text":"Bei Bitly anmelden","url":"https://bitly.com/oauth/authorize?client_id='..client_id..'&redirect_uri='..redirect_uri..'&state='..self.info.username..'"}]]}')
|
||||
local result = utilities.send_reply(msg, '*Bitte logge dich ein und folge den Anweisungen.*', true, '{"inline_keyboard":[[{"text":"Bei Bitly anmelden","url":"https://bitly.com/oauth/authorize?client_id='..client_id..'&redirect_uri='..redirect_uri..'&state='..self.info.username..'"}]]}')
|
||||
redis:hset(hash, 'bitly_login_msg', result.result.message_id)
|
||||
return
|
||||
end
|
||||
|
||||
if matches[1] == 'unauth' and bitly_access_token then
|
||||
redis:hdel(hash, 'bitly')
|
||||
utilities.send_reply(self, msg, '*Erfolgreich ausgeloggt!* Du kannst den Zugriff [in deinen Kontoeinstellungen](https://bitly.com/a/settings/connected) endgültig entziehen.', true)
|
||||
utilities.send_reply(msg, '*Erfolgreich ausgeloggt!* Du kannst den Zugriff [in deinen Kontoeinstellungen](https://bitly.com/a/settings/connected) endgültig entziehen.', true)
|
||||
return
|
||||
elseif matches[1] == 'unauth' and not bitly_access_token then
|
||||
utilities.send_reply(self, msg, 'Wie willst du dich ausloggen, wenn du gar nicht eingeloggt bist?', true)
|
||||
utilities.send_reply(msg, 'Wie willst du dich ausloggen, wenn du gar nicht eingeloggt bist?', true)
|
||||
return
|
||||
end
|
||||
|
||||
if matches[1] == 'me' and bitly_access_token then
|
||||
local text = bitly_create:get_bitly_user_info(bitly_access_token)
|
||||
if text then
|
||||
utilities.send_reply(self, msg, text, true)
|
||||
utilities.send_reply(msg, text, true)
|
||||
return
|
||||
else
|
||||
return
|
||||
end
|
||||
elseif matches[1] == 'me' and not bitly_access_token then
|
||||
utilities.send_reply(self, msg, 'Du bist nicht eingeloggt! Logge dich ein mit\n/short auth', true)
|
||||
utilities.send_reply(msg, 'Du bist nicht eingeloggt! Logge dich ein mit\n/short auth', true)
|
||||
return
|
||||
end
|
||||
|
||||
@@ -130,7 +130,7 @@ function bitly_create:action(msg, config, matches)
|
||||
long_url = url_encode(matches[2])
|
||||
domain = matches[1]
|
||||
end
|
||||
utilities.send_reply(self, msg, bitly_create:create_bitlink(long_url, domain, bitly_access_token))
|
||||
utilities.send_reply(msg, bitly_create:create_bitlink(long_url, domain, bitly_access_token))
|
||||
return
|
||||
end
|
||||
|
||||
|
@@ -57,10 +57,10 @@ function boobs:action(msg, config, matches)
|
||||
|
||||
if url ~= nil then
|
||||
local file = download_to_file(url)
|
||||
utilities.send_photo(self, msg.chat.id, file, url, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, url, msg.message_id)
|
||||
return
|
||||
else
|
||||
utilities.send_reply(self, msg, 'Nichts gefunden :(')
|
||||
utilities.send_reply(msg, 'Nichts gefunden :(')
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -35,11 +35,11 @@ function br:action(msg, config, matches)
|
||||
local article = URL.escape(matches[1])
|
||||
local text, image_url = br:get_br_article(article)
|
||||
if image_url then
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(image_url, 'br_teaser.jpg')
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
end
|
||||
utilities.send_reply(self, msg, text, true)
|
||||
utilities.send_reply(msg, text, true)
|
||||
end
|
||||
|
||||
return br
|
@@ -28,7 +28,7 @@ end
|
||||
|
||||
|
||||
function btc:action(msg, config, matches)
|
||||
utilities.send_reply(self, msg, btc:getBTCX(cur), true)
|
||||
utilities.send_reply(msg, btc:getBTCX(cur), true)
|
||||
end
|
||||
|
||||
return btc
|
@@ -29,7 +29,7 @@ function calc:mathjs(exp)
|
||||
end
|
||||
|
||||
function calc:action(msg, config, matches)
|
||||
utilities.send_reply(self, msg, calc:mathjs(matches[1]))
|
||||
utilities.send_reply(msg, calc:mathjs(matches[1]))
|
||||
end
|
||||
|
||||
return calc
|
||||
|
@@ -56,18 +56,18 @@ function cats:inline_callback(inline_query, config, matches)
|
||||
end
|
||||
end
|
||||
local results = results..']'
|
||||
utilities.answer_inline_query(self, inline_query, results, 30)
|
||||
utilities.answer_inline_query(inline_query, results, 30)
|
||||
end
|
||||
|
||||
function cats:action(msg, config)
|
||||
if matches[1] == 'gif' then
|
||||
local url = 'http://thecatapi.com/api/images/get?type=gif&apikey='..apikey
|
||||
local file = download_to_file(url, 'miau.gif')
|
||||
utilities.send_document(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_document(msg.chat.id, file, nil, msg.message_id)
|
||||
else
|
||||
local url = 'http://thecatapi.com/api/images/get?type=jpg,png&apikey='..apikey
|
||||
local file = download_to_file(url, 'miau.png')
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
end
|
||||
end
|
||||
|
||||
|
@@ -22,7 +22,7 @@ function cf_img:inline_callback(inline_query, config, matches)
|
||||
local site = matches[1]
|
||||
local pic = matches[2]
|
||||
local full_url = cf_img:get_full_url(site, pic)
|
||||
if not full_url then utilities.answer_inline_query(self, inline_query) return end
|
||||
if not full_url then abort_inline_query(inline_query) return end
|
||||
|
||||
local results
|
||||
|
||||
@@ -31,7 +31,7 @@ function cf_img:inline_callback(inline_query, config, matches)
|
||||
else
|
||||
results = '[{"type":"photo","id":"7777","photo_url":"'..full_url..'","thumb_url":"'..full_url..'"}]'
|
||||
end
|
||||
utilities.answer_inline_query(self, inline_query, results, 3600, true)
|
||||
utilities.answer_inline_query(inline_query, results, 3600, true)
|
||||
end
|
||||
|
||||
function cf_img:action(msg, config, matches)
|
||||
@@ -39,16 +39,16 @@ function cf_img:action(msg, config, matches)
|
||||
local pic = matches[2]
|
||||
local full_url = cf_img:get_full_url(site, pic)
|
||||
if not full_url then
|
||||
utilities.send_reply(self, msg, config.errors.connection)
|
||||
utilities.send_reply(msg, config.errors.connection)
|
||||
return
|
||||
end
|
||||
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(full_url)
|
||||
if string.ends(full_url, '.gif') then
|
||||
utilities.send_document(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_document(msg.chat.id, file, nil, msg.message_id)
|
||||
else
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
end
|
||||
end
|
||||
|
||||
|
@@ -21,7 +21,7 @@ function channel:action(msg, config)
|
||||
local input = utilities.input(msg.text)
|
||||
local output
|
||||
local chat_id = '@'..matches[1]
|
||||
local admin_list, gca_results = utilities.get_chat_administrators(self, chat_id)
|
||||
local admin_list, gca_results = utilities.get_chat_administrators(chat_id)
|
||||
|
||||
if admin_list then
|
||||
local is_admin = false
|
||||
@@ -38,17 +38,17 @@ function channel:action(msg, config)
|
||||
-- this plugin will also be ready :P
|
||||
-- Also, URL buttons work!? Maybe beta?
|
||||
if reply_markup:match('"callback_data":"') then
|
||||
utilities.send_reply(self, msg, 'callback_data ist in Buttons nicht erlaubt.')
|
||||
utilities.send_reply(msg, 'callback_data ist in Buttons nicht erlaubt.')
|
||||
return
|
||||
elseif reply_markup:match('"switch_inline_query":"') then
|
||||
utilities.send_reply(self, msg, 'switch_inline_query ist in Buttons nicht erlaubt.')
|
||||
utilities.send_reply(msg, 'switch_inline_query ist in Buttons nicht erlaubt.')
|
||||
return
|
||||
end
|
||||
else
|
||||
text = matches[2]
|
||||
reply_markup = nil
|
||||
end
|
||||
local success, result = utilities.send_message(self, chat_id, text, true, nil, true, reply_markup)
|
||||
local success, result = utilities.send_message(chat_id, text, true, nil, true, reply_markup)
|
||||
if success then
|
||||
output = 'Deine Nachricht wurde versendet!'
|
||||
else
|
||||
@@ -60,7 +60,7 @@ function channel:action(msg, config)
|
||||
else
|
||||
output = 'Sorry, ich konnte die Administratorenliste nicht abrufen!\n`'..gca_results.description..'`'
|
||||
end
|
||||
utilities.send_reply(self, msg, output, true)
|
||||
utilities.send_reply(msg, output, true)
|
||||
end
|
||||
|
||||
return channel
|
@@ -47,7 +47,7 @@ function channels:disable_channel(msg)
|
||||
end
|
||||
end
|
||||
|
||||
function channels:pre_process(msg, self, config)
|
||||
function channels:pre_process(msg, config)
|
||||
-- If is sudo can reeanble the channel
|
||||
if is_sudo(msg, config) then
|
||||
if msg.text == "/channel enable" then
|
||||
@@ -57,9 +57,7 @@ function channels:pre_process(msg, self, config)
|
||||
|
||||
if channels:is_channel_disabled(msg) then
|
||||
print('Channel wurde deaktiviert')
|
||||
msg.text = ''
|
||||
msg.text_lower = ''
|
||||
msg.entities = ''
|
||||
return
|
||||
end
|
||||
|
||||
return msg
|
||||
@@ -67,18 +65,18 @@ end
|
||||
|
||||
function channels:action(msg, config, matches)
|
||||
if msg.from.id ~= config.admin then
|
||||
utilities.send_reply(self, msg, config.errors.sudo)
|
||||
utilities.send_reply(msg, config.errors.sudo)
|
||||
return
|
||||
end
|
||||
|
||||
-- Enable a channel
|
||||
if matches[1] == 'enable' then
|
||||
utilities.send_reply(self, msg, channels:enable_channel(msg))
|
||||
utilities.send_reply(msg, channels:enable_channel(msg))
|
||||
return
|
||||
end
|
||||
-- Disable a channel
|
||||
if matches[1] == 'disable' then
|
||||
utilities.send_reply(self, msg, channels:disable_channel(msg))
|
||||
utilities.send_reply(msg, channels:disable_channel(msg))
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -20,10 +20,10 @@ end
|
||||
function chucknorris:action(msg, config)
|
||||
local text = chucknorris:get_joke()
|
||||
if not text then
|
||||
utilities.send_reply(self, msg, config.errors.connection)
|
||||
utilities.send_reply(msg, config.errors.connection)
|
||||
return
|
||||
end
|
||||
utilities.send_reply(self, msg, unescape(text))
|
||||
utilities.send_reply(msg, unescape(text))
|
||||
end
|
||||
|
||||
return chucknorris
|
@@ -11,17 +11,17 @@ end
|
||||
cleverbot.command = 'cbot <Text>'
|
||||
|
||||
function cleverbot:action(msg, config, matches)
|
||||
utilities.send_typing(self, msg.chat.id, 'typing')
|
||||
utilities.send_typing(msg.chat.id, 'typing')
|
||||
local text = matches[1]
|
||||
local query, code = https.request(cleverbot.url..URL.escape(text))
|
||||
if code ~= 200 then
|
||||
utilities.send_reply(self, msg, 'Ich möchte jetzt nicht reden...')
|
||||
utilities.send_reply(msg, 'Ich möchte jetzt nicht reden...')
|
||||
return
|
||||
end
|
||||
|
||||
local data = json.decode(query)
|
||||
if not data.clever then
|
||||
utilities.send_reply(self, msg, 'Ich möchte jetzt nicht reden...')
|
||||
utilities.send_reply(msg, 'Ich möchte jetzt nicht reden...')
|
||||
return
|
||||
end
|
||||
|
||||
@@ -32,7 +32,7 @@ function cleverbot:action(msg, config, matches)
|
||||
local answer = string.gsub(answer, "Ü", "Ü")
|
||||
local answer = string.gsub(answer, "ü", "ü")
|
||||
local answer = string.gsub(answer, "ß", "ß")
|
||||
utilities.send_reply(self, msg, answer)
|
||||
utilities.send_reply(msg, answer)
|
||||
end
|
||||
|
||||
return cleverbot
|
@@ -19,10 +19,10 @@ function clypit:get_clypit_details(shortcode)
|
||||
end
|
||||
|
||||
function clypit:action(msg, config, matches)
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_audio')
|
||||
utilities.send_typing(msg.chat.id, 'upload_audio')
|
||||
local audio, title, duration = clypit:get_clypit_details(matches[1])
|
||||
if not audio then return utilities.send_reply(self, msg, config.errors.connection) end
|
||||
utilities.send_audio(self, msg.chat.id, audio, nil, msg.message_id, duration, nil, title)
|
||||
if not audio then return utilities.send_reply(msg, config.errors.connection) end
|
||||
utilities.send_audio(msg.chat.id, audio, nil, msg.message_id, duration, nil, title)
|
||||
end
|
||||
|
||||
return clypit
|
||||
|
@@ -32,22 +32,22 @@ function control:action(msg, config)
|
||||
config[k] = v
|
||||
end
|
||||
end
|
||||
bot.init(self, config)
|
||||
utilities.send_reply(self, msg, 'Bot neu gestartet!')
|
||||
bot.init(config)
|
||||
utilities.send_reply(msg, 'Bot neu gestartet!')
|
||||
elseif msg.text_lower:match('^'..cmd_pat..'halt') then
|
||||
self.is_started = false
|
||||
utilities.send_reply(self, msg, 'Stoppe Bot!')
|
||||
utilities.send_reply(msg, 'Stoppe Bot!')
|
||||
elseif msg.text_lower:match('^'..cmd_pat..'script') then
|
||||
local input = msg.text_lower:match('^'..cmd_pat..'script\n(.+)')
|
||||
if not input then
|
||||
utilities.send_reply(self, msg, 'usage: ```\n'..cmd_pat..'script\n'..cmd_pat..'command <arg>\n...\n```', true)
|
||||
utilities.send_reply(msg, 'usage: ```\n'..cmd_pat..'script\n'..cmd_pat..'command <arg>\n...\n```', true)
|
||||
return
|
||||
end
|
||||
input = input .. '\n'
|
||||
for command in input:gmatch('(.-)\n') do
|
||||
command = utilities.trim(command)
|
||||
msg.text = command
|
||||
bot.on_msg_receive(self, msg, config)
|
||||
bot.on_msg_receive(msg, config)
|
||||
end
|
||||
end
|
||||
|
||||
|
@@ -13,18 +13,18 @@ cowsay.command = 'cowsay <Text>'
|
||||
function cowsay:inline_callback(inline_query, config, matches)
|
||||
local input = matches[1]
|
||||
|
||||
if string.match(input, '"') then utilities.answer_inline_query(self, inline_query) return end
|
||||
if string.match(input, '"') then abort_inline_query(inline_query) return end
|
||||
|
||||
local text = '```'..run_command('cowsay "'..input..'"')..'```'
|
||||
local text = text:gsub('\\', '\\\\')
|
||||
local results = '[{"type":"article","id":"7912","title":"Muh!","input_message_content":{"message_text":"'..text..'","parse_mode":"Markdown"}}]'
|
||||
utilities.answer_inline_query(self, inline_query, results, 2)
|
||||
utilities.answer_inline_query(inline_query, results, 2)
|
||||
end
|
||||
|
||||
function cowsay:action(msg, config)
|
||||
local input = utilities.input_from_msg(msg)
|
||||
if not input then
|
||||
utilities.send_reply(self, msg, cowsay.doc, true)
|
||||
utilities.send_reply(msg, cowsay.doc, true)
|
||||
return
|
||||
end
|
||||
|
||||
@@ -34,7 +34,7 @@ function cowsay:action(msg, config)
|
||||
text = '```'..run_command('cowsay "'..input..'"')..'```'
|
||||
end
|
||||
|
||||
utilities.send_reply(self, msg, text, true)
|
||||
utilities.send_reply(msg, text, true)
|
||||
end
|
||||
|
||||
return cowsay
|
@@ -90,31 +90,31 @@ end
|
||||
function creds_manager:action(msg, config, matches)
|
||||
local receiver = msg.from.id
|
||||
if receiver ~= config.admin then
|
||||
utilities.send_reply(self, msg, config.errors.sudo)
|
||||
utilities.send_reply(msg, config.errors.sudo)
|
||||
return
|
||||
end
|
||||
|
||||
if msg.chat.type ~= 'private' then
|
||||
utilities.send_reply(self, msg, 'Dieses Plugin solltest du nur [privat](http://telegram.me/' .. self.info.username .. '?start=creds) verwenden!', true)
|
||||
utilities.send_reply(msg, 'Dieses Plugin solltest du nur [privat](http://telegram.me/' .. self.info.username .. '?start=creds) verwenden!', true)
|
||||
return
|
||||
end
|
||||
|
||||
if matches[1] == "/creds" then
|
||||
utilities.send_reply(self, msg, creds_manager:list_creds())
|
||||
utilities.send_reply(msg, creds_manager:list_creds())
|
||||
return
|
||||
elseif matches[1] == "/creds add" then
|
||||
local var = string.lower(string.sub(matches[2], 1, 50))
|
||||
local key = string.sub(matches[3], 1, 1000)
|
||||
utilities.send_reply(self, msg, creds_manager:add_creds(var, key))
|
||||
utilities.send_reply(msg, creds_manager:add_creds(var, key))
|
||||
return
|
||||
elseif matches[1] == "/creds del" then
|
||||
local var = string.lower(matches[2])
|
||||
utilities.send_reply(self, msg, creds_manager:del_creds(var))
|
||||
utilities.send_reply(msg, creds_manager:del_creds(var))
|
||||
return
|
||||
elseif matches[1] == "/creds rename" then
|
||||
local var = string.lower(string.sub(matches[2], 1, 50))
|
||||
local newvar = string.lower(string.sub(matches[3], 1, 1000))
|
||||
utilities.send_reply(self, msg, creds_manager:rename_creds(var, newvar))
|
||||
utilities.send_reply(msg, creds_manager:rename_creds(var, newvar))
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -39,7 +39,7 @@ function currency:inline_callback(inline_query, config, matches)
|
||||
end
|
||||
|
||||
local value, iserr = currency:convert_money(base, to, amount)
|
||||
if iserr then utilities.answer_inline_query(self, inline_query) return end
|
||||
if iserr then abort_inline_query(inline_query) return end
|
||||
|
||||
local output = amount..' '..base..' = *'..value..' '..to..'*'
|
||||
if tonumber(amount) == 1 then
|
||||
@@ -48,7 +48,7 @@ function currency:inline_callback(inline_query, config, matches)
|
||||
title = amount..' '..base..' entsprechen'
|
||||
end
|
||||
local results = '[{"type":"article","id":"20","title":"'..title..'","description":"'..value..' '..to..'","thumb_url":"https://anditest.perseus.uberspace.de/inlineQuerys/currency/cash.jpg","thumb_width":157,"thumb_height":140,"input_message_content":{"message_text":"'..output..'","parse_mode":"Markdown"}}]'
|
||||
utilities.answer_inline_query(self, inline_query, results, 3600)
|
||||
utilities.answer_inline_query(inline_query, results, 3600)
|
||||
end
|
||||
|
||||
function currency:convert_money(base, to, amount)
|
||||
@@ -83,7 +83,7 @@ end
|
||||
|
||||
function currency:action(msg, config, matches)
|
||||
if matches[1] == '/cash' then
|
||||
utilities.send_reply(self, msg, currency.doc, true)
|
||||
utilities.send_reply(msg, currency.doc, true)
|
||||
return
|
||||
elseif not matches[2] then -- first pattern
|
||||
base = 'EUR'
|
||||
@@ -100,24 +100,24 @@ function currency:action(msg, config, matches)
|
||||
end
|
||||
|
||||
if from == to then
|
||||
utilities.send_reply(self, msg, 'Jaja, sehr witzig...')
|
||||
utilities.send_reply(msg, 'Jaja, sehr witzig...')
|
||||
return
|
||||
end
|
||||
|
||||
local value = currency:convert_money(base, to, amount)
|
||||
if value == 'NOCONNECT' then
|
||||
utilities.send_reply(self, msg, config.errors.connection)
|
||||
utilities.send_reply(msg, config.errors.connection)
|
||||
return
|
||||
elseif value == 'WRONGBASE' then
|
||||
utilities.send_reply(self, msg, 'Keine gültige Basiswährung.')
|
||||
utilities.send_reply(msg, 'Keine gültige Basiswährung.')
|
||||
return
|
||||
elseif value == 'WRONGCONVERTRATE' then
|
||||
utilities.send_reply(self, msg, 'Keine gültige Umwandlungswährung.')
|
||||
utilities.send_reply(msg, 'Keine gültige Umwandlungswährung.')
|
||||
return
|
||||
end
|
||||
|
||||
local output = amount..' '..base..' = *'..value..' '..to..'*'
|
||||
utilities.send_reply(self, msg, output, true)
|
||||
utilities.send_reply(msg, output, true)
|
||||
end
|
||||
|
||||
return currency
|
@@ -20,8 +20,8 @@ end
|
||||
|
||||
function dailymotion:action(msg, config, matches)
|
||||
local text = dailymotion:send_dailymotion_info(matches[1])
|
||||
if not text then utilities.send_reply(self, msg, config.errors.connection) return end
|
||||
utilities.send_reply(self, msg, text, true)
|
||||
if not text then utilities.send_reply(msg, config.errors.connection) return end
|
||||
utilities.send_reply(msg, text, true)
|
||||
end
|
||||
|
||||
return dailymotion
|
||||
|
@@ -47,13 +47,13 @@ end
|
||||
function danbooru:action(msg, config, matches)
|
||||
if matches[1] == 'danbooru.donmai.us' and matches[2] then
|
||||
local url = danbooru:get_specific_post(matches[2])
|
||||
if not url then utilities.send_reply(self, msg, config.errors.connection) return end
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
if not url then utilities.send_reply(msg, config.errors.connection) return end
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(url)
|
||||
if string.ends(url, ".gif") or string.ends(url, ".zip") or string.ends(url, ".webm") then
|
||||
utilities.send_document(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_document(msg.chat.id, file, nil, msg.message_id)
|
||||
else
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
end
|
||||
return
|
||||
end
|
||||
@@ -81,12 +81,12 @@ function danbooru:action(msg, config, matches)
|
||||
|
||||
if post then
|
||||
local download_url = BASE_URL..post.large_file_url
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local img = download_to_file(download_url)
|
||||
if string.ends(download_url, ".gif") or string.ends(download_url, ".zip") or string.ends(download_url, ".webm") then
|
||||
utilities.send_document(self, msg.chat.id, img, nil, msg.message_id)
|
||||
utilities.send_document(msg.chat.id, img, nil, msg.message_id)
|
||||
else
|
||||
utilities.send_photo(self, msg.chat.id, img, nil, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, img, nil, msg.message_id)
|
||||
end
|
||||
|
||||
local txt = ''
|
||||
@@ -100,11 +100,11 @@ function danbooru:action(msg, config, matches)
|
||||
txt = txt .. '[' .. math.ceil(post.file_size/1000) .. 'kb] ' .. BASE_URL .. post.file_url
|
||||
end
|
||||
if txt ~= '' then
|
||||
utilities.send_reply(self, msg, txt)
|
||||
utilities.send_reply(msg, txt)
|
||||
end
|
||||
return
|
||||
else
|
||||
utilities.send_reply(self, msg, config.errors.results)
|
||||
utilities.send_reply(msg, config.errors.results)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -26,18 +26,18 @@ end
|
||||
function derpibooru:action(msg, config)
|
||||
local input = utilities.input_from_msg(msg)
|
||||
if not input then
|
||||
utilities.send_reply(self, msg, derpibooru.doc, true)
|
||||
utilities.send_reply(msg, derpibooru.doc, true)
|
||||
return
|
||||
end
|
||||
local tag = string.gsub(input, " ", '+' )
|
||||
local url, source = derpibooru:get_dp(tag)
|
||||
if not url then
|
||||
utilities.send_reply(self, msg, config.errors.results)
|
||||
utilities.send_reply(msg, config.errors.results)
|
||||
return
|
||||
end
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(url)
|
||||
utilities.send_photo(self, msg.chat.id, file, source, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, source, msg.message_id)
|
||||
end
|
||||
|
||||
return derpibooru
|
@@ -32,18 +32,18 @@ end
|
||||
function derpibooru_nsfw:action(msg, config)
|
||||
local input = utilities.input_from_msg(msg)
|
||||
if not input then
|
||||
utilities.send_reply(self, msg, derpibooru_nsfw.doc, true)
|
||||
utilities.send_reply(msg, derpibooru_nsfw.doc, true)
|
||||
return
|
||||
end
|
||||
local tag = string.gsub(input, " ", '+' )
|
||||
local url, source = derpibooru_nsfw:get_dp(tag)
|
||||
if not url then
|
||||
utilities.send_reply(self, msg, config.errors.results)
|
||||
utilities.send_reply(msg, config.errors.results)
|
||||
return
|
||||
end
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(url)
|
||||
utilities.send_photo(self, msg.chat.id, file, source, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, source, msg.message_id)
|
||||
end
|
||||
|
||||
return derpibooru_nsfw
|
@@ -34,13 +34,13 @@ end
|
||||
|
||||
function deviantart:action(msg, config, matches)
|
||||
local data = deviantart:get_da_data('http://'..matches[1]..'.deviantart.com/art/'..matches[2])
|
||||
if not data then utilities.send_reply(self, msg, config.errors.connection) return end
|
||||
if not data then utilities.send_reply(msg, config.errors.connection) return end
|
||||
|
||||
local text, file = deviantart:send_da_data(data)
|
||||
if file then
|
||||
utilities.send_photo(self, msg.chat.id, file, text, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, text, msg.message_id)
|
||||
else
|
||||
utilities.send_reply(self, msg, text)
|
||||
utilities.send_reply(msg, text)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -28,7 +28,7 @@ end
|
||||
function dhl:action(msg, config, matches)
|
||||
local sendungs_id = matches[1]
|
||||
if string.len(sendungs_id) < 8 then return end
|
||||
utilities.send_reply(self, msg, dhl:sendungsstatus(sendungs_id), true)
|
||||
utilities.send_reply(msg, dhl:sendungsstatus(sendungs_id), true)
|
||||
end
|
||||
|
||||
return dhl
|
||||
|
@@ -12,19 +12,19 @@ dogify.command = 'dogify text/den/du/willst'
|
||||
function dogify:action(msg, config, matches)
|
||||
local input = utilities.input_from_msg(msg)
|
||||
if not input then
|
||||
utilities.send_reply(self, msg, dogify.doc, true)
|
||||
utilities.send_reply(msg, dogify.doc, true)
|
||||
return
|
||||
end
|
||||
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local path = input:gsub(" ", "%%20")
|
||||
local photo_url = 'http://dogr.io/'..path..'.png?split=false&.png'
|
||||
local file = download_to_file(photo_url)
|
||||
if not file then
|
||||
utilities.send_reply(self, msg, config.errors.connection)
|
||||
utilities.send_reply(msg, config.errors.connection)
|
||||
return
|
||||
end
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
end
|
||||
|
||||
return dogify
|
@@ -13,18 +13,18 @@ function dropbox:action(msg, config, matches)
|
||||
|
||||
local v,code = https.request(link)
|
||||
if code == 200 then
|
||||
if string.ends(link, '.png') or string.ends(link, '.jpe?g')then
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
if string.ends(link, ".png") or string.ends(link, ".jpe?g")then
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(link)
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
return
|
||||
elseif string.ends(link, '.webp') or string.ends(link, '.gif') then
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(link)
|
||||
utilities.send_document(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_document(msg.chat.id, file, nil, msg.message_id)
|
||||
return
|
||||
else
|
||||
utilities.send_reply(self, msg, link)
|
||||
utilities.send_reply(msg, link)
|
||||
end
|
||||
return
|
||||
else
|
||||
|
@@ -24,17 +24,17 @@ end
|
||||
function e621:action(msg, config)
|
||||
local input = utilities.input_from_msg(msg)
|
||||
if not input then
|
||||
utilities.send_reply(self, msg, e621.doc, true)
|
||||
utilities.send_reply(msg, e621.doc, true)
|
||||
return
|
||||
end
|
||||
local url = e621:get_e621(input)
|
||||
if not url then
|
||||
utilities.send_reply(self, msg, config.errors.results)
|
||||
utilities.send_reply(msg, config.errors.results)
|
||||
return
|
||||
end
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(url)
|
||||
utilities.send_photo(self, msg.chat.id, file, url, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, url, msg.message_id)
|
||||
end
|
||||
|
||||
return e621
|
@@ -22,18 +22,18 @@ function echo:inline_callback(inline_query, config, matches)
|
||||
end
|
||||
|
||||
local results = results..'{"type":"article","id":"4","thumb_url":"https://anditest.perseus.uberspace.de/inlineQuerys/echo/fett.jpg","title":"Fett","description":"*'..text..'*","input_message_content":{"message_text":"<b>'..text..'</b>","parse_mode":"HTML"}},{"type":"article","id":"5","thumb_url":"https://anditest.perseus.uberspace.de/inlineQuerys/echo/kursiv.jpg","title":"Kursiv","description":"_'..text..'_","input_message_content":{"message_text":"<i>'..text..'</i>","parse_mode":"HTML"}},{"type":"article","id":"6","thumb_url":"https://anditest.perseus.uberspace.de/inlineQuerys/echo/fixedsys.jpg","title":"Feste Breite","description":"`'..text..'`","input_message_content":{"message_text":"<code>'..text..'</code>","parse_mode":"HTML"}}]'
|
||||
utilities.answer_inline_query(self, inline_query, results, 0)
|
||||
utilities.answer_inline_query(inline_query, results, 0)
|
||||
end
|
||||
|
||||
function echo:action(msg)
|
||||
local input = utilities.input_from_msg(msg)
|
||||
if not input then
|
||||
utilities.send_message(self, msg.chat.id, echo.doc, true, msg.message_id, true)
|
||||
utilities.send_message(msg.chat.id, echo.doc, true, msg.message_id, true)
|
||||
else
|
||||
local output
|
||||
if msg.chat.type == 'supergroup' then
|
||||
output = '*Echo:*\n"' .. utilities.md_escape(input) .. '"'
|
||||
utilities.send_message(self, msg.chat.id, output, true, nil, true)
|
||||
utilities.send_message(msg.chat.id, output, true, nil, true)
|
||||
return
|
||||
elseif msg.chat.type == 'group' then
|
||||
local b = 1
|
||||
@@ -42,7 +42,7 @@ function echo:action(msg)
|
||||
input,b = input:gsub('^/+','')
|
||||
end
|
||||
end
|
||||
utilities.send_message(self, msg.chat.id, input, true, nil, true)
|
||||
utilities.send_message(msg.chat.id, input, true, nil, true)
|
||||
end
|
||||
end
|
||||
|
||||
|
@@ -27,7 +27,7 @@ function expand:inline_callback(inline_query, config, matches)
|
||||
end
|
||||
|
||||
local results = '[{"type":"article","id":"7","title":"'..title..'","description":"'..description..'","url":"'..url..'","thumb_url":"https://anditest.perseus.uberspace.de/inlineQuerys/generic/internet.jpg","thumb_width":165,"thumb_height":150,"hide_url":true,"input_message_content":{"message_text":"'..url..'"}}]'
|
||||
utilities.answer_inline_query(self, inline_query, results, 3600)
|
||||
utilities.answer_inline_query(inline_query, results, 3600)
|
||||
end
|
||||
|
||||
function expand:url(long_url)
|
||||
@@ -47,10 +47,10 @@ end
|
||||
function expand:action(msg, config, matches)
|
||||
local ok, response_headers = expand:url(matches[1])
|
||||
if ok and response_headers.location then
|
||||
utilities.send_reply(self, msg, response_headers.location)
|
||||
utilities.send_reply(msg, response_headers.location)
|
||||
return
|
||||
else
|
||||
utilities.send_reply(self, msg, 'Fehler beim Erweitern der URL.')
|
||||
utilities.send_reply(msg, "Fehler beim Erweitern der URL.")
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -136,7 +136,7 @@ function facebook:action(msg, config, matches)
|
||||
else
|
||||
id = matches[4]
|
||||
end
|
||||
utilities.send_reply(self, msg, facebook:fb_post(id, story_id), 'HTML')
|
||||
utilities.send_reply(msg, facebook:fb_post(id, story_id), 'HTML')
|
||||
return
|
||||
elseif matches[1] == 'photo' or matches[2] == 'photos' then
|
||||
if not matches[4] then
|
||||
@@ -146,10 +146,10 @@ function facebook:action(msg, config, matches)
|
||||
end
|
||||
local text, image_url = facebook:send_facebook_photo(photo_id, receiver)
|
||||
if not image_url then return end
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(image_url, 'photo.jpg')
|
||||
utilities.send_reply(self, msg, text, 'HTML')
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_reply(msg, text, 'HTML')
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
return
|
||||
elseif matches[1] == 'video' or matches[2] == 'videos' then
|
||||
if not matches[3] then
|
||||
@@ -164,10 +164,10 @@ function facebook:action(msg, config, matches)
|
||||
title = 'VIDEO: '..title
|
||||
end
|
||||
if not video_url then return end
|
||||
utilities.send_reply(self, msg, output, 'HTML', '{"inline_keyboard":[[{"text":"'..utilities.md_escape(title)..'","url":"'..video_url..'"}]]}')
|
||||
utilities.send_reply(msg, output, 'HTML', '{"inline_keyboard":[[{"text":"'..utilities.md_escape(title)..'","url":"'..video_url..'"}]]}')
|
||||
return
|
||||
else
|
||||
utilities.send_reply(self, msg, facebook:facebook_info(matches[1]), 'HTML')
|
||||
utilities.send_reply(msg, facebook:facebook_info(matches[1]), 'HTML')
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -49,21 +49,21 @@ end
|
||||
|
||||
function flickr:action(msg, config, matches)
|
||||
local data = flickr:get_flickr_photo_data(matches[2])
|
||||
if not data then utilities.send_reply(self, msg, config.errors.connection) return end
|
||||
if not data then utilities.send_reply(msg, config.errors.connection) return end
|
||||
local text, image_url, isgif = flickr:send_flickr_photo_data(data)
|
||||
|
||||
if image_url then
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(image_url)
|
||||
if isgif then
|
||||
utilities.send_document(self, msg.chat.id, file, text, msg.message_id)
|
||||
utilities.send_document(msg.chat.id, file, text, msg.message_id)
|
||||
return
|
||||
else
|
||||
utilities.send_photo(self, msg.chat.id, file, text, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, text, msg.message_id)
|
||||
return
|
||||
end
|
||||
else
|
||||
utilities.send_reply(self, msg, text)
|
||||
utilities.send_reply(msg, text)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -32,15 +32,15 @@ end
|
||||
|
||||
function flickr_search:action(msg, config, matches)
|
||||
local url = flickr_search:get_flickr(matches[1])
|
||||
if not url then utilities.send_reply(self, msg, config.errors.results) return end
|
||||
if not url then utilities.send_reply(msg, config.errors.results) return end
|
||||
|
||||
local file = download_to_file(url)
|
||||
|
||||
if string.ends(url, '.gif') then
|
||||
utilities.send_document(self, msg.chat.id, file, url)
|
||||
|
||||
if string.ends(url, ".gif") then
|
||||
utilities.send_document(msg.chat.id, file, url)
|
||||
return
|
||||
else
|
||||
utilities.send_photo(self, msg.chat.id, file, url)
|
||||
utilities.send_photo(msg.chat.id, file, url)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -15,14 +15,14 @@ function flip:action(msg, config, matches)
|
||||
local command = matches[1]
|
||||
local text = matches[2]
|
||||
if text:match('"') then
|
||||
utilities.send_reply(self, msg, 'Vergiss es!')
|
||||
utilities.send_reply(msg, 'Vergiss es!')
|
||||
return
|
||||
elseif command == 'flip' then
|
||||
new_text = run_command('flip "'..text..'"')
|
||||
elseif command == 'rev' then
|
||||
new_text = run_command('echo "' .. text .. '" | rev')
|
||||
end
|
||||
utilities.send_reply(self, msg, new_text)
|
||||
utilities.send_reply(msg, new_text)
|
||||
end
|
||||
|
||||
return flip
|
@@ -217,17 +217,17 @@ function forecast:inline_callback(inline_query, config, matches)
|
||||
end
|
||||
|
||||
local lat, lng = get_city_coordinates(city, config)
|
||||
if not lat and not lng then utilities.answer_inline_query(self, inline_query) return end
|
||||
if not lat and not lng then abort_inline_query(inline_query) return end
|
||||
if matches[1] == 'f' then
|
||||
title, description, text, ttl = forecast:get_forecast(lat, lng, true)
|
||||
else
|
||||
title, description, text, ttl = forecast:get_forecast_hourly(lat, lng, true)
|
||||
end
|
||||
if not title and not description and not text and not ttl then utilities.answer_inline_query(self, inline_query) return end
|
||||
if not title and not description and not text and not ttl then abort_inline_query(inline_query) return end
|
||||
|
||||
local text = text:gsub('\n', '\\n')
|
||||
local results = '[{"type":"article","id":"28062013","title":"'..title..'","description":"'..description..'","thumb_url":"https://anditest.perseus.uberspace.de/inlineQuerys/weather/cloudy.jpg","thumb_width":80,"thumb_height":80,"input_message_content":{"message_text":"'..text..'", "parse_mode":"Markdown"}}]'
|
||||
utilities.answer_inline_query(self, inline_query, results, ttl, is_personal)
|
||||
utilities.answer_inline_query(inline_query, results, ttl, is_personal)
|
||||
end
|
||||
|
||||
function forecast:action(msg, config, matches)
|
||||
@@ -246,7 +246,7 @@ function forecast:action(msg, config, matches)
|
||||
|
||||
local lat, lng = get_city_coordinates(city, config)
|
||||
if not lat and not lng then
|
||||
utilities.send_reply(self, msg, '*Diesen Ort gibt es nicht!*', true)
|
||||
utilities.send_reply(msg, '*Diesen Ort gibt es nicht!*', true)
|
||||
return
|
||||
end
|
||||
|
||||
@@ -258,7 +258,7 @@ function forecast:action(msg, config, matches)
|
||||
if not text then
|
||||
text = '*Konnte die Wettervorhersage für diese Stadt nicht bekommen.*'
|
||||
end
|
||||
utilities.send_reply(self, msg, text, true)
|
||||
utilities.send_reply(msg, text, true)
|
||||
end
|
||||
|
||||
return forecast
|
@@ -29,8 +29,8 @@ gImages.command = 'img <Suchbegriff>'
|
||||
-- Yes, the callback is copied from below, but I can't think of another method :\
|
||||
function gImages:callback(callback, msg, self, config, input)
|
||||
if not msg then return end
|
||||
utilities.answer_callback_query(self, callback, 'Suche nochmal nach "'..URL.unescape(input)..'"')
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.answer_callback_query(callback, 'Suche nochmal nach "'..URL.unescape(input)..'"')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local hash = 'telegram:cache:gImages'
|
||||
local results = redis:smembers(hash..':'..string.lower(URL.unescape(input)))
|
||||
|
||||
@@ -38,10 +38,10 @@ function gImages:callback(callback, msg, self, config, input)
|
||||
print('doing web request')
|
||||
results = gImages:get_image(input)
|
||||
if results == 403 then
|
||||
utilities.send_reply(self, msg, config.errors.quotaexceeded, true)
|
||||
utilities.send_reply(msg, config.errors.quotaexceeded, true)
|
||||
return
|
||||
elseif not results then
|
||||
utilities.send_reply(self, msg, config.errors.results, true)
|
||||
utilities.send_reply(msg, config.errors.results, true)
|
||||
return
|
||||
end
|
||||
gImages:cache_result(results, input)
|
||||
@@ -89,18 +89,18 @@ function gImages:callback(callback, msg, self, config, input)
|
||||
end
|
||||
|
||||
if failed then
|
||||
utilities.send_reply(self, msg, 'Fehler beim Herunterladen eines Bildes.', true)
|
||||
utilities.send_reply(msg, 'Fehler beim Herunterladen eines Bildes.', true)
|
||||
return
|
||||
end
|
||||
|
||||
if mimetype == 'image/gif' then
|
||||
result = utilities.send_document(self, msg.chat.id, file, nil, msg.message_id, '{"inline_keyboard":[[{"text":"Seite aufrufen","url":"'..context..'"},{"text":"Bild aufrufen","url":"'..img_url..'"},{"text":"Nochmal suchen","callback_data":"@'..self.info.username..' gImages:'..input..'"}]]}')
|
||||
result = utilities.send_document(msg.chat.id, file, nil, msg.message_id, '{"inline_keyboard":[[{"text":"Seite aufrufen","url":"'..context..'"},{"text":"Bild aufrufen","url":"'..img_url..'"},{"text":"Nochmal suchen","callback_data":"@'..self.info.username..' gImages:'..input..'"}]]}')
|
||||
else
|
||||
result = utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id, '{"inline_keyboard":[[{"text":"Seite aufrufen","url":"'..context..'"},{"text":"Bild aufrufen","url":"'..img_url..'"},{"text":"Nochmal suchen","callback_data":"@'..self.info.username..' gImages:'..input..'"}]]}')
|
||||
result = utilities.send_photo(msg.chat.id, file, nil, msg.message_id, '{"inline_keyboard":[[{"text":"Seite aufrufen","url":"'..context..'"},{"text":"Bild aufrufen","url":"'..img_url..'"},{"text":"Nochmal suchen","callback_data":"@'..self.info.username..' gImages:'..input..'"}]]}')
|
||||
end
|
||||
|
||||
if not result then
|
||||
utilities.send_reply(self, msg, config.errors.connection, true, '{"inline_keyboard":[[{"text":"Nochmal versuchen","callback_data":"@'..self.info.username..' gImages:'..input..'"}]]}')
|
||||
utilities.send_reply(msg, config.errors.connection, true, '{"inline_keyboard":[[{"text":"Nochmal versuchen","callback_data":"@'..self.info.username..' gImages:'..input..'"}]]}')
|
||||
return
|
||||
end
|
||||
end
|
||||
@@ -147,18 +147,18 @@ function gImages:action(msg, config, matches)
|
||||
if msg.reply_to_message and msg.reply_to_message.text then
|
||||
input = msg.reply_to_message.text
|
||||
else
|
||||
utilities.send_message(self, msg.chat.id, gImages.doc, true, msg.message_id, true)
|
||||
utilities.send_message(msg.chat.id, gImages.doc, true, msg.message_id, true)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
print ('Überprüfe, ob das Wort auf der Blackliste steht: '..input)
|
||||
if is_blacklisted(input) then
|
||||
utilities.send_reply(self, msg, 'Vergiss es!')
|
||||
utilities.send_reply(msg, 'Vergiss es!')
|
||||
return
|
||||
end
|
||||
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
|
||||
local hash = 'telegram:cache:gImages'
|
||||
local results = redis:smembers(hash..':'..string.lower(input))
|
||||
@@ -167,10 +167,10 @@ function gImages:action(msg, config, matches)
|
||||
print('doing web request')
|
||||
results = gImages:get_image(URL.escape(input))
|
||||
if results == 403 then
|
||||
utilities.send_reply(self, msg, config.errors.quotaexceeded, true)
|
||||
utilities.send_reply(msg, config.errors.quotaexceeded, true)
|
||||
return
|
||||
elseif not results or results == 'NORESULTS' then
|
||||
utilities.send_reply(self, msg, config.errors.results, true)
|
||||
utilities.send_reply(msg, config.errors.results, true)
|
||||
return
|
||||
end
|
||||
gImages:cache_result(results, input)
|
||||
@@ -218,18 +218,18 @@ function gImages:action(msg, config, matches)
|
||||
end
|
||||
|
||||
if failed then
|
||||
utilities.send_reply(self, msg, 'Fehler beim Herunterladen eines Bildes.', true)
|
||||
utilities.send_reply(msg, 'Fehler beim Herunterladen eines Bildes.', true)
|
||||
return
|
||||
end
|
||||
|
||||
if mimetype == 'image/gif' then
|
||||
result = utilities.send_document(self, msg.chat.id, file, nil, msg.message_id, '{"inline_keyboard":[[{"text":"Seite aufrufen","url":"'..context..'"},{"text":"Bild aufrufen","url":"'..img_url..'"},{"text":"Nochmal suchen","callback_data":"@'..self.info.username..' gImages:'..URL.escape(input)..'"}]]}')
|
||||
result = utilities.send_document(msg.chat.id, file, nil, msg.message_id, '{"inline_keyboard":[[{"text":"Seite aufrufen","url":"'..context..'"},{"text":"Bild aufrufen","url":"'..img_url..'"},{"text":"Nochmal suchen","callback_data":"@'..self.info.username..' gImages:'..URL.escape(input)..'"}]]}')
|
||||
else
|
||||
result = utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id, '{"inline_keyboard":[[{"text":"Seite aufrufen","url":"'..context..'"},{"text":"Bild aufrufen","url":"'..img_url..'"},{"text":"Nochmal suchen","callback_data":"@'..self.info.username..' gImages:'..URL.escape(input)..'"}]]}')
|
||||
result = utilities.send_photo(msg.chat.id, file, nil, msg.message_id, '{"inline_keyboard":[[{"text":"Seite aufrufen","url":"'..context..'"},{"text":"Bild aufrufen","url":"'..img_url..'"},{"text":"Nochmal suchen","callback_data":"@'..self.info.username..' gImages:'..URL.escape(input)..'"}]]}')
|
||||
end
|
||||
|
||||
if not result then
|
||||
utilities.send_reply(self, msg, config.errors.connection, true, '{"inline_keyboard":[[{"text":"Nochmal versuchen","callback_data":"@'..self.info.username..' gImages:'..URL.escape(input)..'"}]]}')
|
||||
utilities.send_reply(msg, config.errors.connection, true, '{"inline_keyboard":[[{"text":"Nochmal versuchen","callback_data":"@'..self.info.username..' gImages:'..URL.escape(input)..'"}]]}')
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -29,8 +29,8 @@ gImages_nsfw.command = 'img2 <Suchbegriff>'
|
||||
-- Yes, the callback is copied from below, but I can't think of another method :\
|
||||
function gImages_nsfw:callback(callback, msg, self, config, input)
|
||||
if not msg then return end
|
||||
utilities.answer_callback_query(self, callback, 'Suche nochmal nach "'..URL.unescape(input)..'"')
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.answer_callback_query(callback, 'Suche nochmal nach "'..URL.unescape(input)..'"')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local hash = 'telegram:cache:gImages_nsfw'
|
||||
local results = redis:smembers(hash..':'..string.lower(URL.unescape(input)))
|
||||
|
||||
@@ -38,10 +38,10 @@ function gImages_nsfw:callback(callback, msg, self, config, input)
|
||||
print('doing web request')
|
||||
results = gImages_nsfw:get_image(input)
|
||||
if results == 403 then
|
||||
utilities.send_reply(self, msg, config.errors.quotaexceeded, true)
|
||||
utilities.send_reply(msg, config.errors.quotaexceeded, true)
|
||||
return
|
||||
elseif not results then
|
||||
utilities.send_reply(self, msg, config.errors.results, true)
|
||||
utilities.send_reply(msg, config.errors.results, true)
|
||||
return
|
||||
end
|
||||
gImages_nsfw:cache_result(results, input)
|
||||
@@ -89,18 +89,18 @@ function gImages_nsfw:callback(callback, msg, self, config, input)
|
||||
end
|
||||
|
||||
if failed then
|
||||
utilities.send_reply(self, msg, 'Fehler beim Herunterladen eines Bildes.', true)
|
||||
utilities.send_reply(msg, 'Fehler beim Herunterladen eines Bildes.', true)
|
||||
return
|
||||
end
|
||||
|
||||
if mimetype == 'image/gif' then
|
||||
result = utilities.send_document(self, msg.chat.id, file, nil, msg.message_id, '{"inline_keyboard":[[{"text":"Seite aufrufen","url":"'..context..'"},{"text":"Bild aufrufen","url":"'..img_url..'"},{"text":"Nochmal suchen","callback_data":"@'..self.info.username..' gImages_nsfw:'..input..'"}]]}')
|
||||
result = utilities.send_document(msg.chat.id, file, nil, msg.message_id, '{"inline_keyboard":[[{"text":"Seite aufrufen","url":"'..context..'"},{"text":"Bild aufrufen","url":"'..img_url..'"},{"text":"Nochmal suchen","callback_data":"@'..self.info.username..' gImages_nsfw:'..input..'"}]]}')
|
||||
else
|
||||
result = utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id, '{"inline_keyboard":[[{"text":"Seite aufrufen","url":"'..context..'"},{"text":"Bild aufrufen","url":"'..img_url..'"},{"text":"Nochmal suchen","callback_data":"@'..self.info.username..' gImages_nsfw:'..input..'"}]]}')
|
||||
result = utilities.send_photo(msg.chat.id, file, nil, msg.message_id, '{"inline_keyboard":[[{"text":"Seite aufrufen","url":"'..context..'"},{"text":"Bild aufrufen","url":"'..img_url..'"},{"text":"Nochmal suchen","callback_data":"@'..self.info.username..' gImages_nsfw:'..input..'"}]]}')
|
||||
end
|
||||
|
||||
if not result then
|
||||
utilities.send_reply(self, msg, config.errors.connection, true, '{"inline_keyboard":[[{"text":"Nochmal versuchen","callback_data":"@'..self.info.username..' gImages_nsfw:'..input..'"}]]}')
|
||||
utilities.send_reply(msg, config.errors.connection, true, '{"inline_keyboard":[[{"text":"Nochmal versuchen","callback_data":"@'..self.info.username..' gImages_nsfw:'..input..'"}]]}')
|
||||
return
|
||||
end
|
||||
end
|
||||
@@ -147,18 +147,18 @@ function gImages_nsfw:action(msg, config, matches)
|
||||
if msg.reply_to_message and msg.reply_to_message.text then
|
||||
input = msg.reply_to_message.text
|
||||
else
|
||||
utilities.send_message(self, msg.chat.id, gImages_nsfw.doc, true, msg.message_id, true)
|
||||
utilities.send_message(msg.chat.id, gImages_nsfw.doc, true, msg.message_id, true)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
print ('Überprüfe, ob das Wort auf der Blackliste steht: '..input)
|
||||
if is_blacklisted(input) then
|
||||
utilities.send_reply(self, msg, 'Vergiss es!')
|
||||
utilities.send_reply(msg, 'Vergiss es!')
|
||||
return
|
||||
end
|
||||
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
|
||||
local hash = 'telegram:cache:gImages_nsfw'
|
||||
local results = redis:smembers(hash..':'..string.lower(input))
|
||||
@@ -167,10 +167,10 @@ function gImages_nsfw:action(msg, config, matches)
|
||||
print('doing web request')
|
||||
results = gImages_nsfw:get_image(URL.escape(input))
|
||||
if results == 403 then
|
||||
utilities.send_reply(self, msg, config.errors.quotaexceeded, true)
|
||||
utilities.send_reply(msg, config.errors.quotaexceeded, true)
|
||||
return
|
||||
elseif not results or results == 'NORESULTS' then
|
||||
utilities.send_reply(self, msg, config.errors.results, true)
|
||||
utilities.send_reply(msg, config.errors.results, true)
|
||||
return
|
||||
end
|
||||
gImages_nsfw:cache_result(results, input)
|
||||
@@ -218,18 +218,18 @@ function gImages_nsfw:action(msg, config, matches)
|
||||
end
|
||||
|
||||
if failed then
|
||||
utilities.send_reply(self, msg, 'Fehler beim Herunterladen eines Bildes.', true)
|
||||
utilities.send_reply(msg, 'Fehler beim Herunterladen eines Bildes.', true)
|
||||
return
|
||||
end
|
||||
|
||||
if mimetype == 'image/gif' then
|
||||
result = utilities.send_document(self, msg.chat.id, file, nil, msg.message_id, '{"inline_keyboard":[[{"text":"Seite aufrufen","url":"'..context..'"},{"text":"Bild aufrufen","url":"'..img_url..'"},{"text":"Nochmal suchen","callback_data":"@'..self.info.username..' gImages_nsfw:'..URL.escape(input)..'"}]]}')
|
||||
result = utilities.send_document(msg.chat.id, file, nil, msg.message_id, '{"inline_keyboard":[[{"text":"Seite aufrufen","url":"'..context..'"},{"text":"Bild aufrufen","url":"'..img_url..'"},{"text":"Nochmal suchen","callback_data":"@'..self.info.username..' gImages_nsfw:'..URL.escape(input)..'"}]]}')
|
||||
else
|
||||
result = utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id, '{"inline_keyboard":[[{"text":"Seite aufrufen","url":"'..context..'"},{"text":"Bild aufrufen","url":"'..img_url..'"},{"text":"Nochmal suchen","callback_data":"@'..self.info.username..' gImages_nsfw:'..URL.escape(input)..'"}]]}')
|
||||
result = utilities.send_photo(msg.chat.id, file, nil, msg.message_id, '{"inline_keyboard":[[{"text":"Seite aufrufen","url":"'..context..'"},{"text":"Bild aufrufen","url":"'..img_url..'"},{"text":"Nochmal suchen","callback_data":"@'..self.info.username..' gImages_nsfw:'..URL.escape(input)..'"}]]}')
|
||||
end
|
||||
|
||||
if not result then
|
||||
utilities.send_reply(self, msg, config.errors.connection, true, '{"inline_keyboard":[[{"text":"Nochmal versuchen","callback_data":"@'..self.info.username..' gImages_nsfw:'..URL.escape(input)..'"}]]}')
|
||||
utilities.send_reply(msg, config.errors.connection, true, '{"inline_keyboard":[[{"text":"Nochmal versuchen","callback_data":"@'..self.info.username..' gImages_nsfw:'..URL.escape(input)..'"}]]}')
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -22,29 +22,29 @@ end
|
||||
function gMaps:inline_callback(inline_query, config, matches)
|
||||
local place = matches[1]
|
||||
local coords = utilities.get_coords(place, config)
|
||||
if type(coords) == 'string' then utilities.answer_inline_query(self, inline_query) return end
|
||||
if type(coords) == 'string' then abort_inline_query(inline_query) return end
|
||||
|
||||
local results = '[{"type":"venue","id":"10","latitude":'..coords.lat..',"longitude":'..coords.lon..',"title":"Ort","address":"'..coords.addr..'"}]'
|
||||
|
||||
utilities.answer_inline_query(self, inline_query, results, 10000)
|
||||
utilities.answer_inline_query(inline_query, results, 10000)
|
||||
end
|
||||
|
||||
function gMaps:action(msg, config)
|
||||
local input = utilities.input_from_msg(msg)
|
||||
if not input then
|
||||
utilities.send_reply(self, msg, gMaps.doc, true)
|
||||
utilities.send_reply(msg, gMaps.doc, true)
|
||||
return
|
||||
end
|
||||
|
||||
utilities.send_typing(self, msg.chat.id, 'find_location')
|
||||
utilities.send_typing(msg.chat.id, 'find_location')
|
||||
local coords = utilities.get_coords(input, config)
|
||||
if type(coords) == 'string' then
|
||||
utilities.send_reply(self, msg, coords)
|
||||
utilities.send_reply(msg, coords)
|
||||
return
|
||||
end
|
||||
|
||||
utilities.send_location(self, msg.chat.id, coords.lat, coords.lon, msg.message_id)
|
||||
utilities.send_photo(self, msg.chat.id, gMaps:get_staticmap(input, coords.lat, coords.lon), nil, msg.message_id)
|
||||
utilities.send_location(msg.chat.id, coords.lat, coords.lon, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, gMaps:get_staticmap(input, coords.lat, coords.lon), nil, msg.message_id)
|
||||
end
|
||||
|
||||
return gMaps
|
@@ -23,7 +23,7 @@ function gSearch:googlethat(query, config)
|
||||
return '403'
|
||||
end
|
||||
if code ~= 200 then
|
||||
utilities.send_reply(self, msg, config.errors.connection)
|
||||
utilities.send_reply(msg, config.errors.connection)
|
||||
return
|
||||
end
|
||||
local data = json.decode(res)
|
||||
@@ -53,22 +53,22 @@ end
|
||||
function gSearch:action(msg, config)
|
||||
local input = utilities.input_from_msg(msg)
|
||||
if not input then
|
||||
utilities.send_reply(self, msg, gSearch.doc, true)
|
||||
utilities.send_reply(msg, gSearch.doc, true)
|
||||
return
|
||||
end
|
||||
|
||||
local results, stats = gSearch:googlethat(input, onfig)
|
||||
if results == '403' then
|
||||
utilities.send_reply(self, msg, config.errors.quotaexceeded)
|
||||
utilities.send_reply(msg, config.errors.quotaexceeded)
|
||||
return
|
||||
end
|
||||
|
||||
if not results then
|
||||
utilities.send_reply(self, msg, config.errors.results)
|
||||
utilities.send_reply(msg, config.errors.results)
|
||||
return
|
||||
end
|
||||
|
||||
utilities.send_message(self, msg.chat.id, gSearch:stringlinks(results, stats), true, nil, true, '{"inline_keyboard":[[{"text":"Alle Ergebnisse anzeigen","url":"https://www.google.com/search?q='..URL.escape(input)..'"}]]}')
|
||||
utilities.send_message(msg.chat.id, gSearch:stringlinks(results, stats), true, nil, true, '{"inline_keyboard":[[{"text":"Alle Ergebnisse anzeigen","url":"https://www.google.com/search?q='..URL.escape(input)..'"}]]}')
|
||||
|
||||
end
|
||||
|
||||
|
@@ -48,7 +48,7 @@ function games:send_game_photo(result, self, msg)
|
||||
for k, v in pairs(images) do
|
||||
i = i+1
|
||||
local file = download_to_file(v, 'game'..i..'.jpg')
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -113,10 +113,10 @@ function games:send_game_data(game_id, self, msg)
|
||||
end
|
||||
|
||||
local text = '*'..title..'* für *'..platform..'*'..date..desc..genre..players..video..publisher
|
||||
utilities.send_reply(self, msg, text, true)
|
||||
|
||||
utilities.send_reply(msg, text, true)
|
||||
|
||||
if xml.find(result, 'boxart') then
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
games:send_game_photo(result, self, msg)
|
||||
end
|
||||
return
|
||||
@@ -128,14 +128,14 @@ function games:action(msg, config)
|
||||
if msg.reply_to_message and msg.reply_to_message.text then
|
||||
game = msg.reply_to_message.text
|
||||
else
|
||||
utilities.send_message(self, msg.chat.id, fun.doc, true, msg.message_id, true)
|
||||
utilities.send_message(msg.chat.id, fun.doc, true, msg.message_id, true)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
local game_id = games:get_game_id(game)
|
||||
if not game_id then
|
||||
utilities.send_reply(self, msg, 'Spiel nicht gefunden!')
|
||||
utilities.send_reply(msg, 'Spiel nicht gefunden!')
|
||||
return
|
||||
else
|
||||
games:send_game_data(game_id, self, msg)
|
||||
|
@@ -38,15 +38,15 @@ function gdrive:send_drive_document_data(data, self, msg)
|
||||
if mimetype:match('google') then -- if document is Google document (like a Spreadsheet)
|
||||
if mimetype:match('drawing') then -- Drawing
|
||||
local image_url = BASE_URL..'/files/'..id..'/export?key='..apikey..'&mimeType=image/png'
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(image_url, 'export.png')
|
||||
utilities.send_photo(self, msg.chat.id, file, text, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, text, msg.message_id)
|
||||
return
|
||||
else
|
||||
local pdf_url = BASE_URL..'/files/'..id..'/export?key='..apikey..'&mimeType=application/pdf'
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_document')
|
||||
utilities.send_typing(msg.chat.id, 'upload_document')
|
||||
local file = download_to_file(pdf_url, 'document.pdf')
|
||||
utilities.send_document(self, msg.chat.id, file, text, msg.message_id)
|
||||
utilities.send_document(msg.chat.id, file, text, msg.message_id)
|
||||
return
|
||||
end
|
||||
else
|
||||
@@ -65,19 +65,19 @@ function gdrive:send_drive_document_data(data, self, msg)
|
||||
local headers = response[3]
|
||||
local file_url = headers.location
|
||||
if ext == "jpg" or ext == "jpeg" or ext == "png" then
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(file_url, 'photo.'..ext)
|
||||
utilities.send_photo(self, msg.chat.id, file, text, msg.message_id, keyboard)
|
||||
utilities.send_photo(msg.chat.id, file, text, msg.message_id, keyboard)
|
||||
return
|
||||
else
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_document')
|
||||
utilities.send_typing(msg.chat.id, 'upload_document')
|
||||
local file = download_to_file(file_url, 'document.'..ext)
|
||||
utilities.send_document(self, msg.chat.id, file, text, msg.message_id, keyboard)
|
||||
utilities.send_document(msg.chat.id, file, text, msg.message_id, keyboard)
|
||||
return
|
||||
end
|
||||
else
|
||||
local text = '*'..title..'*, freigegeben von _'..owner..'_'
|
||||
utilities.send_reply(self, msg, text, true, keyboard)
|
||||
utilities.send_reply(msg, text, true, keyboard)
|
||||
return
|
||||
end
|
||||
end
|
||||
@@ -86,7 +86,7 @@ end
|
||||
function gdrive:action(msg, config, matches)
|
||||
local docid = matches[2]
|
||||
local data = gdrive:get_drive_document_data(docid)
|
||||
if not data then utilities.send_reply(self, msg, config.errors.connection) return end
|
||||
if not data then utilities.send_reply(msg, config.errors.connection) return end
|
||||
gdrive:send_drive_document_data(data, self, msg)
|
||||
return
|
||||
end
|
||||
|
@@ -50,7 +50,7 @@ function get:action(msg)
|
||||
output = get:list_variables(msg)
|
||||
end
|
||||
|
||||
utilities.send_message(self, msg.chat.id, output, true, nil, true)
|
||||
utilities.send_message(msg.chat.id, output, true, nil, true)
|
||||
end
|
||||
|
||||
return get
|
||||
|
@@ -10,17 +10,17 @@ get_data.command = 'me'
|
||||
function get_data:action(msg, config)
|
||||
local input = utilities.input_from_msg(msg)
|
||||
if not input then
|
||||
utilities.send_reply(self, msg, get_data.doc, true)
|
||||
utilities.send_reply(msg, get_data.doc, true)
|
||||
return
|
||||
end
|
||||
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_document')
|
||||
utilities.send_typing(msg.chat.id, 'upload_document')
|
||||
local file = download_to_file(input)
|
||||
if not file then
|
||||
utilities.send_reply(self, msg, config.errors.connection)
|
||||
utilities.send_reply(msg, config.errors.connection)
|
||||
return
|
||||
end
|
||||
utilities.send_document(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_document(msg.chat.id, file, nil, msg.message_id)
|
||||
end
|
||||
|
||||
return get_data
|
||||
|
@@ -12,10 +12,10 @@ function get_txt:action(msg, config, matches)
|
||||
end
|
||||
local res, code = doer.request(url)
|
||||
if code ~= 200 then
|
||||
utilities.send_reply(self, msg, config.errors.connection)
|
||||
utilities.send_reply(msg, config.errors.connection)
|
||||
return
|
||||
end
|
||||
utilities.send_reply(self, msg, res)
|
||||
utilities.send_reply(msg, res)
|
||||
end
|
||||
|
||||
return get_txt
|
@@ -31,7 +31,7 @@ function media_download:download_to_file_permanently(url, save_dir, file_name)
|
||||
return true
|
||||
end
|
||||
|
||||
function media_download:pre_process(msg, self, config)
|
||||
function media_download:pre_process(msg, config)
|
||||
if msg.photo then
|
||||
local lv = #msg.photo -- find biggest photo, always the last value
|
||||
file_id = msg.photo[lv].file_id
|
||||
@@ -74,7 +74,7 @@ function media_download:pre_process(msg, self, config)
|
||||
end
|
||||
|
||||
-- Saving file to the Telegram Cloud
|
||||
local request = bindings.request(self, 'getFile', {
|
||||
local request = bindings.request('getFile', {
|
||||
file_id = file_id
|
||||
} )
|
||||
|
||||
|
@@ -6,26 +6,26 @@ gfycat.triggers = {
|
||||
"gfycat.com/([A-Za-z0-9-_-]+)"
|
||||
}
|
||||
|
||||
function gfycat:send_gfycat_video(name, self, msg)
|
||||
function gfycat:send_gfycat_video(name, msg)
|
||||
local BASE_URL = "https://gfycat.com"
|
||||
local url = BASE_URL..'/cajax/get/'..name
|
||||
local res,code = https.request(url)
|
||||
if code ~= 200 then return "HTTP-FEHLER" end
|
||||
local data = json.decode(res).gfyItem
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_video')
|
||||
utilities.send_typing(msg.chat.id, 'upload_video')
|
||||
local file = download_to_file(data.webmUrl)
|
||||
if file == nil then
|
||||
send_reply(self, msg, 'Fehler beim Herunterladen von '..name)
|
||||
send_reply(msg, 'Fehler beim Herunterladen von '..name)
|
||||
return
|
||||
else
|
||||
utilities.send_video(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_video(msg.chat.id, file, nil, msg.message_id)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
function gfycat:action(msg, config, matches)
|
||||
local name = matches[1]
|
||||
gfycat:send_gfycat_video(name, self, msg)
|
||||
gfycat:send_gfycat_video(name, msg)
|
||||
return
|
||||
end
|
||||
|
||||
|
@@ -14,10 +14,10 @@ gifeye.command = 'ge <ID>'
|
||||
|
||||
function gifeye:action(msg, config, matches)
|
||||
local url = 'http://i.gifeye.com/'..matches[1]..'.gif'
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_document')
|
||||
utilities.send_typing(msg.chat.id, 'upload_document')
|
||||
local file = download_to_file(url)
|
||||
if not file then
|
||||
utilities.send_reply(self, msg, config.errors.results)
|
||||
utilities.send_reply(msg, config.errors.results)
|
||||
return
|
||||
end
|
||||
|
||||
@@ -26,7 +26,7 @@ function gifeye:action(msg, config, matches)
|
||||
else
|
||||
source = nil
|
||||
end
|
||||
utilities.send_document(self, msg.chat.id, file, source, msg.message_id)
|
||||
utilities.send_document(msg.chat.id, file, source, msg.message_id)
|
||||
end
|
||||
|
||||
return gifeye
|
@@ -30,8 +30,8 @@ function giphy:inline_callback(inline_query, config, matches)
|
||||
else
|
||||
data = giphy:get_gifs(matches[2])
|
||||
end
|
||||
if not data then utilities.answer_inline_query(self, inline_query) return end
|
||||
if not data[1] then utilities.answer_inline_query(self, inline_query) return end
|
||||
if not data then abort_inline_query(inline_query) return end
|
||||
if not data[1] then abort_inline_query(inline_query) return end
|
||||
local results = '['
|
||||
local id = 450
|
||||
|
||||
@@ -43,7 +43,7 @@ function giphy:inline_callback(inline_query, config, matches)
|
||||
end
|
||||
end
|
||||
local results = results..']'
|
||||
utilities.answer_inline_query(self, inline_query, results, 3600)
|
||||
utilities.answer_inline_query(inline_query, results, 3600)
|
||||
end
|
||||
|
||||
function giphy:action()
|
||||
|
@@ -63,7 +63,7 @@ function github:action(msg, config, matches)
|
||||
else
|
||||
output = github:send_gh_commit_data(gh_code, gh_commit_sha, data)
|
||||
end
|
||||
utilities.send_reply(self, msg, output, true)
|
||||
utilities.send_reply(msg, output, true)
|
||||
end
|
||||
|
||||
return github
|
@@ -181,42 +181,42 @@ function gh_feed:action(msg, config, matches)
|
||||
-- For channels
|
||||
if matches[1] == 'sub' and matches[2] and matches[3] then
|
||||
if msg.from.id ~= config.admin then
|
||||
utilities.send_reply(self, msg, config.errors.sudo)
|
||||
utilities.send_reply(msg, config.errors.sudo)
|
||||
return
|
||||
end
|
||||
local id = '@'..matches[3]
|
||||
local result = utilities.get_chat_info(self, id)
|
||||
local result = utilities.get_chat_info(id)
|
||||
if not result then
|
||||
utilities.send_reply(self, msg, 'Diesen Kanal gibt es nicht!')
|
||||
utilities.send_reply(msg, 'Diesen Kanal gibt es nicht!')
|
||||
return
|
||||
end
|
||||
local output = gh_feed:subscribe(id, matches[2])
|
||||
utilities.send_reply(self, msg, output, true)
|
||||
utilities.send_reply(msg, output, true)
|
||||
return
|
||||
elseif matches[1] == 'del' and matches[2] and matches[3] then
|
||||
if msg.from.id ~= config.admin then
|
||||
utilities.send_reply(self, msg, config.errors.sudo)
|
||||
utilities.send_reply(msg, config.errors.sudo)
|
||||
return
|
||||
end
|
||||
local id = '@'..matches[3]
|
||||
local result = utilities.get_chat_info(self, id)
|
||||
local result = utilities.get_chat_info(id)
|
||||
if not result then
|
||||
utilities.send_reply(self, msg, 'Diesen Kanal gibt es nicht!')
|
||||
utilities.send_reply(msg, 'Diesen Kanal gibt es nicht!')
|
||||
return
|
||||
end
|
||||
local output = gh_feed:unsubscribe(id, matches[2])
|
||||
utilities.send_reply(self, msg, output, true)
|
||||
utilities.send_reply(msg, output, true)
|
||||
return
|
||||
elseif matches[1] == 'gh' and matches[2] then
|
||||
local id = '@'..matches[2]
|
||||
local result = utilities.get_chat_info(self, id)
|
||||
local result = utilities.get_chat_info(id)
|
||||
if not result then
|
||||
utilities.send_reply(self, msg, 'Diesen Kanal gibt es nicht!')
|
||||
utilities.send_reply(msg, 'Diesen Kanal gibt es nicht!')
|
||||
return
|
||||
end
|
||||
local chat_name = result.result.title
|
||||
local output = gh_feed:print_subs(id, chat_name)
|
||||
utilities.send_reply(self, msg, output, true)
|
||||
utilities.send_reply(msg, output, true)
|
||||
return
|
||||
end
|
||||
|
||||
@@ -228,42 +228,39 @@ function gh_feed:action(msg, config, matches)
|
||||
|
||||
if matches[1] == 'sub' and matches[2] then
|
||||
if msg.from.id ~= config.admin then
|
||||
utilities.send_reply(self, msg, config.errors.sudo)
|
||||
utilities.send_reply(msg, config.errors.sudo)
|
||||
return
|
||||
end
|
||||
local output = gh_feed:subscribe(id, matches[2])
|
||||
utilities.send_reply(self, msg, output, true)
|
||||
utilities.send_reply(msg, output, true)
|
||||
return
|
||||
elseif matches[1] == 'del' and matches[2] then
|
||||
if msg.from.id ~= config.admin then
|
||||
utilities.send_reply(self, msg, config.errors.sudo)
|
||||
utilities.send_reply(msg, config.errors.sudo)
|
||||
return
|
||||
end
|
||||
local output = gh_feed:unsubscribe(id, matches[2])
|
||||
utilities.send_reply(self, msg, output, true, '{"hide_keyboard":true}')
|
||||
utilities.send_reply(msg, output, true, '{"hide_keyboard":true}')
|
||||
return
|
||||
elseif matches[1] == 'del' and not matches[2] then
|
||||
local list_subs, keyboard = gh_feed:print_subs(id, chat_name)
|
||||
utilities.send_reply(self, msg, list_subs, true, keyboard)
|
||||
utilities.send_reply(msg, list_subs, true, keyboard)
|
||||
return
|
||||
elseif matches[1] == 'sync' then
|
||||
if msg.from.id ~= config.admin then
|
||||
utilities.send_reply(self, msg, config.errors.sudo)
|
||||
utilities.send_reply(msg, config.errors.sudo)
|
||||
return
|
||||
end
|
||||
gh_feed:cron(self)
|
||||
gh_feed:cron()
|
||||
return
|
||||
end
|
||||
|
||||
local output = gh_feed:print_subs(id, chat_name)
|
||||
utilities.send_reply(self, msg, output, true)
|
||||
utilities.send_reply(msg, output, true)
|
||||
return
|
||||
end
|
||||
|
||||
function gh_feed:cron(self_plz)
|
||||
if not self.BASE_URL then
|
||||
self = self_plz
|
||||
end
|
||||
function gh_feed:cron()
|
||||
local keys = redis:keys(gh_feed_get_base_redis("*", "subs"))
|
||||
for k,v in pairs(keys) do
|
||||
local repo = string.match(v, "github:(.+):subs")
|
||||
@@ -292,7 +289,7 @@ function gh_feed:cron(self_plz)
|
||||
redis:set(gh_feed_get_base_redis(repo, "etag"), last_etag)
|
||||
redis:set(gh_feed_get_base_redis(repo, "date"), last_date)
|
||||
for k2, receiver in pairs(redis:smembers(v)) do
|
||||
utilities.send_message(self, receiver, text, true, nil, true)
|
||||
utilities.send_message(receiver, text, true, nil, true)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@@ -25,10 +25,10 @@ end
|
||||
function googl:inline_callback(inline_query, config, matches)
|
||||
local shorturl = matches[1]
|
||||
local text, longUrl = googl:send_googl_info(shorturl)
|
||||
if not longUrl then utilities.answer_inline_query(self, inline_query) return end
|
||||
if not longUrl then abort_inline_query(inline_query) return end
|
||||
|
||||
local results = '[{"type":"article","id":"9","title":"Verlängerte URL","description":"'..longUrl..'","url":"'..longUrl..'","thumb_url":"https://anditest.perseus.uberspace.de/inlineQuerys/generic/internet.jpg","thumb_width":165,"thumb_height":150,"hide_url":true,"input_message_content":{"message_text":"'..text..'"}}]'
|
||||
utilities.answer_inline_query(self, inline_query, results, 1)
|
||||
utilities.answer_inline_query(inline_query, results, 1)
|
||||
end
|
||||
|
||||
function googl:send_googl_info (shorturl)
|
||||
@@ -49,8 +49,8 @@ end
|
||||
function googl:action(msg, config, matches)
|
||||
local shorturl = matches[1]
|
||||
local text = googl:send_googl_info(shorturl)
|
||||
if not text then utilities.send_reply(self, msg, config.errors.connection) return end
|
||||
utilities.send_reply(self, msg, text)
|
||||
if not text then utilities.send_reply(msg, config.errors.connection) return end
|
||||
utilities.send_reply(msg, text)
|
||||
end
|
||||
|
||||
return googl
|
@@ -27,11 +27,11 @@ function gps:inline_callback(inline_query, config, matches)
|
||||
|
||||
local results = '[{"type":"location","id":"8","latitude":'..lat..',"longitude":'..lon..',"title":"Standort"}]'
|
||||
|
||||
utilities.answer_inline_query(self, inline_query, results, 10000)
|
||||
utilities.answer_inline_query(inline_query, results, 10000)
|
||||
end
|
||||
|
||||
function gps:action(msg, config, matches)
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local lat = matches[1]
|
||||
local lon = matches[2]
|
||||
|
||||
@@ -42,10 +42,10 @@ function gps:action(msg, config, matches)
|
||||
local zoom = zooms[i]
|
||||
local url = "https://maps.googleapis.com/maps/api/staticmap?zoom=" .. zoom .. "&size=600x300&maptype=hybrid¢er=" .. lat .. "," .. lon .. "&markers=color:red%7Clabel:•%7C" .. lat .. "," .. lon
|
||||
local file = download_to_file(url, 'zoom_'..i..'.png')
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
end
|
||||
|
||||
utilities.send_location(self, msg.chat.id, lat, lon, msg.message_id)
|
||||
utilities.send_location(msg.chat.id, lat, lon, msg.message_id)
|
||||
end
|
||||
|
||||
return gps
|
@@ -6,7 +6,7 @@ hallo.triggers = {
|
||||
|
||||
function hallo:action(msg, config)
|
||||
local name = msg.from.first_name
|
||||
utilities.send_reply(self, msg, 'Hallo '..name..'!')
|
||||
utilities.send_reply(msg, 'Hallo '..name..'!')
|
||||
end
|
||||
|
||||
return hallo
|
||||
|
@@ -17,9 +17,9 @@ function hdf:action(msg, config)
|
||||
"/hdf5.jpg"
|
||||
}
|
||||
local random_pic = math.random(#hdf_pics)
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(HDF_URL..hdf_pics[random_pic])
|
||||
utilities.send_photo(self, msg.chat.id, file)
|
||||
utilities.send_photo(msg.chat.id, file)
|
||||
end
|
||||
|
||||
return hdf
|
||||
|
@@ -28,10 +28,10 @@ function help:inline_callback(inline_query, config, matches)
|
||||
local doc = doc:gsub('\\n', '\\\n')
|
||||
local chosen_plugin = utilities.get_word(plugin.command, 1)
|
||||
local results = '[{"type":"article","id":"9","title":"Hilfe für '..chosen_plugin..'","description":"Hilfe für das Plugin \\"'..chosen_plugin..'\\" wird gepostet.","thumb_url":"https://anditest.perseus.uberspace.de/inlineQuerys/help/hilfe.jpg","input_message_content":{"message_text":"'..doc..'","parse_mode":"Markdown"}}]'
|
||||
utilities.answer_inline_query(self, inline_query, results, 600, nil, nil, 'Hilfe anzeigen', 'hilfe_'..chosen_plugin)
|
||||
utilities.answer_inline_query(inline_query, results, 600, nil, nil, 'Hilfe anzeigen', 'hilfe_'..chosen_plugin)
|
||||
end
|
||||
end
|
||||
utilities.answer_inline_query(self, inline_query)
|
||||
utilities.answer_inline_query(inline_query)
|
||||
end
|
||||
|
||||
function help:action(msg, config, matches)
|
||||
@@ -61,11 +61,11 @@ function help:action(msg, config, matches)
|
||||
local help_text = help_text .. table.concat(commandlist, '\n• '..config.cmd_pat) .. '\nParameter: <benötigt> [optional]'
|
||||
local help_text = help_text:gsub('%[', '\\[')
|
||||
|
||||
local res = utilities.send_message(self, msg.from.id, help_text, true, nil, true)
|
||||
local res = utilities.send_message(msg.from.id, help_text, true, nil, true)
|
||||
if not res then
|
||||
utilities.send_reply(self, msg, 'Bitte schreibe mir zuerst [privat](http://telegram.me/' .. self.info.username .. '?start=help) für eine Hilfe.', true)
|
||||
utilities.send_reply(msg, 'Bitte schreibe mir zuerst [privat](http://telegram.me/' .. self.info.username .. '?start=help) für eine Hilfe.', true)
|
||||
elseif msg.chat.type ~= 'private' then
|
||||
utilities.send_reply(self, msg, 'Ich habe dir die Hilfe privat gesendet!.')
|
||||
utilities.send_reply(msg, 'Ich habe dir die Hilfe privat gesendet!.')
|
||||
end
|
||||
return
|
||||
end
|
||||
@@ -74,12 +74,12 @@ function help:action(msg, config, matches)
|
||||
local plugin = self.plugins[n]
|
||||
if plugin.command and utilities.get_word(plugin.command, 1) == input and plugin.doc then
|
||||
local output = '*Hilfe für* _' .. utilities.get_word(plugin.command, 1) .. '_ *:*' .. plugin.doc
|
||||
utilities.send_message(self, msg.chat.id, output, true, nil, true)
|
||||
utilities.send_message(msg.chat.id, output, true, nil, true)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
utilities.send_reply(self, msg, 'Für diesen Befehl gibt es keine Hilfe.')
|
||||
utilities.send_reply(msg, 'Für diesen Befehl gibt es keine Hilfe.')
|
||||
end
|
||||
|
||||
return help
|
@@ -15,8 +15,8 @@ function id:init(config)
|
||||
id.doc = [[```Zeige dir deine ID und die IDs aller Gruppenmitglieder an.``]]
|
||||
end
|
||||
|
||||
function id:get_member_count(self, msg, chat_id)
|
||||
return bindings.request(self, 'getChatMembersCount', {
|
||||
function id:get_member_count(msg, chat_id)
|
||||
return bindings.request('getChatMembersCount', {
|
||||
chat_id = chat_id
|
||||
} )
|
||||
end
|
||||
@@ -51,7 +51,7 @@ function id:inline_callback(inline_query, config, matches)
|
||||
local name = utilities.build_name(inline_query.from.first_name, inline_query.from.last_name)
|
||||
|
||||
local results = '[{"type":"article","id":"30","title":"Deine Telegram-ID ist:","description":"'..id..'","input_message_content":{"message_text":"<b>'..name..'</b>: <code>'..id..'</code>","parse_mode":"HTML"}}]'
|
||||
utilities.answer_inline_query(self, inline_query, results, 10000, true)
|
||||
utilities.answer_inline_query(inline_query, results, 10000, true)
|
||||
end
|
||||
|
||||
function id:action(msg, config, matches)
|
||||
@@ -83,10 +83,10 @@ function id:action(msg, config, matches)
|
||||
|
||||
local output = user .. ', und du bist in der Gruppe ' .. group
|
||||
|
||||
utilities.send_message(self, msg.chat.id, output, true, msg.message_id, true)
|
||||
utilities.send_message(msg.chat.id, output, true, msg.message_id, true)
|
||||
elseif matches[1] == "chat" then
|
||||
if msg.chat.type ~= 'group' and msg.chat.type ~= 'supergroup' then
|
||||
utilities.send_reply(self, msg, 'Das hier ist keine Gruppe!')
|
||||
utilities.send_reply(msg, 'Das hier ist keine Gruppe!')
|
||||
return
|
||||
end
|
||||
local chat_name = msg.chat.title
|
||||
@@ -103,7 +103,7 @@ function id:action(msg, config, matches)
|
||||
end
|
||||
|
||||
-- get all administrators and the creator
|
||||
local administrators = utilities.get_chat_administrators(self, chat_id)
|
||||
local administrators = utilities.get_chat_administrators(chat_id)
|
||||
local admins = {}
|
||||
for num in pairs(administrators.result) do
|
||||
if administrators.result[num].status ~= 'creator' then
|
||||
@@ -112,7 +112,7 @@ function id:action(msg, config, matches)
|
||||
creator_id = administrators.result[num].user.id
|
||||
end
|
||||
end
|
||||
local result = id:get_member_count(self, msg, chat_id)
|
||||
local result = id:get_member_count(msg, chat_id)
|
||||
local member_count = result.result
|
||||
if member_count == 1 then
|
||||
member_count = 'ist *1 Mitglied'
|
||||
@@ -129,7 +129,7 @@ function id:action(msg, config, matches)
|
||||
text = text..'*'..user.name..'* `['..user.id..']`\n'
|
||||
end
|
||||
end
|
||||
utilities.send_reply(self, msg, text..'_(Bots sind nicht gelistet)_', true)
|
||||
utilities.send_reply(msg, text..'_(Bots sind nicht gelistet)_', true)
|
||||
end
|
||||
end
|
||||
|
||||
|
@@ -7,8 +7,8 @@ images.triggers = {
|
||||
|
||||
function images:action(msg, config, matches)
|
||||
local url = matches[1]
|
||||
local file, last_modified, nocache = get_cached_file(url, nil, msg.chat.id, 'upload_photo', self)
|
||||
local result = utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
local file, last_modified, nocache = get_cached_file(url, nil, msg.chat.id, 'upload_photo')
|
||||
local result = utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
|
||||
if nocache then return end
|
||||
if not result then return end
|
||||
|
@@ -26,9 +26,9 @@ function imdb:inline_callback(inline_query, config, matches)
|
||||
local query = matches[1]
|
||||
local url = BASE_URL..'/?s='..URL.escape(query)
|
||||
local res, code = https.request(url)
|
||||
if code ~= 200 then utilities.answer_inline_query(self, inline_query) return end
|
||||
if code ~= 200 then abort_inline_query(inline_query) return end
|
||||
local data = json.decode(res)
|
||||
if data.Response ~= "True" then utilities.answer_inline_query(self, inline_query) return end
|
||||
if data.Response ~= "True" then abort_inline_query(inline_query) return end
|
||||
|
||||
local results = '['
|
||||
local id = 500
|
||||
@@ -63,26 +63,26 @@ function imdb:inline_callback(inline_query, config, matches)
|
||||
|
||||
local results = results:sub(0, -2)
|
||||
local results = results..']'
|
||||
utilities.answer_inline_query(self, inline_query, results, 10000)
|
||||
utilities.answer_inline_query(inline_query, results, 10000)
|
||||
end
|
||||
|
||||
function imdb:action(msg, config)
|
||||
local input = utilities.input_from_msg(msg)
|
||||
if not input then
|
||||
utilities.send_reply(self, msg, imdb.doc, true)
|
||||
utilities.send_reply(msg, imdb.doc, true)
|
||||
return
|
||||
end
|
||||
|
||||
local url = BASE_URL..'/?t='..URL.escape(input)
|
||||
local jstr, res = https.request(url)
|
||||
if res ~= 200 then
|
||||
utilities.send_reply(self, msg, config.errors.connection)
|
||||
utilities.send_reply(msg, config.errors.connection)
|
||||
return
|
||||
end
|
||||
|
||||
local jdat = json.decode(jstr)
|
||||
if jdat.Response ~= 'True' then
|
||||
utilities.send_reply(self, msg, config.errors.results)
|
||||
utilities.send_reply(msg, config.errors.results)
|
||||
return
|
||||
end
|
||||
|
||||
@@ -90,11 +90,11 @@ function imdb:action(msg, config)
|
||||
output = output..string.gsub(jdat.imdbRating, '%.', ',')..'/10 | '..jdat.Runtime..' | '.. jdat.Genre..'\n'
|
||||
output = output..'<i>' .. jdat.Plot .. '</i>'
|
||||
|
||||
utilities.send_reply(self, msg, output, 'HTML', '{"inline_keyboard":[[{"text":"IMDb-Seite aufrufen","url":"http://imdb.com/title/'.. jdat.imdbID..'"}]]}')
|
||||
utilities.send_reply(msg, output, 'HTML', '{"inline_keyboard":[[{"text":"IMDb-Seite aufrufen","url":"http://imdb.com/title/'.. jdat.imdbID..'"}]]}')
|
||||
|
||||
if jdat.Poster ~= "N/A" then
|
||||
local file = download_to_file(jdat.Poster)
|
||||
utilities.send_photo(self, msg.chat.id, file)
|
||||
utilities.send_photo(msg.chat.id, file)
|
||||
end
|
||||
end
|
||||
|
||||
|
@@ -50,7 +50,7 @@ end
|
||||
|
||||
function imgblacklist:action(msg, config, matches)
|
||||
if msg.from.id ~= config.admin then
|
||||
utilities.send_reply(self, msg, config.errors.sudo)
|
||||
utilities.send_reply(msg, config.errors.sudo)
|
||||
return
|
||||
end
|
||||
|
||||
@@ -60,22 +60,22 @@ function imgblacklist:action(msg, config, matches)
|
||||
_blacklist = redis:smembers("telegram:img_blacklist")
|
||||
|
||||
if action == 'add' and not word then
|
||||
utilities.send_reply(self, msg, imgblacklist.doc, true)
|
||||
utilities.send_reply(msg, imgblacklist.doc, true)
|
||||
return
|
||||
elseif action == "add" and word then
|
||||
utilities.send_reply(self, msg, imgblacklist:add_blacklist(word), true)
|
||||
utilities.send_reply(msg, imgblacklist:add_blacklist(word), true)
|
||||
return
|
||||
end
|
||||
|
||||
if action == 'remove' and not word then
|
||||
utilities.send_reply(self, msg, imgblacklist.doc, true)
|
||||
utilities.send_reply(msg, imgblacklist.doc, true)
|
||||
return
|
||||
elseif action == "remove" and word then
|
||||
utilities.send_reply(self, msg, imgblacklist:remove_blacklist(word), true)
|
||||
utilities.send_reply(msg, imgblacklist:remove_blacklist(word), true)
|
||||
return
|
||||
end
|
||||
|
||||
utilities.send_reply(self, msg, imgblacklist:show_blacklist())
|
||||
utilities.send_reply(msg, imgblacklist:show_blacklist())
|
||||
end
|
||||
|
||||
return imgblacklist
|
||||
|
@@ -40,14 +40,14 @@ end
|
||||
function imgur:action(msg)
|
||||
local imgur_code = matches[1]
|
||||
if imgur_code == "login" then return nil end
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local link = imgur:get_imgur_data(imgur_code)
|
||||
if link then
|
||||
local file = download_to_file(link)
|
||||
if string.ends(link, ".gif") then
|
||||
utilities.send_document(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_document(msg.chat.id, file, nil, msg.message_id)
|
||||
else
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@@ -39,7 +39,7 @@ function insider:action(msg, config)
|
||||
'<b>Insider:</b> MeeeeeeeM\n<b>Erschaffen/hauptsächlich verwendet von:</b> Brawl, nino\n<b>Wo eingesetzt?:</b> FiiiiiiiiiiiiiiiiiF\n<b>Bemerkung:</b> SooooooooooooooooS',
|
||||
'<b>Insider:</b> DJ mP\n<b>Erschaffen/hauptsächlich verwendet von:</b> Brawl\n<b>Wo eingesetzt?:</b> Telegram\n<b>Bemerkung:</b> als Kurzname für masterP',
|
||||
'<b>Insider:</b> Satya Nutella\n<b>Erschaffen/hauptsächlich verwendet von:</b> Brawl\n<b>Wo eingesetzt?:</b> Telegram\n<b>Bemerkung:</b> Anstelle von "Satya Nadella"'}
|
||||
utilities.send_reply(self, msg, insiders[math.random(#insiders)], 'HTML')
|
||||
utilities.send_reply(msg, insiders[math.random(#insiders)], 'HTML')
|
||||
end
|
||||
|
||||
return insider
|
@@ -73,14 +73,14 @@ end
|
||||
function ip_info:action(msg, config, matches)
|
||||
local host = matches[1]
|
||||
local text, image_url = ip_info:get_host_data(host)
|
||||
if not text then utilities.send_reply(self, msg, config.errors.connection) return end
|
||||
if not text then utilities.send_reply(msg, config.errors.connection) return end
|
||||
|
||||
if image_url then
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(image_url, 'map.png')
|
||||
utilities.send_photo(self, msg.chat.id, file, text, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, text, msg.message_id)
|
||||
else
|
||||
utilities.send_reply(self, msg, text)
|
||||
utilities.send_reply(msg, text)
|
||||
end
|
||||
end
|
||||
|
||||
|
@@ -68,10 +68,10 @@ end
|
||||
|
||||
function isup:action(msg, config)
|
||||
if isup:isup(matches[1]) then
|
||||
utilities.send_reply(self, msg, matches[1]..' ist UP! ✅')
|
||||
utilities.send_reply(msg, matches[1]..' ist UP! ✅')
|
||||
return
|
||||
else
|
||||
utilities.send_reply(self, msg, matches[1]..' ist DOWN! ❌')
|
||||
utilities.send_reply(msg, matches[1]..' ist DOWN! ❌')
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -18,9 +18,9 @@ function jk:action(msg, config)
|
||||
"/justkitten6.jpg"
|
||||
}
|
||||
local random_pic = math.random(#jk_pics)
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(JK_URL..jk_pics[random_pic])
|
||||
utilities.send_photo(self, msg.chat.id, file)
|
||||
utilities.send_photo(msg.chat.id, file)
|
||||
end
|
||||
|
||||
return jk
|
@@ -38,19 +38,19 @@ function kickstarter_search:action(msg, config, matches)
|
||||
local query = matches[1]
|
||||
local text, image_url = kickstarter_search:search_it(query, slug)
|
||||
if not text then
|
||||
utilities.send_reply(self, msg, config.errors.connection)
|
||||
utilities.send_reply(msg, config.errors.connection)
|
||||
return
|
||||
elseif text == 'NOTFOUND' then
|
||||
utilities.send_reply(self, msg, config.errors.results)
|
||||
utilities.send_reply(msg, config.errors.results)
|
||||
return
|
||||
end
|
||||
|
||||
if image_url then
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(image_url, query..'.png')
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
end
|
||||
utilities.send_reply(self, msg, text, 'HTML')
|
||||
utilities.send_reply(msg, text, 'HTML')
|
||||
end
|
||||
|
||||
return kickstarter_search
|
@@ -23,19 +23,19 @@ end
|
||||
function konachan:action(msg, config)
|
||||
local input = utilities.input_from_msg(msg)
|
||||
if not input then
|
||||
utilities.send_reply(self, msg, konachan.doc, true)
|
||||
utilities.send_reply(msg, konachan.doc, true)
|
||||
return
|
||||
end
|
||||
local tag = string.gsub(input, " ", '+' )
|
||||
local url = konachan:get_kc(tag)
|
||||
if not url then
|
||||
utilities.send_reply(self, msg, config.errors.results)
|
||||
utilities.send_reply(msg, config.errors.results)
|
||||
return
|
||||
end
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(url)
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_reply(self, msg, url)
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_reply(msg, url)
|
||||
end
|
||||
|
||||
return konachan
|
@@ -23,19 +23,19 @@ end
|
||||
function konachan_nsfw:action(msg, config)
|
||||
local input = utilities.input_from_msg(msg)
|
||||
if not input then
|
||||
utilities.send_reply(self, msg, konachan_nsfw.doc, true)
|
||||
utilities.send_reply(msg, konachan_nsfw.doc, true)
|
||||
return
|
||||
end
|
||||
local tag = string.gsub(input, " ", '+' )
|
||||
local url = konachan_nsfw:get_kc(tag)
|
||||
if not url then
|
||||
utilities.send_reply(self, msg, config.errors.results)
|
||||
utilities.send_reply(msg, config.errors.results)
|
||||
return
|
||||
end
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(url)
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_reply(self, msg, url)
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_reply(msg, url)
|
||||
end
|
||||
|
||||
return konachan_nsfw
|
@@ -44,20 +44,20 @@ function loc_manager:action(msg, config, matches)
|
||||
local user_id = msg.from.id
|
||||
|
||||
if matches[1] == 'set' then
|
||||
utilities.send_reply(self, msg, loc_manager:set_location(user_id, matches[2]), true)
|
||||
utilities.send_reply(msg, loc_manager:set_location(user_id, matches[2]), true)
|
||||
return
|
||||
elseif matches[1] == 'del' then
|
||||
utilities.send_reply(self, msg, loc_manager:del_location(user_id), true)
|
||||
utilities.send_reply(msg, loc_manager:del_location(user_id), true)
|
||||
return
|
||||
else
|
||||
local set_location = get_location(user_id)
|
||||
if not set_location then
|
||||
utilities.send_reply(self, msg, '*Du hast keinen Ort gesetzt!*', true)
|
||||
utilities.send_reply(msg, '*Du hast keinen Ort gesetzt!*', true)
|
||||
return
|
||||
else
|
||||
local coords = utilities.get_coords(set_location, config)
|
||||
utilities.send_location(self, msg.chat.id, coords.lat, coords.lon, msg.message_id)
|
||||
utilities.send_reply(self, msg, 'Gesetzter Wohnort: *'..set_location..'*', true)
|
||||
utilities.send_location(msg.chat.id, coords.lat, coords.lon, msg.message_id)
|
||||
utilities.send_reply(msg, 'Gesetzter Wohnort: *'..set_location..'*', true)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -36,12 +36,12 @@ function lyrics:action(msg, config, matches)
|
||||
if msg.reply_to_message and msg.reply_to_message.text then
|
||||
input = msg.reply_to_message.text
|
||||
else
|
||||
utilities.send_message(self, msg.chat.id, lyrics.doc, true, msg.message_id, true)
|
||||
utilities.send_message(msg.chat.id, lyrics.doc, true, msg.message_id, true)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
utilities.send_reply(self, msg, lyrics:getLyrics(input), true)
|
||||
utilities.send_reply(msg, lyrics:getLyrics(input), true)
|
||||
end
|
||||
|
||||
return lyrics
|
||||
|
@@ -15,7 +15,7 @@ function muschel:frag_die_muschel()
|
||||
end
|
||||
|
||||
function muschel:action(msg, config, matches)
|
||||
utilities.send_reply(self, msg, muschel:frag_die_muschel())
|
||||
utilities.send_reply(msg, muschel:frag_die_muschel())
|
||||
end
|
||||
|
||||
return muschel
|
||||
|
@@ -35,10 +35,10 @@ function mal_user:action(msg, config, matches)
|
||||
local user = matches[1]
|
||||
local text = mal_user:get_infos(user)
|
||||
if not text then
|
||||
utilities.send_reply(self, msg, config.errors.results)
|
||||
utilities.send_reply(msg, config.errors.results)
|
||||
return
|
||||
end
|
||||
utilities.send_reply(self, msg, text, 'HTML')
|
||||
utilities.send_reply(msg, text, 'HTML')
|
||||
end
|
||||
|
||||
return mal_user
|
@@ -13,7 +13,7 @@ function me:action(msg, config)
|
||||
return
|
||||
end
|
||||
|
||||
utilities.send_message(self, msg.chat.id, msg.from.first_name..' '..input)
|
||||
utilities.send_message(msg.chat.id, msg.from.first_name..' '..input)
|
||||
end
|
||||
|
||||
return me
|
||||
|
@@ -35,19 +35,19 @@ function media:action(msg, config, matches)
|
||||
chat_action = 'upload_document'
|
||||
end
|
||||
|
||||
local file, last_modified, nocache = get_cached_file(url, nil, msg.chat.id, chat_action, self)
|
||||
local file, last_modified, nocache = get_cached_file(url, nil, msg.chat.id, chat_action)
|
||||
if not file then return end
|
||||
|
||||
if ext == 'gif' then
|
||||
result = utilities.send_document(self, receiver, file, nil, msg.message_id)
|
||||
result = utilities.send_document(receiver, file, nil, msg.message_id)
|
||||
elseif ext == 'ogg' then
|
||||
result = utilities.send_voice(self, receiver, file, nil, msg.message_id)
|
||||
result = utilities.send_voice(receiver, file, nil, msg.message_id)
|
||||
elseif mime_type == 'audio' then
|
||||
result = utilities.send_audio(self, receiver, file, nil, msg.message_id)
|
||||
result = utilities.send_audio(receiver, file, nil, msg.message_id)
|
||||
elseif mime_type == 'video' then
|
||||
result = utilities.send_video(self, receiver, file, nil, msg.message_id)
|
||||
result = utilities.send_video(receiver, file, nil, msg.message_id)
|
||||
else
|
||||
result = utilities.send_document(self, receiver, file, nil, msg.message_id)
|
||||
result = utilities.send_document(receiver, file, nil, msg.message_id)
|
||||
end
|
||||
|
||||
if nocache then return end
|
||||
|
@@ -74,7 +74,7 @@ function mc_server:parseText(text, mc_server)
|
||||
end
|
||||
|
||||
function mc_server:action(msg, config, matches)
|
||||
utilities.send_reply(self, msg, mc_server:parseText(msg.text, mc_server), true)
|
||||
utilities.send_reply(msg, mc_server:parseText(msg.text, mc_server), true)
|
||||
end
|
||||
|
||||
return mc_server
|
||||
|
@@ -16,14 +16,14 @@ function mc_skin:action(msg, config, matches)
|
||||
if msg.reply_to_message and msg.reply_to_message.text then
|
||||
input = msg.reply_to_message.text
|
||||
else
|
||||
utilities.send_message(self, msg.chat.id, mc_skin.doc, true, msg.message_id, true)
|
||||
utilities.send_message(msg.chat.id, mc_skin.doc, true, msg.message_id, true)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
local url = 'http://www.minecraft-skin-viewer.net/3d.php?layers=true&aa=true&a=0&w=330&wt=10&abg=330&abd=40&ajg=340&ajd=20&ratio=13&format=png&login='..input..'&headOnly=false&displayHairs=true&randomness=341.png'
|
||||
local file = download_to_file(url, input..'.png')
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
end
|
||||
|
||||
return mc_skin
|
||||
|
@@ -28,14 +28,14 @@ function moe:action(msg, config, matches)
|
||||
site_url = 'http://yagyuu.moe'
|
||||
end
|
||||
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local photo_url = moe:get_url(site_url)
|
||||
if not photo_url then
|
||||
utilities.send_reply(self, msg, config.errors.connection)
|
||||
utilities.send_reply(msg, config.errors.connection)
|
||||
return
|
||||
end
|
||||
local file = download_to_file(photo_url)
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
end
|
||||
|
||||
return moe
|
@@ -205,31 +205,31 @@ function mal:action(msg, config, matches)
|
||||
if matches[1] == 'anime' or matches[1] == 'mal' then
|
||||
local anime_info = mal:get_mal_info(query, 'anime')
|
||||
if anime_info == "HTTP-Fehler" then
|
||||
utilities.send_reply(self, msg, 'Anime nicht gefunden!')
|
||||
utilities.send_reply(msg, 'Anime nicht gefunden!')
|
||||
return
|
||||
else
|
||||
local text, image_url = mal:send_anime_data(anime_info)
|
||||
if image_url then
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(image_url)
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
end
|
||||
utilities.send_reply(self, msg, text, true)
|
||||
utilities.send_reply(msg, text, true)
|
||||
return
|
||||
end
|
||||
elseif matches[1] == 'manga' then
|
||||
local manga_info = mal:get_mal_info(query, 'manga')
|
||||
if manga_info == "HTTP-Fehler" then
|
||||
utilities.send_reply(self, msg, 'Manga nicht gefunden!')
|
||||
utilities.send_reply(msg, 'Manga nicht gefunden!')
|
||||
return
|
||||
else
|
||||
local text, image_url = mal:send_manga_data(manga_info)
|
||||
if image_url then
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(image_url)
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
end
|
||||
utilities.send_reply(self, msg, text, true)
|
||||
utilities.send_reply(msg, text, true)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -48,10 +48,10 @@ function mfc:action(msg, config, matches)
|
||||
local user = matches[1]
|
||||
local text = mfc:get_infos(user)
|
||||
if not text then
|
||||
utilities.send_reply(self, msg, config.errors.results)
|
||||
utilities.send_reply(msg, config.errors.results)
|
||||
return
|
||||
end
|
||||
utilities.send_reply(self, msg, text, 'HTML')
|
||||
utilities.send_reply(msg, text, 'HTML')
|
||||
end
|
||||
|
||||
return mfc
|
@@ -47,13 +47,13 @@ function nicovideo:action(msg, config, matches)
|
||||
local id = matches[1]
|
||||
local text, pic_url = nicovideo:get_video(id)
|
||||
if not text then
|
||||
utilities.send_reply(self, msg, config.errors.results)
|
||||
utilities.send_reply(msg, config.errors.results)
|
||||
return
|
||||
end
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(pic_url, 'nicovideo_thumb.png')
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_reply(self, msg, text, 'HTML')
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_reply(msg, text, 'HTML')
|
||||
end
|
||||
|
||||
return nicovideo
|
@@ -23,7 +23,7 @@ function isWordFoundInString(word,input)
|
||||
select(2,input:gsub('%W+' .. word .. '%W+','')) > 0
|
||||
end
|
||||
|
||||
function notify:pre_process(msg, self)
|
||||
function notify:pre_process(msg)
|
||||
local notify_users = redis:smembers('notify:ls')
|
||||
|
||||
-- I call this beautiful lady the "if soup"
|
||||
@@ -44,7 +44,7 @@ function notify:pre_process(msg, self)
|
||||
local from = string.gsub(msg.from.name, "%_", " ")
|
||||
local chat_name = string.gsub(msg.chat.title, "%_", " ")
|
||||
local text = from..' am '..send_date..' in "'..chat_name..'":\n\n'..msg.text
|
||||
utilities.send_message(self, id, text, true)
|
||||
utilities.send_message(id, text, true)
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -57,7 +57,7 @@ end
|
||||
|
||||
function notify:action(msg, config, matches)
|
||||
if not msg.from.username then
|
||||
utilities.send_reply(self, msg, 'Du hast keinen Usernamen und kannst daher dieses Feature nicht nutzen. Tut mir leid!' )
|
||||
utilities.send_reply(msg, 'Du hast keinen Usernamen und kannst daher dieses Feature nicht nutzen. Tut mir leid!' )
|
||||
return
|
||||
end
|
||||
|
||||
@@ -67,18 +67,18 @@ function notify:action(msg, config, matches)
|
||||
|
||||
if matches[1] == "del" then
|
||||
if not redis:sismember('notify:ls', username) then
|
||||
utilities.send_reply(self, msg, 'Du wirst noch gar nicht benachrichtigt!')
|
||||
utilities.send_reply(msg, 'Du wirst noch gar nicht benachrichtigt!')
|
||||
return
|
||||
end
|
||||
print('Setze notify redis hash '..hash..' auf false')
|
||||
redis:hset(hash, 'notify', false)
|
||||
print('Lösche '..username..' von redis set notify:ls')
|
||||
redis:srem('notify:ls', username)
|
||||
utilities.send_reply(self, msg, 'Du erhälst jetzt keine Benachrichtigungen mehr, wenn du angesprochen wirst.')
|
||||
utilities.send_reply(msg, 'Du erhälst jetzt keine Benachrichtigungen mehr, wenn du angesprochen wirst.')
|
||||
return
|
||||
else
|
||||
if redis:sismember('notify:ls', username) then
|
||||
utilities.send_reply(self, msg, 'Du wirst schon benachrichtigt!')
|
||||
utilities.send_reply(msg, 'Du wirst schon benachrichtigt!')
|
||||
return
|
||||
end
|
||||
print('Setze notify in redis hash '..hash..' auf true')
|
||||
@@ -87,11 +87,11 @@ function notify:action(msg, config, matches)
|
||||
redis:hset(hash, 'id', msg.from.id)
|
||||
print('Adde '..username..' zu redis set notify:ls')
|
||||
redis:sadd('notify:ls', username)
|
||||
local res = utilities.send_message(self, msg.from.id, 'Du erhälst jetzt Benachrichtigungen, wenn du angesprochen wirst, nutze `/notify del` zum Deaktivieren.', true, nil, true)
|
||||
local res = utilities.send_message(msg.from.id, 'Du erhälst jetzt Benachrichtigungen, wenn du angesprochen wirst, nutze `/notify del` zum Deaktivieren.', true, nil, true)
|
||||
if not res then
|
||||
utilities.send_reply(self, msg, 'Bitte schreibe mir [privat](http://telegram.me/' .. self.info.username .. '?start=notify), um den Vorgang abzuschließen.', true)
|
||||
utilities.send_reply(msg, 'Bitte schreibe mir [privat](http://telegram.me/' .. self.info.username .. '?start=notify), um den Vorgang abzuschließen.', true)
|
||||
elseif msg.chat.type ~= 'private' then
|
||||
utilities.send_reply(self, msg, 'Du erhälst jetzt Benachrichtigungen, wenn du angesprochen wirst, nutze `/notify del` zum Deaktivieren.', true)
|
||||
utilities.send_reply(msg, 'Du erhälst jetzt Benachrichtigungen, wenn du angesprochen wirst, nutze `/notify del` zum Deaktivieren.', true)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@@ -26,10 +26,10 @@ function openingsmoe:action(msg, config, matches)
|
||||
local opening = matches[1]
|
||||
local text = openingsmoe:get_opening(opening)
|
||||
if not text then
|
||||
utilities.send_reply(self, msg, config.errors.connection)
|
||||
utilities.send_reply(msg, config.errors.connection)
|
||||
return
|
||||
end
|
||||
utilities.send_reply(self, msg, text, 'HTML')
|
||||
utilities.send_reply(msg, text, 'HTML')
|
||||
end
|
||||
|
||||
return openingsmoe
|
@@ -26,10 +26,10 @@ function pagespeed_insights:get_pagespeed(test_url)
|
||||
end
|
||||
|
||||
function pagespeed_insights:action(msg, config, matches)
|
||||
utilities.send_typing(self, msg.chat.id, 'typing')
|
||||
utilities.send_typing(msg.chat.id, 'typing')
|
||||
local text = pagespeed_insights:get_pagespeed(matches[1])
|
||||
if not text then utilities.send_reply(self, msg, config.errors.connection) return end
|
||||
utilities.send_reply(self, msg, text, true)
|
||||
if not text then utilities.send_reply(msg, config.errors.connection) return end
|
||||
utilities.send_reply(msg, text, true)
|
||||
end
|
||||
|
||||
return pagespeed_insights
|
||||
|
@@ -33,10 +33,10 @@ function pasteee:action(msg, config, matches)
|
||||
local text = matches[1]
|
||||
local link, iserror = upload(text)
|
||||
if iserror then
|
||||
utilities.send_reply(self, msg, link)
|
||||
utilities.send_reply(msg, link)
|
||||
return
|
||||
end
|
||||
utilities.send_reply(self, msg, '[Text auf Paste.ee ansehen]('..link..')', true)
|
||||
utilities.send_reply(msg, '[Text auf Paste.ee ansehen]('..link..')', true)
|
||||
end
|
||||
|
||||
return pasteee
|
@@ -23,11 +23,11 @@ function patterns:action(msg)
|
||||
end
|
||||
)
|
||||
if res == false then
|
||||
utilities.send_reply(self, msg, 'Falsches Pattern!')
|
||||
utilities.send_reply(msg, 'Falsches Pattern!')
|
||||
else
|
||||
output = output:sub(1, 4000)
|
||||
output = '*Du meintest wohl*:\n"'..utilities.md_escape(utilities.trim(output))..'"'
|
||||
utilities.send_reply(self, msg.reply_to_message, output, true)
|
||||
utilities.send_reply(msg.reply_to_message, output, true)
|
||||
end
|
||||
end
|
||||
|
||||
|
@@ -101,13 +101,13 @@ function pixabay:action(msg, config, matches)
|
||||
end
|
||||
|
||||
if url == 'NOPIX' then
|
||||
utilities.send_reply(self, msg, config.errors.results)
|
||||
utilities.send_reply(msg, config.errors.results)
|
||||
return
|
||||
else
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local file = download_to_file(url)
|
||||
local text = '"'..tags..'" von '..user
|
||||
utilities.send_photo(self, msg.chat.id, file, text, msg.message_id, '{"inline_keyboard":[[{"text":"Seite aufrufen","url":"'..page_url..'"},{"text":"Volles Bild (Login notwendig)","url":"'..full_url..'"}]]}')
|
||||
utilities.send_photo(msg.chat.id, file, text, msg.message_id, '{"inline_keyboard":[[{"text":"Seite aufrufen","url":"'..page_url..'"},{"text":"Volles Bild (Login notwendig)","url":"'..full_url..'"}]]}')
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -50,7 +50,7 @@ function play_store:action(msg, config, matches)
|
||||
if data == nil then
|
||||
return
|
||||
else
|
||||
utilities.send_reply(self, msg, play_store:send_playstore_data(data), true)
|
||||
utilities.send_reply(msg, play_store:send_playstore_data(data), true)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -157,26 +157,26 @@ end
|
||||
function plex:action(msg, config)
|
||||
local input = utilities.input_from_msg(msg)
|
||||
if not input then
|
||||
utilities.send_reply(self, msg. plex.doc, true)
|
||||
utilities.send_reply(msg. plex.doc, true)
|
||||
return
|
||||
end
|
||||
|
||||
local query = string.gsub(URL.escape(input), '&', '+')
|
||||
local text, pic = plex:get_plex(query)
|
||||
if not text then
|
||||
utilities.send_reply(self, msg, config.errors.results)
|
||||
utilities.send_reply(msg, config.errors.results)
|
||||
return
|
||||
elseif text == 'NOTOK' then
|
||||
utilities.send_reply(self, msg, config.errors.connection)
|
||||
utilities.send_reply(msg, config.errors.connection)
|
||||
return
|
||||
end
|
||||
|
||||
if pic then
|
||||
utilities.send_typing(self, receiver, 'upload_photo')
|
||||
utilities.send_typing(receiver, 'upload_photo')
|
||||
local file = download_to_file(pic, 'plex.png')
|
||||
utilities.send_photo(self, msg.chat.id, file)
|
||||
utilities.send_photo(msg.chat.id, file)
|
||||
end
|
||||
utilities.send_reply(self, msg, text, 'HTML')
|
||||
utilities.send_reply(msg, text, 'HTML')
|
||||
end
|
||||
|
||||
return plex
|
||||
|
@@ -162,13 +162,13 @@ end
|
||||
|
||||
function plugin_manager:action(msg, config, matches)
|
||||
if msg.from.id ~= config.admin then
|
||||
utilities.send_reply(self, msg, config.errors.sudo)
|
||||
utilities.send_reply(msg, config.errors.sudo)
|
||||
return
|
||||
end
|
||||
|
||||
-- Show the available plugins
|
||||
if matches[1] == '/plugins' then
|
||||
utilities.send_reply(self, msg, plugin_manager:list_plugins())
|
||||
utilities.send_reply(msg, plugin_manager:list_plugins())
|
||||
return
|
||||
end
|
||||
|
||||
@@ -178,11 +178,11 @@ function plugin_manager:action(msg, config, matches)
|
||||
if matches[4] then
|
||||
local id = matches[4]
|
||||
print("enable "..plugin..' on chat#id'..id)
|
||||
utilities.send_reply(self, msg, plugin_manager:reenable_plugin_on_chat(id, plugin))
|
||||
utilities.send_reply(msg, plugin_manager:reenable_plugin_on_chat(id, plugin))
|
||||
return
|
||||
else
|
||||
print("enable "..plugin..' on this chat')
|
||||
utilities.send_reply(self, msg, plugin_manager:reenable_plugin_on_chat(msg, plugin))
|
||||
utilities.send_reply(msg, plugin_manager:reenable_plugin_on_chat(msg, plugin))
|
||||
return
|
||||
end
|
||||
end
|
||||
@@ -191,7 +191,7 @@ function plugin_manager:action(msg, config, matches)
|
||||
if matches[1] == 'enable' then
|
||||
local plugin_name = matches[2]
|
||||
print("enable: "..matches[2])
|
||||
utilities.send_reply(self, msg, plugin_manager:enable_plugin(self, config, plugin_name))
|
||||
utilities.send_reply(msg, plugin_manager:enable_plugin(self, config, plugin_name))
|
||||
return
|
||||
end
|
||||
|
||||
@@ -201,11 +201,11 @@ function plugin_manager:action(msg, config, matches)
|
||||
if matches[4] then
|
||||
local id = matches[4]
|
||||
print("disable "..plugin..' on chat#id'..id)
|
||||
utilities.send_reply(self, msg, plugin_manager:disable_plugin_on_chat(id, plugin))
|
||||
utilities.send_reply(msg, plugin_manager:disable_plugin_on_chat(id, plugin))
|
||||
return
|
||||
else
|
||||
print("disable "..plugin..' on this chat')
|
||||
utilities.send_reply(self, msg, plugin_manager:disable_plugin_on_chat(msg, plugin))
|
||||
utilities.send_reply(msg, plugin_manager:disable_plugin_on_chat(msg, plugin))
|
||||
return
|
||||
end
|
||||
end
|
||||
@@ -213,13 +213,13 @@ function plugin_manager:action(msg, config, matches)
|
||||
-- Disable a plugin
|
||||
if matches[1] == 'disable' then
|
||||
print("disable: "..matches[2])
|
||||
utilities.send_reply(self, msg, plugin_manager:disable_plugin(self, config, matches[2]))
|
||||
utilities.send_reply(msg, plugin_manager:disable_plugin(self, config, matches[2]))
|
||||
return
|
||||
end
|
||||
|
||||
-- Reload all the plugins!
|
||||
if matches[1] == 'reload' then
|
||||
utilities.send_reply(self, msg, plugin_manager:reload_plugins(self, config))
|
||||
utilities.send_reply(msg, plugin_manager:reload_plugins(self, config))
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -102,40 +102,40 @@ function pocket:action(msg, config, matches)
|
||||
|
||||
if matches[1] == 'set' then
|
||||
local access_token = matches[2]
|
||||
utilities.send_reply(self, msg, pocket:set_pocket_access_token(hash, access_token), true)
|
||||
utilities.send_reply(msg, pocket:set_pocket_access_token(hash, access_token), true)
|
||||
local message_id = redis:hget(hash, 'pocket_login_msg')
|
||||
utilities.edit_message(self, msg.chat.id, message_id, '*Anmeldung abgeschlossen!*', true, true)
|
||||
utilities.edit_message(msg.chat.id, message_id, '*Anmeldung abgeschlossen!*', true, true)
|
||||
redis:hdel(hash, 'pocket_login_msg')
|
||||
return
|
||||
end
|
||||
|
||||
if not access_token then
|
||||
local result = utilities.send_reply(self, msg, '*Bitte authentifiziere dich zuerst, indem du dich anmeldest.*', true, '{"inline_keyboard":[[{"text":"Bei Pocket anmelden","url":"https://brawlbot.tk/apis/callback/pocket/connect.php"}]]}')
|
||||
local result = utilities.send_reply(msg, '*Bitte authentifiziere dich zuerst, indem du dich anmeldest.*', true, '{"inline_keyboard":[[{"text":"Bei Pocket anmelden","url":"https://brawlbot.tk/apis/callback/pocket/connect.php"}]]}')
|
||||
redis:hset(hash, 'pocket_login_msg', result.result.message_id)
|
||||
return
|
||||
end
|
||||
|
||||
if matches[1] == 'unauth' then
|
||||
redis:hdel(hash, 'pocket')
|
||||
utilities.send_reply(self, msg, 'Erfolgreich ausgeloggt! Du kannst den Zugriff [in deinen Einstellungen](https://getpocket.com/connected_applications) endgültig entziehen.', true)
|
||||
utilities.send_reply(msg, 'Erfolgreich ausgeloggt! Du kannst den Zugriff [in deinen Einstellungen](https://getpocket.com/connected_applications) endgültig entziehen.', true)
|
||||
return
|
||||
end
|
||||
|
||||
if matches[1] == 'add' then
|
||||
utilities.send_reply(self, msg, pocket:add_pocket_item(access_token, matches[2]))
|
||||
utilities.send_reply(msg, pocket:add_pocket_item(access_token, matches[2]))
|
||||
return
|
||||
end
|
||||
|
||||
if matches[1] == 'archive' or matches[1] == 'delete' or matches[1] == 'readd' or matches[1] == 'favorite' or matches[1] == 'unfavorite' then
|
||||
utilities.send_reply(self, msg, pocket:modify_pocket_item(access_token, matches[1], matches[2]))
|
||||
utilities.send_reply(msg, pocket:modify_pocket_item(access_token, matches[1], matches[2]))
|
||||
return
|
||||
end
|
||||
|
||||
if msg.chat.type == 'chat' or msg.chat.type == 'supergroup' then
|
||||
utilities.send_reply(self, msg, 'Ausgeben deiner privaten Pocket-Liste in einem öffentlichen Chat wird feige verweigert. Bitte schreibe mich privat an!', true)
|
||||
utilities.send_reply(msg, 'Ausgeben deiner privaten Pocket-Liste in einem öffentlichen Chat wird feige verweigert. Bitte schreibe mich privat an!', true)
|
||||
return
|
||||
else
|
||||
utilities.send_reply(self, msg, pocket:list_pocket_items(access_token))
|
||||
utilities.send_reply(msg, pocket:list_pocket_items(access_token))
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -13,14 +13,14 @@ end
|
||||
|
||||
function pokedex:action(msg, config)
|
||||
|
||||
bindings.sendChatAction(self, { chat_id = msg.chat.id, action = 'typing' } )
|
||||
bindings.sendChatAction({ chat_id = msg.chat.id, action = 'typing' } )
|
||||
|
||||
local input = utilities.input(msg.text_lower)
|
||||
if not input then
|
||||
if msg.reply_to_message and msg.reply_to_message.text then
|
||||
input = msg.reply_to_message.text
|
||||
else
|
||||
utilities.send_message(self, msg.chat.id, pokedex.doc, true, msg.message_id, true)
|
||||
utilities.send_message(msg.chat.id, pokedex.doc, true, msg.message_id, true)
|
||||
return
|
||||
end
|
||||
end
|
||||
@@ -30,7 +30,7 @@ function pokedex:action(msg, config)
|
||||
local dex_url = url .. '/api/v1/pokemon/' .. input
|
||||
local dex_jstr, res = http.request(dex_url)
|
||||
if res ~= 200 then
|
||||
utilities.send_reply(self, msg, config.errors.connection)
|
||||
utilities.send_reply(msg, config.errors.connection)
|
||||
return
|
||||
end
|
||||
|
||||
@@ -39,7 +39,7 @@ function pokedex:action(msg, config)
|
||||
local desc_url = url .. dex_jdat.descriptions[math.random(#dex_jdat.descriptions)].resource_uri
|
||||
local desc_jstr, _ = http.request(desc_url)
|
||||
if res ~= 200 then
|
||||
utilities.send_reply(self, msg, config.errors.connection)
|
||||
utilities.send_reply(msg, config.errors.connection)
|
||||
return
|
||||
end
|
||||
|
||||
@@ -59,7 +59,7 @@ function pokedex:action(msg, config)
|
||||
local output = '*' .. dex_jdat.name .. '*\n#' .. dex_jdat.national_id .. ' | ' .. poke_type .. '\n_' .. desc_jdat.description:gsub('POKMON', 'Pokémon'):gsub('Pokmon', 'Pokémon') .. '_'
|
||||
|
||||
|
||||
utilities.send_message(self, msg.chat.id, output, true, nil, true)
|
||||
utilities.send_message(msg.chat.id, output, true, nil, true)
|
||||
|
||||
end
|
||||
|
||||
|
@@ -9,14 +9,14 @@ end
|
||||
porndoge.command = 'pdoge'
|
||||
|
||||
function porndoge:action(msg, config)
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
local url = 'https://porndoge.herokuapp.com/'
|
||||
local file = download_to_file(url, 'porndoge.png')
|
||||
if not file then
|
||||
utilities.send_reply(self, msg, config.errors.connection)
|
||||
utilities.send_reply(msg, config.errors.connection)
|
||||
return
|
||||
end
|
||||
utilities.send_photo(self, msg.chat.id, file, nil, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
end
|
||||
|
||||
return porndoge
|
@@ -14,10 +14,10 @@ pornhub.command = 'ge <ID>'
|
||||
|
||||
function pornhub:action(msg, config, matches)
|
||||
local url = 'http://img.pornhub.com/gif/'..matches[1]..'.gif'
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_document')
|
||||
utilities.send_typing(msg.chat.id, 'upload_document')
|
||||
local file = download_to_file(url)
|
||||
if not file then
|
||||
utilities.send_reply(self, msg, config.errors.results)
|
||||
utilities.send_reply(msg, config.errors.results)
|
||||
return
|
||||
end
|
||||
|
||||
@@ -26,7 +26,7 @@ function pornhub:action(msg, config, matches)
|
||||
else
|
||||
source = nil
|
||||
end
|
||||
utilities.send_document(self, msg.chat.id, file, source, msg.message_id)
|
||||
utilities.send_document(msg.chat.id, file, source, msg.message_id)
|
||||
end
|
||||
|
||||
return pornhub
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user