|
4 | 4 | import hashlib |
5 | 5 | import logging |
6 | 6 | from enum import Enum |
7 | | -from typing import Dict, TYPE_CHECKING, Optional, Type, Union |
8 | | -from typing_extensions import Literal |
| 7 | +from typing import Dict, TYPE_CHECKING, Optional, Type, Union, Literal, Tuple |
9 | 8 |
|
10 | 9 | from aiohttp import web |
11 | 10 |
|
@@ -456,33 +455,33 @@ def __init__(self, data, broadcaster): |
456 | 455 | self.cost: int = data["cost"] |
457 | 456 | self.prompt: str = data["prompt"] |
458 | 457 |
|
459 | | - self.enabled: bool = data.get("is_enabled", None) |
460 | | - self.paused: bool = data.get("is_paused", None) |
461 | | - self.in_stock: bool = data.get("is_in_stock", None) |
| 458 | + self.enabled: Optional[bool] = data.get("is_enabled", None) |
| 459 | + self.paused: Optional[bool] = data.get("is_paused", None) |
| 460 | + self.in_stock: Optional[bool] = data.get("is_in_stock", None) |
462 | 461 |
|
463 | | - self.cooldown_until: datetime.datetime = ( |
| 462 | + self.cooldown_until: Optional[datetime.datetime] = ( |
464 | 463 | _parse_datetime(data["cooldown_expires_at"]) if data.get("cooldown_expires_at", None) else None |
465 | 464 | ) |
466 | 465 |
|
467 | | - self.input_required: bool = data.get("is_user_input_required", None) |
468 | | - self.redemptions_skip_queue: bool = data.get("should_redemptions_skip_request_queue", None) |
469 | | - self.redemptions_current_stream: bool = data.get("redemptions_redeemed_current_stream", None) |
| 466 | + self.input_required: Optional[bool] = data.get("is_user_input_required", None) |
| 467 | + self.redemptions_skip_queue: Optional[bool] = data.get("should_redemptions_skip_request_queue", None) |
| 468 | + self.redemptions_current_stream: Optional[bool] = data.get("redemptions_redeemed_current_stream", None) |
470 | 469 |
|
471 | | - self.max_per_stream: tuple[bool, int] = ( |
| 470 | + self.max_per_stream: Tuple[Optional[bool], Optional[int]] = ( |
472 | 471 | data.get("max_per_stream", {}).get("is_enabled"), |
473 | 472 | data.get("max_per_stream", {}).get("value"), |
474 | 473 | ) |
475 | | - self.max_per_user_stream: tuple[bool, int] = ( |
| 474 | + self.max_per_user_stream: Tuple[Optional[bool], Optional[int]] = ( |
476 | 475 | data.get("max_per_user_per_stream", {}).get("is_enabled"), |
477 | 476 | data.get("max_per_user_per_stream", {}).get("value"), |
478 | 477 | ) |
479 | | - self.cooldown: tuple[bool, int] = ( |
| 478 | + self.cooldown: Tuple[Optional[bool], Optional[int]] = ( |
480 | 479 | data.get("global_cooldown", {}).get("is_enabled"), |
481 | 480 | data.get("global_cooldown", {}).get("seconds"), |
482 | 481 | ) |
483 | 482 |
|
484 | | - self.background_color: str = data.get("background_color", None) |
485 | | - self.image: str = data.get("image", data.get("default_image", {})).get("url_1x", None) |
| 483 | + self.background_color: Optional[str] = data.get("background_color", None) |
| 484 | + self.image: Optional[str] = data.get("image", data.get("default_image", {})).get("url_1x", None) |
486 | 485 |
|
487 | 486 |
|
488 | 487 | class CustomRewardAddUpdateRemoveData(EventData): |
|
0 commit comments