- Portiere IFTTT-Plugin
- gSearch-Hilfe aktualisiert
This commit is contained in:
parent
fadb652455
commit
7fd26b1494
@ -5,15 +5,13 @@ local URL = require('socket.url')
|
||||
local JSON = require('dkjson')
|
||||
local utilities = require('otouto.utilities')
|
||||
|
||||
gSearch.command = 'google <query>'
|
||||
gSearch.command = 'google <Suchbegriff>'
|
||||
|
||||
function gSearch:init(config)
|
||||
gSearch.triggers = utilities.triggers(self.info.username, config.cmd_pat):t('g', true):t('google', true):t('gnsfw', true).table
|
||||
gSearch.doc = [[```
|
||||
]]..config.cmd_pat..[[google <Suchbegriff>
|
||||
Sendet Suchergebnisse von Google
|
||||
Alias: ]]..config.cmd_pat..[[g
|
||||
```]]
|
||||
gSearch.doc = [[*
|
||||
]]..config.cmd_pat..[[google* _<Suchbegriff>_: Sendet Suchergebnisse von Google
|
||||
Alias: _]]..config.cmd_pat..[[g_]]
|
||||
end
|
||||
|
||||
function gSearch:googlethat(query, config)
|
||||
|
80
otouto/plugins/ifttt.lua
Normal file
80
otouto/plugins/ifttt.lua
Normal file
@ -0,0 +1,80 @@
|
||||
local ifttt = {}
|
||||
|
||||
local https = require('ssl.https')
|
||||
local URL = require('socket.url')
|
||||
local redis = (loadfile "./otouto/redis.lua")()
|
||||
local utilities = require('otouto.utilities')
|
||||
local bindings = require('otouto.bindings')
|
||||
|
||||
function ifttt:init(config)
|
||||
ifttt.triggers = {
|
||||
"^/ifttt (!set) (.*)$",
|
||||
"^/ifttt (!unauth)$",
|
||||
"^/ifttt (.*)%&(.*)%&(.*)%&(.*)",
|
||||
"^/ifttt (.*)%&(.*)%&(.*)",
|
||||
"^/ifttt (.*)%&(.*)",
|
||||
"^/ifttt (.*)$"
|
||||
}
|
||||
|
||||
ifttt.doc = [[*
|
||||
]]..config.cmd_pat..[[ifttt* _!set_ _<Key>_: Speichere deinen Schlüssel ein (erforderlich)
|
||||
*]]..config.cmd_pat..[[ifttt* _!unauth_: Löscht deinen Account aus dem Bot
|
||||
*]]..config.cmd_pat..[[ifttt* _<Event>_&_<Value1>_&_<Value2>_&_<Value3>_: Führt [Event] mit den optionalen Parametern Value1, Value2 und Value3 aus
|
||||
Beispiel: `/ifttt DeinFestgelegterName&Hallo&NochEinHallo`: Führt 'DeinFestgelegterName' mit den Parametern 'Hallo' und 'NochEinHallo' aus.]]
|
||||
end
|
||||
|
||||
ifttt.command = 'ifttt <Event>&<Value1>&<Value2>&<Value3>'
|
||||
|
||||
local BASE_URL = 'https://maker.ifttt.com/trigger'
|
||||
|
||||
function ifttt:set_ifttt_key(hash, key)
|
||||
print('Setting ifttt in redis hash '..hash..' to '..key)
|
||||
redis:hset(hash, 'ifttt', key)
|
||||
return '*Schlüssel eingespeichert!* Das Plugin kann jetzt verwendet werden.'
|
||||
end
|
||||
|
||||
function ifttt:do_ifttt_request(key, event, value1, value2, value3)
|
||||
if not value1 then
|
||||
url = BASE_URL..'/'..event..'/with/key/'..key
|
||||
elseif not value2 then
|
||||
url = BASE_URL..'/'..event..'/with/key/'..key..'/?value1='..URL.escape(value1)
|
||||
elseif not value3 then
|
||||
url = BASE_URL..'/'..event..'/with/key/'..key..'/?value1='..URL.escape(value1)..'&value2='..URL.escape(value2)
|
||||
else
|
||||
url = BASE_URL..'/'..event..'/with/key/'..key..'/?value1='..URL.escape(value1)..'&value2='..URL.escape(value2)..'&value3='..URL.escape(value3)
|
||||
end
|
||||
|
||||
local res,code = https.request(url)
|
||||
if code ~= 200 then return "*Ein Fehler ist aufgetreten!* Aktion wurde nicht ausgeführt." end
|
||||
|
||||
return "*Event "..event.." getriggert!*"
|
||||
end
|
||||
|
||||
function ifttt:action(msg, config, matches)
|
||||
local hash = 'user:'..msg.from.id
|
||||
local key = redis:hget(hash, 'ifttt')
|
||||
local event = matches[1]
|
||||
local value1 = matches[2]
|
||||
local value2 = matches[3]
|
||||
local value3 = matches[4]
|
||||
|
||||
if event == '!set' then
|
||||
utilities.send_reply(self, 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)
|
||||
return
|
||||
end
|
||||
|
||||
if event == '!unauth' then
|
||||
redis:hdel(hash, 'ifttt')
|
||||
utilities.send_reply(self, msg, '*Erfolgreich ausgeloggt!*', true)
|
||||
return
|
||||
end
|
||||
|
||||
utilities.send_reply(self, msg, ifttt:do_ifttt_request(key, event, value1, value2, value3), true)
|
||||
end
|
||||
|
||||
return ifttt
|
Reference in New Issue
Block a user