Upstream:
- self muss nicht mehr überall übergeben werden - alle Plugins wurden angepasst Eigene Updates: - abort_inline_query() hinzugefügt - Mehr Plugins zum Standard-Set hinzugefügt - Eventuell noch etwas, was ich vergessen hab
This commit is contained in:
@@ -28,7 +28,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 = '['
|
||||
@@ -42,19 +42,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()
|
||||
|
@@ -40,11 +40,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
|
||||
} )
|
||||
@@ -57,7 +57,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
|
||||
@@ -65,15 +65,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
|
||||
} )
|
||||
@@ -99,7 +99,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
|
||||
@@ -107,7 +107,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
|
||||
@@ -120,7 +120,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
|
||||
@@ -156,7 +156,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!')
|
||||
@@ -182,7 +182,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
|
||||
@@ -207,17 +207,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
|
||||
@@ -235,10 +235,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
|
||||
@@ -247,14 +247,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
|
||||
|
||||
@@ -269,7 +269,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
|
||||
|
||||
@@ -286,14 +286,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
|
||||
|
||||
@@ -301,10 +301,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
|
||||
@@ -312,7 +312,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
|
||||
|
||||
@@ -320,10 +320,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
|
||||
@@ -334,14 +334,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
|
||||
|
||||
@@ -358,7 +358,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
|
||||
|
||||
@@ -375,7 +375,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
|
||||
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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 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
|
||||
@@ -39,17 +39,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
|
||||
@@ -61,7 +61,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
|
||||
|
@@ -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
|
||||
|
@@ -31,22 +31,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
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -14,17 +14,17 @@ 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')
|
||||
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
|
||||
|
@@ -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,8 +42,8 @@ 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
|
||||
|
||||
return echo
|
||||
return echo
|
@@ -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
|
||||
|
@@ -26,7 +26,7 @@ function fefe:post(id)
|
||||
end
|
||||
|
||||
function fefe:action(msg, config, matches)
|
||||
utilities.send_reply(self, msg, fefe:post(matches[1]))
|
||||
utilities.send_reply(msg, fefe:post(matches[1]))
|
||||
end
|
||||
|
||||
return fefe
|
||||
|
@@ -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)
|
||||
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
|
||||
|
@@ -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
|
||||
|
@@ -26,8 +26,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)))
|
||||
|
||||
@@ -35,10 +35,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)
|
||||
@@ -86,18 +86,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
|
||||
@@ -144,18 +144,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 ('Checking if search contains blacklisted word: '..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))
|
||||
@@ -164,10 +164,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)
|
||||
@@ -215,18 +215,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
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -52,7 +52,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
|
||||
|
||||
@@ -117,10 +117,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, 'fanrt') or 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
|
||||
@@ -133,14 +133,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
|
||||
|
@@ -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
|
||||
@@ -57,7 +57,7 @@ function media_download:pre_process(msg, self, config)
|
||||
|
||||
if file_size > 19922944 then
|
||||
print('File is over 20 MB - can\'t download :(')
|
||||
return
|
||||
return msg
|
||||
end
|
||||
|
||||
local save_dir = config.getfile_path
|
||||
@@ -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
|
||||
|
||||
|
@@ -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
|
||||
|
@@ -49,15 +49,15 @@ end
|
||||
function golem:action(msg, config, matches)
|
||||
local article_identifier = matches[2]
|
||||
local data, image_data = golem:get_golem_data(article_identifier)
|
||||
if not data and not image_data then utilities.send_reply(self, msg, config.errors.connection) return end
|
||||
if not data and not image_data then utilities.send_reply(msg, config.errors.connection) return end
|
||||
local text, image_url = golem:send_golem_data(data, image_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)
|
||||
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 golem
|
@@ -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
|
||||
|
@@ -34,7 +34,7 @@ end
|
||||
|
||||
function hackernews:action(msg, config, matches)
|
||||
local hn_code = matches[1]
|
||||
utilities.send_reply(self, msg, hackernews:send_hackernews_post(hn_code), true)
|
||||
utilities.send_reply(msg, hackernews:send_hackernews_post(hn_code), true)
|
||||
end
|
||||
|
||||
return hackernews
|
||||
|
@@ -32,11 +32,11 @@ function heise:action(msg, config, matches)
|
||||
local article = URL.escape(matches[1])
|
||||
local text, image_url = heise:get_heise_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, 'heise_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 heise
|
@@ -5,7 +5,7 @@ hello.triggers = {
|
||||
}
|
||||
|
||||
function hello:action(msg, config, matches)
|
||||
utilities.send_message(self, msg.chat.id, 'Hallo, '..matches[1]..'!')
|
||||
utilities.send_message(msg.chat.id, 'Hallo, '..matches[1]..'!')
|
||||
end
|
||||
|
||||
return hello
|
||||
|
@@ -29,10 +29,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)
|
||||
@@ -62,11 +62,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
|
||||
@@ -75,12 +75,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
|
@@ -18,8 +18,8 @@ Alias: ]]..config.cmd_pat..[[who
|
||||
```]]
|
||||
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
|
||||
@@ -54,7 +54,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)
|
||||
@@ -86,10 +86,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
|
||||
@@ -106,7 +106,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
|
||||
@@ -115,7 +115,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'
|
||||
@@ -132,7 +132,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
|
||||
|
||||
|
@@ -53,22 +53,22 @@ function ifttt:action(msg, config, matches)
|
||||
local value3 = matches[4]
|
||||
|
||||
if event == '!set' then
|
||||
utilities.send_reply(self, msg, ifttt:set_ifttt_key(hash, value1), true)
|
||||
utilities.send_reply(msg, ifttt:set_ifttt_key(hash, value1), true)
|
||||
return
|
||||
end
|
||||
|
||||
if not key then
|
||||
utilities.send_reply(self, msg, '*Bitte speichere zuerst deinen Schlüssel ein!* Aktiviere dazu den [Maker Channel](https://ifttt.com/maker) und speichere deinen Schlüssel mit `/ifttt !set KEY` ein', true)
|
||||
utilities.send_reply(msg, '*Bitte speichere zuerst deinen Schlüssel ein!* Aktiviere dazu den [Maker Channel](https://ifttt.com/maker) und speichere deinen Schlüssel mit `/ifttt !set KEY` ein', true)
|
||||
return
|
||||
end
|
||||
|
||||
if event == '!unauth' then
|
||||
redis:hdel(hash, 'ifttt')
|
||||
utilities.send_reply(self, msg, '*Erfolgreich ausgeloggt!*', true)
|
||||
utilities.send_reply(msg, '*Erfolgreich ausgeloggt!*', true)
|
||||
return
|
||||
end
|
||||
|
||||
utilities.send_reply(self, msg, ifttt:do_ifttt_request(key, event, value1, value2, value3), true)
|
||||
utilities.send_reply(msg, ifttt:do_ifttt_request(key, event, value1, value2, value3), true)
|
||||
end
|
||||
|
||||
return ifttt
|
@@ -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
|
||||
|
@@ -41,14 +41,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
|
||||
|
@@ -62,14 +62,14 @@ end
|
||||
function instagram:action(msg, config, matches)
|
||||
local insta_code = matches[1]
|
||||
local data = instagram:get_insta_data(insta_code)
|
||||
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 = instagram:send_instagram_data(data)
|
||||
if not image_url then utilities.send_reply(self, msg, config.errors.connection) return end
|
||||
if not image_url then 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(image_url)
|
||||
utilities.send_photo(self, msg.chat.id, file, text, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, text, msg.message_id)
|
||||
end
|
||||
|
||||
return instagram
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -23,7 +23,7 @@ function luarun:action(msg, config)
|
||||
|
||||
local input = utilities.input(msg.text)
|
||||
if not input then
|
||||
utilities.send_reply(self, msg, 'Please enter a string to load.')
|
||||
utilities.send_reply(msg, 'Please enter a string to load.')
|
||||
return
|
||||
end
|
||||
|
||||
@@ -40,8 +40,8 @@ function luarun:action(msg, config)
|
||||
local URL = require('socket.url')
|
||||
local HTTP = require('socket.http')
|
||||
local HTTPS = require('ssl.https')
|
||||
return function (self, msg, config) ]] .. input .. [[ end
|
||||
]] )()(self, msg, config)
|
||||
return function (msg, config) ]] .. input .. [[ end
|
||||
]] )()(msg, config)
|
||||
if output == nil then
|
||||
output = 'Done!'
|
||||
else
|
||||
@@ -53,7 +53,7 @@ function luarun:action(msg, config)
|
||||
end
|
||||
output = '```\n' .. tostring(output) .. '\n```'
|
||||
end
|
||||
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)
|
||||
|
||||
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
|
||||
|
@@ -34,19 +34,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)
|
||||
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
|
||||
|
@@ -191,31 +191,31 @@ function mal:action(msg, config, matches)
|
||||
if matches[1] == 'anime' 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
|
||||
|
@@ -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('Setting notify in redis hash '..hash..' to false')
|
||||
redis:hset(hash, 'notify', false)
|
||||
print('Removing '..username..' from 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('Setting notify in redis hash '..hash..' to true')
|
||||
@@ -87,11 +87,11 @@ function notify:action(msg, config, matches)
|
||||
redis:hset(hash, 'id', msg.from.id)
|
||||
print('Adding '..username..' to 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 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
|
||||
|
@@ -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
|
||||
|
@@ -7,7 +7,7 @@ post_photo.triggers = {
|
||||
'/nil'
|
||||
}
|
||||
|
||||
function post_photo:pre_process(msg, self, config)
|
||||
function post_photo:pre_process(msg, config)
|
||||
if not msg.document then return msg end -- Ignore
|
||||
local mime_type = msg.document.mime_type
|
||||
local valid_mimetypes = {['image/jpeg'] = true, ['image/png'] = true, ['image/bmp'] = true}
|
||||
@@ -20,15 +20,15 @@ function post_photo:pre_process(msg, self, config)
|
||||
return
|
||||
end
|
||||
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
-- Saving file to the Telegram Cloud
|
||||
local request = bindings.request(self, 'getFile', {
|
||||
local request = bindings.request('getFile', {
|
||||
file_id = file_id
|
||||
} )
|
||||
|
||||
local download_url = 'https://api.telegram.org/file/bot'..config.bot_api_key..'/'..request.result.file_path
|
||||
local file = download_to_file(download_url, msg.file_name)
|
||||
utilities.send_photo(self, msg.chat.id, file, msg.caption, msg.message_id)
|
||||
utilities.send_photo(msg.chat.id, file, msg.caption, msg.message_id)
|
||||
|
||||
return msg
|
||||
end
|
||||
|
@@ -15,9 +15,9 @@ end
|
||||
function preview:inline_callback(inline_query, config, matches)
|
||||
local preview_url = matches[1]
|
||||
local res, code = https.request('https://brawlbot.tk/apis/simple_meta_api/?url='..URL.escape(preview_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.remote_code >= 400 then utilities.answer_inline_query(self, inline_query) return end
|
||||
if data.remote_code >= 400 then abort_inline_query(inline_query) return end
|
||||
|
||||
if data.title then
|
||||
title = data.title
|
||||
@@ -42,13 +42,13 @@ function preview:inline_callback(inline_query, config, matches)
|
||||
local message_text = '<b>'..title..'</b>'..description_in_text..'\n— '..only_name
|
||||
|
||||
local results = '[{"type":"article","id":"77","title":"'..title..'","description":"'..description..'","url":"'..preview_url..'","thumb_url":"https://anditest.perseus.uberspace.de/inlineQuerys/generic/internet.jpg","thumb_width":150,"thumb_height":150,"hide_url":true,"reply_markup":{"inline_keyboard":[[{"text":"Webseite aufrufen","url":"'..preview_url..'"}]]},"input_message_content":{"message_text":"'..message_text..'","parse_mode":"HTML","disable_web_page_preview":true}}]'
|
||||
utilities.answer_inline_query(self, inline_query, results, 3600, true)
|
||||
utilities.answer_inline_query(inline_query, results, 3600, true)
|
||||
end
|
||||
|
||||
function preview:action(msg)
|
||||
local input = utilities.input_from_msg(msg)
|
||||
if not input then
|
||||
utilities.send_reply(self, msg, preview.doc, true)
|
||||
utilities.send_reply(msg, preview.doc, true)
|
||||
return
|
||||
end
|
||||
|
||||
@@ -59,18 +59,18 @@ function preview:action(msg)
|
||||
|
||||
local res = http.request(input)
|
||||
if not res then
|
||||
utilities.send_reply(self, msg, 'Bitte gebe einen validen Link an.')
|
||||
utilities.send_reply(msg, 'Bitte gebe einen validen Link an.')
|
||||
return
|
||||
end
|
||||
|
||||
if res:len() == 0 then
|
||||
utilities.send_reply(self, msg, 'Sorry, dieser Link lässt uns keine Vorschau erstellen.')
|
||||
utilities.send_reply(msg, 'Sorry, dieser Link lässt uns keine Vorschau erstellen.')
|
||||
return
|
||||
end
|
||||
|
||||
-- Invisible zero-width, non-joiner.
|
||||
local output = '<a href="' .. input .. '">' .. utilities.char.zwnj .. '</a>'
|
||||
utilities.send_message(self, msg.chat.id, output, false, nil, 'HTML')
|
||||
utilities.send_message(msg.chat.id, output, false, nil, 'HTML')
|
||||
end
|
||||
|
||||
return preview
|
@@ -71,9 +71,9 @@ end
|
||||
|
||||
function qr:inline_callback(inline_query, config, matches)
|
||||
local text = matches[1]
|
||||
if string.len(text) > 200 then utilities.answer_inline_query(self, inline_query) return end
|
||||
if string.len(text) > 200 then abort_inline_query(inline_query) return end
|
||||
local image_url = qr:qr(text, nil, nil, 'jpg')
|
||||
if not image_url then utilities.answer_inline_query(self, inline_query) return end
|
||||
if not image_url then abort_inline_query(inline_query) return end
|
||||
|
||||
local id = 600
|
||||
|
||||
@@ -93,7 +93,7 @@ function qr:inline_callback(inline_query, config, matches)
|
||||
end
|
||||
|
||||
local results = results..']'
|
||||
utilities.answer_inline_query(self, inline_query, results, 10000)
|
||||
utilities.answer_inline_query(inline_query, results, 10000)
|
||||
end
|
||||
|
||||
function qr:action(msg, config, matches)
|
||||
@@ -108,9 +108,9 @@ function qr:action(msg, config, matches)
|
||||
end
|
||||
|
||||
local image_url = qr:qr(text, color, back)
|
||||
if not image_url then utilities.send_reply(self, msg, config.errors.connection) return end
|
||||
if not image_url then utilities.send_reply(msg, config.errors.connection) return end
|
||||
local file = download_to_file(image_url, 'qr.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 qr
|
||||
|
@@ -81,28 +81,28 @@ end
|
||||
|
||||
function quotes:action(msg, config, matches)
|
||||
if matches[1] == "quote" then
|
||||
utilities.send_message(self, msg.chat.id, quotes:get_quote(msg), true)
|
||||
utilities.send_message(msg.chat.id, quotes:get_quote(msg), true)
|
||||
return
|
||||
elseif matches[1] == "addquote" and matches[2] then
|
||||
utilities.send_reply(self, msg, quotes:save_quote(msg), true)
|
||||
utilities.send_reply(msg, quotes:save_quote(msg), true)
|
||||
return
|
||||
elseif matches[1] == "delquote" 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
|
||||
utilities.send_reply(self, msg, quotes:delete_quote(msg), true)
|
||||
utilities.send_reply(msg, quotes:delete_quote(msg), true)
|
||||
return
|
||||
elseif matches[1] == "listquotes" then
|
||||
local link, iserror = quotes:list_quotes(msg)
|
||||
if iserror then
|
||||
utilities.send_reply(self, msg, link, true)
|
||||
utilities.send_reply(msg, link, true)
|
||||
return
|
||||
end
|
||||
utilities.send_reply(self, msg, 'Ich habe eine Liste aller Zitate hochgeladen.', false, '{"inline_keyboard":[[{"text":"Alle Zitate abrufen","url":"'..link..'"}]]}')
|
||||
utilities.send_reply(msg, 'Ich habe eine Liste aller Zitate hochgeladen.', false, '{"inline_keyboard":[[{"text":"Alle Zitate abrufen","url":"'..link..'"}]]}')
|
||||
return
|
||||
end
|
||||
utilities.send_reply(self, msg, quotes.doc, true)
|
||||
utilities.send_reply(msg, quotes.doc, true)
|
||||
end
|
||||
|
||||
return quotes
|
||||
|
@@ -52,14 +52,14 @@ function fun: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, fun.doc, true, msg.message_id, true)
|
||||
utilities.send_message(msg.chat.id, fun.doc, true, msg.message_id, true)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
local user_name = get_name(msg)
|
||||
local result = fun:choose_random(user_name, input)
|
||||
utilities.send_message(self, msg.chat.id, result)
|
||||
utilities.send_message(msg.chat.id, result)
|
||||
end
|
||||
|
||||
return fun
|
||||
|
@@ -61,15 +61,15 @@ function reddit:action(msg, config)
|
||||
end
|
||||
local jstr, res = https.request(url)
|
||||
if res ~= 200 then
|
||||
utilities.send_reply(self, msg, config.errors.results)
|
||||
utilities.send_reply(msg, config.errors.results)
|
||||
else
|
||||
local jdat = json.decode(jstr)
|
||||
if #jdat.data.children == 0 then
|
||||
utilities.send_reply(self, msg, config.errors.results)
|
||||
utilities.send_reply(msg, config.errors.results)
|
||||
else
|
||||
local output = format_results(jdat.data.children)
|
||||
output = source .. output
|
||||
utilities.send_message(self, msg.chat.id, output, true, nil, true)
|
||||
utilities.send_message(msg.chat.id, output, true, nil, true)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@@ -39,12 +39,12 @@ function reddit_post:action(msg, config, matches)
|
||||
local subreddit = matches[1]
|
||||
local reddit_code = matches[2]
|
||||
local data = reddit_post:get_reddit_data(subreddit, reddit_code)
|
||||
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 = reddit_post:send_reddit_data(data)
|
||||
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
|
||||
|
||||
utilities.send_reply(self, msg, text, true)
|
||||
utilities.send_reply(msg, text, true)
|
||||
end
|
||||
|
||||
return reddit_post
|
||||
|
@@ -16,13 +16,13 @@ end
|
||||
function remind:action(msg, config)
|
||||
local input = utilities.input(msg.text)
|
||||
if not input then
|
||||
utilities.send_reply(self, msg, remind.doc, true)
|
||||
utilities.send_reply(msg, remind.doc, true)
|
||||
return
|
||||
end
|
||||
|
||||
local duration = tonumber(utilities.get_word(input, 1))
|
||||
if not duration then
|
||||
utilities.send_reply(self, msg, remind.doc, true)
|
||||
utilities.send_reply(msg, remind.doc, true)
|
||||
return
|
||||
end
|
||||
|
||||
@@ -33,12 +33,12 @@ function remind:action(msg, config)
|
||||
end
|
||||
local message = utilities.input(input)
|
||||
if not message then
|
||||
utilities.send_reply(self, msg, remind.doc, true)
|
||||
utilities.send_reply(msg, remind.doc, true)
|
||||
return
|
||||
end
|
||||
|
||||
if #message > config.remind.max_length then
|
||||
utilities.send_reply(self, msg, 'Die maximale Länge einer Erinnerung ist ' .. config.remind.max_length .. '.')
|
||||
utilities.send_reply(msg, 'Die maximale Länge einer Erinnerung ist ' .. config.remind.max_length .. '.')
|
||||
return
|
||||
end
|
||||
|
||||
@@ -60,7 +60,7 @@ function remind:action(msg, config)
|
||||
local human_readable_time = convert_timestamp(timestamp, '%H:%M:%S')
|
||||
output = 'Ich werde dich um *'..human_readable_time..' Uhr* erinnern.'
|
||||
end
|
||||
utilities.send_reply(self, msg, output, true)
|
||||
utilities.send_reply(msg, output, true)
|
||||
end
|
||||
|
||||
function remind:cron(config)
|
||||
@@ -73,7 +73,7 @@ function remind:cron(config)
|
||||
-- Otherwise, add it to the replacement table.
|
||||
if time > reminder.time then
|
||||
local output = '*ERINNERUNG:*\n"' .. utilities.md_escape(reminder.message) .. '"'
|
||||
local res = utilities.send_message(self, chat_id, output, true, nil, true)
|
||||
local res = utilities.send_message(chat_id, output, true, nil, true)
|
||||
-- If the message fails to send, save it for later (if enabled in config).
|
||||
if res or not config.remind.persist then
|
||||
group[k] = nil
|
||||
|
@@ -41,7 +41,7 @@ function respond:inline_callback(inline_query, config, matches)
|
||||
face = '¯\\\\\\_(ツ)_/¯'
|
||||
end
|
||||
results = '[{"type":"article","id":"8","title":"'..face..'","input_message_content":{"message_text":"'..face..'"}}]'
|
||||
utilities.answer_inline_query(self, inline_query, results, 9999)
|
||||
utilities.answer_inline_query(inline_query, results, 9999)
|
||||
end
|
||||
|
||||
function respond:action(msg, config, matches)
|
||||
@@ -51,35 +51,35 @@ function respond:action(msg, config, matches)
|
||||
if user_name == "DefenderX" then user_name = "Deffu" end
|
||||
|
||||
if string.match(msg.text, "[Ff][Gg][Tt].? [Ss][Ww][Ii][Ff][Tt]") then
|
||||
utilities.send_message(self, receiver, 'Dünnes Eis, '..user_name..'!')
|
||||
utilities.send_message(receiver, 'Dünnes Eis, '..user_name..'!')
|
||||
return
|
||||
elseif string.match(msg.text, "([Ee][Ii][Nn][Zz][Ii][Gg][Ss][Tt][Ee][Ss])") then
|
||||
utilities.send_message(self, receiver, '*einziges')
|
||||
utilities.send_message(receiver, '*einziges')
|
||||
return
|
||||
elseif string.match(msg.text, "([Ee][Ii][Nn][Zz][Ii][Gg][Ss][Tt][Ee][Rr])") then
|
||||
utilities.send_message(self, receiver, '*einziger')
|
||||
utilities.send_message(receiver, '*einziger')
|
||||
return
|
||||
elseif string.match(msg.text, "([Ee][Ii][Nn][Zz][Ii][Gg][Ss][Tt][Ee])") then
|
||||
utilities.send_message(self, receiver, '*einzige')
|
||||
utilities.send_message(receiver, '*einzige')
|
||||
return
|
||||
elseif string.match(msg.text, "[Bb][Oo][Tt]%??") then
|
||||
utilities.send_reply(self, msg, '*Ich bin da, '..user_name..'!*', true)
|
||||
utilities.send_reply(msg, '*Ich bin da, '..user_name..'!*', true)
|
||||
return
|
||||
elseif string.match(msg.text, "[Ll][Oo][Dd]") then
|
||||
utilities.send_message(self, receiver, 'ಠ_ಠ')
|
||||
utilities.send_message(receiver, 'ಠ_ಠ')
|
||||
return
|
||||
elseif string.match(msg.text, "[Ll][Ff]") then
|
||||
utilities.send_message(self, receiver, '( ͡° ͜ʖ ͡°)')
|
||||
utilities.send_message(receiver, '( ͡° ͜ʖ ͡°)')
|
||||
return
|
||||
elseif string.match(msg.text, "[Nn][Bb][Cc]") or string.match(msg.text, "[Ii][Dd][Cc]") or string.match(msg.text, "[Kk][Aa]") or string.match(msg.text, "[Ii][Dd][Kk]") then
|
||||
utilities.send_message(self, receiver, [[¯\_(ツ)_/¯]])
|
||||
utilities.send_message(receiver, [[¯\_(ツ)_/¯]])
|
||||
return
|
||||
elseif string.match(msg.text, "[Ff][Rr][Oo][Ss][Cc][Hh]") then
|
||||
utilities.send_message(self, receiver, '🐸🐸🐸')
|
||||
utilities.send_message(receiver, '🐸🐸🐸')
|
||||
return
|
||||
elseif string.match(msg.text, "[Ii][Nn][Ll][Oo][Vv][Ee]") then
|
||||
local file = download_to_file(BASE_URL..'/inlove.gif')
|
||||
utilities.send_document(self, receiver, file)
|
||||
utilities.send_document(receiver, file)
|
||||
return
|
||||
elseif string.match(msg.text, "[Ww][Aa][Tt]") then
|
||||
local WAT_URL = BASE_URL..'/wat'
|
||||
@@ -95,7 +95,7 @@ function respond:action(msg, config, matches)
|
||||
}
|
||||
local random_wat = math.random(5)
|
||||
local file = download_to_file(WAT_URL..wats[random_wat])
|
||||
utilities.send_photo(self, receiver, file)
|
||||
utilities.send_photo(receiver, file, nil, msg.message_id)
|
||||
return
|
||||
end
|
||||
|
||||
|
@@ -23,7 +23,7 @@ function roll:roll_dice()
|
||||
end
|
||||
|
||||
function roll:action(msg)
|
||||
utilities.send_reply(self, msg, 'Du hast eine *'..roll:roll_dice()..'* gewürfelt.', true)
|
||||
utilities.send_reply(msg, 'Du hast eine *'..roll:roll_dice()..'* gewürfelt.', true)
|
||||
end
|
||||
|
||||
return roll
|
||||
|
@@ -212,42 +212,42 @@ function rss: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 = rss:subscribe(id, matches[2])
|
||||
utilities.send_reply(self, msg, output, 'HTML')
|
||||
utilities.send_reply(msg, output, 'HTML')
|
||||
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 = rss:unsubscribe(id, matches[2])
|
||||
utilities.send_reply(self, msg, output, 'HTML')
|
||||
utilities.send_reply(msg, output, 'HTML')
|
||||
return
|
||||
elseif matches[1] == 'rss' 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 = rss:print_subs(id, chat_name)
|
||||
utilities.send_reply(self, msg, output, 'HTML')
|
||||
utilities.send_reply(msg, output, 'HTML')
|
||||
return
|
||||
end
|
||||
|
||||
@@ -259,42 +259,39 @@ function rss: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 = rss:subscribe(id, matches[2])
|
||||
utilities.send_reply(self, msg, output, 'HTML')
|
||||
utilities.send_reply(msg, output, 'HTML')
|
||||
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 = rss:unsubscribe(id, matches[2])
|
||||
utilities.send_reply(self, msg, output, 'HTML', '{"hide_keyboard":true}')
|
||||
utilities.send_reply(msg, output, 'HTML', '{"hide_keyboard":true}')
|
||||
return
|
||||
elseif matches[1] == 'del' and not matches[2] then
|
||||
local list_subs, keyboard = rss:print_subs(id, chat_name)
|
||||
utilities.send_reply(self, msg, list_subs, 'HTML', keyboard)
|
||||
utilities.send_reply(msg, list_subs, 'HTML', 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
|
||||
rss:cron(self)
|
||||
rss:cron()
|
||||
return
|
||||
end
|
||||
|
||||
local output = rss:print_subs(id, chat_name)
|
||||
utilities.send_reply(self, msg, output, 'HTML')
|
||||
utilities.send_reply(msg, output, 'HTML')
|
||||
return
|
||||
end
|
||||
|
||||
function rss:cron(self_plz)
|
||||
if not self.BASE_URL then
|
||||
self = self_plz
|
||||
end
|
||||
function rss:cron()
|
||||
local keys = redis:keys(get_base_redis("*", "subs"))
|
||||
for k,v in pairs(keys) do
|
||||
local base = string.match(v, "rss:(.+):subs") -- Get the URL base
|
||||
@@ -340,7 +337,7 @@ function rss:cron(self_plz)
|
||||
for k2, receiver in pairs(redis:smembers(v)) do
|
||||
local receiver = string.gsub(receiver, 'chat%#id', '')
|
||||
local receiver = string.gsub(receiver, 'user%#id', '')
|
||||
utilities.send_message(self, receiver, text, true, nil, 'HTML')
|
||||
utilities.send_message(receiver, text, true, nil, 'HTML')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@@ -22,10 +22,10 @@ function entergroup:chat_new_user(msg, self)
|
||||
return
|
||||
end
|
||||
local text = 'Hallo '..user_name..', willkommen bei <b>'..chat_title..'</b>!'..added_by
|
||||
utilities.send_reply(self, msg, text, 'HTML')
|
||||
utilities.send_reply(msg, text, 'HTML')
|
||||
end
|
||||
|
||||
function entergroup:chat_del_user(msg, self)
|
||||
function entergroup:chat_del_user(msg)
|
||||
if msg.left_chat_member.id == msg.from.id then -- silent ignore, if user wasn't kicked
|
||||
return
|
||||
end
|
||||
@@ -36,7 +36,7 @@ function entergroup:chat_del_user(msg, self)
|
||||
at_name = ''
|
||||
end
|
||||
local text = '<b>'..user_name..'</b> wurde von <b>'..msg.from.first_name..'</b>'..at_name..' aus der Gruppe gekickt.'
|
||||
utilities.send_reply(self, msg, text, 'HTML')
|
||||
utilities.send_reply(msg, text, 'HTML')
|
||||
end
|
||||
|
||||
function entergroup:action(msg, config, matches)
|
||||
@@ -45,7 +45,7 @@ function entergroup:action(msg, config, matches)
|
||||
if matches[1] == 'new_chat_member' then
|
||||
entergroup:chat_new_user(msg, self)
|
||||
elseif matches[1] == 'left_chat_member'then
|
||||
entergroup:chat_del_user(msg, self)
|
||||
entergroup:chat_del_user(msg)
|
||||
end
|
||||
end
|
||||
|
||||
|
@@ -7,8 +7,8 @@ leave_group.triggers = {
|
||||
|
||||
local report_to_admin = true -- set to false to not be notified, when Bot leaves groups without you
|
||||
|
||||
function leave_group:check_for_admin(msg, self, config)
|
||||
local result = bindings.request(self, 'getChatMember', {
|
||||
function leave_group:check_for_admin(msg, config)
|
||||
local result = bindings.request('getChatMember', {
|
||||
chat_id = msg.chat.id,
|
||||
user_id = config.admin
|
||||
} )
|
||||
@@ -25,11 +25,11 @@ end
|
||||
|
||||
function leave_group:action(msg, config)
|
||||
if not is_service_msg(msg) then return end -- Bad attempt at trolling!
|
||||
local admin_in_group = leave_group:check_for_admin(msg, self, config)
|
||||
local admin_in_group = leave_group:check_for_admin(msg, config)
|
||||
if not admin_in_group then
|
||||
print('Admin ist nicht in der Gruppe, verlasse sie deshalb...')
|
||||
utilities.send_reply(self, msg, 'Dieser Bot wurde in eine fremde Gruppe hinzugefügt. Dies wird gemeldet!\nThis bot was added to foreign group. This incident will be reported!')
|
||||
local result = bindings.request(self, 'leaveChat', {
|
||||
utilities.send_reply(msg, 'Dieser Bot wurde in eine fremde Gruppe hinzugefügt. Dies wird gemeldet!\nThis bot was added to foreign group. This incident will be reported!')
|
||||
local result = bindings.request('leaveChat', {
|
||||
chat_id = msg.chat.id
|
||||
} )
|
||||
local chat_name = msg.chat.title
|
||||
@@ -37,7 +37,7 @@ function leave_group:action(msg, config)
|
||||
local from = msg.from.name
|
||||
local from_id = msg.from.id
|
||||
if report_to_admin then
|
||||
utilities.send_message(self, config.admin, '#WARNUNG: Bot wurde in fremde Gruppe hinzugefügt:\nGruppenname: '..chat_name..' ('..chat_id..')\nHinzugefügt von: '..from..' ('..from_id..')')
|
||||
utilities.send_message(config.admin, '#WARNUNG: Bot wurde in fremde Gruppe hinzugefügt:\nGruppenname: '..chat_name..' ('..chat_id..')\nHinzugefügt von: '..from..' ('..from_id..')')
|
||||
end
|
||||
end
|
||||
end
|
||||
|
@@ -60,7 +60,7 @@ function migrate:action(msg, config, matches)
|
||||
end
|
||||
|
||||
print('--- SUPERGROUP MIGRATION ENDED ---')
|
||||
utilities.send_message(self, new_id, 'Die User-ID dieser Gruppe ist nun '..new_id..'.\nAlle Daten wurden übertragen.')
|
||||
utilities.send_message(new_id, 'Die User-ID dieser Gruppe ist nun '..new_id..'.\nAlle Daten wurden übertragen.')
|
||||
end
|
||||
|
||||
return migrate
|
@@ -33,7 +33,7 @@ end
|
||||
function set:action(msg)
|
||||
local input = utilities.input(msg.text)
|
||||
if not input or not input:match('([^%s]+) (.+)') then
|
||||
utilities.send_message(self, msg.chat.id, set.doc, true, msg.message_id, true)
|
||||
utilities.send_message(msg.chat.id, set.doc, true, msg.message_id, true)
|
||||
return
|
||||
end
|
||||
|
||||
@@ -46,7 +46,7 @@ function set:action(msg)
|
||||
output = set:save_value(msg, name, value)
|
||||
end
|
||||
|
||||
utilities.send_message(self, msg.chat.id, output, true, nil, true)
|
||||
utilities.send_message(msg.chat.id, output, true, nil, true)
|
||||
end
|
||||
|
||||
return set
|
||||
|
@@ -37,18 +37,18 @@ function settings:action(msg, config, matches)
|
||||
local hash = 'user:'..msg.from.id
|
||||
|
||||
if matches[1] == '⚙ Einstellungen' or matches[1] == '/settings' then
|
||||
utilities.send_reply(self, msg, 'Was möchtest du einstellen?', false, '{"keyboard":'..settings:keyboard(msg.from.id)..', "one_time_keyboard":true, "selective":true, "resize_keyboard":true}')
|
||||
utilities.send_reply(msg, 'Was möchtest du einstellen?', false, '{"keyboard":'..settings:keyboard(msg.from.id)..', "one_time_keyboard":true, "selective":true, "resize_keyboard":true}')
|
||||
return
|
||||
elseif matches[1] == '💤 AFK-Keyboard einschalten' then
|
||||
redis:hset(hash, 'afk_keyboard', 'true')
|
||||
utilities.send_reply(self, msg, 'Das AFK-Keyboard wurde erfolgreich *eingeschaltet*.', true, '{"keyboard":'..settings:keyboard(msg.from.id)..', "one_time_keyboard":true, "selective":true, "resize_keyboard":true}')
|
||||
utilities.send_reply(msg, 'Das AFK-Keyboard wurde erfolgreich *eingeschaltet*.', true, '{"keyboard":'..settings:keyboard(msg.from.id)..', "one_time_keyboard":true, "selective":true, "resize_keyboard":true}')
|
||||
return
|
||||
elseif matches[1] == '💤 AFK-Keyboard ausschalten' then
|
||||
redis:hset(hash, 'afk_keyboard', 'false')
|
||||
utilities.send_reply(self, msg, 'Das AFK-Keyboard wurde erfolgreich *ausgeschaltet*.', true, '{"keyboard":'..settings:keyboard(msg.from.id)..', "one_time_keyboard":true, "selective":true, "resize_keyboard":true}')
|
||||
utilities.send_reply(msg, 'Das AFK-Keyboard wurde erfolgreich *ausgeschaltet*.', true, '{"keyboard":'..settings:keyboard(msg.from.id)..', "one_time_keyboard":true, "selective":true, "resize_keyboard":true}')
|
||||
return
|
||||
elseif matches[1] == '❌ Einstellungen verstecken' then
|
||||
utilities.send_reply(self, msg, 'Um die Einstellungen wieder einzublenden, führe /settings aus.', true, '{"hide_keyboard":true}')
|
||||
utilities.send_reply(msg, 'Um die Einstellungen wieder einzublenden, führe /settings aus.', true, '{"hide_keyboard":true}')
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -6,13 +6,13 @@ end
|
||||
|
||||
function shell:action(msg, config)
|
||||
if not is_sudo(msg, config) then
|
||||
utilities.send_reply(self, msg, config.errors.sudo)
|
||||
utilities.send_reply(msg, config.errors.sudo)
|
||||
return
|
||||
end
|
||||
|
||||
local input = utilities.input(msg.text)
|
||||
if not input then
|
||||
utilities.send_reply(self, msg, 'Bitte gib ein Kommando ein.')
|
||||
utilities.send_reply(msg, 'Bitte gib ein Kommando ein.')
|
||||
return
|
||||
end
|
||||
input = input:gsub('—', '--')
|
||||
@@ -25,7 +25,7 @@ function shell:action(msg, config)
|
||||
end
|
||||
output = output:gsub('<pre>%\n', '<pre>')
|
||||
output = output:gsub('%\n%\n</pre>', '</pre>')
|
||||
utilities.send_message(self, msg.chat.id, output, true, msg.message_id, 'HTML')
|
||||
utilities.send_message(msg.chat.id, output, true, msg.message_id, 'HTML')
|
||||
end
|
||||
|
||||
return shell
|
||||
|
@@ -9,7 +9,7 @@ end
|
||||
|
||||
function site_header: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)
|
||||
end
|
||||
|
||||
local url = matches[2]
|
||||
@@ -20,7 +20,7 @@ function site_header:action(msg, config, matches)
|
||||
end
|
||||
local output = io.popen(input):read('*all')
|
||||
output = '```\n' .. output .. '\n```'
|
||||
utilities.send_reply(self, msg, output, true)
|
||||
utilities.send_reply(msg, output, true)
|
||||
end
|
||||
|
||||
return site_header
|
||||
|
@@ -30,8 +30,8 @@ end
|
||||
|
||||
function soundcloud:action(msg, config, matches)
|
||||
local text = soundcloud:send_soundcloud_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 soundcloud
|
||||
|
@@ -7,9 +7,9 @@ speedtest.triggers = {
|
||||
|
||||
function speedtest:action(msg, config, matches)
|
||||
local url = 'http://www.speedtest.net/result/'..matches[1]..'.png'
|
||||
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_photo(msg.chat.id, file, nil, msg.message_id)
|
||||
end
|
||||
|
||||
return speedtest
|
@@ -15,7 +15,7 @@ function spotify:get_track_data(track)
|
||||
return data
|
||||
end
|
||||
|
||||
function spotify:send_track_data(data, self, msg)
|
||||
function spotify:send_track_data(data, msg)
|
||||
local name = data.name
|
||||
local album = data.album.name
|
||||
local artist = data.artists[1].name
|
||||
@@ -28,20 +28,20 @@ function spotify:send_track_data(data, self, msg)
|
||||
|
||||
local text = '*'..name..'* von *'..artist..'* aus dem Album *'..album..'* _('..duration..')_'
|
||||
if preview then
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_audio')
|
||||
utilities.send_typing(msg.chat.id, 'upload_audio')
|
||||
local file = download_to_file(preview, name..'.mp3')
|
||||
utilities.send_audio(self, msg.chat.id, file, msg.message_id, totalseconds, artist, name)
|
||||
utilities.send_audio(msg.chat.id, file, msg.message_id, totalseconds, artist, name)
|
||||
return
|
||||
else
|
||||
utilities.send_reply(self, msg, text, true)
|
||||
utilities.send_reply(msg, text, true)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
function spotify:action(msg, config, matches)
|
||||
local data = spotify:get_track_data(matches[1])
|
||||
if not data then utilities.send_reply(self, msg, config.errors.connection) return end
|
||||
spotify:send_track_data(data, self, msg)
|
||||
if not data then utilities.send_reply(msg, config.errors.connection) return end
|
||||
spotify:send_track_data(data, msg)
|
||||
return
|
||||
end
|
||||
|
||||
|
@@ -79,7 +79,7 @@ function stats:chat_stats(chat_id)
|
||||
return text
|
||||
end
|
||||
|
||||
function stats:pre_process(msg, self)
|
||||
function stats:pre_process(msg)
|
||||
if msg.left_chat_member then
|
||||
-- delete user from redis set, but keep message count
|
||||
local hash = 'chat:'..msg.chat.id..':users'
|
||||
@@ -126,21 +126,21 @@ function stats:action(msg, config, matches)
|
||||
|
||||
if not matches[2] then
|
||||
if msg.chat.type == 'private' then
|
||||
utilities.send_reply(self, msg, 'Stats funktionieren nur in Chats!')
|
||||
utilities.send_reply(msg, 'Stats funktionieren nur in Chats!')
|
||||
return
|
||||
else
|
||||
local chat_id = msg.chat.id
|
||||
utilities.send_reply(self, msg, stats:chat_stats(chat_id), 'HTML')
|
||||
utilities.send_reply(msg, stats:chat_stats(chat_id), 'HTML')
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
if matches[2] == "chat" then
|
||||
if msg.from.id ~= config.admin then
|
||||
utilities.send_reply(self, msg, config.errors.sudo)
|
||||
utilities.send_reply(msg, config.errors.sudo)
|
||||
return
|
||||
else
|
||||
utilities.send_reply(self, msg, stats:chat_stats(matches[3]), 'HTML')
|
||||
utilities.send_reply(msg, stats:chat_stats(matches[3]), 'HTML')
|
||||
return
|
||||
end
|
||||
end
|
||||
|
@@ -35,7 +35,7 @@ function steam:price_info(data)
|
||||
return price
|
||||
end
|
||||
|
||||
function steam:send_steam_data(data, self, msg)
|
||||
function steam:send_steam_data(data, msg)
|
||||
local description = string.sub(unescape(data.about_the_game:gsub("%b<>", "")), 1, DESC_LENTH) .. '...'
|
||||
local title = data.name
|
||||
local price = steam:price_info(data.price_overview)
|
||||
@@ -47,12 +47,12 @@ end
|
||||
|
||||
function steam:action(msg)
|
||||
local data = steam:get_steam_data(matches[1])
|
||||
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 = steam:send_steam_data(data, self, msg)
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_photo')
|
||||
utilities.send_photo(self, msg.chat.id, download_to_file(image_url, matches[1]..'.jpg'), nil, msg.message_id)
|
||||
utilities.send_reply(self, msg, text, true)
|
||||
local text, image_url = steam:send_steam_data(data, msg)
|
||||
utilities.send_typing(msg.chat.id, 'upload_photo')
|
||||
utilities.send_photo(msg.chat.id, download_to_file(image_url, matches[1]..'.jpg'), nil, msg.message_id)
|
||||
utilities.send_reply(msg, text, true)
|
||||
end
|
||||
|
||||
return steam
|
@@ -4,13 +4,13 @@ streamable.triggers = {
|
||||
"streamable.com/([A-Za-z0-9-_-]+)",
|
||||
}
|
||||
|
||||
function streamable:send_streamable_video(shortcode, self, msg)
|
||||
function streamable:send_streamable_video(shortcode, msg)
|
||||
local BASE_URL = "https://api.streamable.com"
|
||||
local url = BASE_URL..'/videos/'..shortcode
|
||||
local res,code = https.request(url)
|
||||
if code ~= 200 then return 'HTTP-Fehler' end
|
||||
local data = json.decode(res)
|
||||
if data.status ~= 2 then utilities.send_reply(self, msg, "Video ist (noch) nicht verfügbar.") return end
|
||||
if data.status ~= 2 then utilities.send_reply(msg, "Video ist (noch) nicht verfügbar.") return end
|
||||
|
||||
if data.files.webm then
|
||||
if data.title == "" then title = shortcode..'.webm' else title = data.title..'.webm' end
|
||||
@@ -19,7 +19,7 @@ function streamable:send_streamable_video(shortcode, self, msg)
|
||||
height = data.files.webm.height
|
||||
if data.files.webm.size > 50000000 then
|
||||
local size = math.floor(data.files.webm.size / 1000000)
|
||||
utilities.send_reply(self, msg, '*Video ist größer als 50 MB* ('..size..' MB)!\n[Direktlink]('..url..')', true)
|
||||
utilities.send_reply(msg, '*Video ist größer als 50 MB* ('..size..' MB)!\n[Direktlink]('..url..')', true)
|
||||
return
|
||||
end
|
||||
elseif data.files.mp4 then
|
||||
@@ -29,20 +29,20 @@ function streamable:send_streamable_video(shortcode, self, msg)
|
||||
height = data.files.mp4.height
|
||||
if data.files.mp4.size > 50000000 then
|
||||
local size = math.floor(data.files.mp4.size / 1000000)
|
||||
utilities.send_reply(self, msg, '*Video ist größer als 50 MB* ('..size..' MB)!\n[Direktlink]('..url..')', true)
|
||||
utilities.send_reply(msg, '*Video ist größer als 50 MB* ('..size..' MB)!\n[Direktlink]('..url..')', true)
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
utilities.send_typing(self, msg.chat.id, 'upload_video')
|
||||
utilities.send_typing(msg.chat.id, 'upload_video')
|
||||
local file = download_to_file(url, title)
|
||||
utilities.send_video(self, msg.chat.id, file, nil, msg.message_id, nil, width, height)
|
||||
utilities.send_video(msg.chat.id, file, nil, msg.message_id, nil, width, height)
|
||||
return
|
||||
end
|
||||
|
||||
function streamable:action(msg, config, matches)
|
||||
local shortcode = matches[1]
|
||||
streamable:send_streamable_video(shortcode, self, msg)
|
||||
streamable:send_streamable_video(shortcode, msg)
|
||||
return
|
||||
end
|
||||
|
||||
|
@@ -8,10 +8,10 @@ surrogate.triggers = {
|
||||
|
||||
function surrogate:action(msg, config, matches)
|
||||
if not is_sudo(msg, config) then
|
||||
utilities.send_reply(self, msg, config.errors.sudo)
|
||||
utilities.send_reply(msg, config.errors.sudo)
|
||||
return
|
||||
end
|
||||
utilities.send_message(self, matches[1], matches[2], true, nil, true)
|
||||
utilities.send_message(matches[1], matches[2], true, nil, true)
|
||||
return
|
||||
end
|
||||
|
||||
|
@@ -42,7 +42,7 @@ function tagesschau:inline_callback(inline_query, config, matches)
|
||||
local article = matches[1]
|
||||
local full_url = 'http://www.tagesschau.de/'..article..'.html'
|
||||
local text, img_url, headline, shorttext = tagesschau:get_tagesschau_article(article)
|
||||
if text == 'HTTP-Fehler' or text == 'Artikel nicht gefunden!' then utilities.answer_inline_query(self, inline_query) return end
|
||||
if text == 'HTTP-Fehler' or text == 'Artikel nicht gefunden!' then abort_inline_query(inline_query) return end
|
||||
|
||||
if text:match('"') then
|
||||
text = text:gsub('"', '\\"')
|
||||
@@ -56,18 +56,18 @@ function tagesschau:inline_callback(inline_query, config, matches)
|
||||
|
||||
local text = text:gsub('\n', '\\n')
|
||||
local results = '[{"type":"article","id":"11","title":"'..headline..'","description":"'..shorttext..'","url":"'..full_url..'","thumb_url":"https://anditest.perseus.uberspace.de/inlineQuerys/tagesschau/tagesschau.jpg","thumb_width":150,"thumb_height":150,"hide_url":true,"reply_markup":{"inline_keyboard":[[{"text":"Artikel aufrufen","url":"'..full_url..'"}]]},"input_message_content":{"message_text":"'..text..'","parse_mode":"HTML"}}]'
|
||||
utilities.answer_inline_query(self, inline_query, results, 7200)
|
||||
utilities.answer_inline_query(inline_query, results, 7200)
|
||||
end
|
||||
|
||||
function tagesschau:action(msg, config, matches)
|
||||
local article = matches[1]
|
||||
local text, image_url = tagesschau:get_tagesschau_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)
|
||||
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 tagesschau
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user