Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Optimize play commands #2382

Merged
merged 48 commits into from
Feb 8, 2024
Merged

Conversation

itsTheFae
Copy link
Contributor

  • I have tested my changes against the dev branch (the latest developmental version), and this pull request is targeting that branch as a base
  • I have tested my changes on Python 3.8.10 or higher
  • I have ensured my code is formatted using Black

Description

This PR includes a complete overhaul of ytdl information extraction and updates bits that directly interact with extracted info. The primary focus of this PR is to increase speed of the bot when processing playlists, but several changes are included.

A full list of noteworthy changes:

  • Updates shuffleplay to shuffle playlist entries before they are queued.
  • Adds playlist name and other details to pldump generated files.
  • Enable pldump command to send file to invoking channel if DM fails.
  • Updates Now Playing Status to use custom status and activity (experimental).
  • Adds stream support to autoplaylist entries, if they are detected as a stream.
  • Adds stream support to regular play command, if input is detected as a stream.
  • Adds playlist link support to autoplaylist entries. (experimental)
  • Asks if user wants to queue the playlist when using links with playlist and video IDs in them.
  • Include thumbnail in now-playing for any tracks that have it.
  • Remove all extraneous calls to extract_info, and carry extracted info with their player entries.
  • Adds YtdlResponseDict to act as a typed interface to the variable data of ytdl extractors.
  • Expansion of Spotify API to enable faster enqueue of Spotify playlists and albums.

This update does not include complete i18n or entirely consistent UI (embed vs message) content.
That aside, It should be ready for extensive testing.

Related issues (if applicable)

Potentially closes: #2376 #2375 #1587 and #1462

we call to extract_info many more times that we maybe should, so its time to rectify that...
Mostly code clean up.  Coverage tests still pending.
Tiny scope creeps:
pldump now names files, and tries the public channel if DM fails.
now playing status got a little brush up i guess...
Conflicts:
	musicbot/bot.py
	musicbot/exceptions.py
Sending "MusicBot" UA to some providers will get blocked or rate limited quickly.
…ylists.

Preempt failure of YT links by checking for deleted/private names.
Also changes track numbering for tracks missing titles.
Copy link
Contributor

@DestinyofYeet DestinyofYeet left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, lets test

@BabyBoySnow BabyBoySnow added t/enhancement [PRs] Someone did a thing a/cmds Affects the bot's commands system a/backend Affetcs the backend (youtube-dl/processing) needs triage labels Jan 26, 2024
@BabyBoySnow
Copy link
Collaborator

EXTENSIVE TESTING PENDING.

@BabyBoySnow
Copy link
Collaborator

Using directly from branch, seems to be working well 👍

@DestinyofYeet
Copy link
Contributor

Fine to merge IMO if it works.

Resolved conflicts:
	musicbot/bot.py
	musicbot/entry.py
	musicbot/player.py
@itsTheFae
Copy link
Contributor Author

I have not seen any total show stoppers while using it myself. If folks are OK with it in this state I'm OK with this being merged whenever.

@BabyBoySnow BabyBoySnow merged commit 592a754 into Just-Some-Bots:dev Feb 8, 2024
BabyBoySnow added a commit that referenced this pull request May 17, 2024
commit ddbc8e6
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri May 17 11:11:51 2024 -0500

    add some with multiple

    add latency as ping

commit c79d72a
Merge: 4c1326f dd96f1c
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri May 17 11:09:52 2024 -0500

    Merge branch 'pr/2405' into dev

commit 4c1326f
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri May 17 08:56:52 2024 -0500

    fix broken resolve

commit a76f648
Author: Fae <itsthefae@gmail.com>
Date:   Fri May 17 06:50:19 2024 -0700

    Add uptime command (#2407)

    Co-authored-by: Snow <135516526+BabyBoySnow@users.noreply.github.com>

commit c256eb9
Author: Fae <itsthefae@gmail.com>
Date:   Fri May 17 06:46:45 2024 -0700

    Add latency and botlatency commands. (#2406)

commit dd96f1c
Author: itsTheFae <itsthefae@gmail.com>
Date:   Fri May 17 06:26:36 2024 -0700

    Add the follow command

commit 876ffb8
Author: Fae <itsthefae@gmail.com>
Date:   Wed May 15 18:39:41 2024 -0700

    Bug fixes, QOL tweaks, and code clean up. (#2404)

    * Bug fixes, QOL tweaks, and code clean up.

    * Fix regression of relative seek.

commit c7ac43a
Author: Fae <itsthefae@gmail.com>
Date:   Wed May 15 06:31:49 2024 -0700

    Add multi-playlist support and local media support. (#2403)

commit e2ad0fe
Author: Fae <itsthefae@gmail.com>
Date:   Wed May 15 05:32:35 2024 -0700

    Seek and speed features (#2402)

    * Adds seeking and playback speed support.

    * Update example_options.ini

    * Add relative seek.

commit 20e674d
Author: Fae <itsthefae@gmail.com>
Date:   Tue May 14 08:33:08 2024 -0700

    Installer updates (#2401)

    * Update install.sh to work in cloned directory.

    * Update install.ps1 to work in cloned directory, and clean up some output.

    * Update install.bat to be more informative and less lazy.

    * Update run.py to show pip packages when checking, and handle missing discord.py when extensions are installed.

    * Tidy up comments

    * Update comment for disk check option.

    * Don't forget TerminateSignal can set an exit code now.

    * Remove refreshenv call

commit bea0b46
Author: Fae <itsthefae@gmail.com>
Date:   Tue May 14 08:06:31 2024 -0700

    remove unused bootstrap and travis files. (#2400)

commit 86e54e2
Author: Fae <itsthefae@gmail.com>
Date:   Mon May 6 19:52:12 2024 -0700

    Add commands for config and permission editing and reloading. (#2397)

    * Add commands for config and permission editing and reloading.
    Refactors how options are registered, and adds a new dependency configupdater.

    * Update example_options.ini

    * Some fixes for setperms

commit 2b2b88a
Author: Fae <itsthefae@gmail.com>
Date:   Fri Apr 5 09:20:01 2024 -0700

    Round robin patch (#2396)

    * Fix index errors in reorder_for_round_robin function.

    * Update comments

commit 4c287a4
Author: Fae <itsthefae@gmail.com>
Date:   Fri Apr 5 07:44:04 2024 -0700

    Updates for the Installer and Updater scripts. (#2395)

    * Updates for installer and update scripts.
    Adds ffmpeg install step to install.ps1 using winget tool
    Installers now prompt before installing.
    SysD service file requires user and group settings.

    * Update requirements.txt to use voice and speed options for discord.py repo pull.

commit e935b0d
Merge: 9ed048c 7ba155e
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Apr 4 13:34:13 2024 -0500

    Merge branch 'dev' of https://github.com/Just-Some-Bots/MusicBot into dev

commit 9ed048c
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Apr 4 13:33:51 2024 -0500

    use essentials build

    Use a newer binary file.

commit 7ba155e
Author: Fae <itsthefae@gmail.com>
Date:   Thu Apr 4 11:31:06 2024 -0700

    General stability updates. (#2394)

    * just debug logs mostly

    * Reorganize a little bit of logging at startup.  still debugging though.

    * This should just be empty, for now...

    * clean up some logs.

    * no more async main in run.py.
    This refactors further signal and shutdown handling for the bot.

    * Fix up pip install attempt and make code checks happy.

    * Set console title in run.py main.
    Improve some more logic with graceful recovery cases.
    Fix some check complaints.

    * More fixes for graceful startup and shutdown on windows.

    * Use asyncio not self.loop.

    * Ensure restart still works as expected.

    * More fixes

    * pylint

    * restructure how on-ready fires other events.
    try not to send updates while on_ready runs first time.

    * fix the obviously broken bits.

    * Fix --no-checks only skip optional checks.
    Also log python version.

    * refine some exception handling in auto playlists and on shutdown.

    * Fix logic issue with auto playlist.

    * improve replace in autoplaylist.

    * Allow run.bat and run.sh to pass CLI args to python.
    Simplify checks done in run.sh.

    * Bootleg connection resumption.
    Probably still busted and shitty, but it's close.

    * Fix custom log functions to use stacklevel 2 on windows.
    Organize log formats in order of log level number.

    * correct stacklevel ...

    * Update voice_state_update warning to be more clear.

    * Create player is no serialized player exists.
    oops. :)

    * Ensure auto playlists actually kick off in non-serialized guild.

    * run formatting and tidy up some spam.

    * Move auto_pause and availability into MusicPlayer.

    * Change status updates to run on disconnect again, also adds an offline status for logout/shutdown.

    * Prevent deadlock if exception is thrown in signal handler.

    * change guild auto pause handler to wait for connection.

    * Update player.py formatting

    * Update network test with ICMP ping via sub process call

    * Make sure old queue.json does not stop the show.

    * Use shutil.which() to get ping binary path.  Tries to catch errors from sys call.

    * Make sure shutil also fails gracefully.

    * proper 3.8 compatible types should be part of this too.

    * Copy over some missing changes.

    * Attempt to handle the discord API connection termination.

    * Fix backward logic.

    * Don't resume an auto-paused player when returning from network outage.

    * Fix race condition in unpause check.

    * remove entry_added check in favor of check on play

    * refactor playlist entry meta and handle auto-playlist expansion of playlist links differently.
    also disables extraction logs.
    also adds indicator for autoplaylist entries, though none should be enqueued to playlist queue now.

    * Try to avoid excessive auto-pause retry when player is being discarded/reconnected.

    * Attempt to rejoin on API termination when configured to auto-join.
    If auto-join bot is moved, attempt to join old channel instead.

    * remove redundant calls to finish_playing event.

    * Fix error with rouge player check in disconnect_all_voice_clients

    * Now playing messages should not repeat on reconnect.

    * fix erroneous logic in last_np_msg content check.

    * dyslexic logic strikes again.  gotta love it.

    * Add more sanity checks to play-invoked unpause.
    Allow unpause check to trigger summon if perms.summonplay is set.

    * update self summon to pass message

    Added setting lnp in summon, which uses message so we need to pass it in our calls.

    * lnp inside of summon cmd

    Sets lnp inside the summon command for various instances when it's needed.
    A quality of life change surely.

    * last_np_msg should actually compare the content of embed and not just the hash in the collection.

    I'm an idiot. : )

    * Track last played song subject for better control of last now playing message.

    * format fix

    * Respect queue persist option, and make sure auto-playlist starts without a queue.

    ---------

    Co-authored-by: Snow <135516526+BabyBoySnow@users.noreply.github.com>

commit 4823581
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Mar 21 23:01:55 2024 -0500

    Revert "update binaries"

    This reverts commit 0d3b768.

commit 0d3b768
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Mar 21 22:58:40 2024 -0500

    update binaries

commit 440482f
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Mar 21 20:33:38 2024 -0500

    Revert "update binaries"

    This reverts commit 76e7d36.

commit 76e7d36
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Sat Mar 16 21:29:39 2024 -0500

    update binaries

commit 1ad2cd2
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Mar 7 14:27:04 2024 -0600

    new black version

commit 03c10ea
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Mar 7 14:13:55 2024 -0600

    update self summon to pass message

    Added setting lnp in summon, which uses message so we need to pass it in our calls.

commit 611f4c0
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Mar 7 13:39:03 2024 -0600

    lnp inside of summon cmd

    Sets lnp inside the summon command for various instances when it's needed.
    A quality of life change surely.

commit df97f58
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Tue Mar 5 19:09:39 2024 -0600

    remove pre commit as a requirment

    Didn't work as desired. Leaving files for those who want to use pre commit

commit 2ce9dbc
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Feb 16 20:11:32 2024 -0600

    actually make max 1000 lol

commit 1d635ba
Author: Fae <itsthefae@gmail.com>
Date:   Wed Feb 14 12:07:13 2024 -0800

    Graceful invalid queue (#2391)

    * return none rather than raise an error on bad deserialize version.

    * Python 3.8 compat I somehow missed.

    * py 3.8 compat with proper formatting.

    * now actually use the type alias.

    * i am scatter brain today. :)

commit 0b9f37b
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Tue Feb 13 22:20:36 2024 -0600

    Update LICENSE

commit 7dfd0be
Author: Fae <itsthefae@gmail.com>
Date:   Tue Feb 13 20:06:56 2024 -0800

    More player updates (#2390)

    * Update spotify.py with doc strings, and linted/typed code.

    * Refactor Config and add constants for default file paths.
    Refactor server_specific_data into its own class.
    Adds bot commands `blockuser` and `blocksong`
    Removes command `blacklist` replaced by `blockuser`
    Adds a bunch of doc strings and linting/typing changes.

    * Make sure Files section get validated as well!

    * Update .gitignore

    * Update downloader.py, entry.py, json.py, and 4 more files

    * Update event_emitter.py

    * Update bot.py

    * Update config.py  comma

    * Update en.json

    * Add blocklists to example_options.ini
    and add basic extractors to example_permissions.ini

    ---------

    Co-authored-by: Snow <135516526+BabyBoySnow@users.noreply.github.com>

commit d741aa2
Author: Fae <itsthefae@gmail.com>
Date:   Tue Feb 13 19:52:54 2024 -0800

    Refactor config internals. (#2389)

    * Refactor Config and add constants for default file paths.
    Refactor server_specific_data into its own class.
    Adds bot commands `blockuser` and `blocksong`
    Removes command `blacklist` replaced by `blockuser`
    Adds a bunch of doc strings and linting/typing changes.

    * Make sure Files section get validated as well!

    * Update .gitignore

    * forgot a comma.

commit b55b5c3
Author: Fae <itsthefae@gmail.com>
Date:   Tue Feb 13 11:08:11 2024 -0800

    Overhaul startup and logging, bring back graceful dep failures. (#2387)

    Adds CLI args for logs and update checking.
    Includes bug fix for python 3.12 deprecation warning.
    Converts doBotInit() to setup_hook()
    Removes logging code from bot.py and musicbot/__init__.py
    Likely includes some groundwork for later changes in util.py

commit 662fa3b
Author: Fae <itsthefae@gmail.com>
Date:   Tue Feb 13 11:07:58 2024 -0800

    Fix StatusMessage handling, and removes dead code. (#2388)

commit 516078e
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Sat Feb 10 19:56:37 2024 -0600

    name change

commit 04df6a7
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Sat Feb 10 19:52:16 2024 -0600

    Create pre-commit.yaml

commit d33cb6a
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Sat Feb 10 19:49:06 2024 -0600

    force black to run before commits.

commit 331786c
Author: DestinyofYeet <57575330+DestinyofYeet@users.noreply.github.com>
Date:   Sat Feb 10 23:04:35 2024 +0100

    Fix: File section is now validated (#2386)

    * file section is now validated + black

    * black format I forgot to include

    * updated black and re-formatted

commit fd6f854
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Feb 8 12:39:15 2024 -0600

    Update playlist.py

commit 592a754
Author: Fae <itsthefae@gmail.com>
Date:   Wed Feb 7 19:18:53 2024 -0800

    Optimize play commands (#2382)

    * half-broken start of a rewrite.

    * more half-broken code, stashing on repo :)

    * Substantially less broken, but still broken optimizations...

    * in the middle of changing ytdlp settings, so this is half broken still.
    we call to extract_info many more times that we maybe should, so its time to rectify that...

    * Mostly working, requires lots of cleanup. stashing for now.

    * Mostly working, mostly tested, just needs tidy up.

    * Flake8 and Black

    * Make Entry types use and serialize extracted info.

    * add shuffle for entries under shuffleplay command.

    * Cleanup with a bit of black, flake8 and mypy.

    * commit early and often, and this is why.
    Mostly code clean up.  Coverage tests still pending.
    Tiny scope creeps:
    pldump now names files, and tries the public channel if DM fails.
    now playing status got a little brush up i guess...

    * patch issue in deserialize player. minor typing fixes.

    * Fix some empty channel check and bot check issues.

    * Fix print() in cmd_skip to use return Response instead.

    * Use is_empty_voice_channel util in channel activity checks.

    * Force HEAD requests and ytdlp to use the same UA string.
    Sending "MusicBot" UA to some providers will get blocked or rate limited quickly.

    * Get more info on duration failures.

    * Allow defer queue serialization for better disk IO when importing playlists.
    Preempt failure of YT links by checking for deleted/private names.
    Also changes track numbering for tracks missing titles.

    * run black

    * Fix mypy complaints against ytdlp options.

    * Actually send to channel when DM fails. :)

    * Detect youtube:search with 0 results.

    * Allow StageChannel type in is_empty_voice_channel

    * Forgot to import StageChannel

    * Improve download checks.

    * general clean up, add some notes for later.  Also some black, flake8, and mypy compliance

    * check for missing author ahead of download call, and don't spam about it.

    * More typing and code clean up.

    * run black

    * Remove stream check to enable all media through stream...
    some code tidy up with info references.

    * Fix cmd_search for new backend.

    * remove unused method

    * run black and do some more mypy typing clean up.

    * Remove shlex from search.  The search engines will handle the quotes.

    * Start PR prep, remove changes to ignore and flake file.

    * Replace EMOJI_IDLE_ICON with sleeping face emoji, and run Black.

    * Revert changes in run.py as out of scope from commit 6016bdb

    * Fix broken startup if logs directory is missing.

    * Add missing certifi requirement.

    * Fix bug with missing duration.

    * Better compound link support for youtube and ignored carrier videos.

    * black format

commit 45f3b7d
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Mon Feb 5 18:16:58 2024 -0600

    update readme to include black

commit 8d11ae3
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Mon Feb 5 18:01:07 2024 -0600

    new black version

commit 37bcf1f
Author: Fae <itsthefae@gmail.com>
Date:   Mon Feb 5 15:53:13 2024 -0800

    fix for timer events in server specific data. (#2385)

    * hot fix for timer events in server specific data.

    * fix both events.

commit 270da4d
Author: Fae <itsthefae@gmail.com>
Date:   Fri Jan 26 11:38:31 2024 -0800

    Fix missing logs bug (now on dev) (#2384)

    * Fix broken startup is logs directory is missing.

    * Run black

    * Add certifi to requirements, since it's missing.

commit 5810590
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Mon Jan 22 19:08:21 2024 -0600

    I haven't done anything productive in awhile

    Missed ` in i18n
    Changes show config on launch:
    only show timeout's if enabled.
    Add search list.

commit 8d8148f
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Jan 18 23:25:18 2024 -0600

    Revert "add ping"

    This reverts commit 0a0e171.

commit 0a0e171
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Jan 18 23:24:21 2024 -0600

    add ping

commit 7694da0
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Jan 11 13:53:46 2024 -0600

    Change command disconnect

    Update the disconnect command so that it doesn't say disconnected when it doesn't have an active player in the guild. Additionally adds i18n support.

    Update cmd-restart-invalid-arg i18n to match with what's in the code.

commit 01773d4
Author: Fae <itsthefae@gmail.com>
Date:   Mon Jan 8 18:45:11 2024 -0800

    Restart overhaul - with upgrade commands (#2373)

    * Attempt full process restart.  Clean up bot.py global. Clean up some of run.py

    * Ensure discord TCPConnector is closed.  Run black.

    * Use the correct creationflag name.

    * Fix _wait_delete_msg() to check for bot.is_closed()

    * Make sure logging is shutdown.

    * Add i18n and command responses.

    * Run black

    * attempt upgrade options for restart command

    * Remove unused code

    * load self.exit_signal with actual signal, not just type.

    * make it easier to get RestartCode qualities from RestartSignal

    * Update command output and help text.

    * ensure black formatting

    * git needs shell=True on linux

    * Actually decode bytes to utf8.

    * run black on merged dev

    * run black on merged dev

    * Clean up exception handling, and remove cruft import.

    * Clean up exception handling and remove cruft import.

    * Squashed commit of the following:

    commit 7b4b153
    Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
    Date:   Mon Jan 8 20:43:33 2024 -0600

        Remove shuffle play

        Can't get it working right, will look into again at a later time. Maybe we need to do something like get_info?

    ---------

    Co-authored-by: Snow <135516526+BabyBoySnow@users.noreply.github.com>

commit 7b4b153
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Mon Jan 8 20:43:33 2024 -0600

    Remove shuffle play

    Can't get it working right, will look into again at a later time. Maybe we need to do something like get_info?

commit eb26ab9
Author: Fae <itsthefae@gmail.com>
Date:   Sat Jan 6 20:03:25 2024 -0800

    Pause resume updates (#2381)

    * Auto unpause when play-like commands are used.
    Clean up the old auto pause code (cause I've learned since then)

    * clean up a bit more, ensure things work.

    * Flake8

    * actually import typing.

    * Quote the custom type

    * run black on dev merge.  grumble grumble

    * correct the function comment.

commit 13484ce
Author: Fae <itsthefae@gmail.com>
Date:   Wed Dec 27 11:04:03 2023 -0800

    Fix skip tally and cmd prefix bugs (#2380)

    * Fix issue with _get_guild_cmd_prefix in non-guild channels.

    * tally num_skips by counting members who are in skippers set of author.id numbers.

    * remove TODO note.

commit 8e8a433
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Dec 22 18:00:10 2023 -0600

    remove todo

commit 29a510d
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Dec 22 17:29:58 2023 -0600

    Fixes, and rework

    Rework repeat off. Set fallback owner group to have skip looped songs perms.

commit 0cf25c1
Author: Fae <itsthefae@gmail.com>
Date:   Fri Dec 22 14:50:00 2023 -0800

    Stop spotify playlists fetch on clear command (#2378)

    * Exit the spotify album/playlist loops when clear is used.

    * add guild to command args, fix bad ref

    * ditch the sleep method. this should work well enough...

commit a08f792
Author: Fae <itsthefae@gmail.com>
Date:   Fri Dec 22 14:49:15 2023 -0800

    Update flake8 config and run Flake8 over the whole project. (#2379)

    Also changes skip command permission checks for looped songs.

commit 9c9e6ca
Author: Fae <itsthefae@gmail.com>
Date:   Tue Dec 19 17:20:31 2023 -0800

    Server specific data cleanup (#2377)

    * use guild.id in server_specific_data key

    * auto black the whole repo.

commit 7cde7ad
Author: Fae <itsthefae@gmail.com>
Date:   Mon Dec 18 12:58:40 2023 -0800

    Fix error thrown when non-yt link is used. (#2374)

    * Fix error thrown when non-yt link is used.

    * run black

commit e11464f
Author: Fae <itsthefae@gmail.com>
Date:   Sat Dec 16 17:46:13 2023 -0800

    Better SSL Patch (#2371)

    * Proper fix for SSL issue on windows with missing cert store cert.
    This should only use certifi if certs are missing, not by default.

    * patch only when broken.

    * Fix bot._cleanup() method.
    Remove some code cruft from pre 3.8.
    Make sure aiohttp isn't closed prematurely...

    * Flake8, black, and general clean up.

    * Make sure to clean up what could be broken.

    * fix this little thing before it stops the show.

    * run black on run.py

commit 7b18023
Author: Fae <itsthefae@gmail.com>
Date:   Sat Dec 16 12:34:46 2023 -0800

    Fix error when timer options are missing and default int is used. (#2372)

commit 8ce4ce2
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Dec 15 22:07:43 2023 -0600

    rework repeat command

    Add some new options and handle invalid options better. I found myself doing repeat on a lot and cycling through everything so I reworked it.
    Remove unnecessary json strings.

commit cd9c168
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Dec 15 20:11:28 2023 -0600

    run black

commit 3d0132e
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Dec 15 20:10:52 2023 -0600

    small change

    Make np text less ugly

commit 6083544
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Dec 15 17:10:06 2023 -0600

    forgot black

commit 117ec17
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Dec 15 17:09:02 2023 -0600

    oops, that was server deafen.

    Need to find a better method of error catching, maybe let admin know we need perms then try again after sleeping for some time?

commit 19a19e1
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Dec 15 15:05:24 2023 -0600

    deafen if set to.

    Edit for stage channels to deafen if set to.

commit 612f341
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Dec 15 14:26:47 2023 -0600

    Fix stage channels

    Stage channels where being recognized as text channels. This should fix that.
    Closes #2252
    Add  autoplaylist cache map to gitignore

commit 9c14a19
Author: Fae <itsthefae@gmail.com>
Date:   Wed Dec 13 19:38:31 2023 -0800

    Inactive player timeout & timer touch ups. (#2366)

    * Add inactivity option based on player state, in addition to VC activity.

    * Naming consistency.

    * Fix auto join channels check.

    * clean up VC and guild references.  Prevent redundant resets.

    * Add shorthand english time format support to time-related config options.
    Tiny scope creep for this branch...

    * missing import re

    * I should remove test prints before commits.

    * revert scope creep

    * Remove guild name from activity message.

    * Black & Flake8

    * Make sure these timers don't block further execution.

    * Make some logs info level and remove log from finally to make it less chatty.

    * Update status message on disconnect.

    * Make sure to clear both active timers on disconnect.

    * Simplify update_now_playing_status.

    * check for paused players over just active players.

    * black

    * black

    * Prevent starting an already active VC timer.

    * Clarify and document options.

    * black

    * Revert to LeaveAfterSong to remain compatible with existing config.

commit b557386
Author: Fae <itsthefae@gmail.com>
Date:   Wed Dec 13 18:20:27 2023 -0800

    Prefix per server (#2367)

    * Initial per-server command prefix

    * Add example_option, and file check.

    * clean up and add missing import json

    * add method to clear prefix

    * ensure black format.

    * Remove redundant space check.

    * Add i18n strings.

    * make command list less error prone in multi-guild.

    * Try to make emoji prefix possible.

    * black format

    * tidy output and add i18n string.

    * ensure prefix is listed.

    * Fix missing prefix

    * fix missing , in  i18n/en.json

    * make emoji prefix work without backspace required.

    * Rename option to EnablePrefixPerGuild instead.

    * Add prefix history for better clean command, and match animated emoji/better emoji checking.

    * Fix typo, add regex emoji check to on_message, and convert regex to raw strings for Flake8.

    * Note for future reference

    * Better support for emoji in unicode rather than markdown. Fixed emoji check for animated emoji in help command.

commit dcc703e
Author: Fae <itsthefae@gmail.com>
Date:   Wed Dec 13 18:20:09 2023 -0800

    Typing compatible with 3.8 (#2370)

commit 2785ac3
Author: Fae <itsthefae@gmail.com>
Date:   Tue Dec 12 12:13:24 2023 -0800

    Cache autoplay retention option & cache folder option. (#2365)

    * Add option and logic to retain autoplaylist data in cache. Testing required.

    * await preload in a proper place.

    * Add config option to set audio cache directory.
    Refactor audio cache into its own class.
    Clean up some auto playlist handling.
    All to enable cache retention of auto playlist entries...
    Some of this could help with stability in the long run though.

    * Flake8 & black and fix my errors.

    * Handle cache earlier.  Actually save cachemap on updates...
    Add some maybe temporary logs for debug.

    * Playlist urls now removed from cache map on purge_from_ap.
    Fixed broken asyncio.Lock usage.
    Refactored with Flake8 and Black.
    Added annotations/typing

    * Use proper forward ref.

    * make autoplaylist command work without player in voice.
    Clarify example options more.

    * Count retained size against cache immediately.

    * satisfy flake8 and black

    * don't add the current size in the purge test.

commit dce4dad
Author: Fae <itsthefae@gmail.com>
Date:   Mon Dec 4 10:54:33 2023 -0800

    Fix spotify ssl issue (#2364)

    * patch spotify.py SSL with certifi

    * remove ssl_context from global scope

commit 330b111
Author: Fae <itsthefae@gmail.com>
Date:   Sat Dec 2 15:40:46 2023 -0800

    Allow cache config shorthand & clarify functionality. (#2363)

    * StorageLimitBytes now with notation conversion.

    * Clarify/Document cache options in example_options.ini

    * Function name consistency.

    * Linux instead of *nix

commit 10371b5
Author: Fae <itsthefae@gmail.com>
Date:   Thu Nov 30 12:54:09 2023 -0800

    More audio cache options. (#2362)

    * Lets try cache management.

    * early bail if no limits are set.  Fix missing pathlib.

    * Fix invalid use of rmtree.

    * Fix bytes/days in show config

    * bytes typo

    * Log removed count and size to debug.

    * Add 'cache' command for info and on-demand clear.

    * Typo

    * format_bytes to 3 decimal places.  Add 'days' in time limit info.

    * Format uses binary prefix, lets be clear.

    * Get file size early.

    * Fix formatting in example_options.ini

    * improve cache info.

    * Add basic automatic cache clear.

    * Update cached_audio_bytes when cleared

    * Make sure we update the cache size value.

    * might as well update here too.

    * Add i18n strings for cache command.

    * Throw command error on invalid option.

    * make sure example_options match config defaults.

    * Compat with Windows, only remove cache dir on startup, & fix sorting order.

    * Make SaveVideos=no work as expected on Windows.
    Also fix a typo.

commit ff0cb1d
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Wed Nov 29 22:51:32 2023 -0600

    Shuffle play fixes

    Fix that shuffleplay wasn't actually shuffling due to an early return. Follow same format as the rest of the help docs. Fix format issue for repeat command no songs errror. Add an expire in to repeat command no voice.

commit 579eeb3
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Wed Nov 29 21:08:31 2023 -0600

    Clarification.

    Clarify that the playlist plays the first few songs in order only if nothing else is playing first.
    Also ran black.

commit 8f36dad
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Wed Nov 29 20:50:05 2023 -0600

    Fix mentions in now playing

    There's an issue where using mentions in a title doesn't convert and shows as <@numbers> instead. This ensures now playing mentions work correctly by putting it into a field instead of a title. I'm sure there's a better way to hack the name parameter for add_field but this seems work fine.

commit b691d45
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Wed Nov 29 19:43:51 2023 -0600

    Shuffle the playlist

    I did this wrong, this will correctly shuffle the playlist after it's been fully downloaded. Due to the nature of how _cmd_play works, the first few songs of the playlist will be played in the order they are in the playlist.

commit 7e2adb0
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Wed Nov 29 19:13:27 2023 -0600

    Adds shuffleplay

    A shorthand command of doing the play command and then the shuffle command

commit 0d3eb97
Author: DestinyofYeet <57575330+DestinyofYeet@users.noreply.github.com>
Date:   Tue Nov 28 23:26:27 2023 +0100

    Round robin queue (#2361)

    * Added a round-robin queue

    * ran black

    * added round_robin_queue to !option

    * ran black

    * changed default option to no

    * Extra info

    ---------

    Co-authored-by: Snow <135516526+BabyBoySnow@users.noreply.github.com>

commit dd98309
Author: DestinyofYeet <57575330+DestinyofYeet@users.noreply.github.com>
Date:   Wed Nov 22 23:44:13 2023 +0100

    "Now playing" now respects DeleteNowPlaying option (#2358)

commit 7295687
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Wed Nov 22 13:52:49 2023 -0600

    Squashed commit of the following:

    commit 607783b
    Author: DestinyofYeet <57575330+DestinyofYeet@users.noreply.github.com>
    Date:   Wed Nov 22 14:43:34 2023 +0100

        "Now playing" now respects DeleteNowPlaying option

commit e8eebff
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Nov 17 15:51:20 2023 -0600

    Remove checks for request usage.

    Something weird was going on where this was raising errors, even with no modifications to the code.

commit 24e2798
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Nov 10 21:02:18 2023 -0600

    only delete invoking if set to

    Also add missing expire_in

commit 5fe6209
Author: P.H. Knot <36478829+phknot@users.noreply.github.com>
Date:   Tue Nov 7 01:22:06 2023 +0100

    Include git in Dockerfile (#2355)

    git is needed to install the
    git+https://github.com/Rapptz/discord.py pip dependency

commit f141234
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Sun Nov 5 21:30:23 2023 -0600

    fix messages deleting even when set not to

commit 1800656
Merge: 773fa3d 2dd4f73
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Oct 26 04:08:13 2023 -0500

    Merge pull request #2352 from DestinyofYeet/fix-autoplaylist-skipping-song

    fixed that the autoplaylist skips the current song playing when enabling it

commit 2dd4f73
Author: DestinyofYeet <57575330+DestinyofYeet@users.noreply.github.com>
Date:   Thu Oct 26 11:04:28 2023 +0200

    fixed that the autoplaylist skips the current song playing when enabling it

commit 773fa3d
Merge: f9c3621 2be8f19
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Oct 26 03:53:20 2023 -0500

    Merge pull request #2351 from DestinyofYeet/move-message-fix

    Move message fix

commit 2be8f19
Author: DestinyofYeet <57575330+DestinyofYeet@users.noreply.github.com>
Date:   Thu Oct 26 10:46:08 2023 +0200

    bot.py: fixed move-message
    en.json: fixed spelling mistakes

commit f9c3621
Author: DestinyofYeet <57575330+DestinyofYeet@users.noreply.github.com>
Date:   Thu Oct 19 23:46:37 2023 +0200

    Disconnect timer (#2350)

    * apparently auto_paused was needed, whoops

    * Made the text more informative and fixed a bug where the bot would not disconnect when moved between VC's

    * ran black

commit ce179c1
Author: DestinyofYeet <57575330+DestinyofYeet@users.noreply.github.com>
Date:   Thu Oct 19 22:42:23 2023 +0200

    apparently auto_paused was needed, whoops (#2349)

commit 1653440
Merge: b5b6f32 03789a0
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Oct 19 15:28:12 2023 -0500

    Merge pull request #2348 from DestinyofYeet/disconnect-timer

    updated inactivity timeout logic

commit 03789a0
Merge: fc49fe7 b1a1c8a
Author: DestinyofYeet <olebend@gmail.com>
Date:   Thu Oct 19 22:23:25 2023 +0200

    Merge remote-tracking branch 'origin/disconnect-timer' into disconnect-timer

commit fc49fe7
Author: DestinyofYeet <olebend@gmail.com>
Date:   Thu Oct 19 22:23:21 2023 +0200

    fixed bound channels and changed text as requested

commit b1a1c8a
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Oct 19 15:15:06 2023 -0500

    Update example_options.ini

    Missed one lol

commit 5cf64d8
Author: DestinyofYeet <olebend@gmail.com>
Date:   Thu Oct 19 21:29:51 2023 +0200

    bot.py: updated inactivity timeout logic

    example_options.ini: added space between text and #

commit b5b6f32
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Oct 13 20:32:58 2023 -0500

    No real point in having a different set for this

    Refactor to use ssd instead of a separate list for guild ID's and timers.

commit 764bc3b
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Oct 13 06:07:51 2023 -0500

    Attempt to send it to a channel.

    I'm not really sure if this is wanted or needed but I like it. If anyone complains it can always be removed.

commit 0823941
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Oct 13 04:52:31 2023 -0500

    Should close #2265

    Thanks ole for pointing out the way to do this.

commit 13e1878
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Oct 13 04:06:36 2023 -0500

    Remove unnecessary list.

    Never get's used. Every byte matters.

commit 381634f
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Sun Oct 1 20:59:32 2023 -0500

    change from debug to info.

    Make sure we don't disconnect from binded voice channels. Add a little more detail about canceled timers.

commit 8acff12
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Sep 29 16:20:16 2023 -0500

    forgot to run black over it

commit 5e6686e
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Sep 29 16:19:04 2023 -0500

    I did not account for user moving to a different channel and taking the bot with them.

commit a19faa3
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Fri Sep 29 15:30:00 2023 -0500

    Feat: Leave inactive VC after x time.

    Saw this requested a few different times. I tested with 1 server, hasn't been tested with multiple servers. Should be fine but time will tell.

commit 922f5f2
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Sep 28 19:37:02 2023 -0500

    waiting for pypi release.

commit 54086ba
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Sep 28 16:59:28 2023 -0500

    Update requirements.txt

    Target was merged.

commit c9f95d8
Merge: b8c744e cc769bb
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Sep 28 13:27:51 2023 -0500

    Merge pull request #1544 from obi23lipnik/playlist_manipulations

    Adds 'autoplaylist' command to allow better autoplaylist manipulation

commit cc769bb
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Sep 28 13:24:12 2023 -0500

    Remove redundant code and run black

    There was no point in having a save command since the autoplaylist command has it.

commit f903623
Merge: de51079 b8c744e
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Thu Sep 28 13:06:39 2023 -0500

    Merge branch 'dev' into pr/1544

commit b8c744e
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Wed Sep 27 19:08:37 2023 -0500

    typo.

    Fix typo.

commit 3eacf3f
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Wed Sep 27 19:07:01 2023 -0500

    change video ID handling

    Update the way we grab a video ID from a url to account for links being used that don't have the watchv in it. Could potentially solve #2341?

commit 8b316d2
Author: TheerapakG <theerapakg@gmail.com>
Date:   Sun Sep 24 22:32:40 2023 +0700

    fix: pass stderr bytesio for dpy voice rewrite (#2336)

commit 8c05005
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Sun Sep 24 09:39:17 2023 -0500

    target borkeds rewrite of voice handling

commit 22905cd
Author: TheerapakG <theerapakg@gmail.com>
Date:   Sun Sep 24 12:55:37 2023 +0700

    refactor: remove PatchedBuff (#2335)

commit 870165f
Author: Snow <135516526+BabyBoySnow@users.noreply.github.com>
Date:   Sat Sep 9 20:01:30 2023 -0500

    Update PULL_REQUEST_TEMPLATE.md

    Target the dev branch.

commit de51079
Merge: 47a5e46 f068fe8
Author: BabyBoySnow <earlSweatShirt1124@gmail.com>
Date:   Sat Jul 29 23:00:22 2023 -0500

    Merge branch 'master' into pr/1544

commit 47a5e46
Author: David Lipnik <david.lipnik12@gmail.com>
Date:   Tue Mar 20 22:36:07 2018 +0000

    Removes redundat cmd handle

commit 1d1ca21
Author: David Lipnik <david.lipnik12@gmail.com>
Date:   Tue Mar 20 22:28:03 2018 +0000

    Removes  and applies better formatting (shorter lines)

commit f55ca8f
Author: David Lipnik <david.lipnik12@gmail.com>
Date:   Tue Mar 20 17:44:34 2018 +0000

    Adds 'autoplaylist [+, -, add, remove]' command and refactors functioning parts of save/unsave commands

commit 06f114b
Author: David Lipnik <david.lipnik12@gmail.com>
Date:   Tue Mar 20 15:41:11 2018 +0000

    Removes redundant newline and uses better wording on cmd-unsave-invalid exception

commit 674da78
Author: David Lipnik <david.lipnik12@gmail.com>
Date:   Tue Mar 20 15:09:26 2018 +0000

    Adds 'unsave' command
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
a/backend Affetcs the backend (youtube-dl/processing) a/cmds Affects the bot's commands system needs triage t/enhancement [PRs] Someone did a thing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants