From 3d488ee373f3d2674913f7a0e756d3d08b9bd723 Mon Sep 17 00:00:00 2001 From: lyx0 Date: Fri, 8 Sep 2023 03:55:00 +0200 Subject: [PATCH] add migrations --- .../000001_create_channels_table.down.sql | 1 + .../000001_create_channels_table.up.sql | 13 ++++++ migrations/000002_create_users_table.down.sql | 1 + migrations/000002_create_users_table.up.sql | 16 +++++++ .../000003_create_commands_table.down.sql | 1 + .../000003_create_commands_table.up.sql | 39 +++++++++++++++++ .../000004_create_timers_table.down.sql | 1 + migrations/000004_create_timers_table.up.sql | 17 ++++++++ migrations/README.md | 43 +++++++++++++++++++ 9 files changed, 132 insertions(+) create mode 100644 migrations/000001_create_channels_table.down.sql create mode 100644 migrations/000001_create_channels_table.up.sql create mode 100644 migrations/000002_create_users_table.down.sql create mode 100644 migrations/000002_create_users_table.up.sql create mode 100644 migrations/000003_create_commands_table.down.sql create mode 100644 migrations/000003_create_commands_table.up.sql create mode 100644 migrations/000004_create_timers_table.down.sql create mode 100644 migrations/000004_create_timers_table.up.sql create mode 100644 migrations/README.md diff --git a/migrations/000001_create_channels_table.down.sql b/migrations/000001_create_channels_table.down.sql new file mode 100644 index 0000000..1d2529d --- /dev/null +++ b/migrations/000001_create_channels_table.down.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS channels; diff --git a/migrations/000001_create_channels_table.up.sql b/migrations/000001_create_channels_table.up.sql new file mode 100644 index 0000000..d0448bf --- /dev/null +++ b/migrations/000001_create_channels_table.up.sql @@ -0,0 +1,13 @@ +CREATE TABLE IF NOT EXISTS channels ( + id bigserial PRIMARY KEY, + added_at timestamp(0) with time zone NOT NULL DEFAULT NOW(), + login text UNIQUE NOT NULL, + twitchid text NOT NULL +); + +INSERT INTO channels (added_at,login,twitchid) VALUES + (NOW(),'nourylul','31437432'), + (NOW(),'nourybot','596581605'), + (NOW(),'uudelleenkytkeytynyt','465178364'), + (NOW(),'xnoury','197780373'); + diff --git a/migrations/000002_create_users_table.down.sql b/migrations/000002_create_users_table.down.sql new file mode 100644 index 0000000..c99ddcd --- /dev/null +++ b/migrations/000002_create_users_table.down.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS users; diff --git a/migrations/000002_create_users_table.up.sql b/migrations/000002_create_users_table.up.sql new file mode 100644 index 0000000..84beeb7 --- /dev/null +++ b/migrations/000002_create_users_table.up.sql @@ -0,0 +1,16 @@ +CREATE TABLE IF NOT EXISTS users ( + id bigserial PRIMARY KEY, + added_at timestamp(0) with time zone NOT NULL DEFAULT NOW(), + login text UNIQUE NOT NULL, + twitchid text NOT NULL, + level integer, + location text, + lastfm_username text +); + +INSERT INTO users (added_at,login,twitchid,"level",location,lastfm_username) VALUES + (NOW(),'nourylul','31437432',1000,'vilnius','nouryqt'), + (NOW(),'nourybot','596581605',1000,'',''), + (NOW(),'uudelleenkytkeytynyt','465178364',1000,'',''), + (NOW(),'xnoury','197780373',500,'',''), + (NOW(),'noemience','135447564',500,'',''); diff --git a/migrations/000003_create_commands_table.down.sql b/migrations/000003_create_commands_table.down.sql new file mode 100644 index 0000000..fe4f497 --- /dev/null +++ b/migrations/000003_create_commands_table.down.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS commands; diff --git a/migrations/000003_create_commands_table.up.sql b/migrations/000003_create_commands_table.up.sql new file mode 100644 index 0000000..a375395 --- /dev/null +++ b/migrations/000003_create_commands_table.up.sql @@ -0,0 +1,39 @@ +CREATE TABLE IF NOT EXISTS commands ( + id bigserial PRIMARY KEY, + name text UNIQUE NOT NULL, + text text NOT NULL, + category text NOT NULL, + level integer NOT NULL, + help text NOT NULL +); + +INSERT INTO commands (name,"text","category","level","help") VALUES + ('repeat','xset r rate 175 50','default',0,'Command to set my keyboard repeat rate'), + ('xset','xset r rate 175 50','default',0,'Command to set my keyboard repeat rate'), + ('eurkey','setxkbmap -layout eu','default',0,'Command to enable the EURKey keyboard layout'), + ('clueless','ch02 ch21 ch31','default',0,'Clueless'), + ('justinfan','64537','default',0,'pajaDink :tf:'), + ('kek','lmao','default',0,'kek'), + ('lmao','kek','default',0,'lmao'), + ('streamlink','https://haste.zneix.eu/udajirixep put this in ~/.config/streamlink/config on Linux (or %appdata%\streamlink\streamlinkrc on Windows)','default',0,'Returns a optimized streamlink config for Twitch.'), + ('gyazo','Gyazo is the worst screenshot uploader in human history. At best, it’s inconvenient, slow, and missing features: at worst, it’s a bandwidth-draining malware risk for everyone who views your images. There is absolutely no reason to use it unless you’re too lazy to spend 5 minutes installing another program.','pasta',250,'Dumb copy pasta about gyazo being garbage.'), + ('arch','Your friend isnt wrong. Being on the actual latest up to date software, having a single unified community repository for out of repo software (AUR) instead of a bunch of scattered broken PPAs for extra software, not having so many hard dependencies that removing GNOME removes basic system utilities, broader customization support and other things is indeed, pretty nice.','pasta',250,'Copy pasta about arch having the superior package manager.'), + ('arch2','One time I was ordering coffee and suddenly realised the barista didnt know I use Arch. Needless to say, I stopped mid-order to inform her that I do indeed use Arch. I must have spoken louder than I intended because the whole café instantly erupted into a prolonged applause. I walked outside with my head held high. I never did finish my order that day, but just knowing that everyone around me was aware that I use Arch was more energising than a simple cup of coffee could ever be.','pasta',250,'Copy pasta about arch linux users.'), + ('feelsdankman','⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⢀⣾⣿⣿⣿⣿⣷⣄⠹⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⠟⢁⣴⣿⣿⣿⣿⣿⣿⣿⣿⣦⡈⢻⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⡿⠁⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠙⢿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⡿⠃⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⡈⢻⣿⣿⣿⣿ ⣿⣿⣿⣿⡿⢁⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠹⣿⣿⣿ ⣿⣿⣿⣿⠁⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⠿⠿⠿⠿⠆⠘⢿⣿ ⣿⣿⠟⠉⠄⠄⠄⠄⢤⣀⣦⣤⣤⣤⣤⣀⣀⡀⠄⠄⡀⠄⠄⠄⠄⠄⠄⠄⠙ ⣿⠃⠄⠄⠄⠄⠄⠄⠙⠿⣿⣿⠋⠩⠉⠉⢹⣿⣧⣤⣴⣶⣷⣿⠟⠛⠛⣿⣷ ⠇⠄⠄⠄⠄⠄⠄⠄⠄⠄⠁⠒⠄⠄⠄⠄⠈⠉⠛⢻⣿⣿⢿⠁⠄⠄⠁⠘⢁ ⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⣂⣀⣐⣂⣐⣒⣃⠠⠥⠤⠴⠶⠖⠦⠤⠖⢂⣽ ⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠛⠂⠐⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⣠⣴⣶⣿⣿ ⠃⣠⣄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⣠⣤⣄⠚⢿⣿⣿⣿⣿ ⣾⣿⣿⣿⣶⣦⣤⣤⣄⣀⣀⣀⣀⣀⣀⣠⣤⣤⣶⣿⣿⣿⣿⣷⡄⢻⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠈⣿⣿⣿','ascii',500,'Posts a FeelsDankMan ascii'), + ('dankhug','⣼⣿⣿⣿⣷⡄⠀⠀⠀⠀⠀⠀⠀⠀⢀⣤⣾⣿⣿⣿⣿⣿⣄⠀⠀⠀⠀⠀⠀ ⣿⣿⣿⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⢠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣧⠀⠀⠀⠀⠀ ⣿⣿⣿⣿⣿⣿⣿⣧⡀⠀⠀⠀⣠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀⠀⠀ ⣿⣿⣿⣿⣿⣿⣿⣿⣷⡄⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⠀⠀ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣄⠺⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠿⠟⠛⠛⠀⠀ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠆⠒⠀⠀⠶⢶⣶⣶⣭⣤⠹⠟⣛⢉⣉⣉⣀⣀ ⣿⣿⣾⣿⣶⣶⣶⣶⣶⣶⣿⣿⣶⠀⢬⣒⣂⡀⠀⠀⠀⠀⣈⣉⣉⣉⣉⡉⠅ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡄⢭⣭⠭⠭⠉⠠⣷⣆⣂⣐⣐⣒⣒⡈ ⢿⣿⣿⣿⠋⢁⣄⡈⠉⠛⠛⠻⡿⠟⢠⡻⣿⣿⣛⣛⡋⠉⣀⠤⣚⠙⠛⠉⠁ ⠀⠙⠛⠛⠀⠘⠛⠛⠛⠛⠋⠀⠨⠀⠀⠀⠒⠒⠒⠒⠒⠒⠒⠊⡀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⠰⣾⣿⣿⣷⣦⠀⠀⠀⠀⠀⠀⠀⢀⣠⠴⢊⣭⣦⡀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⣠⣌⠻⣿⣿⣷⣞⣠⣖⣠⣶⣴⣶⣶⣶⣾⣿⣿⣿⣿⡀⠀ ⠀⢀⣀⣀⣠⣴⣾⣿⣿⣷⣌⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⢻⣿⣷⡁ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢻⣶⣬⣭⣉⣛⠛⠛⢛⣛⣉⣭⣴⣾⣿⣿⣿⡇','ascii',500,'Posts a dankHug ascii'), + ('shotgun','⡏⠛⢿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣧⣀⡀⠄⠹⠟⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣧⠄⢈⡄⣄⠄⠙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⠄⢸⣧⠘⢹⣦⣄⠈⠛⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⠄⢸⣿⡇⢸⣿⣿⣿⣶⣄⠉⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⠄⢸⣿⣷⠄⣿⣿⣿⣿⣿⣷⣦⡈⣙⠟⠉⠉⠙⠋⠉⠹⣿⣿ ⣿⣿⣿⠄⢸⣿⣿⡄⠸⣿⣿⣿⣿⣿⣿⡿⠃⠄⠄⣀⠄⢠⣀⠄⡨⣹ ⣿⣿⣿⠄⢸⣿⣿⣇⠄⠹⣿⣿⣿⣿⣿⠁⠄⠄⠄⠈⠄⠄⠄⠄⠠⣾ ⣿⣿⣿⠄⠈⣿⣿⣿⣆⠄⠈⠛⠿⣿⣿⠄⠄⠄⠄⠄⠄⠄⠄⠄⢀⣿ ⣿⣿⣿⠄⠄⣿⣿⣿⣿⣦⣀⠄⠄⠈⠉⠄⠄⠄⠄⠄⠄⠄⠤⣶⣿⣿ ⣿⣿⣿⠄⠄⢻⣿⣿⣿⣿⣿⠷⠂⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠘⣿⣿ ⣿⣿⣿⣇⠄⠈⠻⣿⣿⠟⠁⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⢸⣿ ⣿⣿⣿⣿⣦⠄⠄⠈⠋⠄⠄⣠⣄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⣼⣿','ascii',500,'Posts an ascii of pepe sucking on a shotgun.'), + ('rope','⣿⣿⣿⡇⠄⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⡇⠄⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⡇⠄⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⡇⠄⣿⣿⣿⡿⠟⠋⣉⣉⣉⡙⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⠃⠄⠹⠟⣡⣶⡿⢟⣛⣛⡻⢿⣦⣩⣤⣤⣤⣬⡉⢻⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⠄⢀⢤⣾⣿⣿⣿⣿⡿⠿⠿⠿⢮⡃⣛⣛⡻⠿⢿⠈⣿⣿⣿⣿⣿⣿⣿ ⣿⡟⢡⣴⣯⣿⣿⣿⣉⠤⣤⣭⣶⣶⣶⣮⣔⡈⠛⠛⠛⢓⠦⠈⢻⣿⣿⣿⣿⣿ ⠏⣠⣿⣿⣿⣿⣿⣿⣿⣯⡪⢛⠿⢿⣿⣿⣿⡿⣼⣿⣿⣿⣶⣮⣄⠙⣿⣿⣿⣿ ⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣾⡭⠴⣶⣶⣽⣽⣛⡿⠿⠿⠿⠿⠇⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣝⣛⢛⡛⢋⣥⣴⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⢿⠱⣿⣿⣛⠾⣭⣛⡿⢿⣿⣿⣿⣿⣿⣿⣿⡀⣿⣿⣿⣿⣿⣿⣿ ⠑⠽⡻⢿⣿⣮⣽⣷⣶⣯⣽⣳⠮⣽⣟⣲⠯⢭⣿⣛⣛⣿⡇⢸⣿⣿⣿⣿⣿⣿ ⠄⠄⠈⠑⠊⠉⠟⣻⠿⣿⣿⣿⣿⣷⣾⣭⣿⣛⠷⠶⠶⠂⣴⣿⣿⣿⣿⣿⣿⣿ ⠄⠄⠄⠄⠄⠄⠄⠄⠁⠙⠒⠙⠯⠍⠙⢉⣉⣡⣶⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿','ascii',500,'Posts an ascii of pepe roping out of desperation'), + ('porosad','⠀⠀⠀⠀⠀⠀⠀⠀⡀⠀⠀⢀⣠⣤⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠒⣛⠐⣠⣾⣿⣤⣾⣿⣿⣿⣿⣷⣠⣤⣤⢀⣀⣖⠒⠒⠀⠀⠀⠀⠀ ⠀⠀⠀⢀⣘⣘⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣯⣬⡕⠀⠀⠀⠀⣀⠠⠀⠀ ⠀⣠⣾⣿⣿⣿⣿⠿⠿⣿⣿⣿⠿⢿⣿⣿⣿⣿⣿⣿⣿⣷⣄⠀⠀⠀⠀⠀⠀ ⠐⢛⣿⡟⠋⢉⠉⠀⠔⣿⣿⣿⠆⠀⠩⡉⠙⢛⣿⠿⠿⠿⢛⣃⣀⡀⠀⠀⠀ ⠀⣾⣟⠁⢤⣀⣔⣤⣼⣿⣿⣿⣆⣀⠂⠴⣶⡁⠸⣿⣶⣾⣿⣿⣿⣿⠷⠂⠀ ⠀⣿⡿⡿⣧⣵⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣝⡛⣸⣿⣿⣿⣿⣿⣿⣷⡀⠀ ⠀⢿⢃⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⠸⣿⣿⣿⣿⣿⣿⣿⡇⠀ ⠀⠻⢸⣿⣿⣿⣿⣿⣿⠋⠻⣿⣿⡻⢿⣿⣿⣿⣿⡆⣿⣿⣿⠿⣿⠟⢿⡇⠀ ⠀⠠⣸⣿⣿⠟⣩⣈⣩⣴⣶⣌⣁⣄⡉⠻⣿⣿⣿⣧⢸⣿⣧⣬⣤⣤⣦⣤⠀ ⠀⠀⠸⢫⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣄⢻⡇⣼⣿⣿⣿⣿⣿⣿⡟⠀ ⠀⠀⠀⠈⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣧⣱⣿⣿⣿⣿⣿⣿⡟⠀⠀ ⠀⠀⠀⠀⠀⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⠀ ⠀⠀⠀⠀⠀⠈⠉⠉⠛⠛⠛⠛⠛⠛⠉⠉⠉⠛⠛⠉⠁⠀⠀⠈⠉⠁⠀⠀⠀ ','ascii',500,'Posts a PoroSad ascii.. Why is he always sad? PoroSad'), + ('toucan','░░░░░░░░▄▄▄▀▀▀▄▄███▄░░░░░░░░░░ ░░░░░▄▀▀░░░░░░░▐░▀██▌░░░░░░░░░ ░░░▄▀░░░░▄▄███░▌▀▀░▀█░░░░░░░░░ ░░▄█░░▄▀▀▒▒▒▒▒▄▐░░░░█▌░░░░░░░░ ░▐█▀▄▀▄▄▄▄▀▀▀▀▌░░░░░▐█▄░░░░░░░ ░▌▄▄▀▀░░░░░░░░▌░░░░▄███████▄░░ ░░░░░░░░░░░░░▐░░░░▐███████████ ░░░░░le░░░░░░░▐░░░░▐███████████ ░░░░toucan░░░░░░▀▄░░░▐██████████ ░░░░has arrived░░░░░░▀▄▄███████████','ascii',500,'le budget toucan has arrived <(*)'), + ('harrypottah','⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⠋⣉⣠⣤⣤⣴⣦⣤⡈⠛⢿⣿⣿⣿⣿ ⣿⣿⠋⢉⣉⣉⡉⠛⠛⠟⠉⣠⣄⣚⡛⠿⢿⣿⣿⣿⣿⡛⢿⣧⠄⢿⣿⣿⣿ .⣿⣿⣄⠘⢿⣿⣿⣿⣿⣶⣶⣦⣬⣍⣙⠛⢶⣾⣿⣿⣿⠇⠈⢻⠄⢸⣿⣿⣿ ⣿⣿⣿⣶⣄⣉⠛⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣟⡛⠂⠄⣦⣤⣾⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⠛⠒⠂⠄⠄⠈⣉⣉⣉⣙⣛⣛⠛⠿⠿⠷⣦⣄⡈⠛⢿⣿⣿ ⣿⣿⣿⣿⣿⣿⠄⠄⢀⣶⣿⣿⣿⣿⣿⣯⣿⣿⣿⣿⣷⣶⠄⢀⣈⠄⠄⣿⣿ ⣿⣿⣿⣿⣿⣿⠄⠄⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⢏⣴⣾⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⠄⢀⣾⣿⣿⣿⣿⣿⣿⡿⣿⣿⣿⣿⣧⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⠄⠄⠻⢿⣿⡟⠋⠉⡁⠄⢉⡢⠿⠿⣫⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⠄⠄⠄⠄⢻⣿⣦⣬⣉⣛⣿⠛⣠⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⠄⠄⠄⠄⠸⣿⣛⣻⣿⡟⠁⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⡟⢻⢻⡿⢻⡟⠛⢿⠛⠻⡟⠿⢻⣿⠛⠻⡿⠛⢿⠛⠛⠛⠛⢻⠛⣿⠛⡟⣿ ⡇⢈⢸⠇⠈⡇⠄⣸⠄⢀⣷⠄⣾⣿⠄⣀⡇⣶⢸⡇⢸⣿⢸⡿⠄⢹⠄⡁⣿ ⣧⣼⣼⣤⣧⣥⣤⣼⣤⣤⣿⣤⣿⣿⣤⣿⣧⣀⣼⣧⣼⣿⣼⣧⣼⣼⣤⣧⣿','ascii',500,'Posts forsens Harry potter ascii'), + ('borgir','⣿⣿⣿⣿⠄⠄⠄⠄⠄⠄⠄⠄⣀⡀⠄⠄⠄⣀⣀⡀⠄⠄⠄⠄⢹⣿⣿⣿⣿ ⣿⣿⣿⣿⠄⠄⠄⠄⢀⣴⣾⣿⣿⡿⠿⠾⣿⣿⣿⣿⣿⣦⡄⠄⠄⠉⠙⠛⢿ ⣿⣿⣿⡿⠑⠢⠄⢠⣿⣿⣿⣛⠻⠷⠦⠄⢈⣿⠋⠉⡉⠉⢡⠄⣤⣤⣤⠄⠘ ⣿⣿⣿⣷⠶⣤⣰⣾⣿⣿⣿⣿⣷⣶⣶⣾⣿⣿⣄⡉⠁⣠⡽⠈⠉⠉⠉⠄⣰ ⣿⣿⠟⠋⡞⠛⠋⢿⣿⣿⣿⣿⣿⣿⣷⣥⣍⣉⣹⣿⣿⣿⠁⣤⣤⣤⣴⣾⣿ ⠄⠞⠓⠂⠄⠂⠄⠄⠄⠈⠉⢛⣋⣀⣀⠄⠈⠉⠛⠻⣿⣿⣤⣾⡿⠏⠉⠈⣿ ⠄⠄⠄⠄⠄⢀⣤⣶⣶⣾⣿⣿⣿⣿⣿⣿⣿⣿⣦⠄⠄⠙⠓⠄⢛⣆⠄⠄⠈ ⠄⠄⠄⣤⣾⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠉⣠⣄⠄⠄⢠⣭⣭⣷⣤⣄ ⠄⠄⣸⣿⣿⣿⣿⣿⣿⣿⡿⠿⠟⠛⠋⠉⠄⠐⠚⠛⢉⠄⣴⣶⣾⡛⠿⣿⣿ ⢀⣾⣯⣉⣀⡀⠄⠄⠄⠄⠄⢀⣀⣀⣀⣠⡤⠴⠶⠾⣟⠹⠏⠛⠛⠛⠄⠙⠿ ⡿⠿⠿⠿⠿⠿⠿⣶⣦⣭⣭⣽⠏⠁⠄⠄⠄⠄⢤⣶⣶⡘⠚⠄⠄⠄⠄⠄⠄ ⣿⣿⠉⡙⠛⣿⡟⠛⠙⠻⣿⡏⢉⠛⢿⣿⠛⢋⠛⣿⣿⠉⣿⡏⢉⠛⢿⣿⣿ ⣿⣿⠄⣅⠐⣿⠄⢾⡿⠄⣿⡇⠈⠁⣼⡇⠰⣏⠉⣿⣿⠄⣿⡇⠈⠁⣼⣿⣿ ⣿⣿⣤⣥⣤⣿⣧⣤⣤⣼⣿⣧⣼⣤⣼⣿⣤⣬⣤⣿⣿⣤⣿⣧⣼⣤⣼⣿⣿','ascii',500,'Posts a Borgir ascii'), + ('dankwave','FeelsDankMan PowerUpR DANK WAVE▂▃▄▅▆▇██▇▆▅▄▃▂▂▃▄▅▆▇██▇▆▅▄▃▂▂▃▄▅▆▇██▇▆▅▄▃▂▂▃▄▅▆▇██▇▆▅▄▃▂▂▃▄▅▆▇██▇▆▅▄▃▂','ascii',500,'dank wave coming through'), + ('forsenhead','⠄⠄⠄⠄⠄⠄⢠⣤⣀⣤⣤⣴⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡀⠄ ⠄⠄⠄⠄⠄⠔⣺⣿⣿⣿⣿⣿⢿⡉⠁⠉⠉⠛⢿⣿⣿⣿⣿⣿⣿⣿⡷⡀ ⠄⠄⠄⠄⣀⣶⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣶⣷⣿⣿⣿⣿⣿⠟⠛⡇⣥ ⠄⠄⠄⠄⣿⣿⣿⣿⣿⣿⣟⠝⠻⠿⣿⣿⣟⣹⣿⣿⣿⣿⣿⣿⣿⣶⣿⣿ ⠄⠄⠄⣰⣻⣿⣿⣿⣿⣿⣿⣿⣷⣶⣶⣶⣿⣿⢿⣸⣿⡟⠿⣿⣿⣿⣿⣿ ⠄⠄⠄⢼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣫⣾⣿⣿⣿⣷⣬⣿⣿⣿⣿ ⠄⠄⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⢩⣽⣿⣹⣿⣿⣿⣿⣿⣿⣿⣿ ⠄⠄⢿⣿⣿⣿⣿⣿⣿⣿⡿⠿⠿⠿⠛⠄⠩⠛⠛⠿⢿⣿⣿⣿⣿⣿⣿⣿ ⠄⠄⠄⠙⠻⢟⣿⣿⡿⠉⠄⠄⠄⠄⠄⠄⠄⠄⠄⠴⠞⢻⣿⣿⣿⣿⣿⣿ ⠄⠄⠄⠄⠄⠙⠿⠟⠄⠄⠄⠄⢠⣤⣤⣠⣠⣄⡂⠄⢀⣼⣿⣿⣿⣿⣿⣿ ⠄⠄⠄⠄⠄⠄⠄⠄⣾⣧⡀⢀⡀⠈⠉⠻⢿⡟⠁⣷⣿⣿⣿⣿⣿⣿⣿⣿ ⠄⠄⠄⠄⠄⠄⠄⠄⣿⢿⢿⣿⣷⣶⣶⣤⣿⢡⣷⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠄⠄⠄⠄⠄⠄⠄⢰⣿⠄⠙⠿⣿⣿⣿⣿⠄⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⠄⠄⠄⠄⠄⠄⠄⠄⠙⠄⠄⠄⠄⠄⡻⠇⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿','ascii',500,'Posts a forsenHead ascii'), + ('hewillnever','⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣏⡛⢿⣿⣿⣿⣿⣿⣿⡙⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣦⣉⠻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣯⣍⣙⡛⠿⠿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣶⣶⣬⣿⣿⣿⡿⠛⠛⠛⣛⣋⣙⠛⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠃⠰⢾⣶⣧⣴⢦⣌⣶⣦⠘⣿⣿⣿⣿⣿⣿⣿ ⠿⠿⠿⠿⠿⠿⢻⣿⣯⠄⠠⠶⠆⢸⠋⠠⣦⠄⢹⣿⣿⠄⣿⣿⣿⣿⣿⣿⣿ ⣾⣿⣿⣿⣿⣿⣿⣿⡟⢠⣶⣶⣶⣿⣶⣬⣉⣀⠾⢿⣿⡄⠛⠛⠻⢿⣿⣿⣿ ⣿⢿⣿⣿⠛⠿⠿⠉⠁⠘⠻⠯⠄⢹⣛⣿⣟⣩⣷⣦⢹⡇⣸⣷⠄⠄⣀⠙⠛ ⢓⣚⡃⣩⣭⠄⣀⣀⢀⠄⠄⢐⠙⠊⣿⣶⣒⣿⡟⢋⡼⢁⣿⣿⠄⠄⠘⠗⠄ ⢚⣛⣫⣿⣽⣿⣽⠗⢺⢖⣴⣄⡙⠛⠛⠛⠛⠛⢛⣉⣤⣾⣿⣿⠄⢸⡄⠸⣿ ⣿⣿⣯⣟⣛⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠄⠸⣷⠄⠻ ⣿⣟⣷⣿⣿⠷⠾⠿⠿⠿⠿⠿⠟⠛⠛⠛⠛⠻⠿⠛⠋⠉⠉⠁⠄⠄⠁⠄⠄ ⢉⣁⣠⣤⣤⣤⣶⣶⣶⣶⣶⣶⣶⣶⣶⣶⡶⠒⠄⠄⢤⣀⣀⣀⣀⣀⠄⠄⠄','ascii',500,'Posts a he will never ascii'), + ('mylifeisgazatu','⠀⠀⠀⠀⠀⣠⣿⣿⣿⣆⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣼⣿⣿⣷⡀⠀⠀⠀⠀ ⠀⠀⠀⠀⣾⣿⣿⣿⣿⣿⣧⡀⠀⠀⠀⠀⠀⠀⢰⣿⣿⣿⣿⣿⣿⣄⠀⠀⠀ ⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣷⡀⠀⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀ ⠀⠀⠘⠛⣛⣛⣻⣿⡛⠛⠛⠉⠁⠀⠀⠀⠀⠛⢛⣛⣛⣿⣟⠛⠛⠋⠉⠀⠀ ⠀⠀⠀⠀⠙⠻⠉⠀⠹⢷⣶⡿⠉⠹⠇⠀⠀⠀⠈⠛⠏⠁⠈⠿⣶⣾⠏⠉⠿ ⠀⠀⠀⠀⠀⢠⡤⠤⠤⠀⠉⠒⠔⠂⠀⠀⠀⠀⠀⠀⣤⠤⠤⠀⠈⠑⠢⠒⠀ ⢠⣀⠀⠀⠀⠀⠀⠠⠀⢀⣠⣀⠀⠀⠀⣄⡀⠀⠀⠀⠀⠀⠀⠀⣀⣄⡀⠀⠀ ⣿⣿⣿⣿⣶⣶⣶⣶⣿⣿⣿⣿⡆⠀⢸⣿⣿⣿⣷⣶⣶⣶⣾⣿⣿⣿⣷⠀⠀ ⠀⣀⡀⠀⡀⠀⡀⢀⡀⠀⠀⢰⠀⢰⡆⢰⣞⠂⠀⡀⠀⠀⠀⣶⠀⠀⡀⠀⠀ ⠀⣿⢻⡟⣿⠀⢿⣸⠇⠀⠀⢸⠀⢸⡇⢸⡏⠀⣿⠽⠇⠀⠀⣿⠀⠾⣽⡁⠀ ⠀⠛⠘⠃⠛⠀⢸⡟⠀⠀⠀⠘⠂⠘⠃⠘⠃⠀⠛⠛⠃⠀⠀⠛⠀⠛⠚⠃⠀ ⠀⢠⣤⣦⡄⠀⢠⣶⡀⠀⠰⠶⣶⠆⠀⢰⣦⠀⠀⠶⣶⠶⠀⢰⡆⠀⣦⠀⠀ ⠀⣿⡱⢶⡆⠀⣾⣿⣧⠀⢀⣼⠋⠀⢀⣿⣿⡆⠀⠀⣿⠀⠀⢸⡇⢀⡿⠀⠀ ⠀⠘⠛⠛⠃⠘⠋⠀⠛⠀⠚⠓⠒⠂⠘⠃⠈⠛⠀⠀⠛⠀⠀⠈⠛⠛⠃⠀⠀','ascii',500,'Probably the worlds smolest ascii miniDank'), + ('ohno','⣿⣿⣿⠋⡡⢲⣶⣮⣙⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠛⢉⣠⣶⣿⠆⣿⣿ ⣿⣿⠇⡔⠄⣿⣿⣿⣿⣆⠟⡛⠋⠉⠉⢉⠍⣟⡩⡅⢀⣴⣿⣿⣿⡟⣼⣿⣿ ⡿⠋⠰⡧⡀⣿⣿⠿⠛⠉⠄⠄⣠⣴⣶⣶⣿⣿⣷⣦⣿⣿⣿⣿⡟⣾⣿⣿⣿ ⢁⠂⠄⣳⠇⠈⠁⠄⠄⠄⣠⣴⣶⣿⣿⢿⣿⣿⣿⣿⣿⣟⢹⡽⢸⣿⣿⣿⣿ ⠃⠄⠠⠿⠆⠄⠄⠄⠄⢀⣿⠟⢥⣾⡿⣿⣿⠿⢿⣿⣿⠿⡘⢷⡜⢿⣿⣿⣿ ⠄⠄⣤⣶⠆⠄⠄⠄⢀⣾⣿⣸⣽⣝⠁⣾⡹⡧⢿⣽⣿⣦⣄⠹⣿⣄⢻⣿⣿ ⠄⠄⣿⣿⠄⠄⠄⢀⣼⣿⡟⣿⣿⣿⡀⣿⣿⣷⢸⣿⣿⣿⣿⡷⠈⣿⡄⣿⣿ ⠄⠄⠈⠄⠄⢀⣴⣿⣿⣿⠇⠉⠄⠈⠱⣿⡿⣇⣼⡟⠉⠉⠉⢿⠄⣿⣷⢹⣿ ⠄⣠⣴⣦⣴⣿⣿⣿⣿⠏⡄⠄⠄⠄⠄⣿⣯⣡⣿⡅⠄⠄⣸⠏⢰⣿⣿⡆⣿ ⣿⣿⣿⣿⣿⣿⡿⠛⢑⣻⣿⣶⣶⣶⠂⠙⠛⠛⡟⠳⣶⣾⡟⠄⢸⣿⣿⡇⣿ ⣿⣿⣿⣿⣿⡏⠄⠄⠉⠛⠿⣿⠿⠋⢶⣤⠄⠄⢁⣴⣿⣿⠁⠄⣸⣿⣿⢃⣿ ⣿⣿⣿⣿⣿⣷⠄⠄⠄⡠⣞⢴⣾⣽⣽⣿⡿⠄⣾⣿⣿⠃⠄⠄⣿⣿⣿⢸⣿ ⣿⣿⣿⡿⠟⠋⠐⣤⣞⣁⠄⠁⠉⠐⠛⠉⠄⠄⠈⠉⠁⠄⠄⠄⠘⣿⣿⡈⢿ ⣿⠟⠋⠄⠄⠄⠄⠄⠙⠋⠰⠄⢀⡀⡀⠄⠄⠄⠄⠄⠄⠄⠄⠄⠄⠙⣿⣿⣄','ascii',500,'Posts a Ohno ascii'), + ('weirddoc','⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⠀⠀⠀⠀⠹⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠏⠀⣰⣆⠀⠀⠀⣤⠀⠀⠻⣿⣿⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⢛⣟⣛⣁⠀⠀⣿⣿⡄⠀⢸⣿⡄⠀⢀⣭⣭⣭⡛⢿⣿⣿⣿ ⣿⣿⣿⣿⡟⣱⣿⣿⣿⣿⣤⣀⡟⠙⠀⠀⠘⢹⣧⣤⣿⣿⣿⣿⠿⠎⠙⣿⣿ ⣿⣿⣿⣿⣷⣮⡛⢶⣮⣭⣿⣿⣿⣿⣷⣶⣿⣿⣟⣛⣩⣥⣴⡶⣢⣴⣾⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣶⣾⣭⣟⣻⠿⢿⣿⣿⣿⡟⣛⣿⣭⣿⣶⣿⣿⣿⣿⣿⣿ ⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠟⠂⠈⢹⣿⣿⣧⣈⡁⠈⠉⠉⠉⠉⠉⠛⠛⠿ ⣿⣿⣿⠿⠿⠿⠋⠉⠁⠁⢀⣠⣶⣿⣿⣿⣿⣿⣿⠙⠛⠻⠶⠦⢄⠀⠀⠀⠀ ⠁⠁⠀⠀⠀⢀⣠⣴⠶⠟⠛⠉⠉⢠⣿⣿⣿⣿⣿⡝⣷⣾⣶⠆⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠒⣉⣁⣤⣶⣴⠀⠀⠀⣸⣿⣿⣿⣿⣿⣇⢺⣿⠏⠀⠀⠀⠀⣠⣾ ⣷⣤⠀⠀⠀⠈⠻⣿⣿⠟⠀⠀⢀⣿⣿⣿⣿⣿⣿⣿⡄⣏⠀⠀⠀⣰⣾⣿⣿ ⣿⣿⣷⣤⡀⠀⠀⠈⠁⠀⠀⠀⣼⣿⣿⣿⣿⣿⣿⣿⣿⣿⣷⣿⣟⡟⠿⣿⣿ ⣿⣿⣾⣿⣿⣿⣶⡶⠂⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⢋⣼⣿ ⣿⣿⣿⡜⣾⣿⣿⡁⠀⠀⣰⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠩⣛⣛⣛⣴⣿⣿⣿','ascii',500,'Posts a WeirdDoc ascii'), + ('weirddude','⠀⠀⠀⠀⠀⠀⠀⠀⠀⣀⣴⣿⣿⠀⠀⠀⠀⠀⠀⣀⣴⣾⣿⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠀⢠⢞⣻⡿⢋⣉⡀⠀⠀⢀⣠⣬⠽⠿⣟⡻⠀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⢀⣵⣿⣿⣾⣿⣿⠿⣷⣶⣜⢭⣶⣾⣿⣷⠾⡥⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⠸⣿⣿⣿⣟⣫⡽⣟⡫⠿⢯⣥⣘⠋⣪⠶⠾⢿⣷⣔⣂⠀⠀ ⠀⠀⠀⠀⢀⣴⣿⣿⣿⣿⣭⢕⡾⣿⣄⣀⣠⣿⡿⠿⣿⣤⣠⠴⠿⢿⡛⠁⠀ ⠀⠀⠀⢠⣿⣿⣿⣿⣿⣿⣿⣷⣤⣴⣤⣍⡙⣩⣴⡾⣷⣶⣶⡿⠛⠉⠀⠀⠀ ⠀⠀⠀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠭⠷⣿⣿⣿⣿⣶⣶⣶⣶⣿⡶⠀⠀⠀ ⠀⠀⠀⠸⣿⣿⣿⣿⣿⣿⣿⣿⢰⣞⣛⣛⣒⣀⡀⠭⠭⠭⠥⠤⠤⢐⣛⠁⠀ ⠀⠀⠀⠀⠈⠛⠿⠿⢿⣿⣷⣝⣶⣶⣶⣶⣶⣶⣦⣭⣭⣭⣭⠭⠉⠉⠀⠀⠀ ⠀⠀⣠⣤⣤⣤⣤⣤⣤⣌⠻⣿⣿⣿⣿⣿⣿⣿⡿⠿⠟⢛⣥⣤⣤⣀⠀⠀⠀ ⢀⣿⣿⣿⠁⢸⣿⣿⣿⣿⣷⣶⣮⣭⣭⣭⣽⣷⣶⣶⣾⣿⣿⡏⠻⢿⣷⣆⠀ ⠀⠻⣿⣿⡀⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡇⠀⠀⡹⠟⠁ ⠀⠀⠈⠛⠿⣦⢹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠃⣴⠞⠀⠀⠀ ⠀⠀⢈⣵⣦⠹⢸⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠀⣵⣶⣤⠀⠀','ascii',500,'Posts a WeirdDude ascii'), + ('beefalarm','⡏⢀⣶⡶⠒⠒⢶⣶⡄⠄⣰⣶⠶⠶⠶⠂⢠⣶⡶⠶⠶⠖⠄⣴⣶⠶⠶⠶⠂ ⠁⣸⣿⣇⣀⣠⡞⠛⣡⢇⣿⣿⣄⣋⡉⡉⣸⣿⣧⣈⣁⢀⢠⣿⣿⣀⣀⡀⢻ ⠄⣿⣿⢡⣦⠈⣿⣷⠈⣸⣿⠏⢭⣿⠥⢃⣿⡿⠩⢭⡵⠎⣸⣿⠋⢉⠉⣡⣼ ⠘⠛⠛⠒⣒⣚⣛⣭⣆⠻⠛⢛⣒⣒⢀⠘⢛⠿⢓⡒⠂⣀⣛⡛⢸⣿⣿⣿⣿ ⠿⢿⣿⣿⣿⣿⣿⣿⠏⠾⠿⠿⠿⠿⠿⠿⠿⣿⣷⡝⢿⣿⣿⡿⠿⢿⠿⠯⠩ ⠾⠷⠮⣿⣿⣿⣿⡿⠄⠄⠄⠄⠄⠄⠄⠄⢸⣿⣿⡇⢸⣿⣿⣿⣫⣥⡄⠄⠄ ⣭⣟⣿⣿⣿⣿⣿⡇⠄⠄⠄⠄⠄⠄⠄⠄⢸⣿⣿⣇⢸⣿⣿⣿⣿⠷⢖⡀⠄ ⠷⠶⣿⣿⣿⣿⣿⠄⠄⠄⠄⣶⠄⠄⠄⢸⢸⣿⣿⣿⢸⣿⣿⣿⣿⣛⣛⠄⠄ ⢟⣻⣽⣿⣿⣿⡇⠄⠄⠄⢰⣿⠄⠄⠄⠸⢸⣿⣿⣿⠸⣿⣿⣿⡿⢿⣶⠄⠄ ⣭⣶⣶⣾⣿⣿⠄⣤⣤⣤⣬⣥⣤⣤⣤⣤⣼⣿⣿⣿⣤⣿⣿⣿⣿⣷⣮⣤⣠ ⣿⣿⡿⠿⠿⠃⢰⠿⢿⣿⣿⣿⡿⠿⠿⣿⣿⡿⠿⣿⡇⣿⠿⠿⢿⣿⠿⠿⠿ ⣾⡟⣰⠛⣇⠄⠄⣾⢰⣿⣿⡟⣱⠛⡇⣿⡏⣾⢫⡻⣦⠉⣼⢻⡀⡟⡰⢻⡇ ⠋⣰⡃⠂⣿⠄⢠⡟⠘⠛⠋⣱⡃⠃⣷⠙⢱⡷⢭⡜⠁⢀⡇⠄⡇⢠⠁⣸⠃ ⠰⠏⢉⠉⠻⠄⠸⠧⠤⠄⠰⠋⠉⠉⠿⠄⠼⠁⠄⠿⠈⠸⠁⠄⠷⠃⠄⠿⢀','ascii',500,'Posts a beef alarm ascii'), + ('feelswowman','⠀⠀⠀⠀⠀⠀⠀⢀⣠⣴⣶⣶⣶⣦⣤⡀⠀⣀⣤⣤⣴⣤⣄⡀⠀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⠀⣰⣿⣿⠿⢟⣛⣛⣛⣛⠿⣎⢻⣿⣿⣿⣿⣿⣷⡀⠀⠀⠀⠀ ⠀⠀⠀⠀⠀⣼⣿⣿⡷⣺⣵⣾⡿⠟⠷⢿⣦⡐⠶⡶⣒⣦⣶⣴⣤⣆⣀⠀⠀ ⠀⠀⠀⣠⢸⣿⣿⣭⣾⣿⣿⣿⡅⠈⠐⠀⢻⣿⣷⣸⣿⣿⣿⠋⠀⠍⢻⣷⣄ ⠀⢀⣾⣧⣾⣿⣿⣎⠿⣿⣿⣿⣷⣦⣤⣴⣿⣿⣿⣿⣿⣿⣿⣦⣁⣀⣼⣿⡿ ⠀⣾⣿⣿⣿⣿⣿⣿⣷⣌⣙⠛⠿⢿⣿⣿⣿⣿⠿⣻⣿⣿⣿⣿⣿⣿⡿⠟⠁ ⢸⣿⣿⣿⣿⣿⠟⣛⠻⣿⣿⣿⣶⣦⣤⣤⣴⣾⣿⣷⣍⣙⠛⣛⣋⡉⠀⠀⠀ ⢸⣿⣿⣿⣿⣿⢸⣟⢷⣍⠻⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣆⠀⠀ ⢸⠏⡌⡟⡉⡿⡂⡙⢷⣌⠻⠶⣬⣝⡛⠿⠿⢿⣿⣿⣿⣿⣿⣿⡿⠿⢟⣀⠀ ⠸⢠⣧⣴⡇⢡⡇⣿⣦⣙⡻⠶⣶⣬⣙⣛⣓⠶⠶⠶⠶⠶⠶⠶⠶⢛⡛⣅⡀ ⠐⠘⣿⣿⣷⣿⣧⡙⠻⢿⣿⣷⣶⣤⣭⣍⣉⣛⣛⣛⣛⣛⣛⡛⢛⣛⠅⠋⠀ ⢲⣤⣘⠻⣿⣿⣿⣿⣿⣶⡌⣿⣿⣿⣿⣿⣿⣿⣿⡿⠿⠛⠭⠶⢟⡁⠀⠀⠀ ⢸⣿⣿⡷⢈⡻⠿⣿⡿⠿⢑⣒⣂⣦⣤⣄⣐⣒⣢⡾⣹⣿⣿⣿⣿⡇⠀⠀⠀ ⢸⣿⣿⢣⣿⣿⣷⣶⣶⡇⢿⣿⣿⣿⣿⣿⣿⣿⡿⢡⣿⣿⣿⣿⡿⠀⠀⠀⠀','ascii',500,'Posts a FeelsWowMan ascii'); + diff --git a/migrations/000004_create_timers_table.down.sql b/migrations/000004_create_timers_table.down.sql new file mode 100644 index 0000000..00685d5 --- /dev/null +++ b/migrations/000004_create_timers_table.down.sql @@ -0,0 +1 @@ +DROP TABLE IF EXISTS timers; diff --git a/migrations/000004_create_timers_table.up.sql b/migrations/000004_create_timers_table.up.sql new file mode 100644 index 0000000..06e23e7 --- /dev/null +++ b/migrations/000004_create_timers_table.up.sql @@ -0,0 +1,17 @@ +CREATE TABLE IF NOT EXISTS timers ( + id bigserial PRIMARY KEY, + name text NOT NULL, + text text NOT NULL, + channel text NOT NULL, + repeat text NOT NULL +); + +INSERT INTO timers (name,"text",channel,repeat) VALUES + ('nourylul-60m','timer every 60 minutes :)','nourylul','60m'), + ('nourylul-2m','timer every 2 minutes :)','nourylul','2m'), + ('nourybot-60m','timer every 60 minutes :)','nourybot','60m'), + ('nourybot-1h','timer every 1 hour :)','nourybot','1h'), + ('xnoury-60m','timer every 420 minutes :)','xnoury','420m'), + ('xnoury-1h','timer every 1 hour :)','xnoury','1h'), + ('xnoury-15m','180 minutes timer :)','xnoury','180m'); + diff --git a/migrations/README.md b/migrations/README.md new file mode 100644 index 0000000..5760832 --- /dev/null +++ b/migrations/README.md @@ -0,0 +1,43 @@ +# Migrations + +Tool: [golang-migrate](https://github.com/golang-migrate/migrate/tree/master/cmd/migrate) + +## Create Database +```sql +$ sudo -u postgres psql +psql (14.3) +Type "help" for help. + +postgres=# CREATE DATABASE nourybot; +CREATE DATABASE +postgres=# \c nourybot; +You are now connected to database "nourybot" as user "postgres". +nourybot=# CREATE ROLE username WITH LOGIN PASSWORD 'password'; +CREATE ROLE +nourybot=# CREATE EXTENSION IF NOT EXISTS citext; +CREATE EXTENSION +nourybot=# +``` + +## Connect to Database +```sh +$ psql --host=localhost --dbname=nourybot --username=username +psql (14.3) +Type "help" for help. + +nourybot=> +``` + +## Apply migrations +```sh +$ migrate -path=./migrations -database="postgres://username:password@localhost/nourybot?sslmode=disable" up +``` + +```sh +$ migrate -path=./migrations -database="postgres://username:password@localhost/nourybot?sslmode=disable" down +``` + +## Fix Dirty database +```sh +$ migrate -path=./migrations -database="postgres://username:password@localhost/nourybot?sslmode=disable" force 1 +``` \ No newline at end of file