Commit Graph

137 Commits (main)

Author SHA1 Message Date
trivernis 18cd1e7d28
Add autoleave and fix some bugs
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis b2ba31a9e9
Reimplement all music related functionality in MusicPlayer struct
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 6876a1bb1a
Change music backend to lavalink
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis e6d89289b7
Add clear command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
Trivernis a4d58d33f6
Docker integration (#23)
* Add Dockerfile

Signed-off-by: trivernis <trivernis@protonmail.com>

* Fix docker build

Signed-off-by: trivernis <trivernis@protonmail.com>

* Remove build-essential package from runtime container

Signed-off-by: trivernis <trivernis@protonmail.com>

* Swap postgresql-client for libpq5 in docker build

Signed-off-by: trivernis <trivernis@protonmail.com>

* Add docker action

Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis d81b815a12
Remove thumbnails from now playing message in nsfw channels
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 8209c31469
Add more information to mc item command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 6f4d9df4b7
Switch to youtube-metadata for basic video information fetching
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 9cc9b720e2
Fix song database lookup being slow with spotify playlists
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 50c457ac2e
Fix now playing message not being updated
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 43f61d51f2
Add creation of now playing message to play commmand
The message can also be deleted with the delete button.

Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis bb153a10a5
Add help display for menus
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 3ff8371680
Change command usage descriptions to be docopt compatible
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 274804ed8c
Change DJ role check to be a serenity check
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis e39fc35c05
Add ephemeral message table and delete them on startup
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis c0fce89a33
Add hashtag filter to song name cleaning regex
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 017f1e8f46
Change cleaing of song names for spotify search
Now the regex is applied before all nonalphanumeric chars are deleted.
Additionally everything in square brackets will be deleted.

Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 0300966e56
Fix unavailable stored videos causing songs not to be played
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 658bc7fdc5
Add feedback button and improve song results
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 9931e75d8f
Add automatically adding youtube songs to store
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 49f4673213
Add aliases to qalc command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis b87b1770fc
Add autosharding
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 786925d8e4
Switch to stable toolchain and add more info to stats command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 8d6ed995e0
Improve error handling with forward_error macro
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis bbf9f1ef93
Add ephemeral message and use it for most music command answers
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis eede854ad4
Fix skipping causing songs to unpause
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 619d8aa30b
Add pain command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 80289e5590
Add remove_song command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis bba12ff763
Add move_song command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis a98f401fbe
Change queue command to accept query and display an embed
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>
3 years ago
trivernis 80dfe4af07
Add number of times used to stats command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis a2d2d5d930
Add statistics table to database to store command statistics
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 29e670da66
Add hint about play command to now playing dialog
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis a67fecc210
Add gifs table and matsuri, add_gif and gifs command
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>
3 years ago
trivernis 1bbbdc29f6
Move sauce and pekofy command to weeb group
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 8ed7cf90b3
Change to require dj permission for join with channel id
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 87cfba1bc8
Change menu pages to be wrapped in page type
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>
3 years ago
trivernis 411dd83240
Add controls to now playing message and fix sticky menu
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis c6b80f8abd
Add sticky option to menus
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>
3 years ago
trivernis bf29b51092
Change music NowPlaying embed to be created as a menu
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 45d2ac84b1
Add enquote util and change run_command_async
The new enquote function is used to enquote command input.
For simplicity reasons the run_command_async doesn't read from
stdout and stderr separately anymore but uses `.output().await`
instead.

Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 8b8fc8f814
Add rate limits to commands
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 15a06abf22
Add random title to sauce message
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis dc8a84c51e
Implement custom embed menu in subcrate
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 4d290a5091
Bump version and cleanup code
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis fd13f7ae64
Reimplement shuffle for VecDeque in coreutils
Introduced the new trait Shuffle that is implemented for
VecDeque and shuffles it. Previously the VecDeque
was shuffled with a function provided in the main utils module.

Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis d2ea577762
Move run_command_async to bot-coreutils
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 0bbbf3594f
Reimplement is_image and is_video in coreutils
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 0c2c62e157
Add subcrate bot-coreutils
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>
3 years ago
trivernis d54361deca
Change submodule name database to bot-databas for new naming scheme
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 255e11833b
Add about command and bump version
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 57292b2a5e
Fix sauce command image extraction
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis c9fcae05db
Add sauce command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis e4a8334b63
Add timeout to qalc command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis e11ff3f72f
Add optional code argument to shutdown command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis a7045ebe5a
Add version information to stats command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 8f98399ea9
Sanitize input of qalculate
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 9d4ed2dfb5
Add qalc command and improve README
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 2d980111bc
Change database operations to be async
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 0d43e8294e
Change dj role to be optional
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 69e7a2a18f
Add autodelete setting and sticky np embed
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis f36cf5a477
Change now playing to update automatically
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis f32228e61f
Remove prefix from music group
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 7005fa7317
Add time and timezone command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 750ee7d0dc
Add lyrics command and format playlists list differently
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 0cb0a4c47b
Add command to manage playlists
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 6d75b840b4
Switch to diesel with postgres for the database
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 62d9664b35
Fix peko detection and add random rare pekos
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 60f300913d
Add peko alias and easteregg
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis cdeeb2e78d
Fix emojis with pekofy
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis f0d2111628
Add pekofy command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 5ab22fd343
Add feature to automatically leave when the voicechannel is empty
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 6c9df7e044
Add shutdown and pause command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis e9c70bc754
Add stats command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis b4e874ae07
Add logging with fern
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 288675c2ea
Change song fetching to be lazy
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 7dc8087dac
Improve error reporting
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis dd5c9a3673
Add pagination to spotify and thread count lock for ytdl
Add pagination to the spotify wrapper to retreive all
songs in a playlist.
Add a thread count lock to the youtube-dl process to avoid
starting too many at once.

Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis ca1f9e7ecf
Add spotify url support for music
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 8a94518747
Add querying to play command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis b6dd726c17
Reimplement queue and add guild settings
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 1fad2950b5
Remove unrecognized command hook
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 1d0fa1816c
Add hooks and README
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis a6a603dbb5
Add music commands with songbird
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 6729a61190
Remove durability command and add item and enchantment command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis 56a939a244
Add minecraft durability command
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago
trivernis f630161356
Add initial structure
Signed-off-by: trivernis <trivernis@protonmail.com>
3 years ago