added spotify plugin (thanks to @TiagoDanin)
fixed kickass plugin (required HTTPS) included console.lua (for those who may use it) included link to otouto update channel in about.lua
This commit is contained in:
parent
ab16426898
commit
c7ba76e72b
4
.gitignore
vendored
4
.gitignore
vendored
@ -1,7 +1,3 @@
|
|||||||
config.lua
|
config.lua
|
||||||
loc/weeb.lua
|
loc/weeb.lua
|
||||||
console.lua
|
|
||||||
*.json
|
*.json
|
||||||
plugins/owm.lua
|
|
||||||
plugins/liberblock.lua
|
|
||||||
plugins/dgmp.lua
|
|
||||||
|
@ -22,6 +22,7 @@ return {
|
|||||||
'wikipedia.lua',
|
'wikipedia.lua',
|
||||||
'imdb.lua',
|
'imdb.lua',
|
||||||
'urbandictionary.lua',
|
'urbandictionary.lua',
|
||||||
|
'spotify.lua',
|
||||||
'kickass.lua',
|
'kickass.lua',
|
||||||
'hackernews.lua',
|
'hackernews.lua',
|
||||||
'cats.lua',
|
'cats.lua',
|
||||||
|
34
console.lua
Executable file
34
console.lua
Executable file
@ -0,0 +1,34 @@
|
|||||||
|
JSON = require('dkjson')
|
||||||
|
URL = require('socket.url')
|
||||||
|
HTTP = require('socket.http')
|
||||||
|
HTTPS= require('ssl.https')
|
||||||
|
|
||||||
|
require('utilities')
|
||||||
|
config = require('config')
|
||||||
|
require('bindings')
|
||||||
|
|
||||||
|
data = load_data('moderation.json')
|
||||||
|
|
||||||
|
print('Fetching bot data...')
|
||||||
|
bot = get_me().result
|
||||||
|
if not bot then
|
||||||
|
error('Failure fetching bot information.')
|
||||||
|
end
|
||||||
|
for k,v in pairs(bot) do
|
||||||
|
print('',k,v)
|
||||||
|
end
|
||||||
|
|
||||||
|
print('Loading plugins...')
|
||||||
|
plugins = {}
|
||||||
|
for i,v in ipairs(config.plugins) do
|
||||||
|
local p = dofile('plugins/'..v)
|
||||||
|
table.insert(plugins, p)
|
||||||
|
end
|
||||||
|
|
||||||
|
clear = function()
|
||||||
|
for i = 1, 100 do
|
||||||
|
print('\n')
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
print('You are now in the otouto console!')
|
@ -19,7 +19,10 @@ function PLUGIN.action(msg)
|
|||||||
Based on otouto v]] .. VERSION .. [[ by @topkecleon.
|
Based on otouto v]] .. VERSION .. [[ by @topkecleon.
|
||||||
otouto v2 is licensed under the GPLv2.
|
otouto v2 is licensed under the GPLv2.
|
||||||
topkecleon.github.io/otouto
|
topkecleon.github.io/otouto
|
||||||
]] -- Please do not remove this message.
|
|
||||||
|
Join the update/news channel!
|
||||||
|
telegram.me/otouto
|
||||||
|
]] -- Please do not remove this message. ^.^
|
||||||
|
|
||||||
send_message(msg.chat.id, message, true)
|
send_message(msg.chat.id, message, true)
|
||||||
|
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
-- This is an experimental plugin for indexing a list of compliant groups, their descriptions, how to join them, etc. It is not complete nor fully implemented. The current test bot is @dgmpbot.
|
||||||
|
|
||||||
local triggers = {
|
local triggers = {
|
||||||
'^/index',
|
'^/index',
|
||||||
'^/listgroups'
|
'^/listgroups'
|
||||||
|
@ -21,7 +21,7 @@ local action = function(msg)
|
|||||||
return send_msg(msg, doc)
|
return send_msg(msg, doc)
|
||||||
end
|
end
|
||||||
|
|
||||||
local jstr, res = HTTP.request(url..URL.escape(input))
|
local jstr, res = HTTPS.request(url..URL.escape(input))
|
||||||
if res ~= 200 then
|
if res ~= 200 then
|
||||||
return send_msg(msg, config.locale.errors.connection)
|
return send_msg(msg, config.locale.errors.connection)
|
||||||
end
|
end
|
||||||
|
40
plugins/owm.lua
Executable file
40
plugins/owm.lua
Executable file
@ -0,0 +1,40 @@
|
|||||||
|
local PLUGIN = {}
|
||||||
|
|
||||||
|
PLUGIN.doc = [[
|
||||||
|
/weather <location>
|
||||||
|
Returns the current temperature and weather conditions for a specified location.
|
||||||
|
Non-city locations are accepted; "/weather Buckingham Palace" will return the weather for Westminster.
|
||||||
|
]]
|
||||||
|
|
||||||
|
PLUGIN.triggers = {
|
||||||
|
'^/weather'
|
||||||
|
}
|
||||||
|
|
||||||
|
function PLUGIN.action(msg)
|
||||||
|
|
||||||
|
local input = get_input(msg.text)
|
||||||
|
if not input then
|
||||||
|
return send_msg(msg, PLUGIN.doc)
|
||||||
|
end
|
||||||
|
|
||||||
|
coords = get_coords(input)
|
||||||
|
if not coords then
|
||||||
|
return send_msg(msg, config.locale.errors.results)
|
||||||
|
end
|
||||||
|
|
||||||
|
local url = 'http://api.openweathermap.org/data/2.5/weather?lat=' .. coords.lat .. '&lon=' .. coords.lon
|
||||||
|
local jstr, res = HTTP.request(url)
|
||||||
|
if res ~= 200 then
|
||||||
|
return send_msg(msg, config.locale.errors.connection)
|
||||||
|
end
|
||||||
|
local jdat = JSON.decode(jstr)
|
||||||
|
|
||||||
|
local celsius = jdat.main.temp - 273.15
|
||||||
|
local fahrenheit = tonumber(string.format("%.2f", celsius * (9/5) + 32))
|
||||||
|
local message = celsius .. '°C | ' .. fahrenheit .. '°F, ' .. jdat.weather[1].description .. '.'
|
||||||
|
|
||||||
|
send_msg(msg, message)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
return PLUGIN
|
52
plugins/spotify.lua
Executable file
52
plugins/spotify.lua
Executable file
@ -0,0 +1,52 @@
|
|||||||
|
-- Spotify Plugin for bot based on otouto
|
||||||
|
-- ByTiagoDanin - Telegram.me/tiagodanin
|
||||||
|
local PLUGIN = {}
|
||||||
|
|
||||||
|
PLUGIN.doc = [[
|
||||||
|
/spotify <music>
|
||||||
|
Track Spotify music.
|
||||||
|
]]
|
||||||
|
|
||||||
|
PLUGIN.triggers = {
|
||||||
|
'^/spoti$',
|
||||||
|
'^/spotify'
|
||||||
|
}
|
||||||
|
|
||||||
|
function PLUGIN.action(msg)
|
||||||
|
|
||||||
|
local input = get_input(msg.text)
|
||||||
|
if not input then
|
||||||
|
return send_msg(msg, PLUGIN.doc)
|
||||||
|
end
|
||||||
|
--URL API
|
||||||
|
local BASE_URL = "https://api.spotify.com/v1/search"
|
||||||
|
local URLP = "?q=".. (URL.escape(input) or "").."&type=track&limit=5" -- Limit 5
|
||||||
|
-- Decode json
|
||||||
|
local decj, tim = HTTPS.request(BASE_URL..URLP)
|
||||||
|
if tim ~=200 then return nil end
|
||||||
|
-- Table
|
||||||
|
local spotify = JSON.decode(decj)
|
||||||
|
local tables = {}
|
||||||
|
for pri,result in ipairs(spotify.tracks.items) do
|
||||||
|
table.insert(tables, {
|
||||||
|
spotify.tracks.total,
|
||||||
|
result.name .. ' - ' .. result.artists[1].name,
|
||||||
|
result.external_urls.spotify
|
||||||
|
})
|
||||||
|
end
|
||||||
|
-- Print Tables
|
||||||
|
local gets = ""
|
||||||
|
for pri,cont in ipairs(tables) do
|
||||||
|
gets=gets.."▶️ "..cont[2].."\n"..cont[3].."\n"
|
||||||
|
end
|
||||||
|
-- ERRO 404
|
||||||
|
local text_end = gets -- Text END
|
||||||
|
if gets == "" then
|
||||||
|
text_end = "Not found music"
|
||||||
|
end
|
||||||
|
-- Send MSG
|
||||||
|
send_msg(msg, text_end)
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
return PLUGIN
|
Reference in New Issue
Block a user