mirror of
https://github.com/Cog-Creators/Red-DiscordBot.git
synced 2025-11-19 17:36:07 -05:00
ef77aeb08fafbdaf4e81a8f425a9caffc9eaa5bf
18 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
b7d8b0552e |
I promise I'm not doing this on purpose (#4565)
* Prep for 0.7.2 * So What di i do here? I done Magic, magic only found in the tales of old. * turns out formatting is something important * fixes * improved Error handling when Global API is enabled * further improve resuming logic * more of dat dark voodoo blood magic * major tweaks to auto restore when auto play is enabled 👀 * fix duplicated "Auto play stated." message + Auto play restart :feelsgoodman: * missed these * fix the new duplicated fucking message bitch. * Let discord handle player reconnects * eh * `Requires force install`, utilize new Exponential Backoff object on player and safer reconnect logic, emulating d.py and WL. * hmmmmm gotta monitor * mother fucking brackets * Why didnt i consider this the first time????????????? * new error code to handle? * soooooooooooooooo these are import so why arent we ensuring they are set. * improved logging * improved logging * aaaaaaaaaaaaaaa * We need our own error and special handling to not conflict with dpy * (Last Known Bug) Fix the infinite loop of 4006 that sometimes could happen as an edge case after a successful resume. * This will require a force reinstall to install `RLL 0.8.0`, this properly fixes the bug mentioned on the previous commit. * address "Localtrack names/paths need to be escaped." comment * address Fixators crash mentioned in #AT * style * fix preda's crash mentioned in PR * add a thing here add a thing there add a thing everywhere * style * fixes here, fixes there, and backbone for curated playlist. * bypass aiohttp and githubs and cloudflare and yo mammas cache * I propose the new style is no style. * allow curated playlist to be updated it `[p]playlist update` and show the diff * fix `[p]summon` not resuming playback until next track. * Hopefully handle predas rate limits. * what else did i break now * Update Lavalink.jar build * lets try this * reset the queue * Bring Edge commits over fix a bunch of shiz again * Bring Edge commits over fix a bunch of shiz again * Handle 4014 OPs, Change `skip_votes` key to be an int rather than guild object * aaaaaaaaaaaaaaa im dumb * ... * Simplify some shiz + use a set instead of a list for votes. Co-authored-by: aikaterna <20862007+aikaterna@users.noreply.github.com> |
||
|
|
0becf70b05 |
Use sphinx-prompt extension (#4908)
* Use sphinx-prompt extension * Update PM2 guide * Use an actual proper way to run Red with PM2 * Fix pm2 docs Co-authored-by: Kowlin <Kowlin@users.noreply.github.com> |
||
|
|
ab80f46d2e |
[Core] Rich logging for not so rich people (#4577)
* Pop stash * add rich to setup * Added forceful enabling of rich logging * revert some unintended pushed * Fix possible unbound var Fix possible 0 members w/out members intent * One day I won't forget to do style passes * So this is a thing apperently... * Bump rich to 9.5.1 * Lock secondary deps * Different stuff, see the full commit description for more info - Change few things from print to log.info - put the log handlers on the root logger instead of individual loggers - capture warnings to a logger * Modify log handler to show logger name * Add a Triboolian to force disable rich * Style checks * shortened time, added logger name... again. * aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa * Style & linking * Be or not to be? Whatever man, it's 4:30 in the morning, goto sleep >.< * Reintroduce outdated message. Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com> |
||
|
|
f1d2be58c1 |
Add python-dateutil to primary deps and lock six with it (#4622)
|
||
|
|
05ef5fa3a6 |
Preparations for d.py 1.4 (includes breaking changes related to mass mentions) (#3845)
Co-authored-by: PredaaA <46051820+PredaaA@users.noreply.github.com> |
||
|
|
c0b1e50a5f |
Begin work on a data request API (#4045)
[Core] Data Deletion And Disclosure APIs - Adds a Data Deletion API - Deletion comes in a few forms based on who is requesting - Deletion must be handled by 3rd party - Adds a Data Collection Disclosure Command - Provides a dynamically generated statement from 3rd party extensions - Modifies the always available commands to be cog compatible - Also prevents them from being unloaded accidentally |
||
|
|
9552d210f5 | Remove towncrier (#3661) | ||
|
|
9ea7262352 | Bump deps (includes d.py and Sphinx bump) (#3609) | ||
|
|
95e8d60729 |
[3.2][Audio] Part 6 (Last? maybe?) (#3244)
* Removes `MAX_BALANCE` from bank, user `bank.get_max_balance()` now `[p]bankset maxbal` can be used to set the maximum bank balance Signed-off-by: Guy <guyreis96@gmail.com> * Initial Commit Signed-off-by: Draper <27962761+Drapersniper@users.noreply.github.com> * I need to make sure I keep aika on her toes. Signed-off-by: Draper <27962761+Drapersniper@users.noreply.github.com> * Fixes a few missing kwargs and case consistency Signed-off-by: Draper <27962761+Drapersniper@users.noreply.github.com> * Fixes a few missing kwargs and case consistency v2 and typos Signed-off-by: Draper <27962761+Drapersniper@users.noreply.github.com> * Reset cooldowns + add changelogs Signed-off-by: Draper <27962761+Drapersniper@users.noreply.github.com> * Add 3 extra file formats. Signed-off-by: Draper <27962761+Drapersniper@users.noreply.github.com> * IRDUMB - fix capitalization. Signed-off-by: Draper <27962761+Drapersniper@users.noreply.github.com> * Fix a silent error, and some incorrect messages. Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Remove unnecessary emojis from queue when they are not needed Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Remove duplicated call in `[p]playlist update` Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Remove duplicated call in `[p]playlist update` Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Resolve conflicts Signed-off-by: Draper <27962761+Drapersniper@users.noreply.github.com> * Bring all files up to date + Black Signed-off-by: Draper <27962761+Drapersniper@users.noreply.github.com> * Facepalm Signed-off-by: Draper <27962761+Drapersniper@users.noreply.github.com> * *Sigh* Signed-off-by: Draper <27962761+Drapersniper@users.noreply.github.com> * *Sigh* 2.0 Signed-off-by: Draper <27962761+Drapersniper@users.noreply.github.com> * Merge branch 'V3/develop' of https://github.com/Cog-Creators/Red-DiscordBot into audio-misc-pt1 Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> # Resolve Conflicts: # redbot/cogs/audio/audio.py # redbot/cogs/audio/utils.py * Import missing Typecheck Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Fix Broken docstrings Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Sort Local Tracks Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * 🤦 Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Reorder the sorting of local tracks, `alphanumerical lower then alphanumerical upper` `a comes before A, but B comes after A` Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Black formatting Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Make the local file sorting case insensitive Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Add global blacklist/whitelist + fix some issues with original server based whitelist/blacklist Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Remove the pre-commit yaml Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Nottin to see Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Further improvement to the blacklists Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Further improvement to the blacklists Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Fix the __str__ method on LocalTracks Object * Rename LocalTracks.to_string_hidden() to LocalTracks.to_string_user() To keep it inline with the Query object * Remove encoding pragmas + a few typo fixes * Update some typehints + fix some typos * Remove this duplicate call * Black * fix capitalization * Address preda's review Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Remove the API from the audio cog - Is in direct conflict with goals stated in #2804 - Features this was intended to enable can be enabled in other more appropriate ways later on * changelog * Address Aika's review * Black * *sigh* dont use github web ui * Fuck windows Long live linux... *sigh* no lets ensure windows users can still use local tracks * Merge branch 'V3/develop' of https://github.com/Cog-Creators/Red-DiscordBot into refactoring Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> # Conflicts: # redbot/cogs/audio/audio.py * 👀 + chore Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * facepalm Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * facepalm... again y u h8 me bruh Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * fuk this fuk u tube fuck python fuck all Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * awyehfqwajefhnqeffawefqa eqewarfqaesf qwef qaf qwfr Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * fuck everything Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * oh lord saviour resus i love you just make this work Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Change logic to be no errors within last 10 seconds... this should be a valid work around discord ratelimits caused by the spam * Remove auto deletion Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * See I did a ting Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * irdumb Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * black Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Add an is_url attribute to Query objects * chore Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Black * Address Aikas review Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Hyperlink Playlist names Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Make shit bold Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * why was this here Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * why was this here Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Initial commit * Workinnng Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Improve SQL Statements + migrate from SQL Alchemy + Databases to APSW Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * apsw tested and working Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * chose Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Migrate Playlist to DB 3 TODO 1 Migrate Config to Schema 3 without playlists and update get_playlist methods Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com> * Revert "Migrate Playlist to DB 3 TODO 1 Migrate Config to Schema 3 without playlists and update get_playlist methods" This reverts commit |
||
|
|
02bb1fc390 | add apsw-wheels to deps (#3192) | ||
|
|
dd899c804a |
Remove the mongo driver (#3099)
* kills mongo * changelog * more refeences to mongo needed to go |
||
|
|
e2c8b11008 |
[V3 Downloader] Revision tracking (#2571)
* feat(downloader): Install cog from specific commit in repo (initial commit) - Repo and Installable have commit property now - New class inheriting from Installable - InstalledCog (old one from converters.py removed) - New Repo.checkout() method, which is also async ctx manager ref #2527 * fix(downloader): Keep information about repo's branch in config - This is needed to make sure that repo can go back from detached state in some rare unexpected cases - current branch is determined by `git symbolic-ref` now as this command errors for detached HEAD * feat(downloader): Update repo without cogs, update single cog The most important part of issue #2527 has been added here - `[p]repo update` command added - new conf format - nested dictionary repo_name->cog_name->cog_json installed libraries are now kept in conf too - `InstalledCog` renamed to `InstalledModule` - installed libraries use this class - `Downloader.installed_libraries()` and `Downloader.installed_modules()` added - `Downloader._add_to_installed()` and `Downloader._remove_from_installed()` now accept list of modules, of both cogs and libraries - `[p]cog install` tells about fails of copying cog and installing shared libraries - `[p]cog update` will truly update only chosen cogs (if provided) or cogs that need update - pinned cogs aren't checked - before update, repos are updated - to determine if update is needed `Repo.get_modified_modules()` is used - `[p]cog pin` and `[p]cog unpin` commands for pinning/unpinning cogs added - `Repo.checkout()` allows to choose ctx manager exit's checkout revision - `Repo.install_cog()` returns `InstalledModule` now and raises CopyingError (maybe breaking?) - `Repo.install_libraries()` returns 2-tuple of installed and failed libraries (maybe breaking?) - `RepoManager.get_all_cogs()` added, which returns cogs from all repos - `RepoManager.repos` property added, which contains tuple of `Repo` * test(downloader): Repo.current_branch() throws an exception, when branch can't be determined * style(downloader): rename _add_to_installed to _save_to_installed This method is used for both adding and updating existing modules in Config * refactor(downloader): add ctx.typing() for few commands `[p]cog install` is nested hell, can't wait for moving install logic to separate method * fix(downloader): refactor and fix `set` usage * perf(downloader): update commits for ALL checked modules to omit diffs next time This will also disable running git diff for cogs that have the same commit as the latest one * style(downloader): few style improvements - use of mutable object in method definition - make Repo._get_full_sha1() public method - too long line - don't use len to check if sequence is empty * feat(downloader): add `[p]cog updateallfromrepos` and `[p]cog updatetoversion` commands - moved cog update logic into `Downloader._cog_update_logic()` (lack of better name) - splitted whole cog update process into smaller methods - might still need some improvements - added new methods to `Repo` class: - `is_on_branch()` to check if repo is currently checked out to branch - `is_ancestor()` to check if one commit is ancestor of the other - fix for `Downloader._available_updates()` behaviour broken by commit 5755ab08ba67556b3863e907c6f44d80f4f13d88 * feat(downloader): try to find last commit where module is still present Enhancements: - `Installable` now has `repo` attribute containing repo object or `None` if repo is missing - `Downloader._install_cogs()` and `Downloader._reinstall_libraries()` are able to install modules from different commits of repo - `Repo.checkout()` as ctx manager will now exit to commit which was active before checking out - unification of `rev` and `hash` terms: All function parameters are explicitly called `hash`, if it can only be commit's full sha1 hash or `rev` if it can be anything that names a commit object, see [link](https://git-scm.com/docs/git-rev-parse#_specifying_revisions) - new `Repo.get_last_module_occurence()` method, which gets module's Installable from last commit in which it still occurs * docs(downloader): Add basic description for `InstalledModule` * fix(downloader): cog ignored during updates if its commit was missing After config format update, commit string is empty until update and when such cog was checked and it wasn't available in repo anymore, it was ignored * refactor(downloader): Installing cogs from specific rev will pin them * perf(downloader): Don't checkout when current commit equals target hash - changes to `Repo.checkout()`: - `exit_to_rev` is now keyword only argument - added `force_checkout` to force checkout even if `Repo.commit` value is the same as target hash * refactor(downloader): Repo._run() stderr is redirected to debug log now - added two keyword arguments: - `valid_exit_codes` which specifies valid exit codes, used to determine if stderr should be sent as debug or error level in logging - `debug_only` which specifies if stderr can be sent only as debug level in logging * style(downloader): stop using `set` as arg name in `_load_repos()` * feat(downloader): pass multiple cogs to `[p]cog (un)pin` * refactor(downloader): accept module name instead of instance, fix spelling * style(downloader): few small style changes * fix(downloader): add type annotations + fixes based on them - fix wrong type annotations and add a lot of new ones - add checks for `Installable.repo` being `None` - fix wrong return type in `Downloader._install_requirements` - show repo names correctly when updating all repos - fix error when some requirement fails to install BREAKING CHANGE: - type of `Repo.available_modules` is now consistent (always `tuple`) * tests: use same event loop policy as in Red's code * enhance(downloader): fully handle ambiguous revisions * build(deps): add pytest-mock dependency to tests extra * fix(downloader): minor fixes * feat(downloader): add tool for editing Downloader's test repo This script aims to help update the human-readable version of repo used for git integration tests in ``redbot/tests/downloader_testrepo.export`` by exporting/importing it in/from provided directory. Note ---- Editing `downloader_git_test_repo.export` file manually is strongly discouraged, especially editing any part of commit directives as that causes a change in the commit's hash. Another problem devs could encounter when trying to manually edit that file are editors that will use CRLF instead of LF for new line character(s) and therefore break it. I also used `.gitattributes` to prevent autocrlf from breaking testrepo. Also, if Git ever changes currently used SHA-1 to SHA-256 we will have to update old hashes with new ones. But it's a small drawback, when we can have human-readable version of repo. Known limitations ----------------- ``git fast-export`` exports commits without GPG signs so this script disables it in repo's config. This also means devs shouldn't use ``--gpg-sign`` flag in ``git commit`` within the test repo. * tests(downloader): add git tests and test repo for them Also added Markdown file that is even more clear than export file on what the test repo contains. This is manually created but can be automated on later date. * test(downloader): add more tests related to RepoManager These tests use expected output that is already guaranteed by git tests. * chore(CODEOWNERS): add jack1142 to Downloader's folders I know this doesn't actually give any benefit to people that don't have write permission to the repo but I saw other big fella devs doing this, so I think this might be advisable. * enhance(downloader): allow easy schema updates in future * enhance(downloader): more typing fixes, add comments for clarity * feat(downloader): add python and bot version check to update process follow-up on #2605, this commit fully fixes #1866 * chore(changelog): add towncrier entries * fix(downloader): use `*args` instead of `commands.Greedy` * fix(downloader): hot-reload issue - `InstallableType` now inherits from `IntEnum` There's desync of `InstallableType` class types due to hot-reload and `IntEnum` allows for equality check between different types * enhance(downloader): ensure there's no cog with same name installed should fix #2927 * fix(downloader): last few changes before marking as ready for review |
||
|
|
36f494ba63 |
[Audio] One PR to rule them all, One PR to find them, One PR to bring them all, and in the darkness bind them (all-in-one pr) (#2904)
* More changes Signed-off-by: Guy <guyreis96@gmail.com> * Fixed auto play defaulting to playlist Signed-off-by: Guy <guyreis96@gmail.com> * Localtrack fix Signed-off-by: Guy <guyreis96@gmail.com> * Updated deps .. since for some reason aiosqlite is not being auto installed for everyone Signed-off-by: Guy <guyreis96@gmail.com> * Yupo Signed-off-by: Guy <guyreis96@gmail.com> * Fixed a crash in [p]now Signed-off-by: Guy <guyreis96@gmail.com> * Fixed crash on playlist save Signed-off-by: Guy <guyreis96@gmail.com> * Debugging Commit Signed-off-by: Guy <guyreis96@gmail.com> * Yet more prints Signed-off-by: Guy <guyreis96@gmail.com> * Even more spammy debug Signed-off-by: Guy <guyreis96@gmail.com> * Debugging commit + NEw Dispatches Signed-off-by: Guy <guyreis96@gmail.com> * Debugging commit + NEw Dispatches Signed-off-by: Guy <guyreis96@gmail.com> * Fixed localpath checks Signed-off-by: Guy <guyreis96@gmail.com> * more fixes for Localpaths Signed-off-by: Guy <guyreis96@gmail.com> * Spelling mistake on method Signed-off-by: Guy <guyreis96@gmail.com> * Fixed Crash on event handler Signed-off-by: Guy <guyreis96@gmail.com> * Fixed Crash on local search Signed-off-by: Guy <guyreis96@gmail.com> * Reduced fuzzy match percentage threshold for local tracks to account for nested folders Signed-off-by: Guy <guyreis96@gmail.com> * Fixed a crash on queue end Signed-off-by: Guy <guyreis96@gmail.com> * Sigh ... Removed a duplicate dispatch Signed-off-by: Guy <guyreis96@gmail.com> * Sigh i removed this before ... Signed-off-by: Guy <guyreis96@gmail.com> * Reorder dispatch signatures so all 3 new dispatch have matching signature Signed-off-by: Guy <guyreis96@gmail.com> * Formatting Signed-off-by: Guy <guyreis96@gmail.com> * Edited Error Event to support localtracks Signed-off-by: Guy <guyreis96@gmail.com> * Fix a Crash on track crash :awesome: Signed-off-by: Guy <guyreis96@gmail.com> * Yikes soo much spam Signed-off-by: Guy <guyreis96@gmail.com> * Remove spam and improve existance check Signed-off-by: Guy <guyreis96@gmail.com> * Repeat and Auto-play are mutually exclusive now Signed-off-by: Guy <guyreis96@gmail.com> * DEBUGS for Preda Signed-off-by: Guy <guyreis96@gmail.com> * Vimeo tracks can be from both these domains "vimeo.com", "beam.pro" Signed-off-by: Guy <guyreis96@gmail.com> * I mean Mixer can be from those 2 domains .... Signed-off-by: Guy <guyreis96@gmail.com> * Fixed `search sc` command Signed-off-by: Guy <guyreis96@gmail.com> * Run everything though lints. rename localtracks module to dataclasses Clear lock on errors Signed-off-by: Draper <guyreis96@gmail.com> * Try to speed up long playlist loading Signed-off-by: Draper <guyreis96@gmail.com> * Im an idiot Signed-off-by: Draper <guyreis96@gmail.com> * Im an idiot Signed-off-by: Draper <guyreis96@gmail.com> * Added logging for writes Signed-off-by: Draper <guyreis96@gmail.com> * Fix crash on cog reload Signed-off-by: Draper <guyreis96@gmail.com> * Fix for runtimewarning ? Signed-off-by: Draper <guyreis96@gmail.com> * Fix for Local Track cache Signed-off-by: Draper <guyreis96@gmail.com> * Remove broken tracks from queue on exception Theoretically do not auto play if track stop reason is Stopped or cleanup Signed-off-by: Draper <guyreis96@gmail.com> * Previous commit was a fluke ... ignore it Signed-off-by: Draper <guyreis96@gmail.com> * Change from cleanup to Replaced Signed-off-by: Draper <guyreis96@gmail.com> * Fixed AttributeError: 'Track' object has no attribute 'info'. [p]skip will only work for autoplay is there a track being played. Fixed Console spam if query saving failed in the background while reloading bot. Autoplay now respect [p]stop command Signed-off-by: Guy <guyreis96@gmail.com> * Black formatting Fix Issue with auto play working when there is songs in the queue Stop notifying queue ended if autoplay is on Signed-off-by: Guy <guyreis96@gmail.com> * Fixed a crash on track load timeout Signed-off-by: Guy <guyreis96@gmail.com> * [p]playlist start will now show the playlist name in embed body Improved Logic for handling broken tracks when repeat is on. Signed-off-by: Draper <guyreis96@gmail.com> * Enqueue tracks as soon as we have the youtube URL .... This basically changes how spotify urls are handled Need to test saving spotify playlist Need to test loading a spotify playlist from file Need to test enqueuing a spotify playlist Signed-off-by: Draper <guyreis96@gmail.com> * Updated a track whrn enqueuing spotify playlist Signed-off-by: Draper <guyreis96@gmail.com> * Debug Signed-off-by: Draper <guyreis96@gmail.com> * Debug Signed-off-by: Draper <guyreis96@gmail.com> * Debug Signed-off-by: Draper <guyreis96@gmail.com> * Debug Signed-off-by: Draper <guyreis96@gmail.com> * Debug Signed-off-by: Draper <guyreis96@gmail.com> * Debug Signed-off-by: Draper <guyreis96@gmail.com> * Debug Signed-off-by: Draper <guyreis96@gmail.com> * Debug Signed-off-by: Draper <guyreis96@gmail.com> * Debug Signed-off-by: Draper <guyreis96@gmail.com> * Debug Signed-off-by: Draper <guyreis96@gmail.com> * Revert spotify_enqueue changes Signed-off-by: Draper <guyreis96@gmail.com> * Revert spotify_enqueue changes Signed-off-by: Draper <guyreis96@gmail.com> * Allow to set Lavalink jar version from Environment vars Signed-off-by: Draper <guyreis96@gmail.com> * Allow to set Lavalink jar version from Environment vars Signed-off-by: Draper <guyreis96@gmail.com> * Fix for a crash on Equalizer, Merge Spotify_enqueue changes and revert manager changes Signed-off-by: Draper <guyreis96@gmail.com> * Break playlist enqueue after 10 consecutive failures Signed-off-by: Draper <guyreis96@gmail.com> * Auto DC, is not compatible with Auto Play Signed-off-by: Draper <guyreis96@gmail.com> * Make notifier aware of guild its being called for Signed-off-by: Draper <guyreis96@gmail.com> * Type checking Signed-off-by: Draper <guyreis96@gmail.com> * Remove lock from 2 exits that i didn't before Signed-off-by: Draper <guyreis96@gmail.com> * Fixed TypeError: spotify_enqueue() got an unexpected keyword argument 'notify' Signed-off-by: Guy <guyreis96@gmail.com> * Reorder toggles to alphabetical order Signed-off-by: Guy <guyreis96@gmail.com> * Update Query to handle spotify URIs Signed-off-by: Guy <guyreis96@gmail.com> * update database Signed-off-by: Guy <guyreis96@gmail.com> * Dont say tracks enqued on invalid link Make autop lay a mod only setting Signed-off-by: Draper <guyreis96@gmail.com> * Dont say tracks enqued on invalid spotify link Signed-off-by: Draper <guyreis96@gmail.com> * Set default age to 365 days Signed-off-by: Draper <guyreis96@gmail.com> * Allow Audio mods to set auto play playlists. Save playlists songs to cache when migrating Signed-off-by: Guy <guyreis96@gmail.com> * Black formatting Signed-off-by: Guy <guyreis96@gmail.com> * [p]eq cooldown is not triggered is player check fails (i.e if nothing is currently playing) Adding and removing reaction is no longer a blocking action Signed-off-by: Guy <guyreis96@gmail.com> * changelog for non blocking reaction handles Signed-off-by: Guy <guyreis96@gmail.com> * Show auto dc and auto play settings by default Signed-off-by: Guy <guyreis96@gmail.com> * lint is being a bitch Signed-off-by: Guy <guyreis96@gmail.com> * lint changes Signed-off-by: Draper <guyreis96@gmail.com> * stop caching local tracks Signed-off-by: Draper <guyreis96@gmail.com> * List of Lavalink.Tracks natively added to Playlist Objects Signed-off-by: Draper <guyreis96@gmail.com> * Fix UX changes and should fix autoplay Signed-off-by: Draper <guyreis96@gmail.com> * Fixed Skip x number of tracks Signed-off-by: Draper <guyreis96@gmail.com> * Lint changes Signed-off-by: Draper <guyreis96@gmail.com> * Remvoe dead code Signed-off-by: Draper <guyreis96@gmail.com> * Update playlist embed formatting to reflect Preda's suggestions Signed-off-by: Draper <guyreis96@gmail.com> * Update change logs Signed-off-by: Draper <guyreis96@gmail.com> * Add `async with ctx.typing():` to queue and to local folder Signed-off-by: Draper <guyreis96@gmail.com> * Stop queuing now when queue is empty with [p]queue Signed-off-by: Draper <guyreis96@gmail.com> * fix ctx.typing() Signed-off-by: Draper <guyreis96@gmail.com> * fix ctx.typing() Signed-off-by: Draper <guyreis96@gmail.com> * Part 1 Signed-off-by: Draper <guyreis96@gmail.com> * Dont check local track author and name if title is Unknown Signed-off-by: Guy <guyreis96@gmail.com> * Makes auto play more random Signed-off-by: Guy <guyreis96@gmail.com> * Fixes local play Fixed missing format Signed-off-by: Guy <guyreis96@gmail.com> * Query.process_input accept lavalink.Track objects Signed-off-by: Draper <guyreis96@gmail.com> * docstrings Signed-off-by: Draper <guyreis96@gmail.com> * Add TODO for timestamp support Signed-off-by: Draper <guyreis96@gmail.com> * Improve autoplay from cache logic (possibly slightly slower but more efficient overall) Signed-off-by: Draper <guyreis96@gmail.com> * Add My Lavalink PR as a dependency Remember to remove this .... The PR will bump it to 0.3.2 Signed-off-by: Draper <guyreis96@gmail.com> * Add My Lavalink PR as a dependency Remember to remove this .... The PR will bump it to 0.3.2 Signed-off-by: Draper <guyreis96@gmail.com> * Add My Lavalink PR as a dependency Remember to remove this .... The PR will bump it to 0.3.2 Signed-off-by: Draper <guyreis96@gmail.com> * Compile all regex at runtime Signed-off-by: Draper <guyreis96@gmail.com> * Fixes local play Fixed missing format Signed-off-by: Guy <guyreis96@gmail.com> * Revert Dep error Signed-off-by: Guy <guyreis96@gmail.com> * black Signed-off-by: Guy <guyreis96@gmail.com> * Fixed attribute error Signed-off-by: Guy <guyreis96@gmail.com> * add `self.bot.dispatch("audio_disconnect", ctx.guild)` dispatch when the player is disconnected Signed-off-by: Guy <guyreis96@gmail.com> * Removed shuffle lock on skip Signed-off-by: Guy <guyreis96@gmail.com> * Better logic for auto seek (timestamps) Signed-off-by: Guy <guyreis96@gmail.com> * Better logic for auto seek (timestamps) Signed-off-by: Guy <guyreis96@gmail.com> * Fixes timestamps on spotify tracks Signed-off-by: Guy <guyreis96@gmail.com> * Add ctx typing to playlist enqueue Signed-off-by: Guy <guyreis96@gmail.com> * Fix Deps Signed-off-by: Guy <guyreis96@gmail.com> * Black formatting + Using new lavalink methods for shuffling Signed-off-by: Guy <guyreis96@gmail.com> * remove ctx.typing from playlist start Signed-off-by: Guy <guyreis96@gmail.com> * Fixes typerror when enqueuing spotify playlists Signed-off-by: Guy <guyreis96@gmail.com> * Fix keyerror Signed-off-by: Guy <guyreis96@gmail.com> * black formatting, + embed for [p]audioset cache as I forgot it before Signed-off-by: Guy <guyreis96@gmail.com> * Fix Error on playlist upload Signed-off-by: Guy <guyreis96@gmail.com> * Fix Text help for bump Signed-off-by: Guy <guyreis96@gmail.com> * Allow track bumping while shuffle is on Signed-off-by: Guy <guyreis96@gmail.com> * Edit bump embed to be consistent with other embed Hyperlink tracks and removed dynamic title Signed-off-by: Guy <guyreis96@gmail.com> * Black Signed-off-by: Guy <guyreis96@gmail.com> * Errors not printing fix? Signed-off-by: Guy <guyreis96@gmail.com> * Errors not printing fix? Signed-off-by: Guy <guyreis96@gmail.com> * Track enqueued footer now shows correct track position when shuffle is on Signed-off-by: Guy <guyreis96@gmail.com> * Update changelogs Signed-off-by: Guy <guyreis96@gmail.com> * Fix is_owner check in audioset settings Signed-off-by: Guy <guyreis96@gmail.com> * Changelogs Signed-off-by: Guy <guyreis96@gmail.com> * Dont store searches with no results in cache, fix malformated playlist to cache upon settings migration Signed-off-by: Guy <guyreis96@gmail.com> * _clear_lock_on_error > Needs to be reviewed to see if it has been done correctly Signed-off-by: Guy <guyreis96@gmail.com> * _clear_lock_on_error > Needs to be reviewed to see if it has been done correctly Signed-off-by: Guy <guyreis96@gmail.com> * Fix Query search so that it works with absolute paths for localtracks Signed-off-by: Guy <guyreis96@gmail.com> * Extra error if lavalink is set to external and the query is a localtrack and nothing is found Signed-off-by: Guy <guyreis96@gmail.com> * Black Signed-off-by: Guy <guyreis96@gmail.com> * More detailed error message Signed-off-by: Guy <guyreis96@gmail.com> * [p]seek and [p]skip can be used by user if they are the song requester while DJ mode is enabled, if votes are disabled. , [p]queue shuffle can be used to shuffle the queue manually. and [p]queue clean self can be used to remove all songs you requested from the queue. Signed-off-by: Guy <guyreis96@gmail.com> * black Signed-off-by: Guy <guyreis96@gmail.com> * All the fixes + a `should_auto_play` dispatch for the tech savy peeps Signed-off-by: Guy <guyreis96@gmail.com> * Spellchecker + Pythonic changes Signed-off-by: Guy <guyreis96@gmail.com> * NO spam for logs Signed-off-by: Guy <guyreis96@gmail.com> * Pass Current voice channel to `red_audio_should_auto_play` dispatch Signed-off-by: Guy <guyreis96@gmail.com> * Black Signed-off-by: Guy <guyreis96@gmail.com> * playlist upload also updates cache in the background Signed-off-by: Guy <guyreis96@gmail.com> * playlist upload also updates cache in the background Signed-off-by: Guy <guyreis96@gmail.com> * Add scope to playlist picker Signed-off-by: Guy <guyreis96@gmail.com> * Delete Playlist picker message once something is selected Signed-off-by: Guy <guyreis96@gmail.com> * OCD Fix Signed-off-by: Guy <guyreis96@gmail.com> * Facepalm Signed-off-by: Guy <guyreis96@gmail.com> * Fix a Potential crash Signed-off-by: Guy <guyreis96@gmail.com> * Update my stupidity Signed-off-by: Guy <guyreis96@gmail.com> * Auto Pause + Skip tracks already in playlist upon playlist append + a command to remove duplicated tracks from playlist Signed-off-by: Guy <guyreis96@gmail.com> * Fix DJ mode when Role is deleted - Credits go to Neuro Assassin#4779 Fix an issue where auto play MAY not trigger Signed-off-by: Guy <guyreis96@gmail.com> * Change log to Neuro Assassin#4779 fix Signed-off-by: Guy <guyreis96@gmail.com> * Black Signed-off-by: Guy <guyreis96@gmail.com> * Dont auto pause manual pauses Signed-off-by: Guy <guyreis96@gmail.com> * Adds `[p]autoplay` that can be run by mods or higher Signed-off-by: Guy <guyreis96@gmail.com> * 🤦 Signed-off-by: Guy <guyreis96@gmail.com> * 2x 🤦 Signed-off-by: Guy <guyreis96@gmail.com> * Fixed wrong import Signed-off-by: Guy <guyreis96@gmail.com> * Added Autoplay notify Signed-off-by: Guy <guyreis96@gmail.com> * Added Autoplay notify Signed-off-by: Guy <guyreis96@gmail.com> * Black Signed-off-by: Guy <guyreis96@gmail.com> * Store Track object as prev song instead of URI Signed-off-by: Guy <guyreis96@gmail.com> * Black why do u hate me Signed-off-by: Guy <guyreis96@gmail.com> * Fix command name Signed-off-by: Guy <guyreis96@gmail.com> * Fix Autoplay notify Signed-off-by: Guy <guyreis96@gmail.com> * Fix missing await and TypeError, Thanks Flame Signed-off-by: Guy <guyreis96@gmail.com> * Add a list of tracks to show as a menu Signed-off-by: Guy <guyreis96@gmail.com> * adds the `[p]genre` command which uses the Spotify and Youtube API Signed-off-by: Guy <guyreis96@gmail.com> * Enqueue Playlists from genre command Signed-off-by: Guy <guyreis96@gmail.com> * Pretify `[p]genre` Signed-off-by: Guy <guyreis96@gmail.com> * Fix a Typo and correct jukebox charge order Signed-off-by: Guy <guyreis96@gmail.com> * Add genre command to error handling Signed-off-by: Guy <guyreis96@gmail.com> * Type checking Signed-off-by: Guy <guyreis96@gmail.com> * Update naming scheme for `[p]genre` Signed-off-by: Guy <guyreis96@gmail.com> * Black why do you hate me Signed-off-by: Guy <guyreis96@gmail.com> * Fixed `[p]local start` Playlist picker auto selects if theres just 1 playlist found `[p]queue cleanself` added Signed-off-by: Guy <guyreis96@gmail.com> * *sigh* back compatibility with old localtrack paths Signed-off-by: Guy <guyreis96@gmail.com> * *sigh* back compatibility with old localtrack paths, even more Signed-off-by: Guy <guyreis96@gmail.com> * *sigh* back compatibility with old localtrack paths Even more Signed-off-by: Guy <guyreis96@gmail.com> * Fixes localtracks in playlist info command Signed-off-by: Guy <guyreis96@gmail.com> * Debug Local Strings Signed-off-by: Guy <guyreis96@gmail.com> * Debug Local Strings Signed-off-by: Guy <guyreis96@gmail.com> * Fixes `[p]playlist info` for local tracks + fixed error in `[p]remove` Signed-off-by: Guy <guyreis96@gmail.com> * Black Signed-off-by: Guy <guyreis96@gmail.com> * Fixes formatting in `[p]playlist info` Signed-off-by: Guy <guyreis96@gmail.com> * Fix an issue with User Scope playlists were not being deleted Signed-off-by: Guy <guyreis96@gmail.com> * Typechecking Signed-off-by: Guy <guyreis96@gmail.com> * Black Signed-off-by: Guy <guyreis96@gmail.com> * Fix the logic of `delegate_autoplay` Signed-off-by: Guy <guyreis96@gmail.com> * Fix a Crash on Load due to type hinting Signed-off-by: Guy <guyreis96@gmail.com> * Fix a Crash on Load due to type hintingBlack + fix order of `red_audio_should_auto_play` Signed-off-by: Guy <guyreis96@gmail.com> * Add `red_audio_initialized` dispatch so that ownership of auto play can be maintained after a reload Signed-off-by: Guy <guyreis96@gmail.com> * Check if the current owner is loaded before raising an error Signed-off-by: Guy <guyreis96@gmail.com> * Fixes the Existence Check in `delegate_autoplay` Signed-off-by: Guy <guyreis96@gmail.com> * Turns `own_autoplay` in a property of Audio and improves `delegate_autoplay` Thanks Sinbad! Signed-off-by: Guy <guyreis96@gmail.com> * Fix for Localtracks playlists Signed-off-by: Guy <guyreis96@gmail.com> * When disconnecting send `Disconnecting...` Fix Stop after a skip Fix UX discrepancy on Playlist IDs Fixed Exception when theres a track error Signed-off-by: Guy <guyreis96@gmail.com> * add `on_red_audio_unload` dispatch Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Fix a crash on track start where `player.current` can be none? Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Missing new line Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Allow `--author` for playlist to be used to filter playlist for an specific author. Plus a few bugfixes for UX Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Rename `remdupe` to `dedupe` Make global scope always be referenced as Global add missing backwards quotes around the Playlist ID for 1 string Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Towncrier entries for dep changes Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Remove track index when shuffle is on Fix Progress bar for livestreams Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Trigger autoplay on `QUEUE_END` event instead of `TRACK_END` Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Can't reproduce Ians bug but here a safeguard agaisnt it just in case Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Fixes 2 Messages that had the wrong formatting Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * standerdize playlist naming scheme Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Fix `[p]autoplay` message when Notify is enabled Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * y u h8 me black Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Fix an issue with `[p]audioset localpath` where the localtracks folder was incorrect Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Pythonic formatting Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Ugh Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Fix a typo Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Silently try to delete messages + fixes error Ian found with `[p]genre` Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * sigh black Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Add humanize_number usage correctly Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Bump RLL to 0.4.0 Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Update changelog entries Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Change `bot.db` to new API's added by #2967 Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Additional reformatting Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Remove PyCharm noise + Fixes a few Pycharm warnings Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Rework `index` parsing for youtube urls Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Addess Aika's review Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Fix a potential crash, saves guild ID to playlists to avoid an scheme change in the future Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Add handling for Python installs without sqlite3. Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Address Flame's review Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Fix ma stupidity Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Address Aika's latest review. 1. Update docstring for `[p]playlist rename`. 2. Fix punctuation for playlist matching. 3. `[p]playlist update` now respect playlist management perms 4. Playlist management errors now shows playlist name, id and scope where possible 5. Remove duplicated code and dead code. Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> * Pluralize string Signed-off-by: guyre <27962761+drapersniper@users.noreply.github.com> |
||
|
|
3c1b6ae4cf |
[Utils] Add humanize_number() function to chat formatting (#2836)
This adds babel as a dependency, and also includes `redbot.core.i18n.get_babel_locale()` |
||
|
|
d1a46acc9a |
PostgreSQL driver, tests against DB backends, and general drivers cleanup (#2723)
* PostgreSQL driver and general drivers cleanup Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Make tests pass Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Add black --target-version flag in make.bat Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Rewrite postgres driver Most of the logic is now in PL/pgSQL. This completely avoids the use of Python f-strings to format identifiers into queries. Although an SQL-injection attack would have been impossible anyway (only the owner would have ever had the ability to do that), using PostgreSQL's format() is more reliable for unusual identifiers. Performance-wise, I'm not sure whether this is an improvement, but I highly doubt that it's worse. Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Reformat Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Fix PostgresDriver.delete_all_data() Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Clean up PL/pgSQL code Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * More PL/pgSQL cleanup Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * PL/pgSQL function optimisations Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Ensure compatibility with PostgreSQL 10 and below Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * More/better docstrings for PG functions Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Fix typo in docstring Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Return correct value on toggle() Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Use composite type for PG function parameters Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Fix JSON driver's Config.clear_all() Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Correct description for Mongo tox recipe Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Fix linting errors Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Update dep specification after merging bumpdeps Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Add towncrier entries Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Update from merge Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Mention [postgres] extra in install docs Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Support more connection options and use better defaults Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Actually pass PG env vars in tox Signed-off-by: Toby Harradine <tobyharradine@gmail.com> * Replace event trigger with manual DELETE queries Signed-off-by: Toby Harradine <tobyharradine@gmail.com> |
||
|
|
d4b6fdea92 |
Add towncrier (#2873)
* Adds towncrier as our changelog system. * Updates our contributor guidelines for this. Resolves #2872 |
||
|
|
55e309125e |
Add uvloop as Posix+CPython dependency and tweak new Make recipes (#2819)
- uvloop is now a dependency on non-Windows CPython systems - `make setupenv` renamed to `make newenv` - `make syncenv` added to sync local venv to current dependencies - `dev-requirements.txt` moved into `tools` directory |
||
|
|
461f56bca1 |
Kill Pipfile, update dependencies, and add dep bumping tools (#2806)
### Replacement for pipenv's environment setup First of all, there's a new Make recipe for all devs and contributors on both Windows and Posix, `make setupenv`, which is kind of a replacement for `pipenv install --dev`. It creates a virtual environment in `.venv` using the inbuilt `venv` module, clearing out any existing virtual environment if needed first. Then it installs all dev dependencies using our new `dev-requirements.txt` file. `CONTRIBUTING.md` has been updated to reflect all of this. ### Dependency version bumping tool Secondly, I've added a python script, `tools/bumpdeps.py` to help with bumping dependency versions. It has its own Make recipe too, `make bumpdeps`. This script won't work on Windows (yet). It reads the `tools/primary_deps.ini` file, which contains the primary requirements of Red and its extras with loose version specifiers, and outputs all pinned dependencies, in `setup.cfg` format. It's not a foolproof dependency resolver, it's quite simple, but it's bound to help out a lot. It'll try to give warnings if there might be a version conflict, but updating `setup.cfg` with its output and then doing `pip install -r dev-requirements.txt` will allow pip to issue warnings if something is conflicting. So to add a new dependency, add it to `tools/primary_deps.ini` in the appropriate place, and either use `make bumpdeps` to completely update all dependencies, or simply add it to `setup.cfg` manually with its sub-dependencies, and all versions pinned. ### Sphinx 2.1.2 (docs changes) The sphinx update brought along the ability to disable type annotations being rendered in function and method signatures, and I have gladly gone and done that. Type annotations should already be specified under the "Parameters" section, and the way sphinx renders them in function signatures makes them much harder to read. Also, documented classes will now display what classes they inherit from. Signed-off-by: Toby Harradine <tobyharradine@gmail.com> |