feat: Add messagelogger module.
This commit is contained in:
7
.gitmodules
vendored
7
.gitmodules
vendored
@@ -1,6 +1,9 @@
|
|||||||
[submodule "src/modules/voicefix"]
|
[submodule "src/modules/voicefix"]
|
||||||
path = src/modules/voicefix
|
path = src/modules/voicefix
|
||||||
url = git@github.com:Intery/StudyLion-voicefix.git
|
url = https://github.com/Intery/StudyLion-voicefix.git
|
||||||
[submodule "src/modules/streamalerts"]
|
[submodule "src/modules/streamalerts"]
|
||||||
path = src/modules/streamalerts
|
path = src/modules/streamalerts
|
||||||
url = git@github.com:Intery/StudyLion-streamalerts.git
|
url = https://github.com/Intery/StudyLion-streamalerts.git
|
||||||
|
[submodule "src/modules/messagelogger"]
|
||||||
|
path = src/modules/messagelogger
|
||||||
|
url = https://git.thewisewolf.dev/HoloTech/discord-messagelogger-plugin.git
|
||||||
|
|||||||
@@ -50,56 +50,59 @@ CREATE TABLE channel_links(
|
|||||||
PRIMARY KEY (linkid, channelid)
|
PRIMARY KEY (linkid, channelid)
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
-- }}}
|
-- }}}
|
||||||
|
|
||||||
-- Stream Alerts {{{
|
-- Message Logging {{{
|
||||||
|
|
||||||
-- DROP TABLE IF EXISTS stream_alerts;
|
CREATE TABLE logging_guilds(
|
||||||
-- DROP TABLE IF EXISTS streams;
|
guildid BIGINT PRIMARY KEY,
|
||||||
-- DROP TABLE IF EXISTS alert_channels;
|
webhook_url TEXT,
|
||||||
-- DROP TABLE IF EXISTS streamers;
|
created_at TIMESTAMPTZ DEFAULT NOW(),
|
||||||
|
_timestamp TIMESTAMPTZ DEFAULT NOW()
|
||||||
CREATE TABLE streamers(
|
|
||||||
userid BIGINT PRIMARY KEY,
|
|
||||||
login_name TEXT NOT NULL,
|
|
||||||
display_name TEXT NOT NULL
|
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE alert_channels(
|
CREATE TRIGGER logging_guilds_timestamp BEFORE UPDATE ON logging_guilds
|
||||||
subscriptionid SERIAL PRIMARY KEY,
|
FOR EACH ROW EXECUTE FUNCTION update_timestamp_column();
|
||||||
guildid BIGINT NOT NULL,
|
|
||||||
|
|
||||||
|
CREATE TABLE logged_messages(
|
||||||
|
messageid BIGINT PRIMARY KEY,
|
||||||
|
guildid BIGINT NOT NULL REFERENCES logging_guilds ON DELETE CASCADE,
|
||||||
channelid BIGINT NOT NULL,
|
channelid BIGINT NOT NULL,
|
||||||
streamerid BIGINT NOT NULL REFERENCES streamers (userid) ON DELETE CASCADE,
|
userid BIGINT NOT NULL,
|
||||||
created_by BIGINT NOT NULL,
|
created_at TIMESTAMPTZ NOT NULL,
|
||||||
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
deleted_at TIMESTAMPTZ,
|
||||||
paused BOOLEAN NOT NULL DEFAULT FALSE,
|
_timestamp TIMESTAMPTZ DEFAULT NOW()
|
||||||
end_delete BOOLEAN NOT NULL DEFAULT FALSE,
|
|
||||||
live_message TEXT,
|
|
||||||
end_message TEXT
|
|
||||||
);
|
|
||||||
CREATE INDEX alert_channels_guilds ON alert_channels (guildid);
|
|
||||||
CREATE UNIQUE INDEX alert_channels_channelid_streamerid ON alert_channels (channelid, streamerid);
|
|
||||||
|
|
||||||
CREATE TABLE streams(
|
|
||||||
streamid SERIAL PRIMARY KEY,
|
|
||||||
streamerid BIGINT NOT NULL REFERENCES streamers (userid) ON DELETE CASCADE,
|
|
||||||
start_at TIMESTAMPTZ NOT NULL,
|
|
||||||
twitch_stream_id BIGINT,
|
|
||||||
game_name TEXT,
|
|
||||||
title TEXT,
|
|
||||||
end_at TIMESTAMPTZ
|
|
||||||
);
|
);
|
||||||
|
|
||||||
CREATE TABLE stream_alerts(
|
CREATE TRIGGER logged_messages_timestamp BEFORE UPDATE ON logged_messages
|
||||||
alertid SERIAL PRIMARY KEY,
|
FOR EACH ROW EXECUTE FUNCTION update_timestamp_column();
|
||||||
streamid INTEGER NOT NULL REFERENCES streams (streamid) ON DELETE CASCADE,
|
|
||||||
subscriptionid INTEGER NOT NULL REFERENCES alert_channels (subscriptionid) ON DELETE CASCADE,
|
CREATE TABLE message_states(
|
||||||
sent_at TIMESTAMPTZ NOT NULL,
|
stateid INTEGER PRIMARY KEY GENERATED ALWAYS AS IDENTITY,
|
||||||
messageid BIGINT NOT NULL,
|
messageid BIGINT NOT NULL REFERENCES logged_messages ON DELETE CASCADE,
|
||||||
resolved_at TIMESTAMPTZ
|
content TEXT NOT NULL,
|
||||||
|
embeds_raw TEXT,
|
||||||
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||||
|
);
|
||||||
|
CREATE INDEX message_states_messageid ON message_states (messageid);
|
||||||
|
|
||||||
|
CREATE TABLE logged_attachments(
|
||||||
|
attachment_id BIGINT PRIMARY KEY,
|
||||||
|
proxy_url TEXT NOT NULL,
|
||||||
|
url TEXT NOT NULL,
|
||||||
|
content_type TEXT NOT NULL,
|
||||||
|
filesize INTEGER NOT NULL,
|
||||||
|
filename TEXT NOT NULL,
|
||||||
|
permalink TEXT,
|
||||||
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||||||
);
|
);
|
||||||
|
|
||||||
|
CREATE TABLE logged_messages_attachments(
|
||||||
|
stateid INTEGER NOT NULL REFERENCES message_states(stateid) ON DELETE CASCADE,
|
||||||
|
attachment_id BIGINT NOT NULL REFERENCES logged_attachments(attachment_id) ON DELETE CASCADE
|
||||||
|
);
|
||||||
|
CREATE INDEX logged_messages_attachments_stateid ON logged_messages_attachments (stateid);
|
||||||
|
|
||||||
-- }}}
|
-- }}}
|
||||||
|
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
aiohttp==3.7.4.post0
|
aiohttp
|
||||||
cachetools==4.2.2
|
cachetools
|
||||||
configparser==5.0.2
|
configparser
|
||||||
discord.py [voice]
|
discord.py [voice]
|
||||||
iso8601==0.1.16
|
iso8601
|
||||||
psycopg[pool]
|
psycopg[pool]
|
||||||
pytz==2021.1
|
pytz
|
||||||
twitchAPI
|
twitchAPI
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ async def main():
|
|||||||
intents = discord.Intents.all()
|
intents = discord.Intents.all()
|
||||||
intents.members = True
|
intents.members = True
|
||||||
intents.message_content = True
|
intents.message_content = True
|
||||||
intents.presences = False
|
intents.presences = True
|
||||||
|
|
||||||
async with db.open():
|
async with db.open():
|
||||||
version = await db.version()
|
version = await db.version()
|
||||||
|
|||||||
@@ -3,6 +3,7 @@ this_package = 'modules'
|
|||||||
active = [
|
active = [
|
||||||
'.sysadmin',
|
'.sysadmin',
|
||||||
'.voicefix',
|
'.voicefix',
|
||||||
|
'.messagelogger',
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
1
src/modules/messagelogger
Submodule
1
src/modules/messagelogger
Submodule
Submodule src/modules/messagelogger added at 0f7f0582d3
Reference in New Issue
Block a user