--
--   Copyright 2015 Ilkka Oksanen <iao@iki.fi>
--
--   Licensed under the Apache License, Version 2.0 (the "License");
--   you may not use this file except in compliance with the License.
--   You may obtain a copy of the License at
--
--     http://www.apache.org/licenses/LICENSE-2.0
--
--   Unless required by applicable law or agreed to in writing,
--   software distributed under the License is distributed on an "AS
--   IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
--   express or implied.  See the License for the specific language
--   governing permissions and limitations under the License.
--

local userId = ARGV[1]
local network = ARGV[2]
local oldNick = ARGV[3]
local newNick = ARGV[4]

local userId = redis.call('HGET', 'index:currentnick', network .. ':' .. string.lower(oldNick))

if userId then
    redis.call('HDEL', 'index:currentnick', network .. ':' .. string.lower(oldNick))
    redis.call('HSET', 'networks:' .. userId .. ':' .. network, 'currentnick', newNick)
    redis.call('HSET', 'index:currentnick', network .. ':' .. string.lower(newNick), userId)
else
    userId = redis.call('HGET', 'index:ircuser', network .. ':' .. string.lower(oldNick))

    if userId then
        redis.call('HDEL', 'index:ircuser', network .. ':' .. string.lower(oldNick))
        redis.call('HSET', 'ircuser:' .. userId, 'nick', newNick)
        redis.call('HSET', 'index:ircuser', network .. ':' .. string.lower(newNick), userId)
    end
end

return userId

--
--   Copyright 2015 Ilkka Oksanen <iao@iki.fi>
--
--   Licensed under the Apache License, Version 2.0 (the "License");
--   you may not use this file except in compliance with the License.
--   You may obtain a copy of the License at
--
--     http://www.apache.org/licenses/LICENSE-2.0
--
--   Unless required by applicable law or agreed to in writing,
--   software distributed under the License is distributed on an "AS
--   IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
--   express or implied.  See the License for the specific language
--   governing permissions and limitations under the License.
--

local userId = ARGV[1]
local network = ARGV[2]
local oldNick = ARGV[3]
local newNick = ARGV[4]

userId = redis.call('HGET', 'index:ircuser', network .. ':' .. string.lower(oldNick))

if userId then
    redis.call('HDEL', 'index:ircuser', network .. ':' .. string.lower(oldNick))
    redis.call('HSET', 'ircuser:' .. userId, 'nick', newNick)
    redis.call('HSET', 'index:ircuser', network .. ':' .. string.lower(newNick), userId)
end

return userId

Use lua only to track irc users
Use lua only to track irc users
