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:
Andreas Bielawski
2016-08-24 15:38:29 +02:00
130 changed files with 918 additions and 991 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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()

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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, "&Uuml;", "Ü")
local answer = string.gsub(answer, "&uuml;", "ü")
local answer = string.gsub(answer, "&szlig;", "ß")
utilities.send_reply(self, msg, answer)
utilities.send_reply(msg, answer)
end
return cleverbot

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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
} )

View File

@@ -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

View File

@@ -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()

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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&center=" .. 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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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