Redis-Einstellungen werden nicht mehr hardcodiert

- Einstellungen können über die config.lua vorgenommen werden
- Passwörter + andere Datenbanken werden unterstützt
- Bot sollte damit ohne weitere Anpassung OoTB für alle laufen
This commit is contained in:
Andreas Bielawski 2016-08-15 18:32:49 +02:00
parent 682a0f6d72
commit e0d3aeb7f9
2 changed files with 27 additions and 9 deletions

View File

@ -24,6 +24,16 @@ Sende /hilfe, um zu starten
-- false = only whitelisted users can use inline querys -- false = only whitelisted users can use inline querys
-- NOTE that it doesn't matter, if the chat is whitelisted! The USER must be whitelisted! -- NOTE that it doesn't matter, if the chat is whitelisted! The USER must be whitelisted!
enable_inline_for_everyone = true, enable_inline_for_everyone = true,
-- Redis settings. Only edit if you know what you're doing.
redis = {
host = '127.0.0.1',
port = 6379,
use_socket = false, -- Set to true, if you need to connect over a socket
socket_path = 'unix:///home/path/to/your/redis/sock',
password = nil, -- Set, if you need a password to connect to redis
database = nil -- Set, if you want to select another database. Default is 0 (use no ""!)
},
errors = { -- Generic error messages used in various plugins. errors = { -- Generic error messages used in various plugins.
generic = 'An unexpected error occurred.', generic = 'An unexpected error occurred.',

View File

@ -1,10 +1,6 @@
local Redis = require 'redis' local Redis = require 'redis'
local FakeRedis = require 'fakeredis' local FakeRedis = require 'fakeredis'
local config = require('config')
local params = {
'unix:///home/anditest/.redis/sock'
}
-- Overwrite HGETALL -- Overwrite HGETALL
Redis.commands.hgetall = Redis.command('hgetall', { Redis.commands.hgetall = Redis.command('hgetall', {
@ -19,7 +15,15 @@ local redis = nil
-- Won't launch an error if fails -- Won't launch an error if fails
local ok = pcall(function() local ok = pcall(function()
redis = Redis.connect('unix:///home/anditest/.redis/sock') -- FUCKING FUCK REDIS LUA FUCK Y U NO WORK WITH PARAMS if config.redis.use_socket and config.redis.socket_path then
redis = Redis.connect(config.redis.socket_path)
else
local params = {
host = config.redis.host,
port = config.redis.port
}
redis = Redis.connect(params)
end
end) end)
if not ok then if not ok then
@ -30,9 +34,6 @@ if not ok then
fake_func() fake_func()
fake = FakeRedis.new() fake = FakeRedis.new()
print('\27[31mRedis addr: '..params.host..'\27[39m')
print('\27[31mRedis port: '..params.port..'\27[39m')
redis = setmetatable({fakeredis=true}, { redis = setmetatable({fakeredis=true}, {
__index = function(a, b) __index = function(a, b)
if b ~= 'data' and fake[b] then if b ~= 'data' and fake[b] then
@ -41,6 +42,13 @@ if not ok then
return fake[b] or fake_func return fake[b] or fake_func
end }) end })
else
if config.redis.password then
redis:auth(config.redis.password)
end
if config.redis.database then
redis:select(config.redis.database)
end
end end