Commit graph

225 commits

Author SHA1 Message Date
Thongrapee Panyapatiphan d8086be5cf
Merge branch 'master' into playlist-limit-config 2021-12-09 17:55:29 +07:00
Max Isom 0396949b39
Check database direction for orphans 2021-12-07 20:36:37 -05:00
Max Isom 29ec1d0092
Revert back to static property 2021-12-03 11:28:50 -05:00
Max Isom 7ff54b9495
Use loop instead of recursion 2021-12-03 11:06:56 -05:00
Max Isom 4ffd679ddb
Update debug logging 2021-12-03 10:52:30 -05:00
Max Isom 3f0f97f762
Return when queue is empty 2021-12-03 10:45:09 -05:00
Max Isom 70a55e9a2e
Disable @typescript-eslint/no-implicit-any-catch
(Strict mode in TS 4.4 enables useUnknownInCatchVariables, so this is redundant.)
2021-12-03 10:36:06 -05:00
Hellyson Rodrigo Parteka b52f9253c2
add some debug logs 2021-12-03 03:26:36 -03:00
Hellyson Rodrigo Parteka af82be13f9
fix(file-cache): add queue to handle eviction of old files
This commit also removes the `await` from every stream creation. The eviction will be handled totally assyncronously. The only drawback is the possibility of  exceeding the cache limit for a moment, until the next execution of `evictOldest`.
This will only be a problem if the cache is set too close to the remaining disk space, which I wouldn't recomend.

I also removed the recursion.
2021-12-03 01:01:35 -03:00
Hellyson Rodrigo Parteka 3b2aa47e95
fix(file-cache): try/catch to prevent concurrency issues 2021-12-03 00:30:00 -03:00
Max Isom 9f9469f682
Add back -re option on uncached streams 2021-11-24 13:16:44 -06:00
Max Isom 49664be9e1
Change event to close 2021-11-24 12:03:54 -06:00
Max Isom 71b62cb3aa
Merge branch 'master' into feature/better-file-caching 2021-11-24 11:42:38 -06:00
Max Isom b93e6644b7
Merge branch 'master' into remove 2021-11-20 19:02:48 -05:00
Max Isom 490b082587
Update strings 2021-11-20 19:01:53 -05:00
DrunkenToast 7538a2ebb8
fix: loading message isn't required 2021-11-20 19:01:53 -05:00
DrunkenToast fe233cb98c
fix: range and q size check 2021-11-20 19:01:52 -05:00
DrunkenToast 5a74115beb
feat: remove from queue
+ fix typo queuecommand
2021-11-20 19:01:52 -05:00
Hellyson Rodrigo Parteka 46701a8aab
fix: change player.add(...) behavior 2021-11-20 19:01:52 -05:00
Hellyson Rodrigo Parteka 5cc74a3d51
fix: add missing DIRECT_MESSAGES intent 2021-11-20 19:01:52 -05:00
Hellyson Rodrigo Parteka fe5f9cf9a7
feat: discord.js v13 2021-11-20 19:01:51 -05:00
Max Isom 1ddd19dbb9
Only add event listeners once
See #372
2021-11-20 19:01:00 -05:00
Max Isom 34e45d6273
Add .removeOrphans() 2021-11-19 12:22:27 -05:00
Max Isom f5149dfaba
Move file caching logic to new FileCache service
Also: removes the -re ffmpeg option.
If this option is passed, ffmpeg won't write to fs-capacitor (and the cache file) as fast as possible.
In other words, the cache file won't finish writing until the entire stream has been played.
2021-11-19 12:13:45 -05:00
Max Isom 04c7e61fc0
Add FileCache model 2021-11-18 20:55:57 -05:00
Max Isom d805da906a
Rename existing cache model 2021-11-18 20:50:44 -05:00
Hellyson Rodrigo Parteka c16449b08f
fix: change player.add(...) behavior 2021-11-17 20:17:08 -03:00
Max Isom dd81fc47fd
Merge branch 'master' into bugfix/only-add-listeners-once 2021-11-17 16:16:00 -05:00
Hellyson Rodrigo Parteka 96bf53b28a
fix: add missing DIRECT_MESSAGES intent 2021-11-17 01:48:48 -03:00
Hellyson Rodrigo Parteka 8448feebb6
feat: discord.js v13 2021-11-12 16:30:18 -03:00
Max Isom a4e67d6383
Add -re flag
See #389, https://trac.ffmpeg.org/wiki/StreamingGuide
2021-10-31 11:20:59 -04:00
Max Isom defb56ed5e
Only add event listeners once
See #372
2021-10-03 12:59:26 -04:00
cheqpat 3924c8007c
Always autoplay rather than alerting that it is paused 2021-10-02 02:16:59 -05:00
cheqpat b91e072e2f
implement @udany's fix 2021-10-02 02:14:47 -05:00
Thongrapee Panyapatiphan 33b0ffa244
Update parsing and validation logic for playlist-limit config 2021-10-01 23:59:33 +07:00
Thongrapee Panyapatiphan 847c578b5d
Remove custom getter 2021-10-01 23:49:22 +07:00
Thongrapee Panyapatiphan 4364f459be
Add playlist-limit in config command 2021-10-01 22:33:39 +07:00
Thongrapee Panyapatiphan 11eba5746d
Simplify code 2021-10-01 22:15:34 +07:00
Thongrapee Panyapatiphan 56a899250e
Remove eslint rule disable statement 2021-10-01 21:13:37 +07:00
Thongrapee Panyapatiphan c9cc9a17b1
Read playlist song limit from Settings 2021-10-01 21:11:43 +07:00
Thongrapee Panyapatiphan 96dcc4a536
Revert "Add config for song limit per playlist"
This reverts commit 296a0a8178.
2021-10-01 20:48:32 +07:00
Thongrapee Panyapatiphan 296a0a8178
Add config for song limit per playlist 2021-09-30 23:55:21 +07:00
Hellyson Rodrigo Parteka 58cc548739
fix: wrong minute count in long videos 2021-09-28 04:27:55 -03:00
Jordan Nguy 7e14084163
Binds recursive call function to keep original scope 2021-09-25 17:50:10 -07:00
Max Isom c23f04ba5a
Warn if cache key is too short
See #357
2021-09-23 13:09:54 -04:00
Hellyson Rodrigo Parteka 3f210c53f4
fix: playlist load, cache key
Fixes #357
2021-09-23 00:41:26 -03:00
Max Isom abb02912c8
Add support for music.youtube.com URLs
Closes #355
2021-09-22 15:53:04 -04:00
Max Isom dcac22832d
Bump linter version 2021-09-19 22:24:46 -04:00
Max Isom fd782219ef
Move to ESM, use ytsr, implement caching
Closes #315
2021-09-19 22:09:09 -04:00
Max Isom efcdeb78c8
Reorg third party services & config 2021-09-19 19:50:25 -04:00
Max Isom 79e7e88fab
Remove requirement for DISCORD_CLIENT_ID
Closes #336
2021-09-18 17:04:04 -04:00
Max Isom 9a2ef876d3
Correctly skip song if unavailable
Also lets user know in text channel that song is unavailable after skipping.

Fixes #324
2021-09-18 16:55:50 -04:00
Luis Ávila cd9d5248ac
Join the message sender's channel if possible 2021-09-15 23:12:48 +01:00
Max Isom af8e81a569
Fix lint issues 2021-09-14 14:18:17 -04:00
Luis Ávila e59db76694
Fix URL cleaning: youtube IDs are not valid URLs 2021-09-14 19:07:43 +01:00
Max Isom 1212ffc102
Merge pull request #311 from likuilin/master
Remove Manage Messages perms requirement by only deleting own reactions
2021-09-14 13:39:45 -04:00
Max Isom 427654fc60
Use same logic for removing reactions when either animation is ongoing or animation is stopped 2021-09-14 13:35:54 -04:00
Max Isom fcbff53a7a
Clean URL search params
Closes #316
2021-09-14 09:43:34 -04:00
Max Isom 4bce011b0c
Fix type error
Closes #313
2021-09-13 13:18:06 -04:00
Kuilin Li 257191b183
Remove Manage Messages perms requirement by only deleting own reactions 2021-09-12 23:56:45 +00:00
Max Isom 1cb55cb8ce
Fix help command 2021-08-04 13:22:40 -05:00
Max Isom cf75afd4bc
Fix shuffle bug for long Spotify playlists
A random sample of 50 songs is taken for long playlists since mapping Spotify -> YouTube is expensive.
However, the function used previously allowed for duplicates within that sample of 50.
2021-05-30 15:01:11 -05:00
Max Isom d61107aedd
Add play immediate feature 2021-04-30 12:05:45 -04:00
Max Isom 6355ca9d44
😏 2021-04-28 19:17:19 -04:00
Max Isom 5d92d4ed54
Allow skipping multiple tracks 2021-04-23 12:30:31 -04:00
Max Isom 531da56dd0
Bump dependency 2021-04-01 15:28:46 -04:00
Max Isom 6e0d4c7927
Support playlists with more than 50 items 2021-04-01 15:20:18 -04:00
Max Isom faa1dcd5ec
Use yarn, remove manual type for package 2020-12-03 16:08:07 -05:00
Max Isom e7bf2a4b47
Automatically refresh Spotify token 2020-10-31 10:42:06 -04:00
Max Isom f941dbbddd
Fix setup wizard when there's >20 channels 2020-10-24 14:27:02 -04:00
Max Isom 30c8068363
Add permissions to invite link 2020-10-24 14:22:30 -04:00
Max Isom e103282cd7
Fix auto translate search function 2020-10-24 13:11:29 -04:00
Max Isom 599dbce6e6
Bump packages 2020-10-24 12:32:43 -04:00
Max Isom cd4b42a8f6
Bump dependencies 2020-08-24 14:53:18 -05:00
Max Isom 58fcc481ba
Bump dependencies 2020-05-30 21:37:40 -05:00
Max Isom 7fcd9a6a7d Fix caching bug 2020-03-27 18:28:50 -05:00
Max Isom 7703506aae Bump dependencies and add typing event handler 2020-03-27 17:14:08 -05:00
Max Isom a2950ed722 Add bears handler and fix natural language handler priority 2020-03-27 15:44:49 -05:00
Max Isom 4e1a156f9b Bump dependencies 2020-03-25 17:59:09 -05:00
Max Isom dc70a37e96 Fix position tracking bug and catch ffmpeg errors 2020-03-25 17:32:43 -05:00
Max Isom 334a2bf0a0 Fix queue and player bugs 2020-03-23 19:40:54 -05:00
Max Isom 95ea8e9ad3 Remove redundent code 2020-03-20 20:51:33 -05:00
Max Isom 9c91ce1a13 Merge Player and Queue services 2020-03-20 20:47:04 -05:00
Max Isom 646f030781 Disable Sequelize stdout logging 2020-03-19 19:26:58 -05:00
Max Isom f25467a41d Small bug fixes 2020-03-19 19:16:07 -05:00
Max Isom 4659717e5f Require user to be in voice channel 2020-03-19 17:39:55 -05:00
Max Isom 362ce89987 Disconnect when finished playing 2020-03-19 17:24:46 -05:00
Max Isom 3de34e5e4a Fix Queue.removeCurrent() 2020-03-19 17:22:22 -05:00
Max Isom 7f39642c49 Add queue output, various bug fixes 2020-03-18 22:29:43 -05:00
Max Isom 0357373123 Limit playlist adds to 50 songs 2020-03-18 19:17:47 -05:00
Max Isom a0c5875ee4 Add aliases to help 2020-03-18 19:01:18 -05:00
Max Isom de1e761623 Add aliases 2020-03-18 18:57:21 -05:00
Max Isom 8340f9b95a Add disconnect command 2020-03-18 18:29:32 -05:00
Max Isom 6a02088b04 Go Packers 2020-03-18 17:15:45 -05:00
Max Isom e57d86d7cc Allow seeking with hours 2020-03-18 12:55:03 -05:00
Max Isom b1895627db Don't cache long videos 2020-03-18 12:44:36 -05:00
Max Isom 11246812a6 Don't allow seeking past end of song 2020-03-18 12:40:31 -05:00
Max Isom 7844e80991 Refactor play command 2020-03-17 21:36:48 -05:00
Max Isom c058ec95fe Various bug fixes 2020-03-17 19:42:28 -05:00
Max Isom 15d4e251f2 Add better responses 2020-03-17 17:59:26 -05:00
Max Isom 1a1bdfd674 Add Dockerfile 2020-03-17 12:30:27 -05:00
Max Isom 426d0b0335 Add help command 2020-03-16 22:12:02 -05:00
Max Isom ac21b5657b Add auto disconnect 2020-03-16 20:14:15 -05:00
Max Isom 32cb3ca4ae Add custom shortcut support 2020-03-16 19:37:54 -05:00
Max Isom 5eb1389a6f Add say command 2020-03-16 12:13:18 -05:00
Max Isom 6e6fbfa591 Add Spotify artist URL support 2020-03-16 12:10:08 -05:00
Max Isom 53cd705bde Allow skipping past current song in empty queue 2020-03-16 12:01:22 -05:00
Max Isom 18e851821c Don't allow seeking in livestream 2020-03-15 20:11:45 -05:00
Max Isom 2875c6ceb8 Add pause/resume 2020-03-15 19:30:07 -05:00
Max Isom e55acbb718 Add skip/unskip 2020-03-15 16:55:44 -05:00
Max Isom 3c169d113c Add forward seek 2020-03-15 15:35:34 -05:00
Max Isom bf0843dd1d Don't cache livestreams 2020-03-15 15:13:12 -05:00
Max Isom 260d5d2d73 Don't try to connect to channel if already connected 2020-03-15 15:04:46 -05:00
Max Isom 3408c7a0c2 Use manager instances for guild services 2020-03-15 14:36:59 -05:00
Max Isom 0cebca7917 Improve seek command 2020-03-14 22:09:24 -05:00
Max Isom d70bd16797 Add queue clear command 2020-03-14 22:03:31 -05:00
Max Isom 9e1d656e52 User changing config must be owner 2020-03-14 21:57:28 -05:00
Max Isom 2f0acaa858 Add livestream support 2020-03-14 21:48:08 -05:00
Max Isom ad4d49f763 Add shuffle command 2020-03-14 12:41:00 -05:00
Max Isom fb91c8e89c Add better caching, seek command 2020-03-13 20:36:42 -05:00
Max Isom c446e0fd57 Add artist field 2020-03-13 12:17:45 -05:00
Max Isom 17ba78f7b7 Use IoC, impliment queue 2020-03-12 22:41:26 -05:00
Max Isom 8eb4c8a6c0 Basic play functionality 2020-03-10 11:58:09 -05:00
Max Isom 652cc2e5ef Add config command 2020-03-09 15:00:18 -05:00
Max Isom eca84c8b69 Inital commit 2020-03-09 11:57:39 -05:00