The queue command now displays an embed with pagination and
allows for songs to be queried by providing arguments. Each argument
is interpreted as a keyword that is searched for.
Signed-off-by: trivernis <trivernis@protonmail.com>
Added a gif table to store gifs with optional category and name
as. The command add_gif (owner only) can be used to add a gif to
the database. The command gifs can be used to see all the gifs
stored in the database. The gifs are being used by the pekofy and
matsuri command.
Signed-off-by: trivernis <trivernis@protonmail.com>
The pages of a menu are now wrapped in an enum that contains either
a builder function or a static CreateMessage. The builder function
is used for the now playing message to always return the currently
playing song instead of mapping a static song. This solves the problem
that the old page is being rendered when the page is recreated because
of being sticky.
Signed-off-by: trivernis <trivernis@protonmail.com>
Menus can now be created as sticky menus. When new messages appear
in the channel, the sticky message will be resent to be the latest
one in the channel. It only get's recreated every ten seconds max
to avoid getting ratelimited.
To work with recreatable menus, the message handle returned by
the menu is now wrapped into an Arc<RwLock<>>.
Signed-off-by: trivernis <trivernis@protonmail.com>
Add subcrate bot-coreutils to move some utilities that don't
depend too heavily on other crates and require heavy testing
there.
Signed-off-by: trivernis <trivernis@protonmail.com>