From 6c002985fddc923f57774c0ca5e7ddd36c629fdc Mon Sep 17 00:00:00 2001 From: ilotterytea Date: Wed, 2 Jul 2025 03:35:19 +0500 Subject: feat: new migrations --- luamods/cmd.lua | 28 ++++++++++++++++++---------- luamods/event.lua | 39 ++++++++++++++++----------------------- luamods/notify.lua | 10 +++++----- 3 files changed, 39 insertions(+), 38 deletions(-) (limited to 'luamods') diff --git a/luamods/cmd.lua b/luamods/cmd.lua index dca7913..4826f5a 100644 --- a/luamods/cmd.lua +++ b/luamods/cmd.lua @@ -154,7 +154,7 @@ The `!cmd` command gives the ability to create their own chat commands. table.remove(parts, 1) local cmds = db_query( - 'SELECT id, name, array_to_json(aliases) as aliases, message FROM custom_commands WHERE name = $1 AND channel_id = $2', + 'SELECT id, name, message FROM custom_commands WHERE name = $1 AND channel_id = $2', { name, request.channel.id }) if scid == "new" then @@ -222,11 +222,11 @@ The `!cmd` command gives the ability to create their own chat commands. local new_alias = parts[1] - local cmd_alias = db_query('SELECT name FROM custom_commands WHERE $1 = ANY(aliases) AND channel_id = $2', - { new_alias, request.channel.id }) + local cmd_alias = db_query('SELECT name FROM custom_command_aliases WHERE name = $1 AND command_id = $2', + { new_alias, cmd.id }) if #cmd_alias > 0 then - return l10n_custom_formatted_line_request(request, lines, "namesake_alias", { cmd_alias[1].name }) + return l10n_custom_formatted_line_request(request, lines, "namesake_alias", { new_alias }) end local internal_commands = bot_get_loaded_command_names() @@ -234,7 +234,7 @@ The `!cmd` command gives the ability to create their own chat commands. return l10n_custom_formatted_line_request(request, lines, "namesake", {}) end - db_execute('UPDATE custom_commands SET aliases = array_append(aliases, $1) WHERE id = $2', + db_execute('INSERT INTO custom_command_aliases(name, command_id) VALUES ($1, $2)', { new_alias, cmd.id }) return l10n_custom_formatted_line_request(request, lines, "alias_command", { new_alias, name }) @@ -245,19 +245,27 @@ The `!cmd` command gives the ability to create their own chat commands. local old_alias = parts[1] - local cmd_alias = db_query('SELECT name FROM custom_commands WHERE $1 = ANY(aliases) AND channel_id = $2', - { old_alias, request.channel.id }) + local cmd_alias = db_query('SELECT id FROM custom_command_aliases WHERE name = $1 AND command_id = $2', + { old_alias, cmd.id }) if #cmd_alias == 0 then return l10n_custom_formatted_line_request(request, lines, "no_cmd_alias", { old_alias }) end - db_execute('UPDATE custom_commands SET aliases = array_remove(aliases, $1) WHERE id = $2', - { old_alias, cmd.id }) + db_execute('DELETE FROM custom_command_aliases WHERE id = $1', + { cmd_alias[1].id }) return l10n_custom_formatted_line_request(request, lines, "delalias_command", { old_alias, name }) elseif scid == "view" then - local aliases = json_parse(cmd.aliases) + local aliases_db = db_query('SELECT name FROM custom_command_aliases WHERE command_id = $1', + { cmd.id }) + + local aliases = {} + + for i = 1, #aliases_db, 1 do + table.insert(aliases, aliases_db[i].name) + end + local aliases_str = table.concat(aliases, ', ') if #aliases_str == 0 then diff --git a/luamods/event.lua b/luamods/event.lua index c739fa0..71d199c 100644 --- a/luamods/event.lua +++ b/luamods/event.lua @@ -56,9 +56,9 @@ local lines = { ["off"] = "{sender.alias_name}: Successfully deleted event %s", ["edit"] = "{sender.alias_name}: Edited a message for event %s", ["settarget"] = "{sender.alias_name}: Changed event target from %s to %s", - ["flag_disabled"] = "{sender.alias_name}: Flag %s has been disabled for event %s", - ["flag_enabled"] = "{sender.alias_name}: Flag %s has been enabled for event %s", - ["view"] = "{sender.alias_name}: ID %s | %s | %s subs | Flags: %s | %s" + ["massping_disabled"] = "{sender.alias_name}: Massping has been disabled for event %s", + ["massping_enabled"] = "{sender.alias_name}: Massping has been enabled for event %s", + ["view"] = "{sender.alias_name}: ID %s | %s | %s subs | Massping: %s | %s" }, russian = { ["no_subcommand"] = @@ -262,7 +262,7 @@ Here are some basic examples to inspire you: end local events = db_query( - 'SELECT id, message, array_to_json(flags) as flags FROM events WHERE name = $1 AND event_type = $2', + 'SELECT id, message, is_massping FROM events WHERE name = $1 AND event_type = $2', { data_name, data.type }) if scid == "on" then @@ -332,26 +332,23 @@ Here are some basic examples to inspire you: return l10n_custom_formatted_line_request(request, lines, "settarget", { data_original, new_data_original }) elseif scid == "setmassping" then - local flags = json_parse(event.flags) - local line_id = "" local query = "" - if array_contains_int(flags, 0) then - line_id = "flag_disabled" - query = "UPDATE events SET flags = array_remove(flags, $1) WHERE id = $2" + if event.is_massping == "1" then + line_id = "massping_disabled" + query = "UPDATE events SET is_massping = 0 WHERE id = $1" else - line_id = "flag_enabled" - query = "UPDATE events SET flags = array_append(flags, $1) WHERE id = $2" + line_id = "massping_enabled" + query = "UPDATE events SET is_massping = 1 WHERE id = $1" end - db_execute(query, { 0, event.id }) + db_execute(query, { event.id }) - return l10n_custom_formatted_line_request(request, lines, line_id, { event_flag_to_str(0), data_original }) + return l10n_custom_formatted_line_request(request, lines, line_id, { data_original }) elseif scid == "call" then - local flags = json_parse(event.flags) local names = {} - if array_contains_int(flags, 0) then + if event.is_massping == "1" then local chatters = twitch_get_chatters() for i = 1, #chatters, 1 do table.insert(names, chatters[i].login) @@ -382,17 +379,13 @@ INNER JOIN events e ON e.id = es.event_id WHERE e.id = $1 ]], { event.id }) - local f = json_parse(event.flags) - local flags = {} - for i = 1, #f, 1 do - table.insert(flags, event_type_to_str(f[i])) - end - if #flags == 0 then - table.insert(flags, '-') + local massping_flag = "OFF" + if event.is_massping == "1" then + massping_flag = "ON" end return l10n_custom_formatted_line_request(request, lines, "view", - { event.id, data_original, subscription_count[1].count, table.concat(flags, ', '), event.message }) + { event.id, data_original, subscription_count[1].count, massping_flag, event.message }) end end } diff --git a/luamods/notify.lua b/luamods/notify.lua index eb02af2..26540e7 100644 --- a/luamods/notify.lua +++ b/luamods/notify.lua @@ -50,7 +50,7 @@ local lines = { ["namesake"] = "{sender.alias_name}: You have already subscribed to this event.", ["list"] = "{sender.alias_name}: You can use '{channel.prefix}event list' to find out which events you can subscribe to.", - ["subs"] = "{sender.alias_name}: %s", + ["subs"] = "{sender.alias_name}: Your subscriptions: %s", ["empty_subs"] = "{sender.alias_name}: You do not have any event subscriptions in this channel.", ["sub"] = "{sender.alias_name}: You have successfully subscribed to event %s", @@ -69,7 +69,7 @@ local lines = { ["namesake"] = "{sender.alias_name}: Такое же событие уже существует.", ["list"] = "{sender.alias_name}: Вы можете использовать '{channel.prefix}event list', чтобы узнать на какие события Вы можете подписаться.", - ["subs"] = "{sender.alias_name}: %s", + ["subs"] = "{sender.alias_name}: Ваши подписки: %s", ["empty_subs"] = "{sender.alias_name}: Вы не подписаны на какие-либо события в этом канале.", ["sub"] = "{sender.alias_name}: Вы успешно подписались на событие %s", @@ -197,10 +197,10 @@ WHERE e.channel_id = $1 AND es.user_id = $2 local events = db_query([[ SELECT e.id, es.id AS sub_id FROM events e -LEFT JOIN event_subscriptions es ON es.event_id = e.id AND es.user_id = $3 -WHERE e.name = $1 AND e.event_type = $2 +LEFT JOIN event_subscriptions es ON es.event_id = e.id AND es.user_id = $1 +WHERE e.name = $2 AND e.event_type = $3 ]], - { data_name, data.type, request.sender.id }) + { request.sender.id, data_name, data.type }) if #events == 0 then return l10n_custom_formatted_line_request(request, lines, "not_found", { data_original }) -- cgit v1.2.3