Commit Graph
691 Commits
Author SHA1 Message Date
I. AhmadandGitHub ae1979d17a [commands] Add note for command tree in Bot's docstring 2022-03-28 09:19:27 -04:00
Rapptz def035bf9a Remove StoreChannel and any references to it 2022-03-28 00:09:19 -04:00
jack1142andGitHub 5ffa3e85de Update comments after # type: ignore to be compatible with PEP 484 2022-03-27 22:26:34 -04:00
JoshandGitHub 2d1cbacc58 [commands] Add tree_cls to Bot constructor 2022-03-24 22:32:31 -04:00
062f4d6f87 Change some methods to use positional-only marker
Co-authored-by: Danny <Rapptz@users.noreply.github.com>
2022-03-22 18:52:25 -04:00
StockerandGitHub eca4727593 [commands] Add missing and fix existing type annotations 2022-03-22 06:04:46 -04:00
JoshandGitHub 46b3e036e2 [commands] Fix help error/invoke hooks not running 2022-03-22 06:02:52 -04:00
jack1142andGitHub 6dc314628e Make guild and guilds args in Bot.remove_cog() keyword-only 2022-03-20 19:01:37 -04:00
JoshandGitHub 1b70fad5ec [commands] Fix exceptions in HelpCommand 2022-03-19 13:14:17 -04:00
JoshandGitHub fafc5b13f6 [commands] Rework help command to avoid a deepcopy on invoke 2022-03-19 06:34:19 -04:00
z03handGitHub 5d6905a1bc Update clean_content/channel_mentions for threads 2022-03-19 04:46:55 -04:00
Rapptz 02b79eb219 [commands] Change BotT to be covariant 2022-03-18 01:13:50 -04:00
Rapptz 1192d842e1 Fix some type checker errors and remove some type ignores
Caught from an upgraded Pyright
2022-03-16 01:46:58 -04:00
z03handGitHub e5461c73b6 [commands] Check if any base in a Cog is a subclass of Group 2022-03-15 09:50:49 -04:00
Rapptz 5bc085ebab Properly set root parent before copying a command's binding 2022-03-15 03:24:20 -04:00
Stanisław JelnickiandGitHub 47cb7d03ec [commands] Type BotBase.help_command as Optional 2022-03-14 21:02:36 -04:00
ChrisJLandGitHub 68dbf0f882 [commands] Fix message converter not inferring channel when missing 2022-03-14 21:01:14 -04:00
Rapptz abcec5da9d [tasks] Use the local timezone when comparing for the start time
Fix #7676
2022-03-14 04:54:56 -04:00
HigherOrderLogicandGitHub 3e70a4e798 Fix typo in add_cog doc 2022-03-14 01:33:34 -04:00
5aa696ccfa Fix typing issues and improve typing completeness across the library
Co-authored-by: Danny <Rapptz@users.noreply.github.com>
Co-authored-by: Josh <josh.ja.butt@gmail.com>
2022-03-13 23:52:10 -04:00
Rapptz 603681940f [tasks] Only correct for clock drift if an explicit time is given 2022-03-13 22:51:10 -04:00
Rapptz f2586e9fe7 [tasks] Handle imaginary or ambiguous times due to DST transitions 2022-03-13 22:45:18 -04:00
JoshandGitHub a1c618215e [commads] Change cog/extension load/unload methods to be async 2022-03-13 21:03:45 -04:00
Rapptz a339e01047 [tasks] Compare using full datetime rather than sole time
Comparisons using just the time object without an attached date
are pretty buggy and incomplete -- comparisons only make sense when
given a particular instant of time.

Ref: #7676
2022-03-13 20:45:05 -04:00
Rapptz 64c6639f4b [tasks] Handle loop functions running multiple times due to clock drift 2022-03-13 11:36:00 -04:00
Rapptz 6a43d60acf [tasks] Refactor tasks to not store a time index state
It's better to recompute it every time rather than suffer from
maintaining the extra state.
2022-03-13 06:20:44 -04:00
Han Seung Min - 한승민andGitHub 93af158b0c Refactor loop code to allow usage of asyncio.run 2022-03-13 04:54:14 -04:00
Rapptz 0ef369c0fa [commands] Automatically unload top level app commands in extensions 2022-03-12 09:24:26 -05:00
Rapptz d68f2db7cb [commands] Always respect guild IDs passed to cog adding and removal
Fixes #7657
2022-03-12 06:58:55 -05:00
Rapptz 9dea6caf20 Ensure cog app commands is a list rather than a dict
There was a remnant of it being a dict in the metaclass.
2022-03-11 21:30:49 -05:00
Sebastian LawandGitHub 04535e4e1d [tasks] use None instead of MISSING for internal attributes 2022-03-10 23:12:22 -05:00
Neon JonnandGitHub adb69e7157 Fix some spelling mistakes 2022-03-10 20:45:16 -05:00
Rapptz d210f799ee [commands] Fix cog eject behaviour with application commands
This was using the old attribute I forgot to change.
2022-03-10 05:33:54 -05:00
340f09a1c0 [commands] Update ScheduledEventConverter docs for clarity
Co-authored-by: Danny <Rapptz@users.noreply.github.com>
Co-authored-by: ashish  <68690233+asheeeshh@users.noreply.github.com>
2022-03-10 00:20:11 -05:00
Rapptz 446bfa78b0 [commands] Allow Cog and app_commands interopability
This changeset allows app commands defined inside Cog to work as
expected. Likewise, by deriving app_commands.Group and Cog you can
make the cog function as a top level command on Discord.
2022-03-09 20:26:54 -05:00
Devon RandGitHub 432de92e8a Update translations, add Crowdin CLI config 2022-03-09 20:07:48 -05:00
z03handGitHub 93fba264ad [commands] add ScheduledEvent converter 2022-03-09 17:56:50 -05:00
Aaron HennesseyandGitHub bf3eb0a7fe [commands] Fix for _Bot Context generic in converters 2022-03-09 17:55:55 -05:00
Lilly Rose BernerandGitHub b308b54b89 [tasks] Fix change_interval raising when called during execution 2022-03-07 17:35:42 -05:00
StockerandGitHub 13355f3712 Fix HelpCommand.invoked_with raising an error
This would happen if the context hasn't been set yet.
2022-03-06 23:02:01 -05:00
ChrovoandGitHub aa725f4a4a [docs] Fix typo in tasks docs 2022-03-06 19:03:36 -05:00
JoshandGitHub 9d3fa3d29b [commands] Simplify typing of command hooks 2022-03-06 03:44:20 -05:00
JoshandGitHub eaf94e84bc Fix unbound ParamSpec to use ... over Any 2022-03-06 01:44:48 -05:00
Rapptz 625c416f18 [commands] Fix command parameter handling in HelpCommand 2022-03-06 01:39:43 -05:00
Alex NørgaardandGitHub bfaee44b1f [commands] Fix types for Bot.is_owner 2022-03-05 22:06:21 -05:00
jack1142andGitHub 00b61e2148 Parameters->Attributes in NSFWChannelRequired's doc for consistency 2022-03-05 19:15:48 -05:00
Sebastian LawandGitHub 5439a67056 [tasks] Fix sleep handling behaviour depending on interval type
Relative time intervals can be thought of as:

  for _ in range(count):
    await body()
    await asyncio.sleep(interval)

While explicit time intervals should be thought of as:

  times = [1pm, 2pm, 3pm, 12am]
  current = 0
  for _ in range(count):
    time = times.wrapping_index(current)  # magic to wrap around
    await utils.sleep_until(time)
    await body()
    current += 1
2022-03-05 05:12:22 -05:00
JoshandGitHub 147948af9b Use typing.Self throughout library 2022-03-01 07:53:24 -05:00
Nihaal SanghaandGitHub 90cabd1673 Fix various typos 2022-02-27 21:19:19 -05:00
Sebastian LawandGitHub f1ac25809c [tasks] Fix behavior when task overruns interval
In a scenario with `tasks.loop(seconds=5)`:

The task takes 30 seconds to run on the first two iterations, and then
is nearly instant for iterations afterward. The behavior should be
that the task runs at:

t = 0  (on time)
t = 30 (late, should've been at t = 5)
t = 60 (late, should've been at t = 10)
t = 60 (late, should've been at t = 15)
t = 60 (late, should've been at t = 20)
t = 60 (late, should've been at t = 25)
... 6 more iterations
t = 60 (on time)
t = 65 (on time)

In a scenario with a loop with explicit times set at UTC 1pm, 2pm, 
3pm, 4pm, and 5pm:

- The task takes 6 hour to run on the first iteration, and then is
  nearly instant for iterations afterward. Assuming the task is started
  at noon, the behavior should be that the task runs at `t = 0` and
  then at `t = 3600` 4 times ("catching up" on the missed iterations
  at 2pm, 3pm, 4pm, and 5pm).

- The task takes 30 days to run on the first iteration, and then is
  nearly instant for iterations afterward. Assuming the task is started
  at noon, the behavior should be that the task runs at `t = 0` and
  then at `t = 43200` 149 times ("catching up" on the missed
  iterations for the past month).

This behavior should be documented in the ext.tasks docs
2022-02-26 01:48:27 -05:00