変更履歴¶
このページでは、特定のバージョンの新機能や変更された機能をわかりやすい形で詳細に記載しています。
v2.3.2¶
バグ修正¶
Fix the
name
parameter not being respected when sending aCustomActivity
.Fix
Intents.emoji
andIntents.emojis_and_stickers
having swapped alias values (GH-9471).Fix
NameError
when usingabc.GuildChannel.create_invite()
(GH-9505).Fix crash when disconnecting during the middle of a
HELLO
packet when usingAutoShardedClient
.Fix overly eager escape behaviour for lists and header markdown in
utils.escape_markdown()
(GH-9516).Fix voice websocket not being closed before being replaced by a new one (GH-9518).
[ext.commands] Fix the wrong
on_help_command_error()
being called when ejected from a cog.[ext.commands] Fix
=None
being displayed insignature
.
v2.3.1¶
バグ修正¶
Fix username lookup in
Guild.get_member_named()
(GH-9451).- Use cache data first for
Interaction.channel
instead of API data. This bug usually manifested in incomplete channel objects (e.g. no
overwrites
) because Discord does not provide this data.
- Use cache data first for
Fix false positives in
PartialEmoji.from_str()
inappropriately settinganimated
toTrue
(GH-9456, GH-9457).Fix certain select types not appearing in
Message.components
(GH-9462).[ext.commands] Change lookup order for
MemberConverter
andUserConverter
to prioritise usernames instead of nicknames.
v2.3.0¶
新機能¶
- Add support for the new username system (also known as "pomelo").
Add
User.global_name
to get their global nickname or "display name".Update
User.display_name
andMember.display_name
to understand global nicknames.Update
__str__
forUser
to drop discriminators if the user has been migrated.Update
Guild.get_member_named()
to work with migrated users.Update
User.default_avatar
to work with migrated users.[ext.commands] Update user and member converters to understand migrated users.
Add
DefaultAvatar.pink
for new pink default avatars.Add
Colour.pink()
to get the pink default avatar colour.- Add support for voice messages (GH-9358)
This does not support sending voice messages because this is currently unsupported by the API.
Add support for new
Interaction.channel
attribute from the API update (GH-9339).Add support for
TextChannel.default_thread_slowmode_delay
(GH-9291).Add support for
ForumChannel.default_sort_order
(GH-9290).Add support for
default_reaction_emoji
anddefault_forum_layout
inGuild.create_forum()
(GH-9300).Add support for
widget_channel
,widget_enabled
, andmfa_level
inGuild.edit()
(GH-9302, GH-9303).- Add various new
Permissions
and changes (GH-9312, GH-9325, GH-9358, GH-9378) Add new
manage_expressions
,use_external_sounds
,use_soundboard
,send_voice_messages
,create_expressions
permissions.Change
Permissions.manage_emojis
to be an alias ofmanage_expressions
.
- Add various new
Add various new properties to
PartialAppInfo
andAppInfo
(GH-9298).Add support for
with_counts
parameter toClient.fetch_guilds()
(GH-9369).Add new
Guild.get_emoji()
helper (GH-9296).Add
Guild.max_stage_video_users
andGuild.safety_alerts_channel
(GH-9318).Add support for
raid_alerts_disabled
andsafety_alerts_channel
inGuild.edit()
(GH-9318).[ext.commands] Add
BadLiteralArgument.argument
to get the failed argument's value (GH-9283).[ext.commands] Add
Context.filesize_limit
property (GH-9416).[ext.commands] Add support for
Parameter.displayed_name
(GH-9427).
バグ修正¶
- Fix
FileHandler
handlers being written ANSI characters when the bot is executed inside PyCharm. This has the side effect of removing coloured logs from the PyCharm terminal due an upstream bug involving TTY detection. This issue is tracked under PY-43798.
- Fix
Fix channel edits with
Webhook.edit()
sending two requests instead of one.Fix
StageChannel.last_message_id
always beingNone
(GH-9422).Fix piped audio input ending prematurely (GH-9001, GH-9380).
Fix persistent detection for
ui.TextInput
being incorrect if thecustom_id
is set later (GH-9438).Fix custom attributes not being copied over when inheriting from
app_commands.Group
(GH-9383).Fix AutoMod audit log entry error due to empty channel_id (GH-9384).
Fix handling of
around
parameter inabc.Messageable.history()
(GH-9388).Fix occasional
AttributeError
when accessing theClientUser.mutual_guilds
property (GH-9387).Fix
utils.escape_markdown()
not escaping the new markdown (GH-9361).Fix webhook targets not being converted in audit logs (GH-9332).
Fix error when not passing
enabled
inGuild.create_automod_rule()
(GH-9292).Fix how various parameters are handled in
Guild.create_scheduled_event()
(GH-9275).Fix not sending the
ssrc
parameter when sending the SPEAKING payload (GH-9301).Fix
Message.guild
beingNone
sometimes when received via an interaction.Fix
Message.system_content
forMessageType.channel_icon_change
(GH-9410).
その他¶
Update the base
Guild.filesize_limit
to 25MiB (GH-9353).Allow Interaction webhook URLs to be used in
Webhook.from_url()
.Set the socket family of internal connector to
AF_INET
to prevent IPv6 connections (GH-9442, GH-9443).
v2.2.3¶
バグ修正¶
Fix crash from Discord sending null
channel_id
for automod audit logs.Fix
channel
edits when usingWebhook.edit()
sending two requests.Fix
AuditLogEntry.target
beingNone
for invites (GH-9336).Fix
KeyError
when accessing data forGuildSticker
(GH-9324).
v2.2.2¶
バグ修正¶
v2.2.0¶
新機能¶
Add support for new
on_audit_log_entry_create()
event- Add support for silent messages via
silent
parameter inabc.Messageable.send()
This is queryable via
MessageFlags.suppress_notifications
- Add support for silent messages via
Implement
abc.Messageable
forStageChannel
(GH-9248)Add setter for
discord.ui.ChannelSelect.channel_types
(GH-9068)Add support for custom messages in automod via
AutoModRuleAction.custom_message
(GH-9267)Add
StageChannel.slowmode_delay
andVoiceChannel.slowmode_delay
(GH-9111)Add support for editing the slowmode for
StageChannel
andVoiceChannel
(GH-9111)Add
delete_after
keyword argument toInteraction.edit_message()
(GH-9415)Add
delete_after
keyword argument toInteractionMessage.edit()
(GH-9206)- Add support for member flags (GH-9204)
Accessible via
Member.flags
and has a type ofMemberFlags
Support
bypass_verification
withinMember.edit()
- Add support for passing a client to
Webhook.from_url()
andWebhook.partial()
This allows them to use views (assuming they are "bot owned" webhooks)
- Add support for passing a client to
Add
Colour.dark_embed()
andColour.light_embed()
(GH-9219)Add support for many more parameters within
Guild.create_stage_channel()
(GH-9245)Add support for
ForumChannel.default_layout
Add various new
MessageType
values such as ones related to stage channel and role subscriptions- Add support for role subscription related attributes
Add support for checking if a role is a linked role under
RoleTags.is_guild_connection()
Add support for GIF sticker type
Add support for
Message.application_id
andMessage.position
Add
utils.maybe_coroutine()
helperAdd
ScheduledEvent.creator_id
attribute[ext.commands] Add support for
interaction_check()
forGroupCog
(GH-9189)
バグ修正¶
Fix views not being removed from message store backing leading to a memory leak when used from an application command context
Fix async iterators requesting past their bounds when using
oldest_first
andafter
orbefore
(GH-9093)Fix
Guild.audit_logs()
pagination logic being buggy when usingafter
(GH-9269)Fix
Message.channel
sometimes beingObject
instead ofPartialMessageable
Fix
ui.View
not properly callingsuper().__init_subclass__
(GH-9231)Fix
available_tags
anddefault_thread_slowmode_delay
not being respected inGuild.create_forum()
Fix
AutoModTrigger
ignoringallow_list
with type keyword (GH-9107)Fix
AutoModRule.edit()
to work with actual snowflake types such asObject
(GH-9159)Fix
Webhook.send()
returningForumChannel
forWebhookMessage.channel
When a lookup for
AuditLogEntry.target
fails, it will fallback toObject
with the appropriateObject.type
(GH-9171)Fix
AuditLogDiff.type
for integrations returningChannelType
instead ofstr
(GH-9200)Fix
AuditLogDiff.type
for webhooks returningChannelType
instead ofWebhookType
(GH-9251)Fix webhooks and interactions not properly closing files after the request has completed
Fix
NameError
in audit log target for app commandsFix
ScheduledEvent.edit()
requiring some arguments to be passed in when unnecessary (GH-9261, GH-9268)[ext.commands] Explicit set a traceback for hybrid command invocations (GH-9205)
その他¶
Add colour preview for the colours predefined in
Colour
Finished views are no longer stored by the library when sending them (GH-9235)
Force enable colour logging for the default logging handler when run under Docker.
Add various overloads for
Client.wait_for()
to aid in static analysis (GH-9184)Interaction
can now optionally take a generic parameter,ClientT
to represent the type forInteraction.client
[ext.commands] Respect
ignore_extra
forFlagConverter
keyword-only parameters[ext.commands] Change
Paginator.pages
to not prematurely close (GH-9257)
v2.1.1¶
バグ修正¶
Fix crash involving GIF stickers when looking up their filename extension.
v2.1.0¶
新機能¶
Guild.ban()
にdelete_message_seconds
へのサポートを追加しました。 (GH-8391)AutoMod関連の監査ログアクションのサポートを追加しました。 (GH-8389)
アプリケーションコマンドで
ForumChannel
アノテーションのサポートを追加しました。ForumChannel.default_thread_slowmode_delay
のサポートを追加しました。ForumChannel.default_reaction_emoji
のサポートを追加しました。ForumTag
にて、フォーラムタグのサポートを追加しました。タグは
ForumChannel.available_tags
またはForumChannel.get_tag()
で取得できます。タグの変更方法や使い方については
Thread.edit()
とForumChannel.edit()
を参照してください。
- 新しい選択メニューの種類のサポートを追加しました。 (GH-9013, GH-9003)
これらは、
ChannelSelect
、RoleSelect
、UserSelect
、MentionableSelect
に分割されています。デコレータはこれまで通り単一の関数
select()
を使用しています。選択メニューの種類の変更はcls
キーワード引数によって行われます。
Guild.edit()
で、discoverable と invites_disabled 機能を切り替えるためのサポートを追加しました。 (GH-8390)Interaction.translate()
ヘルパーメソッドを追加しました。 (GH-8425)Forum.archived_threads()
を追加しました。 (GH-8476)ApplicationFlags.active
、UserFlags.active_developer
、およびPublicUserFlags.active_developer
を追加しました。InteractionResponse.send_message()
にdelete_after
を追加しました。 (GH-9022)AutoModTrigger.regex_patterns
のサポートを追加しました。[ext.commands]
app_commands.Group.extras
を設定できるGroupCog.group_extras
を追加しました。 (GH-8405)[ext.commands] 通常のコマンドでパラメータの説明を設定するのに NumPy スタイルの docstring が利用できるようになりました。
[ext.commands]
Greedy
が呼び出し間で状態を維持できるようにしました。[ext.commands]
Cog.has_app_command_error_handler
を追加しました。 (GH-8991)[ext.commands]
Context.send
でdelete_after
が利用できるようになりました。 (GH-9021)
バグ修正¶
app_commands.Group
をモジュールなしで構築したときにKeyError
が発生する問題を修正しました。 (GH-8411)Webhook URLの正規表現でピリオドがエスケープされていない問題を修正しました。 (GH-8443)
他の400ステータスコードエラーで
app_commands.CommandSyncFailure
が送出される問題を修正しました。app_commands.CommandSyncFailure
で_errors
を表示するかもしれないフォーマットの問題を修正しました。Guild.stage_instances
とGuild.schedule_events
がGUILD_UPDATE
時に空になる問題を修正しました。オーバーライドされた
app_commands.Group.on_error()
の検出を修正しました。エラーハンドラが設定されている場合にも、
app_commands.CommandTree.on_error()
が呼び出されているのを修正しました。DMChannel.permissions_for()
でスレッドの権限がTrue
に設定されている問題を修正しました。 (GH-8965)on_scheduled_event_delete
に渡されるパラメータが多すぎる場合がある問題を修正しました。 (GH-9019)[ext.commands]
Context.from_interaction
がcommand_failed
を無視する問題を修正しました。[ext.commands]
Range
で 3.10 Union 構文が利用できるようになりました。 (GH-8446).[ext.commands] HybridGroupコマンドでfallbackコマンドがトリガーされない問題を修正しました(GH-8461, GH-8462)。
その他¶
app_commands.ContextMenu
でバインドされていないコールバックのエラーメッセージを変更し、バインドされているメソッドは使用できないことを明確にしました。TypeError 例外で型のフォーマットを標準化しました。 (GH-8453)
VoiceProtocol.on_voice_state_update()
とVoiceProtocol.on_voice_server_update()
パラメータを位置指定専用に変更しました。 (GH-8463 )デフォルトの色付きロガーに、 PyCharm 対応を追加しました。 (GH-9015)
v2.0.1¶
バグ修正¶
Python 3.10 以降で
speed
extrasを使用した場合にcchardet
がインストールされる問題を修正しました。ui.View.interaction_check()
に失敗したときにもui.View
のタイムアウトが更新される問題を修正しました。interaction_check()
が例外を送出したときにapp_commands.CommandTree.on_error()
が実行されない問題を修正しました。非推奨の
pkg_resources
の代わりにimportlib.metadata
を使用するよう__main__
スクリプトを修正しました。- ライブラリコールバックのパラメータ名が異なる場合に型チェックエラーが検出される問題を修正しました。
これに伴い バージョン保証 が改訂されました。
[ext.commands] Python 3.10 のユニオン型が
commands.Greedy
で動作しない問題を修正しました。
v2.0.0¶
このバージョンの変更は大きすぎるため、この場所に収まりきりません。詳細については 移行についてのページ を参照してください。
v1.7.3¶
バグ修正¶
ギルドでアップロードされたスタンプに関するクラッシュを修正しました。
DMChannel.permissions_for()
にPermissions.read_messages
が設定されていない問題を修正しました。
v1.7.2¶
バグ修正¶
fail_if_not_exists
により、特定のメッセージ参照がabc.Messageable.send()
およびMessage.reply()
内で使用できない問題を修正しました。 (GH-6726)ギルドからユーザーが脱退した際に
Guild.chunk()
がハングするのを修正しました。 (GH-6730)最終反復の前ではなく後にループがスリープするのを修正しました。 (GH-6744)
v1.7.1¶
バグ修正¶
[ext.commands]
Cog.has_error_handler
が正常に動作しない問題を修正しました。
v1.7.0¶
このバージョンは、主にバグ修正と、機能改善が含まれています。 おそらくこのバージョンが、1.xシリーズの最後のメジャーバージョンとなる予定です。これ以降の作業は、主にv2.0に費やされます。 結果として、このバージョンが、Python 3.5をサポートする最後のバージョンになります。 同様に、このバージョンがユーザーボットをサポートする最後のバージョンです。
v2.0の開発には、破壊的更新と、新しいAPI機能の変更が含まれるでしょう。
新機能¶
StageChannel
のサポートを追加しました。 (GH-6602, GH-6608)MessageReference.fail_if_not_exists
のサポートを追加しました。 (GH-6484)デフォルトでは、もし返信するメッセージが存在しない場合、APIエラーが発生します。この属性は、Discord APIにメッセージが存在していない場合でも、問題がないことを伝えます。
Discordの新しい権限シリアライゼーションスキームのサポートを追加しました。
簡単にチャンネルの移動をする
abc.GuildChannel.move()
を追加しました。新しい権限
Permissions.use_slash_commands
を追加しました。新しい権限
Permissions.request_to_speak
を追加しました。VoiceChannel.rtc_region
によるボイスチャンネルの、ボイスリージョンのサポートを追加しました。 (GH-6606)PartialEmoji.url_as()
のサポートを追加しました。 (GH-6341)MessageReference.jump_url
を追加しました。(GH-6318)File.spoiler
を追加しました。 (GH-6317)roles
をGuild.estimate_pruned_members()
に渡すことができるようになりました。(GH-6538)abc.Connectable.connect()
において、クラスを生成する呼び出し可能オブジェクトを使用できるようになりました。( GH-6478 )クライアントのキャッシュから共通のギルドを取得する
User.mutual_guilds
を追加しました。 (GH-2539, GH-6444)PartialMessage.edit()
が成功時に完全なMessage
を返すようになりました。 (GH-6309)RawMessageUpdateEvent.guild_id
を追加しました。(GH-6489)AuditLogEntry
がハッシュ可能になりました。 (GH-6495)Attachment
がハッシュ可能になりました。Attachment.content_type
属性を追加しました。 (GH-6618)URLを取得するために
Atachment
をstr
へキャストできるようになりました。Colour.random
にseed
パラメータを追加しました。 (GH-6562)これは1つの呼び出しに対してのみシードします。複数の呼び出しに対するシードが望ましい場合は、
random.seed()
を使用してください。
utils.remove_markdown()
ヘルパー関数を追加しました。 (GH-6573)utils.oauth_url()
にスコープを渡すことが可能になりました。 (GH-6568)[ext.commands]
ColourConverter
において、rgb
CSS関数の文字列を変換できるようになりました。 (GH-6374)[ext.commands]
StoreChannel
をStoreChannelConverter
によって変換できるようになりました。 (GH-6603)[ext.commands]
Bot
のstrip_after_prefix
初期化パラメーターを指定することで、プレフィックスのあとの空白を取り除けるようになりました。[ext.commands]
Context.invoked_parents
で、呼び出されたときのコマンドの親のエイリアスを取得できるようになりました。 (GH-1874, GH-6462)[ext.commands]
PartialMessage
用のコンバーターext.commands.PartialMessageConverter
を追加しました。 (GH-6308)[ext.commands]
Guild
用のコンバーターext.commands.GuildConverter
を追加しました。 (GH-6016, GH-6365)- [ext.commands]
Command.has_error_handler
を追加しました。 Cog.has_error_handler
も追加されました。
- [ext.commands]
[ext.commands] 呼び出し可能オブジェクトをクールダウンのバケットキーとして使用できるようになりました。 (GH-6563)
[ext.commands]
Paginator
にlinesep
キーワード引数を追加しました。 (GH-5975)[ext.commands]
HelpCommand.verify_checks
にNone
を指定することで、サーバー内でのみチェックを確認するようにできるようにしました。 (GH-2008, GH-6446)[ext.commands]
package
キーワード引数で、エクステンションをロードするときの相対パスを指定できるようになりました。 (GH-2465, GH-6445)
バグ修正¶
Client.allowed_mentions
が設定されていないときに、abc.Messageable.send()
でmention_author
が渡されてもメンションしない問題を修正しました。 (GH-6192, GH-6458)- ユーザーが作成した
CustomActivity
インスタンスがエラーを引き起こす問題を修正しました。 (GH-4049) 現在、Discordの制限により、Botはまだカスタムアクティビティを設定できません。
- ユーザーが作成した
VoiceClient.average_latency
にてZeroDivisionError
が発生する問題を修正しました。 (GH-6430, GH-6436)User.public_flags
が編集時に更新されない問題を修正しました。 (GH-6315)Message.call
が時々AttributeErrorを送出する問題を修正しました。 (GH-6390)新しいバージョンの
aiohttp
で、リクエストの再試行中にファイルを再送するときに発生する問題を修正しました。 (GH-6531)Guild.query_members()
を呼び出す際、user_ids
に空のリストが指定された際にエラーが発生するようになりました。Guild
が利用不可能なときに__str__
メソッドがエラーを出す問題を修正しました。VoiceChannel.members
にアクセスする時にAttributeError
が発生する潜在的なバグを修正しました。(GH-6602)discord
パッケージがスクリプトとして実行された場合のみ実行されるようになりました。 (GH-6483)[ext.commands] コグのアンロード中、失敗することにより無関係なコマンドがアンロードされる可能性がある問題を修正しました。
[ext.commands] コグを
HelpCommand
に設定した際にAttributeErrorが出る問題を修正しました。 (GH-5154)[ext.commands]
reinvoke()
中にContext.invoked_with
が不適切に再割り当てされる問題を修正しました。 (GH-6451, GH-6462)[ext.commands]
HelpCommand.get_bot_mapping
で、コマンドが重複する問題を修正しました。 (GH-6316)[ext.commands] Botのコマンドシグネチャーで、位置限定引数を適切に処理するようになりました。 (GH-6431)
[ext.commands] グループのシグネチャーが
Command.signature
に正しく表示されるようになりました。 (GH-6529, GH-6530)
その他¶
v1.6.0¶
このバージョンでは、返信機能とスタンプ機能がサポートされるようになりました。
新機能¶
- 完全に再設計されたドキュメント。 これは何ヶ月もの努力の積み重ねで作られました。
ダークテーマが実装されました。変更するには、画面上の歯車から設定をしてください。これは自動的に行われます。
AppInfo.icon_url_as()
とAppInfo.cover_image_url_as()
が追加されました。 (GH-5888)ランダムな色が得られる、
Colour.random()
が追加されました。 (GH-6067)Message.reply()
で返信ができるようになりました。 (GH-6061)これには
AllowedMentions.replied_user
の設定も含まれます。abc.Messageable.send()
がMessageReference
を受け付けるようになりました。MessageReference
がユーザーによって生成できるようになりました。Message.to_reference()
によってMessageオブジェクトをMessageReference
に変換できるようになりました。
MessageReference.resolved
で解決済みメッセージを得ることができます。- ロールのタグがサポートされました。
Guild.premium_subscriber_role
で ニトロブースターロールを取得できます(利用可能な場合)。Guild.self_role
でサーバー内のBot自身のロールを取得できます(利用可能な場合)。Role.tags
でロールのタグを取得できます。Role.is_premium_subscriber()
でロールがニトロブースターロールであるかを確認できます。Role.is_bot_managed()
でロールがボットロール(自動的に作られたBot用ロール)であるかを確認できます。Role.is_integration()
でインテグレーションによって作成されたロールかどうか確認できます。
Client.is_ws_ratelimited()
でWebSocketのレート制限がされているかどうか確認できるようになりました。ShardInfo.is_ws_ratelimited()
は特定のシャードのWebSocketレート制限をチェックします。
AsyncIterator
をAsyncIterator.chunk()
を通してチャンク化できるようになりました。 (GH-6100, GH-6082)PartialEmoji.created_at
を追加しました。 (GH-6128)- Webhookで送信したメッセージの編集と削除をサポートしました。 (GH-6058)
この機能のために
WebhookMessage
が追加されました。
- チャンネルオブジェクトとメッセージIDのみでメッセージを操作できるようにするために、
PartialMessage
を追加しました。 (GH-5905) これはメッセージを取得するために追加のAPI呼び出しをしたくないときに便利です。
- チャンネルオブジェクトとメッセージIDのみでメッセージを操作できるようにするために、
Emoji.url_as()
を追加しました。 (GH-6162)メンバーシップゲート機能用に
Member.pending
のサポートを追加しました。Guild.create_role()
でcolour
パラメータにint
型を渡すことができるようになりました。 (GH-6195)Guild.query_members()
で、presences
引数が使えるようになりました。 (GH-2354)[ext.commands]
commands.Cog
において、description
キーワード引数が使えるようになりました。 (GH-6028)[ext.tasks]
__call__
を使うことによってラップされたコルーチン関数を呼び出せるようになりました。
バグ修正¶
HTTPリクエスト時にステータス503が繰り返し返されたとき、
DiscordServerError
が出るようになりました。 (GH-6044)Client.fetch_template()
が呼び出されたときAttributeError
が出る問題を修正しました。 (GH-5986)音声を再生するときと別のボイスチャンネルへ移動するときに発生するエラーを修正しました。 (GH-5953)
ボイスチャンネルから切断するのが速すぎるときに発生する
AttributeError
を修正しました。 (GH-6039)memberインテントがオフの場合に
User
の参照が古くなってしまう問題を修正しました。memberがキャッシュされておらず、userが何らかの形でキャッシュされている場合に
on_user_update()
が発火されない問題を修正しました。- メッセージが更新されているとき、特定のケースで
Message.author
が上書きされてしまう問題を修正しました。 これにより、
Message.author
がUser
になるようになりました。
- メッセージが更新されているとき、特定のケースで
Guild.edit()
でpublic_updates_channel
を変更する際にUnboundLocalError
が発生する問題を修正しました。 (GH-6093)CustomActivity.created_at
が初期化されない問題を修正しました。 (GH-6095)[ext.commands] コグのアンロード中に起きたエラーがモジュールのcleanupを止めないようになりました。 (GH-6113)
[ext.commands] コマンドを追加する際、エイリアスが競合したときに残ってしまうエイリアスを適切にクリーンアップするようになりました。 (GH-6217)
その他¶
Windowsにおいて呼び出された
ffmpeg
がウィンドウを開かないようになりました。 (GH-6038)ライブラリがビルドツールなしでPython3.9以上で動作するよう、依存関係を変更しました。 (GH-5984, GH-5970)
Python3.9においてSyntaxErrorになるdocstringの問題を修正しました。 (GH-6153)
Windows用のopusバイナリをバージョン1.2.1から1.3.1に更新しました。 (GH-6161)
Guild.create_role()
のcolour
引数でint
型が使えるようになりました。 (GH-6195)[ext.commands]
MessageConverter
のregexがwww.
プレフィックスをサポートするように更新されました。 (GH-6002)[ext.commands]
UserConverter
は、IDが渡され、そのユーザーがキャッシュされていない場合にAPIからデータを取得するようになりました。[ext.commands]
max_concurrency
がクールダウンの前に呼び出されるようになりました。 (GH-6172)
v1.5.1¶
バグ修正¶
utils.escape_markdown()
が引用符を正しくエスケープしない問題を修正しました。 (GH-5897)チャンネルをチャンネルリストの最後まで移動する際の問題を修正しました。 (GH-5923)
PermissionOverwrite
における__eq__
のおかしい挙動を修正しました。 (GH-5929)別のボイスチャンネルに移動する時にBotがボイスチャンネルから切断されてしまう問題を修正しました。 (GH-5945)
遅延on_readyディスパッチ中にチャンキングがタイムアウトする場合の属性エラーを修正しました。
Bot自身のmemberオブジェクトがキャッシュから削除されないことが保証されるようになりました。 (GH-5949)
その他¶
MemberCacheFlags.joined
が設定されている場合、memberがGUILD_MEMBER_UPDATE
イベントでロードされるようになりました。 (GH-5930)- [ext.commands]
MemberConverter
は、memberがキャッシュから利用できない場合に遅延ロードでmemberを取得するようになりました。 これは
discord.Member
を型ヒントとして使うのと同じです。
- [ext.commands]
Guild.chunk()
によって、Gatewayに負荷をかけずに同時呼び出しができるようになりました。
v1.5.0¶
このバージョンでは、Discordが10月7日に行う、すべてのBotに要求している強制的な破壊的変更が含まれています。Intentsに関するドキュメント ゲートウェイインテント入門 を読むことを強くおすすめします。
APIの変更¶
APIの変更により、memberとpresenceの情報は取得されなくなります。 詳細は 特権インテント を参照してください。
結果として、 memberインテントが有効でない場合、オフラインメンバーの取得が無効になります。
新機能¶
Client
において、intents
引数にIntents
を渡すことでゲートウェイインテントがサポートされるようになりました。VoiceRegion.south_korea
が追加されました。 (GH-5233)Colour.dark_theme()
クラスメソッドが追加されました。 (GH-1584)AllowedMentions.none()
とAllowedMentions.all()
が追加されました。 (GH-5785)DiscordServerError
のサブクラスとして、 ステータス500エラーの具体的な例外を追加しました。 (GH-5797)音声フローをより良く交差させるため、
VoiceProtocol
を実装しました。ギルドをチャンク化して取得する
Guild.chunk()
を追加しました。メンバーキャッシュをより適切に制御するために
MemberCacheFlags
を追加しました。詳細は メンバーキャッシュ を参照してください。ActivityType.competing
のサポートを追加しました。 (GH-5823)これはAPIとしては現在未使用のようです。
メッセージ参照のサポート、
Message.reference
を追加しました。 (GH-5754, GH-5832)ColourConverter
のエイリアスColorConverter
を追加しました。 (GH-5773)PublicUserFlags.verified_bot_developer
のエイリアスをPublicUserFlags.early_verified_bot_developer
の下に追加しました。(GH-5849)[ext.commands]
Command
にrequire_var_positional
のサポートを追加しました。 (GH-5793)
バグ修正¶
Guild.by_category()
がいくつかのチャンネルを表示しない問題を修正しました。abc.GuildChannel.permissions_synced
が常にFalse
になる問題を修正しました。 (GH-5772)Webhook関連のリクエストでcloudflareにBANされた際の処理に発生するバグを修正しました。(GH-5221)
キープライブスレッドが既に死んでいるにも関わらずackをするのを修正しました。(GH-5800)
メッセージイベントでキャッシュが無効になった際に、
Member
の参照が古くなる問題を修正しました。 (GH-5819)単一のファイルを送信したときに
allowed_mentions
が送信されない問題を修正しました。 (GH-5835){}
が渡された場合、abc.GuildChannel.edit()
でoverwrites
が無視されるのを修正しました。(GH-5756, GH-5757)[ext.commands] コマンド呼び出しフックでの例外が正しく送出されない問題を修正しました。 (GH-5799)
[ext.commands] コグを追加するときにエラーが発生した場合にコマンドが正しく除去されない問題を修正しました。 (GH-5804)
[ext.commands] クールダウンのタイミングが編集のタイムスタンプを無視していたのを修正しました。
その他¶
Webhookリクエストをログに記録するように変更しました。 (GH-5798)
AutoShardedClient.shards
からキャッシュレイヤーを削除しました。これは、シャードを起動する前にクエリを実行すると問題が発生するためです。ゲートウェイレート制限の処理が行われるようになりました。
ミスキャッシュによる警告レベルのログがDEBUGレベルのログに変更されました。
一部の文字列は、メモリ使用量を削減するために明示的にインターンされるようになりました。
将来的に壊れる可能性のある変更を避けるために、namedtuplesの使用が削減されました。(GH-5834)
[ext.commands] ビルトインコンバータから送出されていた全ての
BadArgument
例外は、判別しやすいよう具体的な例外を発生させるようになりました。 (GH-5748)[ext.tasks] Lazily fetch event loop to prevent surprises when changing event loop policy (GH-5808)
v1.4.2¶
これは v1.5.0 からのバックポートによるメンテナンスリリースです。
バグ修正¶
Guild.by_category()
がいくつかのチャンネルを表示しない問題を修正しました。abc.GuildChannel.permissions_synced
が常にFalse
になる問題を修正しました。 (GH-5772)Webhook関連のリクエストでcloudflareにBANされた際の処理に発生するバグを修正しました。(GH-5221)
キープライブスレッドが既に死んでいるにも関わらずackをするのを修正しました。(GH-5800)
メッセージイベントでキャッシュが無効になった際に、
Member
の参照が古くなる問題を修正しました。 (GH-5819)単一のファイルを送信したときに
allowed_mentions
が送信されない問題を修正しました。 (GH-5835){}
が渡された場合、abc.GuildChannel.edit()
でoverwrites
が無視されるのを修正しました。(GH-5756, GH-5757)[ext.commands] コマンド呼び出しフックでの例外が正しく送出されない問題を修正しました。 (GH-5799)
[ext.commands] コグを追加するときにエラーが発生した場合にコマンドが正しく除去されない問題を修正しました。 (GH-5804)
[ext.commands] クールダウンのタイミングが編集のタイムスタンプを無視していたのを修正しました。
その他¶
AutoShardedClient.shards
からキャッシュレイヤーを削除しました。これは、シャードを起動する前にクエリを実行すると問題が発生するためです。[ext.tasks] Lazily fetch event loop to prevent surprises when changing event loop policy (GH-5808)
v1.4.1¶
バグ修正¶
Client.close()
が呼び出されたときに正常に接続を終了するようにしました。 (GH-5207)埋め込みの作者や画像がすでにクリアされているときにクリアしようとするとエラーが発生するのを修正しました。 (GH-5210, GH-5212)
編集可能なエクステンションを利用できるように
__path__
を修正しました。 (GH-5213)
v1.4.0¶
長い開発時間を持つ別のバージョンです。Intentsのような機能はv1.5リリースでリリースされる予定です。ご理解いただきありがとうございます!
新機能¶
- メンションの動作を制御する
AllowedMentions
を追加しました。 これは
Client.allowed_mentions
から設定することができます。abc.Messageable.send()
を介してメッセージごとに設定することもできます。
- メンションの動作を制御する
AutoShardedClient
は、マルチプロセスクラスタに適した設計に完全に変更されました。(GH-2654)シャードに関する情報を取得するために
ShardInfo
を追加しました。ShardInfo
では、特定のシャードの再接続と切断も可能です。シャードに関する情報を取得するための
AutoShardedClient.get_shard()
とAutoShardedClient.shards
を追加しました。接続フロー全体をリワークして、
IDENTIFY
レート制限の対応を改善しました。IDENTIFY
が完了する前に何を行うべきかをよりよく制御できるClient.before_identify_hook()
を追加しました。on_shard_connect()
、on_shard_disconnect()
、on_shard_resumed()
などのシャード関連イベントを追加しました。
- サーバーテンプレートのサポートを追加しました。 (GH-2652)
テンプレートの情報を読むために
Template
を追加しました。テンプレートの情報を API から取得するには
Client.fetch_template()
が使用できます。Client.create_guild()
は任意で作成元のテンプレートを取ることができます。Botアカウントでは、ギルドのテンプレートの取得は現在制限されていることに注意してください。
- ギルドインテグレーションのサポートを追加しました。 (GH-2051, GH-1083)
Integration
はインテグレーション情報の読み取りに使用されます。IntegrationAccount
はインテグレーションアカウント情報の読み取りに使用されます。Guild.integrations()
はギルド内の全てのインテグレーションを取得します。Guild.create_integration()
はインテグレーションを作成します。Integration.edit()
は既存のインテグレーションを編集します。Integration.delete()
はインテグレーションを削除します。Integration.sync()
はインテグレーションを同期します。これには現時点で監査ログのサポートはありません。
VerificationLevel.extreme
の別名をVerificationLevel.very_high
の下に追加しました (GH-2650)VoiceClient.latency
とVoiceClient.average_latency
を追加しました。 (GH-2535)Attachment.to_file()
にパラメータuse_cached
とspoiler
を追加しました。 (GH-2577, GH-4095)Guild.create_category()
にてposition
パラメータのサポートを追加しました。 (GH-2623)Role.edit()
のロールカラーにint
が渡せるようになりました。 (GH-4057)埋め込みの作者を削除する
Embed.remove_author()
が追加されました。 (GH-4068)Embed.Empty
を使用してEmbed内のサムネイルと画像をクリアできるようになりました。 (GH-4053)Guild.max_video_channel_users
を追加。( GH-4120 )Guild.public_updates_channel
を追加。( GH-4120 )GUILD_CREATE
に時間がかかりすぎるとき、タイムアウトをコントロールできようにguild_ready_timeout
パラメータをClient
に追加しました。 (GH-4112)User.public_flags
とPublicUserFlags
を介しユーザーフラグのサポートを追加しました。 (GH-3999)TextChannel.edit()
を介してニュースチャンネルの種類を変更することができるようにしました。(GH-4121 )一回のAPI呼び出しでロールの位置を一括変更できる
Guild.edit_role_positions()
を追加しました。 (GH-2501, GH-2143)ギルド内のボイスステートを変更する
Guild.change_voice_state()
を追加しました。 (GH-5088)ギルドにアニメーションアイコンがあるか判断する
PartialInviteGuild.is_icon_animated()
を追加しました。 (GH-4180, GH-4181)static_format
がPartialInviteGuild.icon_url_as()
に追加されました (GH-4180, GH-4181)Guild.query_members()
で、user_ids
引数が使えるようになりました。Guild.prune_members()
でメンバーをロールにより一括キックできるようになりました。 (GH-4043)[ext.commands]
before_invoke()
とafter_invoke()
デコレーターを実装。 ( GH-1986, GH-2502 )[ext.commands]
Command.get_cooldown_retry_after
によってコマンド中のクールダウンからretry_after
を取得する方法を追加しました (GH-5195)[ext.commands]
HelpCommand
から動的にチェックを追加したり削除したりする方法を追加しました (GH-5197)[ext.tasks] タスクオブジェクトに
Loop.is_running
メソッドを追加しました (GH-2540)[ext.tasks]
Loop.error
デコレーターを用いたタスクに対するコマンド拡張と同様のカスタムエラーハンドラーの使用を可能にしました (GH-2621)
バグ修正¶
PartialEmoji.url
での読み込みエラーを修正しました。 (GH-4015, GH-4016)around
が渡された場合でも、abc.Messageable.history()
が上限1
を取ることができるようにしました。 (GH-4019)ギルドからメンバーが脱退したとき、特定の場合に
Guild.member_count
が更新されない問題を修正しました。 (GH-4021)Object.id
の型が検証されない問題を修正されました。後方互換性のためstr
は使用可能ですが、int
に変換されます。 (GH-4002)Guild.edit()
で通知設定の編集ができない問題を修正しました。 (GH-4074, GH-4047)ギルドウィジェットの中にペイロードにないチャンネルが含まれている場合にクラッシュする問題を修正しました。 (GH-4114, GH-4115)
FFmpegOpusAudio
およびFFmpegPCMAudio
を使って生成されたプロセスからの ffmpeg stdin のハンドリングを閉じるようにしました (GH-4036)utils.escape_markdown()
がマスクされたリンクをエスケープしない問題を修正しました。 (GH-4206, GH-4207)空のカテゴリーを返さない
Guild.by_category()
を修正しました (GH-4186)特定の JPEG 画像が JPEG として認識されないのを修正 (GH-5143)
反応情報を取得する際に不完全なギルドオブジェクトを使用するとクラッシュする問題を修正しました (GH-5181)
Guild.query_members()
を使用してメンバーを取得する際のタイムアウトの問題を修正しました。PartialEmoji.id
が文字列である可能性がある問題を修正しました (GH-4153, GH-4152)Member.activities
がクリアされないリグレッションを修正しました。[ext.commands]
commands.Greedy
内でtyping.Optional
を使用するとTypeError
が発生します (GH-2253, GH-5068).[ext.commands]
Bot.walk_commands
はエイリアスにより重複したコマンドを生成しないようになりました (GH-2591)[ext.commands]
HelpCommand.clean_prefix
で正規化されていない文字を修正しました (GH-4058, GH-4071)[ext.commands] 名前に空白文字しかない場合にエラーを発生させないように
Bot.get_command
を修正しました (GH-5124)[ext.commands]
Context.subcommand_passed
が期待通りに機能しない問題を修正しました (GH-5198)[ext.tasks] Task objects are no longer stored globally so two class instances can start two separate tasks (GH-2294)
[ext.tasks] 内のループをキャンセルできるようにする。
before_loop
(GH-4082)
その他¶
v1.3 で導入された
Member.roles
キャッシュは、問題が発生したため元に戻されました (GH-4087, GH-4157)- さらにいくつかの API リクエストで、監査ログ用の
reason
パラメータが取得されました (GH-5086)
- さらにいくつかの API リクエストで、監査ログ用の
パフォーマンス上の理由から、
websockets
は削除され、aiohttp.ws
が使用されるようになりました。ブロッキングのログメッセージは、メインスレッドがブロッキングしていた場所のスタックトレースを表示するようになりました
必要なドメイン移行の準備のため、ドメイン名を
discordapp.com
からdiscord.com
に変更しました。メッセージキャッシュに保持されている古い参照による再接続時のメモリ使用量を削減しました (GH-5133)
テンポラリオブジェクトをあまり作成しないように
abc.GuildChannel.permissions_for()
を最適化しました (20-32%の節約)。[ext.commands] 重複するエラーが登録された場合、
ClientException
ではなくCommandRegistrationError
を発生するようにしました (GH-4217)[ext.tasks] タスクの再接続ループにおいて、デフォルトで
HTTPException
を処理しないようにしました (GH-5193)
v1.3.4¶
バグ修正¶
チャンネルの上書きがクラッシュを含む複数の問題を引き起こす問題を修正しました (GH-5109)
v1.3.3¶
バグ修正¶
- デフォルトのWSクローズを1000から4000に変更。
以前のクローズコードは、望ましい頻度よりも高い頻度でセッションが無効化される原因となっていました。
Member.activities
に表示されるNone
を修正しました。(GH-2619)
v1.3.2¶
もう一つのマイナーなバグフィックスリリースです。
バグ修正¶
AutoShardedClient
のGUILD_CREATE
ストリームでon_ready
が発生するまでの待ち時間を長くするようにしました。on_voice_state_update()
は内側のmember
ペイロードを使用するようになり、より信頼性が高くなりました。Message.guild
がGuild
ではなくObject
であった場合のクラッシュを修正しました。Webhook.send()
がwait=False
の時にNone
ではなく空の文字列を返すように修正しました。Webhook の状態における無効なフォーマット指定子を修正 (GH-2570)
[ext.commands] パーミッション関連のチェックで無効なパーミッションを渡すと
TypeError
が発生するようになりました。
v1.3.1¶
マイナーなバグフィックスリリースです。
バグ修正¶
ユーザーが参加していないギルドの招待状をフェッチするように修正しました。
メッセージ送信時に
Client.fetch_channel()
から返されるチャンネルを修正しました。(GH-2531)
その他¶
Python 3.9 alpha を使用する際の互換性警告を修正。
ノイズを減らすために、不明なイベントのログをWARNINGからDEBUGに変更します。
v1.3.0¶
このバージョンでは、多くのバグフィックスと新機能が搭載されています。予想以上に長い期間、開発が続けられているのです!
新機能¶
HTTP API からメンバーを取得するための
Guild.fetch_members()
を追加しました。(GH-2204)HTTP API からロールをフェッチするために
Guild.fetch_roles()
を追加しました。(GH-2208)Client.application_info()
で取得する際に、Team
を介してチームをサポートする機能を追加しました。(GH-2239)Message.edit()
による埋め込みの抑制をサポートするようにしました。ギルドサブスクリプションのサポートを追加しました。詳細は
Client
のドキュメントを参照してください。メンバーキャッシュに依存せずに音声の状態を取得するために、
VoiceChannel.voice_states
を追加しました。ゲートウェイにメンバーを要求するために
Guild.query_members()
を追加しました。FFmpegOpusAudio
を追加し、その他の音声の改良を行いました。(GH-2258)Rawメッセージの更新時にチャンネルIDを取得するための
RawMessageUpdateEvent.channel_id
を追加しました。(GH-2301)リアクションイベントでリアクションが追加されたか除去されたかを明確にする
RawReactionActionEvent.event_type
を追加しました。権限がカテゴリと同期されているかを確認する
abc.GuildChannel.permissions_synced
を追加しました。 (GH-2300, GH-2324)フォローされているアナウンスチャンネル用の
MessageType.channel_follow_add
メッセージタイプを追加しました。(GH-2314)システムメッセージを素早くフィルタリングできるように
Message.is_system()
を追加しました。誰かがGo Live経由でストリーミングしているかどうかを示すための、
VoiceState.self_stream
を追加しました。 (GH-2343)クライアントユーザーが絵文字を使用できるかどうかを確認できるように、
Emoji.is_usable()
を追加しました。 (GH-2349)VoiceRegion.europe
とVoiceRegion.dubai
を追加しました。 (GH-2358, GH-2490)ニュースチャンネルをフォローする
TextChannel.follow()
を追加しました。 (GH-2367)Permissions.view_guild_insights
権限を追加しました。 (GH-2415)ウェブフック(
WebhookType
)の種類を問い合わせるためのWebhook.type
を追加しました。 (GH-2441)チャンネル上書きの一括編集を
abc.GuildChannel.edit()
を通して行えるようにしました。(GH-2198)アクティビティがいつ開始されたかを確認するために
Activity.created_at
を追加しました。(GH-2446)音声用の
xsalsa20_poly1305_lite
暗号化モードのサポートを追加しました。(GH-2463)リアクションを行ったメンバーを取得するために
RawReactionActionEvent.member
を追加しました。(GH-2443)Streaming.platform
とStreaming.game
による新しい YouTube ストリーミングのサポートを追加しました。(GH-2445)ディスカバリースプラッシュイメージアセットを取得するために
Guild.discovery_splash_url
を追加しました。(GH-2482)- パブリック・ギルドのルール・チャンネルを取得するために
Guild.rules_channel
を追加しました。(GH-2482) なお、この機能はサーバーディスカバリーに参加されている方、または参加予定の方に限定しています。
- パブリック・ギルドのルール・チャンネルを取得するために
Message.flags
とMessageFlags
によるメッセージフラグのサポートを追加しました。(GH-2433)ユーザーがDiscord Trust and Safetyの公式アカウントであるかどうかを知るために、
User.system
とProfile.system
を追加しました。ユーザーがチームのメンバーであるかどうかを確認するために
Profile.team_user
を追加しました。添付ファイルを簡単に
File
に変換して送信できるようにAttachment.to_file()
を追加。- UIにマッチするように、特定のエイリアスを
Permissions
に追加しました。(GH-2496)
- UIにマッチするように、特定のエイリアスを
Permissions
を作成する際に、キーワード引数を渡せるようになりました。CustomActivity
によるカスタムアクティビティーのサポートを追加しました。(GH-2400)なお、現在のところ、ボットはまだカスタムアクティビティを送信できません。
on_invite_create()
とon_invite_delete()
イベントのサポートを追加しました。- メッセージから特定のリアクション絵文字を消去する機能を追加しました。
Message.clear_reaction()
およびReaction.clear()
メソッドを使用します。on_raw_reaction_clear_emoji()
とon_reaction_clear_emoji()
イベントです。
特定の日付までスリープさせる
utils.sleep_until()
ヘルパーを追加しました。(GH-2517、GH-2519)[ext.commands] チームと
Bot.owner_ids
が複数のボットオーナーを持つためのサポートを追加しました。(GH-2239)[ext.commands] 新しい
BucketType.role
のバケットタイプを追加しました。(GH-2201)です。[ext.commands]
Command.cog
のプロパティを公開します。(GH-2360)[ext.commands]
Command.add_check
およびCommand.remove_check
によりコマンドにチェックを追加する非デコレーターインターフェイスを追加しました。(GH-2411)[ext.commands]
has_guild_permissions
のチェックを追加しました。(GH-2460)[ext.commands]
has_guild_permissions
のチェックを追加しました。(GH-2460)[ext.commands]
check()
で装飾されたチェックにpredicate
属性を追加しました。[ext.commands]
check_any()
チェックを論理的 OR 複数のチェックに追加しました。[ext.commands] 待ち時間やエラーになる前に、ある一定のユーザーだけがコマンドを同時に使用できるようにするための
max_concurrency()
を追加しました。[ext.commands]
Command
を通常の関数として呼び出すためのサポートを追加しました。[ext.tasks]
Loop.add_exception_type
が、複数の例外を設定できるようになりました。(GH-2333)[ext.tasks] Add
Loop.next_iteration
プロパティを追加しました。(GH-2305)
バグ修正¶
所有者がいないギルドで権限解決に失敗することがある問題を修正しました。
トークンは、使用時に剥奪されるようになりました。(GH-2135)
Emoji.edit()
にname
を渡す必要はなくなりました。(GH-2368)utils.escape_markdown()
のURLハンドリングにおけるミスマッチを修正しました。(GH-2420)音声接続において、ビッグエンディアンであるべきポートがリトルエンディアンで読み込まれる問題を修正しました。(GH-2470)
メッセージのギルドが考慮されない
Member.mentioned_in()
を修正しました。チャンネルの削除と作成によりポジションにギャップがある場合、チャンネルを移動する不具合を修正。
fetch_offline_members
が無効の場合、on_shard_ready()
が発火されない問題を修正しました。(GH-2504)シャードを使用している大きなBotが
on_ready()
を実際に発火するのに長い時間を掛けていた問題を修正しました。Client.fetch_invite()
でグループDMベースの招待を取得する際の問題を修正しました。10つのファイルをWebhookで送信する際、ファイルの順序が狂う問題を修正しました。
[ext.commands] ImportErrorによって内部的に失敗する拡張機能は、
ExtensionNotFound
を発生させなくなりました。(GH-2244, GH-2275, GH-2291)[ext.commands]
Paginator.suffix
を更新しても、計算が古くならないようにしました。(GH-2251)[ext.commands] カスタム拡張パッケージからのコンバータを許可します。(GH-2369, GH-2374) のようになります。
[ext.commands] paginator のプレフィックスが
None
であるために空のページが発生する問題を修正しました。(GH-2471)[ext.commands]
Greedy
はパージングエラーを伝播するのではなく、無視するようになりました。[ext.commands]
Command.can_run
がコマンドが無効かどうかをチェックするようになりました。[ext.commands]
HelpCommand.clean_prefix
がニックネームのメンションを考慮するようになりました。 (GH-2489)[ext.commands]
Context.send_help
がHelpCommand.on_help_command_error
ハンドラに正しく伝播するようになりました。
その他¶
ライブラリは警告なしに Python 3.8 を完全にサポートするようになりました。
依存ライブラリ
websockets
のバージョンを 8.0 に上げました。(GH-2453)Discordがメンションで
Member
データを提供するようになったため、メンションされたユーザーがMember
により多くの機会でアップグレードされるようになりました。utils.escape_markdown()
が新しい引用マークダウンを正しくエスケープするようになりました。メッセージキャッシュを
Client
のmax_messages
にNone
を渡すことで無効にできるようになりました。デフォルトのメッセージキャッシュサイズは、小さなボットに対応するために5000から1000に変更されました。
Role
にて、必要な場合のみ特定のオブジェクトを作成することによりメモリ使用量を削減しました。セッションの無効化の長いループを防ぐために、再接続中に再度IDENTIFYする前に5秒間待つようになりました。
- レート制限コードは、より細かいレート制限処理を行うためにミリ秒の精度を使用するようになりました。
それに伴い、レート制限コードはDiscordのレスポンスを使用して待つようになりました。 何らかの理由でシステムクロックを使用する必要がある場合は、
Client
でassume_synced_clock
を渡すことを検討してください。
Guild.default_role
のパフォーマンスが O(N) から O(1) に改善されました。 (GH-2375)予期しないパフォーマンストラップを避けるために、キャッシュを使用して
Member.roles
のパフォーマンスを改善しました。メモリの断片化を防ぐため、大規模なメモリの割り当て解除 (ギルドの除去など) が引き起こされた後に手動でガベージコレクションを行うようになりました。
ユーザビリティや正確性を向上させ、リンターエラーを修正するため、ドキュメントに多くの変更がありました。 貢献したすべての人に感謝します。
opus モジュールの読み込みを遅延させるようにしました。このため
opus.is_loaded()
の結果が予想しないものになるかもしれません。[ext.commands] DM内の@で始まるユーザー名が、
User
コンバータを使用したとき正しく変換されるようになりました。 (GH-2498)[ext.tasks] タスクの待ち時間が、タスク本体が実行するのにかかった時間を考慮に入れるようになりました。 (GH-2516)
v1.2.5¶
バグ修正¶
絵文字構造の
animated
フィールドが存在しないとしてクラッシュするバグを修正しました。
v1.2.4¶
バグ修正¶
Message.channel
がNone
になるリグレッションを修正しました。Message.edited_at
が編集中に更新されないリグレッションを修正しました。VoiceChannel.connect()
が応答しないバグを修正しました。(GH-2274、 GH-2372、 GH-2373、 GH-2377)トークンのないWebhookに関するクラッシュを修正しました。(GH-2364)
Discord バグにより
Guild.premium_subscription_count
がNone
になる問題を修正しました。(GH-2331, GH-2376)
v1.2.3¶
バグ修正¶
on_member_update()
でMember.premium_since
にアクセスした際の AttributeError を修正しました。 (GH-2213)abc.Messageable.typing()
コンテキストマネージャでのasyncio.CanceledError
を処理するようにしました。 (GH-2218)ニトロブーストを考慮し、最大エンコーダビットレートを512kbpsに引き上げ。 (GH-2232)
Client.run()
にて例外を適切に伝播するようにしました。(GH-2237)[ext.commands] コグレベル
command_attrs
で使用されるクールダウンが正しくコピーされるようにしました。
v1.2.2¶
バグ修正¶
監査ログ関連の属性アクセスは、本来すべきでないときにエラーを起こさないよう修正されました。
v1.2.1¶
バグ修正¶
User.avatar_url
と関連する属性がエラーを引き起こさないように修正しました。enum.Enum
コードの互換性が向上しました。
v1.2.0¶
今回のアップデートでは、主にパフォーマンスの向上と、さまざまなニトロブースト属性(APIでは「プレミアムギルド」と呼ばれます) が追加されました。
新機能¶
Guild.premium_tier
で、ギルドの現在のニトロブーストレベルが取得できます。ブーストを考慮してギルドの新しい制限を取得する
Guild.emoji_limit
、Guild.bitrate_limit
、Guild.filesize_limit
を追加しました。ギルドをブーストしているメンバー数を取得する
Guild.premium_subscription_count
を追加しました。メンバーがギルドをブーストし始めた日時を取得する
Member.premium_since
を追加しました。現在ギルドをブーストしているメンバーをすべて取得する
Guild.premium_subscribers
を追加しました。- ギルドの
Guild.system_channel
の設定を取得するGuild.system_channel_flags
を追加しました。 SystemChannelFlags
という新しい型も含まれます。
- ギルドの
絵文字が(ギルド内またはそれ以外で)利用できるかを確認する
Emoji.available
を追加しました。Guild.icon_url_as()
とGuild.icon_url
にアニメーションアイコンのサポートを追加しました。Guild.is_icon_animated()
を追加しました。ニトロブーストに関する様々な新しい
MessageType
のサポートを追加しました。VoiceRegion.india
を追加しました。 (GH-2145)Embed.insert_field_at()
を追加しました。 (GH-2178)すべてのチャンネルに対し、適切な
ChannelType
を返すtype
属性を追加しました。 (GH-2185 )HTTP経由でチャンネルをIDにより取得する、
Client.fetch_channel()
を追加しました。(GH-2169)HTTP経由でチャンネルをすべて取得する、
Guild.fetch_channels()
を追加しました。(GH-2169)[ext.tasks] タスクをキャンセルするのではなく、現在のタスクが終了後に停止させる
Loop.stop
を追加しました。[ext.tasks] タスクが何らかの理由で失敗したかを調べる
Loop.failed
を追加しました。[ext.tasks] 実行時に待機時間を変更できる
Loop.change_interval
を追加しました。(GH-2158, GH-2162)
バグ修正¶
Guild.prune_members()
を使用した場合の内部エラーを修正しました。[ext.commands] 多くの場合において
Command.invoked_subcommand
が誤っているのを修正しました。[ext.tasks] ループが終了し、再起動されたときに反復回数をリセットするようにしました。
[ext.tasks] デコレータインターフェースをスタックした時に期待通り動作するようになりました。 (GH-2154)
その他¶
- 列挙型に関連するすべてのコードのパフォーマンスを大幅に向上させました。
これは、
enum.Enum
コードを API 互換のコードに置き換えることによって行われました。ダックタイピングを使用しているため、ほとんどのユーザーにとっては破壊的変更ではありません。
メッセージ作成のパフォーマンスを約1.5倍向上させました。
メッセージ編集のパフォーマンスが約1.5~4倍向上しました。(内容のサイズに依存します)
Member
の属性へのアクセスのパフォーマンスが2倍向上しました。utils.get()
のパフォーマンスを、使用状況に応じて約 4-6倍 向上させました。イベント解析中のルックアップのパフォーマンスを約2.5倍向上させました。
Client.start()
とClient.run()
のキーワード引数を検証するようにしました。 (GH-953, GH-2170)HTTPException
の例外メッセージにDiscordのエラーコードが表示されるようになりました。ライブラリによって実行された内部タスクに独自のカスタム
__repr__
を追加しました。すべての公開された型に、適切でより詳細な
__repr__
を追加しました。
v1.1.1¶
バグ修正¶
WebhookがHTTPリクエストを再試行する時にデータを上書きしないようにしました。 (GH-2140)
その他¶
一部のユーザーが適切なクリーンアップを行うときに問題が生じていたため、
Client.run()
にシグナル処理を再度追加しました。
v1.1.0¶
新機能¶
- バックグラウンドタスクを簡単にするための新しい拡張機能が追加されました。
使い方の説明は、 APIリファレンス で確認できます。
Permissions.stream
権限を追加しました。 (GH-2077)Asset
に等価比較とハッシュサポートを追加しました。Guild.prune_members()
にcompute_prune_members
パラメータを追加しました。 (GH-2085)メッセージキャッシュを取得する
Client.cached_messages
属性を追加しました。 (GH-2086)ギルドのチャンネルをコピーする
abc.GuildChannel.clone()
メソッドが追加されました。( GH-2093 )Message.delete()
にキーワード限定引数delay
が追加されました。( GH-2094 )<:name:id>
のフォーマットでリアクションを追加できるようになりました。( GH-2095 )アセットを
bytes
オブジェクトとして取得するAsset.read()
メソッドが追加されました( GH-2107 )添付ファイルを
bytes
オブジェクトとして取得するAttachment.read()
メソッドが追加されました( GH-2118 )Member.move_to()
にNone
を渡すことでボイスチャンネルから強制切断できるようになりました。
discord.ext.commands
¶
dm_only()
チェックが追加されました。呼び出し可能オブジェクトのコンバーターを
Greedy
で使えるようになりました。MessageConverter
が追加されました。これにより、
Message
を関数の型ヒントで使えるようになりました。
親コマンドを取得する
Command.parents
が追加されました。( GH-2104 )
バグ修正¶
Widget
の__repr__
でAttributeError
が発生するバグを修正しました。abc.GuildChannel.overwrites
のキーがNone
になるバグを修正しました。TextChannel.is_nsfw()
等でのNSFWのチェックを修正しました。RequestsWebhookAdapter
でエラーが発生したときのUnboundLocalError
を修正しました。ボットのユーザーをアップデートしてもメンバーオブジェクトが更新されないバグを修正しました。
discord.ext.commands
¶
モジュール以外での無名コンバーターを修正しました。(例:
eval
)- クールダウンの計算にメッセージの作成時間を使用するようになりました。
これにより、RESUME中でのクールダウンの挙動が修正されました。
新しいスタイルのコグのため、
on_command_error()
のデフォルトの挙動を修正しました。( GH-2094 )DMチャンネルが
is_nsfw()
に認識されるようになりました。ヘルプコマンドの競合状態を修正しました。 (GH-2123)
MinimalHelpCommand
にコグの説明が表示されるようになりました。( GH-2139 )
その他¶
ライブラリ内での列挙型の作成が約5倍早くなりました。
python -m discord --version
の出力を改善しました。ループのクリーンアップがまた書き直されました。
Client.run()
でのシグナル制御が削除されました。
discord.ext.commands
¶
ライブラリ内の全てのチェックがカスタム例外クラスを使うようになりました( GH-2101 )
v1.0.1¶
バグ修正¶
v1.0.0¶
このバージョンの変更は大きすぎるため、この場所に収まりきりません。詳細については 移行についてのページ を参照してください。
v0.16.6¶
バグ修正¶
Client.create_server()
によって動作が停止する問題を修正しました。StreamPlayer.stop
の呼び出し時にメインスレッドがブロックされるのを修正しました。HEARTBEAT_ACKを処理し、正常に再開します。
既に開放されているロックを解放しようとする原因になっていた先制的なレート制限を行っている時の競合状態を修正しました。
コルーチンを直ちにキャンセルするときに無効な状態になるエラーを修正しました。
v0.16.1¶
このリリースはバグ修正であり、いくつかのレート制限の実装が改善されています。
バグ修正¶
ユーザーボットがサーバーを適切にチャンクするようにしました。
アセットのAPI URLの代わりにCDN URLが使用されるようになりました。
レート制限の実装が可能な場合ヘッダ情報を利用するようにしました。
イベントループが正しく伝播するようにしました。 (GH-420)
Client.send_message()
とClient.send_file()
でFalseに変換される値を利用できるようにしました。
v0.16.0¶
新機能¶
チャンネルの権限上書きをすべて取得する
Channel.overwrites
を追加しました。パートナーサーバーの情報を得ることのできる
Server.features
を追加しました。
バグ修正¶
on_ready()
を実行中にオフラインメンバーを待っているとき、タイムアウトするようにしました。以前はタイムアウトしなかったため、ライブラリで数千もの
Member
インスタンスが作成されメモリ使用量が大幅に上昇する大規模なメモリリークが発生していました。
ゲートウェイでヌル値のシーケンスを破棄するようにしました。
以前は破棄されていなかったため、
on_ready()
がon_resumed()
の代わりに呼び出されることがありました。これが修正されたため、多くの場合ではon_ready()
は一、二回呼び出されるだけで、on_resumed()
がより頻繁に呼び出されるようになります。
v0.15.1¶
重複したり、順番になっていないリアクションによるクラッシュを修正しました。
v0.15.0¶
新機能¶
メッセージのリッチな埋め込みをサポートするようにしました。
このためには、自分の
Embed
を作成してインスタンスをClient.send_message()
やClient.edit_message()
のembed
キーワード引数に渡してください。
メッセージからすべてリアクションを除去する
Client.clear_reactions()
を追加しました。on_reaction_clear()
の下にMESSAGE_REMOVE_ALL イベントのサポートを追加しました。一括して権限を更新する、
Permissions.update()
とPermissionOverwrite.update()
を追加しました。これにより、例えば
p.update(read_messages=True, send_messages=False)
のように一行で使用できます。
権限上書きが空か(すなわち、明示的にtrueまたはfalseに設定されている上書きが存在しないか)を確認する
PermissionOverwrite.is_empty()
を追加しました。
コマンド拡張の場合、以下のことが変更されます。
Context
への動的属性の設定を容易にするためにスロット制限を除去しました。
v0.14.3¶
バグ修正¶
MESSAGE_REACTION_REMOVEを扱う際のクラッシュを修正しました
リアクションに誤ったバケットが適用されていたのを修正しました。
v0.14.2¶
新機能¶
Client.wait_for_reaction()
がreaction
とuser
属性を持つ名前付きタプルを返すようになりました。これは、タプルを展開すると問題につながる可能性がある、
None
が返された場合のより良いサポートのためです。
バグ修正¶
Client.wait_for_reaction()
のemoji
パラメータにNone
を渡すことを許可しないバグを修正しました。
v0.14.1¶
バグ修正¶
- インポート時に
Reaction
が表示されないバグを修正しました。 これは、ドキュメントにも影響を与えていました。
- インポート時に
v0.14.0¶
このアップデートには、新しいAPI機能といくつかのバグ修正が含まれています。
新機能¶
Permissions.manage_webhooks
の下にWebhookの管理の権限のサポートを追加しました。3.5+
Client.logs_from()
でaround
引数のサポートを追加しました。- リアクションのサポートを追加します。
リアクションを追加する
Client.add_reaction()
リアクションを除去する
Client.remove_reaction()
メッセージにリアクションしたユーザーを取得する
Client.get_reaction_users()
Permissions.add_reactions
パーミッションビットのサポート。2つの新しいイベント、
on_reaction_add()
とon_reaction_remove()
。メッセージからリアクションを取得する
Message.reactions
ユーザーからのリアクションを待つ
Client.wait_for_reaction()
バグ修正¶
Paginatorが長すぎる行をいまだ許可していたバグを修正しました。
Permissions.manage_emojis
ビットが正しくないバグを修正しました。
v0.13.0¶
これは、新しい機能を備えた後方互換性のあるアップデートです。
新機能¶
絵文字を管理する機能を追加しました。
新しい絵文字を作成する
Client.create_custom_emoji()
。既存の絵文字を編集する
Client.edit_custom_emoji()
。カスタム絵文字を削除する
Client.delete_custom_emoji()
。
新しい
Permissions.manage_emoji
トグルを追加しました。これは
PermissionOverwrite
にも適用されます。
Status
に新しいステータスを追加しました。取り込み中を示す
Status.dnd
(エイリアスStatus.do_not_interrup
)ステータスを非表示に設定するための
Status.invisible
(ドキュメントの注意事項を参照してください)。
Client.change_status()
を非推奨にしました。より良い最新の機能を使用するためには、
Client.change_presence()
を使用してください。このメソッドは、将来の API バージョンで削除の対象となります。
新しい Discord API でステータスを変更するための
Client.change_presence()
を追加しました。これは、ステータスを非表示や取り込み中に変更できる唯一の方法です。
バグ修正¶
v0.12.0¶
これは、新機能つきのバグ修正アップデートです。
新機能¶
カスタム絵文字サポートを追加しました。
Emoji
という名前のカスタム絵文字を表す新しいクラスを追加しました。ユーティリティジェネレータ関数
Client.get_all_emojis()
を追加しました。サーバーの絵文字のリストを取得する
Server.emojis
を追加しました。新しいイベント
on_server_emojis_update()
を追加しました。
ServerRegion
に新しいサーバーリージョンを追加しました。ServerRegion.eu_central
とServerRegion.eu_west
。
MessageType.pins_add
にて新しいピン留めのシステムメッセージのサポートを追加しました。Role
への比較を追加し、階層を考慮した比較ができるようにしました。つまり、
role_a > role_b
などを実行して、階層内でrole_b
が低いかどうかを確認できるようになりました。
サーバーのロール階層を取得する
Server.role_hierarchy
を追加しました。チャンネル固有の上書きなしでメンバーのサーバー権限を取得する
Member.server_permissions
を追加しました。IDからユーザ情報を取得することができる、
Client.get_user_info()
を追加しました。プレイヤーを停止させたエラーを取得するために、新しい
Player
プロパティPlayer.error
を追加しました。この変更とともに、プレイヤーの
after
関数に現在のプレイヤーを示すパラメータを取ることができるようになりました。
サーバー認証レベルのサポートを追加しました。
VerificationLevel
という新しい列挙型を追加しました。この列挙型は、
Client.edit_server()
のverification_level
キーワード引数で使用できます。サーバーに
Server.verification_level
という新しい属性を追加しました。
Client.voice_client_in()
のショートカットプロパティであるServer.voice_client
を追加しました。これは厳密にいえば過去のもの (v0.10.0で追加) ですが、v0.12.0までは文書化されていませんでした。
コマンド拡張機能では、以下の新機能が追加されました:
カスタム絵文字コンバータを追加しました。
IDを取ることができるすべてのデフォルトのコンバータが、IDにより変換することができるようにしました。
Bot.command_prefix
にコルーチンサポートを追加しました。コマンドのクールダウンをリセットするメソッドを追加しました。
バグ修正¶
最新の
websockets
ライブラリでライブラリが動作しないバグを修正しました。キープアライブスレッドをリークしていたバグを修正しました。 (GH-309)
Client.edit_server()
でServerRegion
が使用できないバグを修正しました。Channel.permissions_for()
で権限解決が誤った順序で行われたバグを修正しました。Member.top_role
が同じポジションの役割を考慮しないバグを修正しました。
v0.11.0¶
これはゲートウェイのアップデート (v5 -> v6) を含むマイナーなバグ修正アップデートです。
破壊的変更¶
Permissions.change_nicknames
は UIに一致するようにPermissions.change_nickname
に名前が変更されました。
新機能¶
Client.prune_members()
でメンバーを一括キックする機能を追加しました。WebSocketゲートウェイのバージョンをv5からv6に切り替えました。これにより、ライブラリはグループDMと1-on-1コールで動作するようになります。
AppInfo.owner
属性を追加しました。グループボイス通話メッセージを示す
CallMessage
を追加しました。グループボイス通話情報を示す
GroupCall
を追加しました。システムメッセージを取得する
Message.system_content
を追加しました。残りのVIPサーバーとブラジルサーバーを
ServerRegion
に追加しました。VoiceClient.create_ffmpeg_player()
に標準エラー出力をリダイレクトするためのstderr
引数を追加しました。ライブラリは
Channel.permissions_for()
で暗黙的な権限解決を処理するようになりました。サーバーの 2FA 要件を取得する
Server.mfa_level
を追加しました。Permissions.external_emojis
権限を追加しました。VoiceState
を返すMember.voice
属性を追加しました。後方互換性のため、メンバーオブジェクトには古い挙動をミラーリングするプロパティも存在します。
コマンド拡張機能では、以下の新機能が追加されました:
cololdown
デコレータを用いたコマンドクールダウンシステム。ユーザー入力関連エラーの親である
UserInputError
例外。
バグ修正¶
Client.email
がユーザーアカウントにトークンを使用してログインしたとき保存されるようになりました。順番になってないロールの除去で発生した問題を修正しました。
タグが更新されないバグを修正しました。
HEARTBEAT
のコードを受け取った場合を処理するようにしました。これは、ボットが一見ランダムに切断されるのを引き起こしていました。
コマンド拡張機能では、以下のバグが修正されました:
Bot.check
デコレータが実際に括弧を必要としないようになりました。Bot.remove_command
とGroup.remove_command
が、コマンドが存在しない場合に例外を送出しないようにしました。コマンド名は強制的に
lower()
されなくなりました。MemberとUserのコンバータがプライベートメッセージ内で動かなかったバグを修正しました。
HelpFormatter
が最大幅を決めるときに隠されたコマンドを無視するようになりました。
v0.10.0¶
破壊的変更に関しては、 v0.10.0への移行 を参照してください。そのページで列挙された破壊的変更はここでは述べません。このバージョンがv0.9.2よりかなり大きな変更であるため、変更履歴は完全ではありません。
新機能¶
ライブラリが完全に
asyncio
に対応するようになり、ノンブロッキングコードをより簡単に書けるようになりました。ライブラリが429を完全に処理し、502で無条件に再試行するようにしました。
新しいコマンド拡張機能モジュールが追加されましたが、現在文書化されていません。詳細は読者が自身で調べることをおすすめします。
パーミッションエラーや404エラーを示す2つの新しい例外タイプ、
Forbidden
とNotFound
が追加されました。招待を取り消す
Client.delete_invite()
を追加しました。音声を送信するためのサポートを追加しました。詳細は
VoiceClient
を参照してください。フォローアップコマンドを作りやすいように、コルーチン
Client.wait_for_message()
を追加しました。ライブラリのバージョン情報を確認するための、namedtuple
version_info
を追加しました。ログイン情報をキャッシュすることで、より高速にログインできるようになりました。これを無効にするには、
Client
を作成する際にcache_auth=False
を渡します。新しいユーティリティ関数
discord.utils.get()
は、属性に基づいたアイテムの取得を簡素化します。すべてのデータクラスが
!=
,==
,hash(obj)
,str(obj)
をサポートするようになりましたサーバーからBANされたメンバーを取得する
Client.get_bans()
を追加しました。サーバーで現在アクティブな招待を取得する
Client.invites_from()
を追加しました。Client.user
のMember
を取得できるServer.me
を追加しました。ほとんどのデータクラスが
hash(obj)
関数をサポートするようになり、set
やdict
クラス、サブクラスで使用できるようになりました。ユーザーとチャンネルのメンションを名前に変更したバージョンのコンテンツを取得する、
Message.clean_content()
を追加しました。Client.ban()
でBANされたユーザーのメッセージを削除する方法を追加しました。クライアントキャッシュを準備する必要があるタスクを簡単に作成できるように、
Client.wait_until_ready()
を追加しました。クライアントのログインを必要とするタスクを簡単に作成できるように
Client.wait_until_login()
を追加しました。Client.change_status
に送信する、カスタムテキストを含む任意のゲームを表すdiscord.Game()
を追加しました。Message.nonce
属性を追加しました。Channel.permissions_for()
の代替としてMember.permissions_in()
を追加しました。メンバーを別のボイスチャンネルに移動するための
Client.move_member()
を追加しました。Client.create_server()
を使用してサーバーを作成できるようになりました。既存のサーバを編集するための
Client.edit_server()
を追加しました。メンバーをサーバーミュートしたり、サーバースピーカーミュートしたりできる
Client.server_voice_state()
を追加しました。レートリミットの際にライブラリが処理するようになりました。
メンバーがBANまたはBAN解除されたときに実行される
on_member_ban()
とon_member_unban()
イベントを追加しました。
パフォーマンスの改善¶
すべてのデータクラスは
__slots__
を使用するようになり、キャッシュに保存されているもののメモリ使用量を大幅に削減しました。asyncio
の使用により、ライブラリの CPU 使用率は大幅に減少しました。多くの内部キャッシュリストが
O(n)
検索をO(1)
に変更するために辞書型に変更されました。圧縮されたREADYがデフォルトでオンになりました。 つまり、多くのサーバー(あるいはもしかすると少なめのサーバー) にいる場合、より少ないデータをダウンロードして処理することでパフォーマンスが向上されます。
小規模ながら、不要な Unicode 文字の検索を避けるために正規表現を
\d+
から[0-9]+
に変更しました。
バグ修正¶
ギルドが更新されてもキャッシュ内のアイテムが編集されなかったバグを修正しました。
member.roles
が参加時に@everyone
ロールを有さず空であったバグを修正しました。ロールが編集されたときに
Role.is_everyone()
が正しく設定されていないバグを修正しました。Client.logs_from()
が、DiscordのAPI制限を避けるために制限 > 100を超える場合を処理するようになりました。ロールが削除されると、
ValueError
が発生するバグを修正しました。Permissions.kick_members()
とPermissions.ban_members()
がひっくり返されたバグを修正しました。メンションが正常に発動されるようになりました。これは、Discordの内部処理の方法の変更によるものです。
チャンネルが
Object
の時に、Message
がMessage.server
をアップグレードしようとする問題を修正しました。利用できないサーバーがキャッシュに追加されない不具合が修正されました。