Skip to content

Commit d19c77e

Browse files
authored
allow for message in bits used event to be None (#528)
* allow for message in bits used event to be None * text is None if message is None
1 parent ad5197c commit d19c77e

File tree

3 files changed

+10
-9
lines changed

3 files changed

+10
-9
lines changed

docs/getting-started/changelog.rst

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ Changelog
2727
- Bug fixes
2828
- Fix :func:`~twitchio.utils.setup_logging` breaking coloured formatting on `CRITICAL` logging level
2929
- Fix :class:`~models.eventsub_.ChannelPointsAutoRedeemAdd` now accounts for attribute message in payload to be None
30+
- Fix :class:`~models.eventsub_.ChannelBitsUse` now accounts for attribute message in payload to be None
3031

3132

3233
3.1.0

twitchio/models/eventsub_.py

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -874,12 +874,12 @@ class ChannelBitsUse(_ResponderEvent):
874874
The redeeming user.
875875
bits: int
876876
The number of Bits used.
877-
type: typing.Literal["cheer", "power_up"]
877+
type: typing.Literal["cheer", "power_up", "combo"]
878878
What the Bits were used for.
879879
text: str | None
880880
The chat message in plain text. Is `None` if no chat message was used.
881881
fragments: list[ChatMessageFragment]
882-
The ordered list of chat message fragments. Is `None` if no chat message was used.
882+
The ordered list of chat message fragments. This is only populated for Bits uses that contain a message.
883883
power_up: PowerUp | None
884884
Data about Power-up. Is `None` if a Power-up is not used.
885885
"""
@@ -894,13 +894,13 @@ def __init__(self, payload: ChannelBitsUseEvent, *, http: HTTPClient) -> None:
894894
)
895895
self.user = PartialUser(payload["user_id"], payload["user_login"], payload["user_name"], http=http)
896896
self.bits: int = int(payload["bits"])
897-
self.type: Literal["cheer", "power_up"] = payload["type"]
898-
self.text: str | None = payload.get("message").get("text")
897+
self.type: Literal["cheer", "power_up", "combo"] = payload["type"]
898+
message = payload.get("message") or {}
899+
self.text: str | None = message.get("text")
899900
power_up = payload.get("power_up")
900901
self.power_up: PowerUp | None = PowerUp(power_up) if power_up is not None else None
901-
self.fragments: list[ChatMessageFragment] = [
902-
ChatMessageFragment(fragment, http=http) for fragment in payload["message"]["fragments"]
903-
]
902+
fragments = message.get("fragments", [])
903+
self.fragments: list[ChatMessageFragment] = [ChatMessageFragment(f, http=http) for f in fragments]
904904

905905
def __repr__(self) -> str:
906906
return f"<ChannelBitsUse broadcaster={self.broadcaster} user={self.user} bits={self.bits} type={self.type}>"

twitchio/types_/eventsub.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -376,8 +376,8 @@ class PowerUpData(TypedDict):
376376

377377
class ChannelBitsUseEvent(BroadcasterUserEvent):
378378
bits: int
379-
type: Literal["cheer", "power_up"]
380-
message: ChatMessageData
379+
type: Literal["cheer", "power_up", "combo"]
380+
message: ChatMessageData | None
381381
power_up: PowerUpData | None
382382

383383

0 commit comments

Comments
 (0)