2016-05-29 19:08:39 +02:00
|
|
|
|
local channel = {}
|
|
|
|
|
|
2016-06-07 06:31:34 +02:00
|
|
|
|
local bindings = require('otouto.bindings')
|
|
|
|
|
local utilities = require('otouto.utilities')
|
2016-05-29 19:08:39 +02:00
|
|
|
|
|
2016-07-08 19:37:30 +02:00
|
|
|
|
channel.command = 'ch <Kanal> \\n <Nachricht>'
|
|
|
|
|
channel.doc = [[*
|
|
|
|
|
/ch*_ <Kanal>_
|
|
|
|
|
_<Nachricht>_
|
|
|
|
|
|
|
|
|
|
Sendet eine Nachricht in den Kanal. Der Kanal kann per Username oder ID bestimmt werden, Markdown wird unterstützt. Du musst Administrator oder Besitzer des Kanals sein.
|
|
|
|
|
|
|
|
|
|
Markdown-Syntax:
|
|
|
|
|
*Fetter Text*
|
|
|
|
|
_Kursiver Text_
|
|
|
|
|
[Text](URL)
|
|
|
|
|
`Inline-Codeblock`
|
|
|
|
|
```Größere Code-Block über mehrere Zeilen```
|
|
|
|
|
|
|
|
|
|
*Der Kanalname muss mit einem @ beginnen!*]]
|
2016-05-29 19:08:39 +02:00
|
|
|
|
|
2016-06-07 08:22:01 +02:00
|
|
|
|
function channel:init(config)
|
|
|
|
|
channel.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('ch', true).table
|
2016-05-29 19:08:39 +02:00
|
|
|
|
end
|
|
|
|
|
|
2016-06-07 09:02:05 +02:00
|
|
|
|
function channel:action(msg, config)
|
2016-05-29 19:08:39 +02:00
|
|
|
|
local input = utilities.input(msg.text)
|
|
|
|
|
local output
|
|
|
|
|
if input then
|
|
|
|
|
local chat_id = utilities.get_word(input, 1)
|
|
|
|
|
local admin_list, t = bindings.getChatAdministrators(self, { chat_id = chat_id } )
|
|
|
|
|
if admin_list then
|
|
|
|
|
local is_admin = false
|
|
|
|
|
for _, admin in ipairs(admin_list.result) do
|
|
|
|
|
if admin.user.id == msg.from.id then
|
|
|
|
|
is_admin = true
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
if is_admin then
|
|
|
|
|
local text = input:match('\n(.+)')
|
|
|
|
|
if text then
|
|
|
|
|
local success, result = utilities.send_message(self, chat_id, text, true, nil, true)
|
|
|
|
|
if success then
|
2016-07-08 19:37:30 +02:00
|
|
|
|
output = 'Deine Nachricht wurde versendet!'
|
2016-05-29 19:08:39 +02:00
|
|
|
|
else
|
2016-07-08 19:37:30 +02:00
|
|
|
|
output = 'Sorry, ich konnte deine Nachricht nicht senden.\n`' .. result.description .. '`'
|
2016-05-29 19:08:39 +02:00
|
|
|
|
end
|
|
|
|
|
else
|
2016-07-08 19:37:30 +02:00
|
|
|
|
output = 'Bitte gebe deine Nachricht ein. Markdown wird unterstützt.'
|
2016-05-29 19:08:39 +02:00
|
|
|
|
end
|
|
|
|
|
else
|
2016-07-08 19:37:30 +02:00
|
|
|
|
output = 'Es sieht nicht so aus, als wärst du der Administrator dieses Kanals.'
|
2016-05-29 19:08:39 +02:00
|
|
|
|
end
|
|
|
|
|
else
|
2016-07-08 19:37:30 +02:00
|
|
|
|
output = 'Sorry, ich konnte die Administratorenliste nicht abrufen. Falls du den Kanalnamen benutzt: Beginnt er mit einem @?\n`' .. t.description .. '`'
|
2016-05-29 19:08:39 +02:00
|
|
|
|
end
|
|
|
|
|
else
|
|
|
|
|
output = channel.doc
|
|
|
|
|
end
|
|
|
|
|
utilities.send_reply(self, msg, output, true)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return channel
|