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

feat: Update Docker and CI #2432

Closed

Conversation

pythoninthegrass
Copy link

  • 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

Original PR at #2431

Note

This PR includes recent updates from the dev branch. My specific contributions are focused on Docker and CI/CD improvements, as detailed in the commit "feat: update docker and CI/CD".

I did my best to rebase my feature branch against the upstream dev, but ended up coauthoring a handful of commits.

Hoping that since github says the branch can be merged automatically, that should be sufficient 🤞

My key changes include:

  • Updated docker.yml for multi-architecture builds and container registry pushes
  • Refined Dockerfile with buildkit syntax and environment variable improvements
  • Refactored docker-compose.example.yml
  • Updated docker-entrypoint.sh to remove bashisms and control for word splitting
  • Added .dockerignore, .dive-ci, and .hadolint.yaml for Docker build optimization and linting
  • Updated .gitignore and added .env.example

These changes are aimed at improving the Docker-related aspects of the project and enhancing the CI/CD pipeline.

Related issues (if applicable)

Closes #2412

BabyBoySnow and others added 7 commits October 17, 2024 20:53
Something weird was going on where this was raising errors, even with no modifications to the code.
black got updated
commit 45f3b7d
Author: Snow <[email protected]>
Date:   Mon Feb 5 18:16:58 2024 -0600

    update readme to include black

commit 8d11ae3
Author: Snow <[email protected]>
Date:   Mon Feb 5 18:01:07 2024 -0600

    new black version

commit 37bcf1f
Author: Fae <[email protected]>
Date:   Mon Feb 5 15:53:13 2024 -0800

    fix for timer events in server specific data. (Just-Some-Bots#2385)

    * hot fix for timer events in server specific data.

    * fix both events.

commit 270da4d
Author: Fae <[email protected]>
Date:   Fri Jan 26 11:38:31 2024 -0800

    Fix missing logs bug (now on dev) (Just-Some-Bots#2384)

    * Fix broken startup is logs directory is missing.

    * Run black

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

commit 5810590
Author: Snow <[email protected]>
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 <[email protected]>
Date:   Thu Jan 18 23:25:18 2024 -0600

    Revert "add ping"

    This reverts commit 0a0e171.

commit 0a0e171
Author: Snow <[email protected]>
Date:   Thu Jan 18 23:24:21 2024 -0600

    add ping

commit 7694da0
Author: Snow <[email protected]>
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 <[email protected]>
Date:   Mon Jan 8 18:45:11 2024 -0800

    Restart overhaul - with upgrade commands (Just-Some-Bots#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 <[email protected]>
    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 <[email protected]>

commit 7b4b153
Author: Snow <[email protected]>
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 <[email protected]>
Date:   Sat Jan 6 20:03:25 2024 -0800

    Pause resume updates (Just-Some-Bots#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 <[email protected]>
Date:   Wed Dec 27 11:04:03 2023 -0800

    Fix skip tally and cmd prefix bugs (Just-Some-Bots#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 <[email protected]>
Date:   Fri Dec 22 18:00:10 2023 -0600

    remove todo

commit 29a510d
Author: Snow <[email protected]>
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 <[email protected]>
Date:   Fri Dec 22 14:50:00 2023 -0800

    Stop spotify playlists fetch on clear command (Just-Some-Bots#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 <[email protected]>
Date:   Fri Dec 22 14:49:15 2023 -0800

    Update flake8 config and run Flake8 over the whole project. (Just-Some-Bots#2379)

    Also changes skip command permission checks for looped songs.

commit 9c9e6ca
Author: Fae <[email protected]>
Date:   Tue Dec 19 17:20:31 2023 -0800

    Server specific data cleanup (Just-Some-Bots#2377)

    * use guild.id in server_specific_data key

    * auto black the whole repo.

commit 7cde7ad
Author: Fae <[email protected]>
Date:   Mon Dec 18 12:58:40 2023 -0800

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

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

    * run black

commit e11464f
Author: Fae <[email protected]>
Date:   Sat Dec 16 17:46:13 2023 -0800

    Better SSL Patch (Just-Some-Bots#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 <[email protected]>
Date:   Sat Dec 16 12:34:46 2023 -0800

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

commit 8ce4ce2
Author: Snow <[email protected]>
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 <[email protected]>
Date:   Fri Dec 15 20:11:28 2023 -0600

    run black

commit 3d0132e
Author: Snow <[email protected]>
Date:   Fri Dec 15 20:10:52 2023 -0600

    small change

    Make np text less ugly

commit 6083544
Author: Snow <[email protected]>
Date:   Fri Dec 15 17:10:06 2023 -0600

    forgot black

commit 117ec17
Author: Snow <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 Just-Some-Bots#2252
    Add  autoplaylist cache map to gitignore

commit 9c14a19
Author: Fae <[email protected]>
Date:   Wed Dec 13 19:38:31 2023 -0800

    Inactive player timeout & timer touch ups. (Just-Some-Bots#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 <[email protected]>
Date:   Wed Dec 13 18:20:27 2023 -0800

    Prefix per server (Just-Some-Bots#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 <[email protected]>
Date:   Wed Dec 13 18:20:09 2023 -0800

    Typing compatible with 3.8 (Just-Some-Bots#2370)

commit 2785ac3
Author: Fae <[email protected]>
Date:   Tue Dec 12 12:13:24 2023 -0800

    Cache autoplay retention option & cache folder option. (Just-Some-Bots#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 <[email protected]>
Date:   Mon Dec 4 10:54:33 2023 -0800

    Fix spotify ssl issue (Just-Some-Bots#2364)

    * patch spotify.py SSL with certifi

    * remove ssl_context from global scope

commit 330b111
Author: Fae <[email protected]>
Date:   Sat Dec 2 15:40:46 2023 -0800

    Allow cache config shorthand & clarify functionality. (Just-Some-Bots#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 <[email protected]>
Date:   Thu Nov 30 12:54:09 2023 -0800

    More audio cache options. (Just-Some-Bots#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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Date:   Tue Nov 28 23:26:27 2023 +0100

    Round robin queue (Just-Some-Bots#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 <[email protected]>

commit dd98309
Author: DestinyofYeet <[email protected]>
Date:   Wed Nov 22 23:44:13 2023 +0100

    "Now playing" now respects DeleteNowPlaying option (Just-Some-Bots#2358)

commit 7295687
Author: Snow <[email protected]>
Date:   Wed Nov 22 13:52:49 2023 -0600

    Squashed commit of the following:

    commit 607783b
    Author: DestinyofYeet <[email protected]>
    Date:   Wed Nov 22 14:43:34 2023 +0100

        "Now playing" now respects DeleteNowPlaying option

commit e8eebff
Author: Snow <[email protected]>
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 <[email protected]>
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 <[email protected]>
Date:   Tue Nov 7 01:22:06 2023 +0100

    Include git in Dockerfile (Just-Some-Bots#2355)

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

commit f141234
Author: Snow <[email protected]>
Date:   Sun Nov 5 21:30:23 2023 -0600

    fix messages deleting even when set not to

commit 1800656
Merge: 773fa3d 2dd4f73
Author: Snow <[email protected]>
Date:   Thu Oct 26 04:08:13 2023 -0500

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

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

commit 2dd4f73
Author: DestinyofYeet <[email protected]>
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 <[email protected]>
Date:   Thu Oct 26 03:53:20 2023 -0500

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

    Move message fix

commit 2be8f19
Author: DestinyofYeet <[email protected]>
Date:   Thu Oct 26 10:46:08 2023 +0200

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

commit f9c3621
Author: DestinyofYeet <[email protected]>
Date:   Thu Oct 19 23:46:37 2023 +0200

    Disconnect timer (Just-Some-Bots#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 <[email protected]>
Date:   Thu Oct 19 22:42:23 2023 +0200

    apparently auto_paused was needed, whoops (Just-Some-Bots#2349)

commit 1653440
Merge: b5b6f32 03789a0
Author: Snow <[email protected]>
Date:   Thu Oct 19 15:28:12 2023 -0500

    Merge pull request Just-Some-Bots#2348 from DestinyofYeet/disconnect-timer

    updated inactivity timeout logic

commit 03789a0
Merge: fc49fe7 b1a1c8a
Author: DestinyofYeet <[email protected]>
Date:   Thu Oct 19 22:23:25 2023 +0200

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

commit fc49fe7
Author: DestinyofYeet <[email protected]>
Date:   Thu Oct 19 22:23:21 2023 +0200

    fixed bound channels and changed text as requested

commit b1a1c8a
Author: Snow <[email protected]>
Date:   Thu Oct 19 15:15:06 2023 -0500

    Update example_options.ini

    Missed one lol

commit 5cf64d8
Author: DestinyofYeet <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Date:   Fri Oct 13 04:52:31 2023 -0500

    Should close Just-Some-Bots#2265

    Thanks ole for pointing out the way to do this.

commit 13e1878
Author: Snow <[email protected]>
Date:   Fri Oct 13 04:06:36 2023 -0500

    Remove unnecessary list.

    Never get's used. Every byte matters.

commit 381634f
Author: Snow <[email protected]>
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 <[email protected]>
Date:   Fri Sep 29 16:20:16 2023 -0500

    forgot to run black over it

commit 5e6686e
Author: Snow <[email protected]>
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 <[email protected]>
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 <[email protected]>
Date:   Thu Sep 28 19:37:02 2023 -0500

    waiting for pypi release.

commit 54086ba
Author: Snow <[email protected]>
Date:   Thu Sep 28 16:59:28 2023 -0500

    Update requirements.txt

    Target was merged.

commit c9f95d8
Merge: b8c744e cc769bb
Author: Snow <[email protected]>
Date:   Thu Sep 28 13:27:51 2023 -0500

    Merge pull request Just-Some-Bots#1544 from obi23lipnik/playlist_manipulations

    Adds 'autoplaylist' command to allow better autoplaylist manipulation

commit cc769bb
Author: Snow <[email protected]>
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 <[email protected]>
Date:   Thu Sep 28 13:06:39 2023 -0500

    Merge branch 'dev' into pr/1544

commit b8c744e
Author: Snow <[email protected]>
Date:   Wed Sep 27 19:08:37 2023 -0500

    typo.

    Fix typo.

commit 3eacf3f
Author: Snow <[email protected]>
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 Just-Some-Bots#2341?

commit 8b316d2
Author: TheerapakG <[email protected]>
Date:   Sun Sep 24 22:32:40 2023 +0700

    fix: pass stderr bytesio for dpy voice rewrite (Just-Some-Bots#2336)

commit 8c05005
Author: Snow <[email protected]>
Date:   Sun Sep 24 09:39:17 2023 -0500

    target borkeds rewrite of voice handling

commit 22905cd
Author: TheerapakG <[email protected]>
Date:   Sun Sep 24 12:55:37 2023 +0700

    refactor: remove PatchedBuff (Just-Some-Bots#2335)

commit 870165f
Author: Snow <[email protected]>
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 <[email protected]>
Date:   Sat Jul 29 23:00:22 2023 -0500

    Merge branch 'master' into pr/1544

commit 47a5e46
Author: David Lipnik <[email protected]>
Date:   Tue Mar 20 22:36:07 2018 +0000

    Removes redundat cmd handle

commit 1d1ca21
Author: David Lipnik <[email protected]>
Date:   Tue Mar 20 22:28:03 2018 +0000

    Removes  and applies better formatting (shorter lines)

commit f55ca8f
Author: David Lipnik <[email protected]>
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 <[email protected]>
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 <[email protected]>
Date:   Tue Mar 20 15:09:26 2018 +0000

    Adds 'unsave' command
commit ddbc8e6
Author: Snow <[email protected]>
Date:   Fri May 17 11:11:51 2024 -0500

    add some with multiple

    add latency as ping

commit c79d72a
Merge: 4c1326f dd96f1c
Author: Snow <[email protected]>
Date:   Fri May 17 11:09:52 2024 -0500

    Merge branch 'pr/2405' into dev

commit 4c1326f
Author: Snow <[email protected]>
Date:   Fri May 17 08:56:52 2024 -0500

    fix broken resolve

commit a76f648
Author: Fae <[email protected]>
Date:   Fri May 17 06:50:19 2024 -0700

    Add uptime command (Just-Some-Bots#2407)

    Co-authored-by: Snow <[email protected]>

commit c256eb9
Author: Fae <[email protected]>
Date:   Fri May 17 06:46:45 2024 -0700

    Add latency and botlatency commands. (Just-Some-Bots#2406)

commit dd96f1c
Author: itsTheFae <[email protected]>
Date:   Fri May 17 06:26:36 2024 -0700

    Add the follow command

commit 876ffb8
Author: Fae <[email protected]>
Date:   Wed May 15 18:39:41 2024 -0700

    Bug fixes, QOL tweaks, and code clean up. (Just-Some-Bots#2404)

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

    * Fix regression of relative seek.

commit c7ac43a
Author: Fae <[email protected]>
Date:   Wed May 15 06:31:49 2024 -0700

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

commit e2ad0fe
Author: Fae <[email protected]>
Date:   Wed May 15 05:32:35 2024 -0700

    Seek and speed features (Just-Some-Bots#2402)

    * Adds seeking and playback speed support.

    * Update example_options.ini

    * Add relative seek.

commit 20e674d
Author: Fae <[email protected]>
Date:   Tue May 14 08:33:08 2024 -0700

    Installer updates (Just-Some-Bots#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 <[email protected]>
Date:   Tue May 14 08:06:31 2024 -0700

    remove unused bootstrap and travis files. (Just-Some-Bots#2400)

commit 86e54e2
Author: Fae <[email protected]>
Date:   Mon May 6 19:52:12 2024 -0700

    Add commands for config and permission editing and reloading. (Just-Some-Bots#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 <[email protected]>
Date:   Fri Apr 5 09:20:01 2024 -0700

    Round robin patch (Just-Some-Bots#2396)

    * Fix index errors in reorder_for_round_robin function.

    * Update comments

commit 4c287a4
Author: Fae <[email protected]>
Date:   Fri Apr 5 07:44:04 2024 -0700

    Updates for the Installer and Updater scripts. (Just-Some-Bots#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 <[email protected]>
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 <[email protected]>
Date:   Thu Apr 4 13:33:51 2024 -0500

    use essentials build

    Use a newer binary file.

commit 7ba155e
Author: Fae <[email protected]>
Date:   Thu Apr 4 11:31:06 2024 -0700

    General stability updates. (Just-Some-Bots#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 <[email protected]>

commit 4823581
Author: Snow <[email protected]>
Date:   Thu Mar 21 23:01:55 2024 -0500

    Revert "update binaries"

    This reverts commit 0d3b768.

commit 0d3b768
Author: Snow <[email protected]>
Date:   Thu Mar 21 22:58:40 2024 -0500

    update binaries

commit 440482f
Author: Snow <[email protected]>
Date:   Thu Mar 21 20:33:38 2024 -0500

    Revert "update binaries"

    This reverts commit 76e7d36.

commit 76e7d36
Author: Snow <[email protected]>
Date:   Sat Mar 16 21:29:39 2024 -0500

    update binaries

commit 1ad2cd2
Author: Snow <[email protected]>
Date:   Thu Mar 7 14:27:04 2024 -0600

    new black version

commit 03c10ea
Author: Snow <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Date:   Fri Feb 16 20:11:32 2024 -0600

    actually make max 1000 lol

commit 1d635ba
Author: Fae <[email protected]>
Date:   Wed Feb 14 12:07:13 2024 -0800

    Graceful invalid queue (Just-Some-Bots#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 <[email protected]>
Date:   Tue Feb 13 22:20:36 2024 -0600

    Update LICENSE

commit 7dfd0be
Author: Fae <[email protected]>
Date:   Tue Feb 13 20:06:56 2024 -0800

    More player updates (Just-Some-Bots#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 <[email protected]>

commit d741aa2
Author: Fae <[email protected]>
Date:   Tue Feb 13 19:52:54 2024 -0800

    Refactor config internals. (Just-Some-Bots#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 <[email protected]>
Date:   Tue Feb 13 11:08:11 2024 -0800

    Overhaul startup and logging, bring back graceful dep failures. (Just-Some-Bots#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 <[email protected]>
Date:   Tue Feb 13 11:07:58 2024 -0800

    Fix StatusMessage handling, and removes dead code. (Just-Some-Bots#2388)

commit 516078e
Author: Snow <[email protected]>
Date:   Sat Feb 10 19:56:37 2024 -0600

    name change

commit 04df6a7
Author: Snow <[email protected]>
Date:   Sat Feb 10 19:52:16 2024 -0600

    Create pre-commit.yaml

commit d33cb6a
Author: Snow <[email protected]>
Date:   Sat Feb 10 19:49:06 2024 -0600

    force black to run before commits.

commit 331786c
Author: DestinyofYeet <[email protected]>
Date:   Sat Feb 10 23:04:35 2024 +0100

    Fix: File section is now validated (Just-Some-Bots#2386)

    * file section is now validated + black

    * black format I forgot to include

    * updated black and re-formatted

commit fd6f854
Author: Snow <[email protected]>
Date:   Thu Feb 8 12:39:15 2024 -0600

    Update playlist.py

commit 592a754
Author: Fae <[email protected]>
Date:   Wed Feb 7 19:18:53 2024 -0800

    Optimize play commands (Just-Some-Bots#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 <[email protected]>
Date:   Mon Feb 5 18:16:58 2024 -0600

    update readme to include black

commit 8d11ae3
Author: Snow <[email protected]>
Date:   Mon Feb 5 18:01:07 2024 -0600

    new black version

commit 37bcf1f
Author: Fae <[email protected]>
Date:   Mon Feb 5 15:53:13 2024 -0800

    fix for timer events in server specific data. (Just-Some-Bots#2385)

    * hot fix for timer events in server specific data.

    * fix both events.

commit 270da4d
Author: Fae <[email protected]>
Date:   Fri Jan 26 11:38:31 2024 -0800

    Fix missing logs bug (now on dev) (Just-Some-Bots#2384)

    * Fix broken startup is logs directory is missing.

    * Run black

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

commit 5810590
Author: Snow <[email protected]>
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 <[email protected]>
Date:   Thu Jan 18 23:25:18 2024 -0600

    Revert "add ping"

    This reverts commit 0a0e171.

commit 0a0e171
Author: Snow <[email protected]>
Date:   Thu Jan 18 23:24:21 2024 -0600

    add ping

commit 7694da0
Author: Snow <[email protected]>
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 <[email protected]>
Date:   Mon Jan 8 18:45:11 2024 -0800

    Restart overhaul - with upgrade commands (Just-Some-Bots#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 <[email protected]>
    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 <[email protected]>

commit 7b4b153
Author: Snow <[email protected]>
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 <[email protected]>
Date:   Sat Jan 6 20:03:25 2024 -0800

    Pause resume updates (Just-Some-Bots#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 <[email protected]>
Date:   Wed Dec 27 11:04:03 2023 -0800

    Fix skip tally and cmd prefix bugs (Just-Some-Bots#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 <[email protected]>
Date:   Fri Dec 22 18:00:10 2023 -0600

    remove todo

commit 29a510d
Author: Snow <[email protected]>
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 <[email protected]>
Date:   Fri Dec 22 14:50:00 2023 -0800

    Stop spotify playlists fetch on clear command (Just-Some-Bots#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 <[email protected]>
Date:   Fri Dec 22 14:49:15 2023 -0800

    Update flake8 config and run Flake8 over the whole project. (Just-Some-Bots#2379)

    Also changes skip command permission checks for looped songs.

commit 9c9e6ca
Author: Fae <[email protected]>
Date:   Tue Dec 19 17:20:31 2023 -0800

    Server specific data cleanup (Just-Some-Bots#2377)

    * use guild.id in server_specific_data key

    * auto black the whole repo.

commit 7cde7ad
Author: Fae <[email protected]>
Date:   Mon Dec 18 12:58:40 2023 -0800

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

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

    * run black

commit e11464f
Author: Fae <[email protected]>
Date:   Sat Dec 16 17:46:13 2023 -0800

    Better SSL Patch (Just-Some-Bots#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 <[email protected]>
Date:   Sat Dec 16 12:34:46 2023 -0800

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

commit 8ce4ce2
Author: Snow <[email protected]>
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 <[email protected]>
Date:   Fri Dec 15 20:11:28 2023 -0600

    run black

commit 3d0132e
Author: Snow <[email protected]>
Date:   Fri Dec 15 20:10:52 2023 -0600

    small change

    Make np text less ugly

commit 6083544
Author: Snow <[email protected]>
Date:   Fri Dec 15 17:10:06 2023 -0600

    forgot black

commit 117ec17
Author: Snow <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 Just-Some-Bots#2252
    Add  autoplaylist cache map to gitignore

commit 9c14a19
Author: Fae <[email protected]>
Date:   Wed Dec 13 19:38:31 2023 -0800

    Inactive player timeout & timer touch ups. (Just-Some-Bots#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 <[email protected]>
Date:   Wed Dec 13 18:20:27 2023 -0800

    Prefix per server (Just-Some-Bots#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 <[email protected]>
Date:   Wed Dec 13 18:20:09 2023 -0800

    Typing compatible with 3.8 (Just-Some-Bots#2370)

commit 2785ac3
Author: Fae <[email protected]>
Date:   Tue Dec 12 12:13:24 2023 -0800

    Cache autoplay retention option & cache folder option. (Just-Some-Bots#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 <[email protected]>
Date:   Mon Dec 4 10:54:33 2023 -0800

    Fix spotify ssl issue (Just-Some-Bots#2364)

    * patch spotify.py SSL with certifi

    * remove ssl_context from global scope

commit 330b111
Author: Fae <[email protected]>
Date:   Sat Dec 2 15:40:46 2023 -0800

    Allow cache config shorthand & clarify functionality. (Just-Some-Bots#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 <[email protected]>
Date:   Thu Nov 30 12:54:09 2023 -0800

    More audio cache options. (Just-Some-Bots#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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Date:   Tue Nov 28 23:26:27 2023 +0100

    Round robin queue (Just-Some-Bots#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 <[email protected]>

commit dd98309
Author: DestinyofYeet <[email protected]>
Date:   Wed Nov 22 23:44:13 2023 +0100

    "Now playing" now respects DeleteNowPlaying option (Just-Some-Bots#2358)

commit 7295687
Author: Snow <[email protected]>
Date:   Wed Nov 22 13:52:49 2023 -0600

    Squashed commit of the following:

    commit 607783b
    Author: DestinyofYeet <[email protected]>
    Date:   Wed Nov 22 14:43:34 2023 +0100

        "Now playing" now respects DeleteNowPlaying option

commit e8eebff
Author: Snow <[email protected]>
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 <[email protected]>
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 <[email protected]>
Date:   Tue Nov 7 01:22:06 2023 +0100

    Include git in Dockerfile (Just-Some-Bots#2355)

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

commit f141234
Author: Snow <[email protected]>
Date:   Sun Nov 5 21:30:23 2023 -0600

    fix messages deleting even when set not to

commit 1800656
Merge: 773fa3d 2dd4f73
Author: Snow <[email protected]>
Date:   Thu Oct 26 04:08:13 2023 -0500

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

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

commit 2dd4f73
Author: DestinyofYeet <[email protected]>
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 <[email protected]>
Date:   Thu Oct 26 03:53:20 2023 -0500

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

    Move message fix

commit 2be8f19
Author: DestinyofYeet <[email protected]>
Date:   Thu Oct 26 10:46:08 2023 +0200

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

commit f9c3621
Author: DestinyofYeet <[email protected]>
Date:   Thu Oct 19 23:46:37 2023 +0200

    Disconnect timer (Just-Some-Bots#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 <[email protected]>
Date:   Thu Oct 19 22:42:23 2023 +0200

    apparently auto_paused was needed, whoops (Just-Some-Bots#2349)

commit 1653440
Merge: b5b6f32 03789a0
Author: Snow <[email protected]>
Date:   Thu Oct 19 15:28:12 2023 -0500

    Merge pull request Just-Some-Bots#2348 from DestinyofYeet/disconnect-timer

    updated inactivity timeout logic

commit 03789a0
Merge: fc49fe7 b1a1c8a
Author: DestinyofYeet <[email protected]>
Date:   Thu Oct 19 22:23:25 2023 +0200

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

commit fc49fe7
Author: DestinyofYeet <[email protected]>
Date:   Thu Oct 19 22:23:21 2023 +0200

    fixed bound channels and changed text as requested

commit b1a1c8a
Author: Snow <[email protected]>
Date:   Thu Oct 19 15:15:06 2023 -0500

    Update example_options.ini

    Missed one lol

commit 5cf64d8
Author: DestinyofYeet <[email protected]>
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 <[email protected]>
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 <[email protected]>
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 <[email protected]>
Date:   Fri Oct 13 04:52:31 2023 -0500

    Should close Just-Some-Bots#2265

    Thanks ole for pointing out the way to do this.

commit 13e1878
Author: Snow <[email protected]>
Date:   Fri Oct 13 04:06:36 2023 -0500

    Remove unnecessary list.

    Never get's used. Every byte matters.

commit 381634f
Author: Snow <[email protected]>
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 <[email protected]>
Date:   Fri Sep 29 16:20:16 2023 -0500

    forgot to run black over it

commit 5e6686e
Author: Snow <[email protected]>
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 <[email protected]>
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 <[email protected]>
Date:   Thu Sep 28 19:37:02 2023 -0500

    waiting for pypi release.

commit 54086ba
Author: Snow <[email protected]>
Date:   Thu Sep 28 16:59:28 2023 -0500

    Update requirements.txt

    Target was merged.

commit c9f95d8
Merge: b8c744e cc769bb
Author: Snow <[email protected]>
Date:   Thu Sep 28 13:27:51 2023 -0500

    Merge pull request Just-Some-Bots#1544 from obi23lipnik/playlist_manipulations

    Adds 'autoplaylist' command to allow better autoplaylist manipulation

commit cc769bb
Author: Snow <[email protected]>
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 <[email protected]>
Date:   Thu Sep 28 13:06:39 2023 -0500

    Merge branch 'dev' into pr/1544

commit b8c744e
Author: Snow <[email protected]>
Date:   Wed Sep 27 19:08:37 2023 -0500

    typo.

    Fix typo.

commit 3eacf3f
Author: Snow <[email protected]>
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 Just-Some-Bots#2341?

commit 8b316d2
Author: TheerapakG <[email protected]>
Date:   Sun Sep 24 22:32:40 2023 +0700

    fix: pass stderr bytesio for dpy voice rewrite (Just-Some-Bots#2336)

commit 8c05005
Author: Snow <[email protected]>
Date:   Sun Sep 24 09:39:17 2023 -0500

    target borkeds rewrite of voice handling

commit 22905cd
Author: TheerapakG <[email protected]>
Date:   Sun Sep 24 12:55:37 2023 +0700

    refactor: remove PatchedBuff (Just-Some-Bots#2335)

commit 870165f
Author: Snow <[email protected]>
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 <[email protected]>
Date:   Sat Jul 29 23:00:22 2023 -0500

    Merge branch 'master' into pr/1544

commit 47a5e46
Author: David Lipnik <[email protected]>
Date:   Tue Mar 20 22:36:07 2018 +0000

    Removes redundat cmd handle

commit 1d1ca21
Author: David Lipnik <[email protected]>
Date:   Tue Mar 20 22:28:03 2018 +0000

    Removes  and applies better formatting (shorter lines)

commit f55ca8f
Author: David Lipnik <[email protected]>
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 <[email protected]>
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 <[email protected]>
Date:   Tue Mar 20 15:09:26 2018 +0000

    Adds 'unsave' command
Original PR at Just-Some-Bots#2431

Created feature branch and squash commits based on feedback.

`docker.yml`: build amd64 and arm64 images, then push to container registries (tested GitHub Container Registry and Docker Hub)
`Dockerfile`: buildkit syntax, formatting, pip and python env vars, and optional label (used with gha)
`docker-compose.example.yml`: refactored for implicit or unset directives based on Dockerfile
`docker-entrypoint.sh`: get posix sh from env, remove bashisms, double quote cli args to avoid word splitting
`.dockerignore`: added relevant files to ignore
`.dive-ci`: analyzes docker images
`.hadolint.yaml`: added to lint Dockerfiles
`.gitignore`: added relevant files to ignore, annotated sections, added inclusions at the end
`.env.example`: added to provide an example of the environment variables for docker compose builds
@BabyBoySnow BabyBoySnow added hacktoberfest-accepted That's a pretty good PR there, bud. t/enhancement [PRs] Someone did a thing needs updating for PRs that needs to be updated to target the current review branch (merge conflicts) labels Oct 18, 2024
@BabyBoySnow
Copy link
Collaborator

It seems that the rebase has reverted some of the features in the dev branch

@itsTheFae
Copy link
Contributor

itsTheFae commented Oct 18, 2024

Yeah, this wont fly either. Sorry.
You need to make a clean copy of dev and redo your work here. You cannot rebase master onto dev.

Since this PR is from a branch, you should be able to force-push the clean copy and subsequent changes to that branch and reset the commits of this PR automatically.

Copy link
Member

@srhinos srhinos left a comment

Choose a reason for hiding this comment

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

the above comments are all very valid takes.
To add on, while I understand your reasoning behind adding them, theres no reason to add the following:

  • .env.example - we dont need a .env just for CI, these things should be contained to just the CI.
  • .dive-ci - I have never heard of this and see no benefit to it
  • .hadolint.yaml - I have never heard of this and see no benefit to it

Beyond that, I'd say cut out all the extra fluff added. No one needs a defined docker compose network for this bot. That changes nothing other than increased diff. Less is more

Comment on lines +10 to +19
paths:
- 'Dockerfile*'
- 'pyproject.toml'
- 'poetry.lock'
- 'requirements.txt'
- '**.py'
- '**.sh'
- '.dockerignore'
- '.env.example'
- '.github/workflows/**'
Copy link
Member

@srhinos srhinos Oct 18, 2024

Choose a reason for hiding this comment

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

what will this actually do? this seems largely pointless and should just be removed

Comment on lines +36 to +102
- name: Set password by container registry
run: |
case "${{ env.REGISTRY_URL }}" in
"ghcr.io")
echo "REGISTRY_PASS=${{ secrets.GITHUB_TOKEN }}" >> $GITHUB_ENV
;;
*)
if [ -n "${{ secrets.REGISTRY_PASS }}" ]; then
echo "REGISTRY_PASS=${{ secrets.REGISTRY_PASS }}" >> $GITHUB_ENV
else
echo "REGISTRY_PASS secret is not set and registry is not recognized. Exiting..."
exit 1
fi
;;
esac

- name: Log into container registry
if: github.event_name != 'pull_request'
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY_URL }}
username: ${{ env.REGISTRY_USER }}
password: ${{ env.REGISTRY_PASS }}

- name: Set image name
id: image_name
run: |
if [ -n "${{ env.IMAGE }}" ]; then
IMAGE="${{ env.IMAGE }}"
else
IMAGE=$(grep "LABEL org.opencontainers.image.title" Dockerfile | cut -d'"' -f2)
fi
echo "IMAGE=$IMAGE" >> $GITHUB_OUTPUT
echo "IMAGE=$IMAGE" >> $GITHUB_ENV

- name: Docker meta
id: meta
uses: docker/metadata-action@v5
with:
images: |
${{ env.REGISTRY_URL }}/${{ env.REGISTRY_USER }}/${{ steps.image_name.outputs.IMAGE }}
tags: |
type=schedule
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
type=sha
type=raw,value=latest,enable={{is_default_branch}}

- name: Setup QEMU
uses: docker/setup-qemu-action@v3

- name: Setup Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Build and push
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64/v8
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=registry,ref=${{ env.REGISTRY_URL }}/${{ env.REGISTRY_USER }}/${{ steps.image_name.outputs.IMAGE }}:buildcache
cache-to: type=registry,ref=${{ env.REGISTRY_URL }}/${{ env.REGISTRY_USER }}/${{ steps.image_name.outputs.IMAGE }}:buildcache,mode=max
Copy link
Member

Choose a reason for hiding this comment

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

this is all so insanely complex for a simple task such as uploading a built docker image to github's container registry.

I built this exact workflow in another repo I maintain @ here, feel free to use it as inspiration as this workflow is really awful.

ENV PIP_DEFAULT_TIMEOUT=100

# don't generate .pyc, enable tracebacks on seg faults
ENV PYTHONDONTWRITEBYTECODE=1
Copy link
Member

Choose a reason for hiding this comment

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

we dont want this enabled. It greatly reduces performance

Comment on lines +28 to +31
# pip env vars
ENV PIP_NO_CACHE_DIR=off
ENV PIP_DISABLE_PIP_VERSION_CHECK=on
ENV PIP_DEFAULT_TIMEOUT=100
Copy link
Member

Choose a reason for hiding this comment

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

these aren't needed as well. No reason to add them

FROM python:3.8-alpine
# syntax=docker/dockerfile:1.7.0

FROM python:3.8-alpine3.20
Copy link
Member

Choose a reason for hiding this comment

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

is there any reason to deeply specify the alpine version?

Comment on lines +9 to +10
environment:
- APP_ENV=docker
Copy link
Member

Choose a reason for hiding this comment

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

this isnt really needed unless we're using this in code somewhere.

Comment on lines +16 to +23
networks:
- musicbot
working_dir: /musicbot

networks:
musicbot:
name: musicbot
driver: bridge
Copy link
Member

Choose a reason for hiding this comment

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

none of this networking stuff is needed.

@pythoninthegrass
Copy link
Author

pythoninthegrass commented Oct 18, 2024 via email

@BabyBoySnow BabyBoySnow added do not merge for PRs that shouldn't be merged yet and removed hacktoberfest-accepted That's a pretty good PR there, bud. labels Oct 18, 2024
@BabyBoySnow
Copy link
Collaborator

@pythoninthegrass fwiw if you have a cellular device with unlimited data I recommend looking into pdanet+ an app which allows you to use your phones data on your computer. (Separate from hotspot)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
do not merge for PRs that shouldn't be merged yet needs updating for PRs that needs to be updated to target the current review branch (merge conflicts) t/enhancement [PRs] Someone did a thing
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants