* Temporarily set d.py to use latest git revision
* Remove `bot` param to Client.start
* Switch to aware datetimes
A lot of this is removing `.replace(...)` which while not technically
needed, simplifies the code base. There's only a few changes that are
actually necessary here.
* Update to work with new Asset design
* [threads] Update core ModLog API to support threads
- Added proper support for passing `Thread` to `channel`
when creating/editing case
- Added `parent_channel_id` attribute to Modlog API's Case
- Added `parent_channel` property that tries to get parent channel
- Updated case's content to show both thread and parent information
* [threads] Disallow usage of threads in some of the commands
- announceset channel
- filter channel clear
- filter channel add
- filter channel remove
- GlobalUniqueObjectFinder converter
- permissions addglobalrule
- permissions removeglobalrule
- permissions removeserverrule
- Permissions cog does not perform any validation for IDs
when setting through YAML so that has not been touched
- streamalert twitch/youtube/picarto
- embedset channel
- set ownernotifications adddestination
* [threads] Handle threads in Red's permissions system (Requires)
- Made permissions system apply rules of (only) parent in threads
* [threads] Update embed_requested to support threads
- Threads don't have their own embed settings and inherit from parent
* [threads] Update Red.message_eligible_as_command to support threads
* [threads] Properly handle invocation of [p](un)mutechannel in threads
Usage of a (un)mutechannel will mute/unmute user in the parent channel
if it's invoked in a thread.
* [threads] Update Filter cog to properly handle threads
- `[p]filter channel list` in a threads sends list for parent channel
- Checking for filter hits for a message in a thread checks its parent
channel's word list. There's no separate word list for threads.
* [threads] Support threads in Audio cog
- Handle threads being notify channels
- Update type hint for `is_query_allowed()`
* [threads] Update type hints and documentation to reflect thread support
- Documented that `{channel}` in CCs might be a thread
- Allowed (documented) usage of threads with `Config.channel()`
- Separate thread scope is still in the picture though
if it were to be done, it's going to be in separate in PR
- GuildContext.channel might be Thread
* Use less costy channel check in customcom's on_message_without_command
This isn't needed for d.py 2.0 but whatever...
* Update for in-place edits
* Embed's bool changed behavior, I'm hoping it doesn't affect us
* Address User.permissions_in() removal
* Swap VerificationLevel.extreme with VerificationLevel.highest
* Change to keyword-only parameters
* Change of `Guild.vanity_invite()` return type
* avatar -> display_avatar
* Fix metaclass shenanigans with Converter
* Update Red.add_cog() to be inline with `dpy_commands.Bot.add_cog()`
This means adding `override` keyword-only parameter and causing
small breakage by swapping RuntimeError with discord.ClientException.
* Address all DEP-WARNs
* Remove Context.clean_prefix and use upstream implementation instead
* Remove commands.Literal and use upstream implementation instead
Honestly, this was a rather bad implementation anyway...
Breaking but actually not really - it was provisional.
* Update Command.callback's setter
Support for functools.partial is now built into d.py
* Add new perms in HUMANIZED_PERM mapping (some from d.py 1.7 it seems)
BTW, that should really be in core instead of what we have now...
* Remove the part of do_conversion that has not worked for a long while
* Stop wrapping BadArgument in ConversionFailure
This is breaking but it's best to resolve it like this.
The functionality of ConversionFailure can be replicated with
Context.current_parameter and Context.current_argument.
* Add custom errors for int and float converters
* Remove Command.__call__ as it's now implemented in d.py
* Get rid of _dpy_reimplements
These were reimplemented for the purpose of typing
so it is no longer needed now that d.py is type hinted.
* Add return to Red.remove_cog
* Ensure we don't delete messages that differ only by used sticker
* discord.InvalidArgument->ValueError
* Move from raw <t:...> syntax to discord.utils.format_dt()
* Address AsyncIter removal
* Swap to pos-only for params that are pos-only in upstream
* Update for changes to Command.params
* [threads] Support threads in ignore checks and allow ignoring them
- Updated `[p](un)ignore channel` to accept threads
- Updated `[p]ignore list` to list ignored threads
- Updated logic in `Red.ignored_channel_or_guild()`
Ignores for guild channels now work as follows (only changes for threads):
- if channel is not a thread:
- check if user has manage channels perm in channel
and allow command usage if so
- check if channel is ignored and disallow command usage if so
- allow command usage if none of the conditions above happened
- if channel is a thread:
- check if user has manage channels perm in parent channel
and allow command usage if so
- check if parent channel is ignored and disallow command usage
if so
- check if user has manage thread perm in parent channel
and allow command usage if so
- check if thread is ignored and disallow command usage if so
- allow command usage if none of the conditions above happened
* [partial] Raise TypeError when channel is of PartialMessageable type
- Red.embed_requested
- Red.ignored_channel_or_guild
* [partial] Discard command messages when channel is PartialMessageable
* [threads] Add utilities for checking appropriate perms in both channels & threads
* [threads] Update code to use can_react_in() and @bot_can_react()
* [threads] Update code to use can_send_messages_in
* [threads] Add send_messages_in_threads perm to mute role and overrides
* [threads] Update code to use (bot/user)_can_manage_channel
* [threads] Update [p]diagnoseissues to work with threads
* Type hint fix
* [threads] Patch vendored discord.ext.menus to check proper perms in threads
I guess we've reached time when we have to patch the lib we vendor...
* Make docs generation work with non-final d.py releases
* Update discord.utils.oauth_url() usage
* Swap usage of discord.Embed.Empty/discord.embeds.EmptyEmbed to None
* Update usage of Guild.member_count to work with `None`
* Switch from Guild.vanity_invite() to Guild.vanity_url
* Update startup process to work with d.py's new asynchronous startup
* Use setup_hook() for pre-connect actions
* Update core's add_cog, remove_cog, and load_extension methods
* Update all setup functions to async and add awaits to bot.add_cog calls
* Modernize cogs by using async cog_load and cog_unload
* Address StoreChannel removal
* [partial] Disallow passing PartialMessageable to Case.channel
* [partial] Update cogs and utils to work better with PartialMessageable
- Ignore messages with PartialMessageable channel in CustomCommands cog
- In Filter cog, don't pass channel to modlog.create_case()
if it's PartialMessageable
- In Trivia cog, only compare channel IDs
- Make `.utils.menus.menu()` work for messages
with PartialMessageable channel
- Make checks in `.utils.tunnel.Tunnel.communicate()` more rigid
* Add few missing DEP-WARNs
* Switch from low-level loop.create_task and asyncio.ensure_future
* Patch vendored discord.ext.menus to use modern APIs as well
That ext is no longer maintained by Danny anyway so...
* black
* Bump discord.py, but to the git version for now
* Import GuildConverter from d.py and deprecate our implementation
* Import PartialMessageConverter in our commands extension
* Use newly added `Cog.has_error_handler()` rather than private method
* Update snowflake regex to use 20 as max length
See Rapptz/discord.py#6501
* Use new supported way for custom cooldown buckets
* Include group args in command signature
* Update code to use `Client.close()` over `Client.logout()`
* Add StageChannelConverter and StoreChannelConverter
* Fix AttributeError in licenseinfo
* Make command usage in help for required arguments consistent
* Bob 3
* Bob 1
* Docstring updates
* Address Flame's review
* Update cog guides in docs
* Only send a message telling the user the file will be send via DM if the original message didn't come from a DM
* Remove unused import for AsyncIter
* Changed channel instance comparison to discord.DMChannel
Co-authored-by: douglas-cpp <douglasc.dev@gmail.com>
[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
Any group which sent help + settings views has had the settings view
split into a seperate command. This ensures that custom help behavior
does not interfere with settings views.
* [Permissions] Prevent guild owner lockouts
- Guild owners will always be able to access the guild configuration
commands in permissions
- This includes `permissions explain` and `permissions canrun` as
informational tools useful for ensuing a correct configuration
resolves#3107
* minor nitpicking over ordering consistency
* a single new line for style compliance
* Fix a typo + alphabet went wrong
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
* lets reduce config calls here
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Lets normalize how we name config attributes across the bot.
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* ....
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Just a tiny PR improving config call in a lot of places (Specially events and Help)
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* stop using `bot.guilds` in `on_command_add`
* Just a tiny PR improving config call in a lot of places (Specially events and Help)
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* missed this one
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* nothing to see here
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* lets reduce config calls here
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Just a tiny PR improving config call in a lot of places (Specially events and Help)
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* stop using `bot.guilds` in `on_command_add`
* missed this one
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* welp
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* welp
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* welp
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* jack
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Update redbot/cogs/mod/kickban.py
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
* Update redbot/cogs/filter/filter.py
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
* jack
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* make all large loops async to avoid blocking larger bots
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* ...
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* okay now working AsyncGen
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* may or may not have forgotten black
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Apply suggestions from code review
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
* jack's review
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* DOCS
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* DOCS
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Apply suggestions from code review
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
* jack
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Apply suggestions from code review
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
* Update redbot/core/utils/__init__.py
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
* Update redbot/core/utils/__init__.py
Co-Authored-By: jack1142 <6032823+jack1142@users.noreply.github.com>
* avoid loop if possible and if not only iterate once
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
Co-authored-by: jack1142 <6032823+jack1142@users.noreply.github.com>
* fix stacklevels of warnings
* stop using loop arg when calling start_adding_reactions
* [Audio] Stop using loop arg when calling start_adding_reactions
* 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 4af33cff
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Implement schema migration
* Lets not touch the deps since #3192 is already adding them
* chore
* *sigh* Black
* Follow the existing logic and always default Playlist to guild scope
* wghqjegqf black
* Update usage of last_fetched and last_updated to be Ints... However column migration still pending
* Some bug fixes
* Update usage of last_fetched and last_updated to be Ints... However column migration still pending
* working
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* partial match
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* better partial match
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* black
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* I thought i done this before
* Delete 3195.misc.1.rst
Wrong PR
* Thanks Sinbad
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Thanks Sinbad
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Log Errors in init ...
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Update error logs.
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Create index
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* :Drapersweat:
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Chore
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Revert "Chore"
This reverts commit edcc9a9f
UGHHHH
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Allow removing tracks from queue by URL
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Words matter
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* *sigh*
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* chore
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* arghhh CONFLICTS
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Review sinbads latest comment ..
ToDo.. Nuke existing playlist - check version and set version
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* migrate the DB schema to v3 (to keep in line with the schema visioning of Config
* Add a Todo
* *sigh* conflicts and black
* *sigh* black
* Passively delete playlist deletion mechanism
* Delete Old entries on startup
* Since we are dropping the table mightaware make these into JSON for future proofing
* Don't Dump strings in JSON field ? :think:
* Move some things around to make easier to use 1 connection to the Audio DB
* Move some things around to make easier to use 1 connection to the Audio DB
* *sigh*
* Clean up api
* *sigh* black
* Red + reorder some variables
* 🤦
* how could i forget this .......
* Black
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Black
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Black
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* #automagically
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* FINAFUCKINGLY
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* FINAFUCKINGLY
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Remove unused config default
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Remove the API from the audio Cog (Properly)
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Missed these changes
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* ARGHHH
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Some fixes I've noticed while running through the code line by line
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Translation + UX (show playlist author ID if can't find user)
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* *sigh* missed this one
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* this is no longer needed ....
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* 🤦
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* fix new lines in error messages
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Black
* Sinbads Review
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Sinbads Review
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* *sigh* copy paste
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* imrpove backups
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Im a fucking idiot
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Fix#3238
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* chore
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* humans
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* humans
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* add play alias to playlists
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Im dumb ...
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Im dumb ...
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* fix new line
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* fix new line
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* show playlist count on playlist picker
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* DJ/Vote system fixes
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* DJ/Vote system fixes
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* *sigh* fix currency check
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* show playlist count on playlist picker
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* DJ/Vote system fixes
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* DJ/Vote system fixes
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* *sigh* fix currency check
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Fix duplicate messages on timeout
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* fix SQL Statement logic
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* fix SQL Statement logic
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Markdown escape
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Markdown escape
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Markdown escape fix
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Markdown escape fix
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* clean up local cache more frequently
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* clean up db more frequently
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Await in hell
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* *sigh* im dumb
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* *sigh* im dumb
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Black cuz I hate red
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Black cuz I hate red
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* StringIO to ByteIO
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* StringIO to ByteIO
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* *sigh* im dumb
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* :Facepalm: the whole purpose of this is so its offline so this can be backed up without being blocking
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Run write queries on ThreadPoolExecutor
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* Backup Audio.db
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* *sigh* im dumb
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* blaaaack
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* *sigh*
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* formatting
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* remove duplicated string of code
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
* ffs awaits
Signed-off-by: Drapersniper <27962761+drapersniper@users.noreply.github.com>
Co-authored-by: Michael H <michael@michaelhall.tech>