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

Bring bug fixes and combative methods into master #2430

Open
wants to merge 136 commits into
base: master
Choose a base branch
from
Open

Conversation

BabyBoySnow
Copy link
Collaborator

After creating your pull request, tick these boxes if they are applicable to you.

  • 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 or higher
  • I have ensured my code is formatted using Black

Description

Brings many of the bug fixes, and new features to combat against youtube's "sign in to confirm you're not a bot"
Adds a few sub commands this is mostly a PR to address the youtube issue.

Related issues (if applicable)

obi23lipnik and others added 30 commits March 20, 2018 15:09
Target the dev branch.
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?
Fix typo.
There was no point in having a save command since the autoplaylist command has it.
Adds 'autoplaylist' command to allow better autoplaylist manipulation
Target was merged.
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.
Make sure we don't disconnect from binded voice channels. Add a little more detail about canceled timers.
Never get's used. Every byte matters.
Thanks ole for pointing out the way to do this.
I'm not really sure if this is wanted or needed but I like it. If anyone complains it can always be removed.
Refactor to use ssd instead of a separate list for guild ID's and timers.
example_options.ini: added space between text and #
itsTheFae and others added 28 commits May 6, 2024 21:52
* 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
* 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
* Adds seeking and playback speed support.

* Update example_options.ini

* Add relative seek.
* Bug fixes, QOL tweaks, and code clean up.

* Fix regression of relative seek.
Co-authored-by: Snow <135516526+BabyBoySnow@users.noreply.github.com>
add latency as ping
* Provide option for auto-unpause, default off.

* Add option to example_options.ini
adds an option to reset config options to default as defined in ConfigDefaults.

Maybe find a way to create option_defaults.ini for use here?
* Attempt to squash the high-cpu bug.
- Make play calls explicit, rather than implied through adding entries.
- Handle player errors and ensure progress of queue or autoplaylist.
- Prevent early garbage collection of created async tasks.
- Run shutdown on downloader thread pool.  Waits threads rather than let them dangle.
- Reduce usage of infinite loops and update some logging.

* Make pylint happy with 3.8 compatible call.

* Ensure task exceptions are retrieved by the done callback.

* Try to read ffmpeg stderr stream until playback stops or an exception is set.

* return player to stopped state for playback finished or it wont restart later...

* Deal with aiohttp client errors in the safe_*_message functions...

* Move stderr future checking before the return statements in _playback_finished callback.
Otherwise that could loop infinitely...
* Add technical support for cookies.txt passed to yt-dlp.  For those who know the risks and want to take them.

* Remove unused code.

* Fix to_ini for debug level config

* Add dev-only command to make markdown from config / permissions code.

* Fix AttributeError with out-of-date colorama on windows.

* Fix exception handling if aiohttp import fails.

* Add ffmpeg start-up check.

* Ensure windows has colorama 0.4.6+ if colorlog does not require it.

* Change version constant and modification detection logic.

* remove todo

* Add support for spaces in aliased commands, enabling commands with pre-defined arguments to be aliased as well as simple renames.

* format

* More format changes.

* Make debug command more debug-y

* Create some UA string "options" via constants.  
These are not recommended to be changed.  Basically only for debug / ye-who-knows.
I will not provide ANY support for these, use them at your own risk!

* add note about PCMVolumeTransformer

* format & lint

* Pre-download next track in queue.
Does not affect autoplaylist tracks, as they are added 1x1 while q is empty.

* format

* lints

* Add option for status message to count paused players, off by default.

* Make pre-download happen a tad later to reduce network congestion for current entry playback.
Note that this seems to create some jitter in audio playback while download is ongoing.

* Better checks for player inactivity.

* Remove TODO and format.

* Remove bogus statement about {n_paused} status message variable.

* Experimental proxy option for ytdlp.

* Add UA changing option to ini config.

* Revise options and help texts for PR #2416
* Add owner-only command to manage cookies.

* Ensure ytdlp rotates UA strings with each request, while not set static.

* Add warning to setcookies help text.

* Make header check timeout errors graceful.

* format

* Change MusicBot to bot's username in uptime command.

* format and lint

* Fix typo and copy-paste blunder.
* Fix windows install.ps1 hanging if winget terms are not accepted yet.
Minor changes to description / informative text.

* Update requirements.txt for windows aiodns bug.
* Commit original code with notice of origin and license.

* format original source code

* Integrate the OAuth2 plugin as optional.  
Uses original library if it is installed, to prevent conflicts and provide easier testing.

* fix typo with importlib.

* Updates for lint / formatting.

* Enable ytdlp logging with original oauth2 plugin.
Updates the warning about original plugin use.

* handle ModuleNotFoundError when checking for OAuth2 plugin.

* Address the extractor permissions being too strict and thus confusing.
This also updates some inconsistent documentation and logic around allowing all extractors.
* make sure to set default value in new example options.

* update some example options.
tweak how getbool fails.
add getstr for explicit strip of whitespace and fallback on empty.
* Fix relative seek and improve feedback of seek command.

* format seek time floats

* Fix playnext not respecting playlists

* ignore activity timer when voice client is already disconnected
since we pull directly, no need to wait to revert this until it's pushed to pypi
* Add Ubuntu 24.xx installer.
Minor update to debian 12 & added 13 - needs testing.

* Make run.sh and update.sh check for venv.

* More compatibility with venv installs

* do testing with debian, and update --list

* Add PopOS 24.04 and Shellcheck updates

* add default case to pop OS

* Add detected OS to install.sh --list

* Allow bypass of system package steps or of musicbot install steps.

* more tweaks and options

* use pypi discord.py

* try to add install path option

* no = supported here

* Move the default check.

* Clean up service install. 
Remove cli alias as unsupported.
Adjust post install message for venv.
Add --no-sudo option.

* more service install tweaks

* output formatting

* don't touch options.ini if it exists already.
fix copy and sed.

* service setup assumes previous cd to clone dir.

* Turn the template into just an example file.
Installer now has its own internal template to generate service files.

* add / change warning about install directory with --service option.

* more output tweaks

* Ap add all (#6)

Adds new sub-command as `autoplaylist [+ | add] all` which allows users to add all songs in the queue to the auto playlist. 

Conflicts:
	musicbot/bot.py

* Use discord via git repo ... test test test






I should have left the installers broken...

* Add some root/sudo checks.

* Try to install winget and restart for env vars.

* Fix env vars maybe, add file extension un-hide logic

* Add anybranch option, fix ffmpeg error when installed but no update.

* Install path and cleaning output.

* fix winget issues with ffmpeg

* set appropriate repo url.

* checks

* add certificate pre-fetch to installer...

* add lock to summon.
also tidy code

* Fix extractor checks to work with and without plugins like oauth2.
SpotifyPlaylist objects only allow track member types.

* fix summon message on stream
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants