|
@@ -16,7 +16,10 @@
|
|
from typing import Dict, Any, List, Optional
|
|
from typing import Dict, Any, List, Optional
|
|
import json
|
|
import json
|
|
|
|
|
|
-from mautrix.types import SerializableAttrs, SerializableEnum, JSON, dataclass, field
|
|
|
|
|
|
+from attr import dataclass
|
|
|
|
+import attr
|
|
|
|
+
|
|
|
|
+from mautrix.types import SerializableAttrs, SerializableEnum, JSON
|
|
|
|
|
|
from .subscription import GraphQLQueryID
|
|
from .subscription import GraphQLQueryID
|
|
|
|
|
|
@@ -128,7 +131,7 @@ class TypingStatus(SerializableEnum):
|
|
VISUAL = 2
|
|
VISUAL = 2
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class CommandResponsePayload(SerializableAttrs['CommandResponsePayload']):
|
|
class CommandResponsePayload(SerializableAttrs['CommandResponsePayload']):
|
|
client_context: Optional[str] = None
|
|
client_context: Optional[str] = None
|
|
item_id: Optional[str] = None
|
|
item_id: Optional[str] = None
|
|
@@ -136,7 +139,7 @@ class CommandResponsePayload(SerializableAttrs['CommandResponsePayload']):
|
|
thread_id: Optional[str] = None
|
|
thread_id: Optional[str] = None
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class CommandResponse(SerializableAttrs['CommandResponse']):
|
|
class CommandResponse(SerializableAttrs['CommandResponse']):
|
|
action: str
|
|
action: str
|
|
status: str
|
|
status: str
|
|
@@ -144,14 +147,14 @@ class CommandResponse(SerializableAttrs['CommandResponse']):
|
|
payload: CommandResponsePayload
|
|
payload: CommandResponsePayload
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class IrisPayloadData(SerializableAttrs['IrisPayloadData']):
|
|
class IrisPayloadData(SerializableAttrs['IrisPayloadData']):
|
|
op: Operation
|
|
op: Operation
|
|
path: str
|
|
path: str
|
|
value: str
|
|
value: str
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class IrisPayload(SerializableAttrs['IrisPayload']):
|
|
class IrisPayload(SerializableAttrs['IrisPayload']):
|
|
data: List[IrisPayloadData]
|
|
data: List[IrisPayloadData]
|
|
message_type: int
|
|
message_type: int
|
|
@@ -168,20 +171,20 @@ class ViewMode(SerializableEnum):
|
|
PERMANENT = "permanent"
|
|
PERMANENT = "permanent"
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class CreativeConfig(SerializableAttrs['CreativeConfig']):
|
|
class CreativeConfig(SerializableAttrs['CreativeConfig']):
|
|
capture_type: str
|
|
capture_type: str
|
|
camera_facing: str
|
|
camera_facing: str
|
|
should_render_try_it_on: bool
|
|
should_render_try_it_on: bool
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class CreateModeAttribution(SerializableAttrs['CreateModeAttribution']):
|
|
class CreateModeAttribution(SerializableAttrs['CreateModeAttribution']):
|
|
type: str
|
|
type: str
|
|
name: str
|
|
name: str
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class ImageVersion(SerializableAttrs['ImageVersion']):
|
|
class ImageVersion(SerializableAttrs['ImageVersion']):
|
|
width: int
|
|
width: int
|
|
height: int
|
|
height: int
|
|
@@ -189,12 +192,12 @@ class ImageVersion(SerializableAttrs['ImageVersion']):
|
|
estimated_scan_sizes: Optional[List[int]] = None
|
|
estimated_scan_sizes: Optional[List[int]] = None
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class ImageVersions(SerializableAttrs['ImageVersions']):
|
|
class ImageVersions(SerializableAttrs['ImageVersions']):
|
|
candidates: List[ImageVersion]
|
|
candidates: List[ImageVersion]
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class VideoVersion(SerializableAttrs['VideoVersion']):
|
|
class VideoVersion(SerializableAttrs['VideoVersion']):
|
|
type: int
|
|
type: int
|
|
width: int
|
|
width: int
|
|
@@ -215,7 +218,7 @@ class MediaType(SerializableEnum):
|
|
SHOWREEL_NATIVE = 12
|
|
SHOWREEL_NATIVE = 12
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class RegularMediaItem(SerializableAttrs['RegularMediaItem']):
|
|
class RegularMediaItem(SerializableAttrs['RegularMediaItem']):
|
|
id: str
|
|
id: str
|
|
image_versions2: Optional[ImageVersions] = None
|
|
image_versions2: Optional[ImageVersions] = None
|
|
@@ -229,7 +232,7 @@ class RegularMediaItem(SerializableAttrs['RegularMediaItem']):
|
|
create_mode_attribution: Optional[CreateModeAttribution] = None
|
|
create_mode_attribution: Optional[CreateModeAttribution] = None
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class FriendshipStatus(SerializableAttrs['FriendshipStatus']):
|
|
class FriendshipStatus(SerializableAttrs['FriendshipStatus']):
|
|
following: bool
|
|
following: bool
|
|
outgoing_request: bool
|
|
outgoing_request: bool
|
|
@@ -237,13 +240,13 @@ class FriendshipStatus(SerializableAttrs['FriendshipStatus']):
|
|
is_restricted: bool
|
|
is_restricted: bool
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class MinimalUser(SerializableAttrs['MinimalUser']):
|
|
class MinimalUser(SerializableAttrs['MinimalUser']):
|
|
pk: int
|
|
pk: int
|
|
username: str
|
|
username: str
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class User(MinimalUser, SerializableAttrs['User']):
|
|
class User(MinimalUser, SerializableAttrs['User']):
|
|
full_name: str
|
|
full_name: str
|
|
is_private: bool
|
|
is_private: bool
|
|
@@ -256,7 +259,7 @@ class User(MinimalUser, SerializableAttrs['User']):
|
|
friendship_status: FriendshipStatus
|
|
friendship_status: FriendshipStatus
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class Caption(SerializableAttrs['Caption']):
|
|
class Caption(SerializableAttrs['Caption']):
|
|
pk: int
|
|
pk: int
|
|
user_id: int
|
|
user_id: int
|
|
@@ -275,7 +278,7 @@ class Caption(SerializableAttrs['Caption']):
|
|
media_id: int
|
|
media_id: int
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class MediaShareItem(SerializableAttrs['MediaShareItem']):
|
|
class MediaShareItem(SerializableAttrs['MediaShareItem']):
|
|
taken_at: int
|
|
taken_at: int
|
|
pk: int
|
|
pk: int
|
|
@@ -306,7 +309,7 @@ class MediaShareItem(SerializableAttrs['MediaShareItem']):
|
|
organic_tracking_token: str
|
|
organic_tracking_token: str
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class ReplayableMediaItem(SerializableAttrs['ReplayableMediaItem']):
|
|
class ReplayableMediaItem(SerializableAttrs['ReplayableMediaItem']):
|
|
view_mode: ViewMode
|
|
view_mode: ViewMode
|
|
seen_count: int
|
|
seen_count: int
|
|
@@ -314,14 +317,14 @@ class ReplayableMediaItem(SerializableAttrs['ReplayableMediaItem']):
|
|
replay_expiring_at_us: Optional[Any] = None
|
|
replay_expiring_at_us: Optional[Any] = None
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class VisualMedia(ReplayableMediaItem, SerializableAttrs['VisualMedia']):
|
|
class VisualMedia(ReplayableMediaItem, SerializableAttrs['VisualMedia']):
|
|
url_expire_at_secs: int
|
|
url_expire_at_secs: int
|
|
playback_duration_secs: int
|
|
playback_duration_secs: int
|
|
media: RegularMediaItem
|
|
media: RegularMediaItem
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class AudioInfo(SerializableAttrs['AudioInfo']):
|
|
class AudioInfo(SerializableAttrs['AudioInfo']):
|
|
audio_src: str
|
|
audio_src: str
|
|
duration: int
|
|
duration: int
|
|
@@ -329,7 +332,7 @@ class AudioInfo(SerializableAttrs['AudioInfo']):
|
|
waveform_sampling_frequence_hz: int
|
|
waveform_sampling_frequence_hz: int
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class VoiceMediaData(SerializableAttrs['VoiceMediaData']):
|
|
class VoiceMediaData(SerializableAttrs['VoiceMediaData']):
|
|
id: str
|
|
id: str
|
|
audio: AudioInfo
|
|
audio: AudioInfo
|
|
@@ -340,12 +343,12 @@ class VoiceMediaData(SerializableAttrs['VoiceMediaData']):
|
|
media_type: MediaType = MediaType.AUDIO
|
|
media_type: MediaType = MediaType.AUDIO
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class VoiceMediaItem(ReplayableMediaItem, SerializableAttrs['VoiceMediaItem']):
|
|
class VoiceMediaItem(ReplayableMediaItem, SerializableAttrs['VoiceMediaItem']):
|
|
media: VoiceMediaData
|
|
media: VoiceMediaData
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class AnimatedMediaImage(SerializableAttrs['AnimatedMediaImage']):
|
|
class AnimatedMediaImage(SerializableAttrs['AnimatedMediaImage']):
|
|
height: str
|
|
height: str
|
|
mp4: str
|
|
mp4: str
|
|
@@ -357,12 +360,12 @@ class AnimatedMediaImage(SerializableAttrs['AnimatedMediaImage']):
|
|
width: str
|
|
width: str
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class AnimatedMediaImages(SerializableAttrs['AnimatedMediaImages']):
|
|
class AnimatedMediaImages(SerializableAttrs['AnimatedMediaImages']):
|
|
fixed_height: Optional[AnimatedMediaImage] = None
|
|
fixed_height: Optional[AnimatedMediaImage] = None
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class AnimatedMediaItem(SerializableAttrs['AnimatedMediaItem']):
|
|
class AnimatedMediaItem(SerializableAttrs['AnimatedMediaItem']):
|
|
id: str
|
|
id: str
|
|
is_random: str
|
|
is_random: str
|
|
@@ -370,7 +373,7 @@ class AnimatedMediaItem(SerializableAttrs['AnimatedMediaItem']):
|
|
images: AnimatedMediaImages
|
|
images: AnimatedMediaImages
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class MessageSyncMessage(SerializableAttrs['MessageSyncMessage']):
|
|
class MessageSyncMessage(SerializableAttrs['MessageSyncMessage']):
|
|
thread_id: str
|
|
thread_id: str
|
|
item_id: Optional[str] = None
|
|
item_id: Optional[str] = None
|
|
@@ -392,19 +395,19 @@ class MessageSyncMessage(SerializableAttrs['MessageSyncMessage']):
|
|
reactions: Optional[dict] = None
|
|
reactions: Optional[dict] = None
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class MessageSyncEvent(SerializableAttrs['MessageSyncEvent']):
|
|
class MessageSyncEvent(SerializableAttrs['MessageSyncEvent']):
|
|
iris: IrisPayload
|
|
iris: IrisPayload
|
|
message: MessageSyncMessage
|
|
message: MessageSyncMessage
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class PubsubPublishMetadata(SerializableAttrs['PubsubPublishMetadata']):
|
|
class PubsubPublishMetadata(SerializableAttrs['PubsubPublishMetadata']):
|
|
publish_time_ms: str
|
|
publish_time_ms: str
|
|
topic_publish_id: int
|
|
topic_publish_id: int
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class PubsubBasePayload(SerializableAttrs['PubsubBasePayload']):
|
|
class PubsubBasePayload(SerializableAttrs['PubsubBasePayload']):
|
|
lazy: bool
|
|
lazy: bool
|
|
event: str = "patch"
|
|
event: str = "patch"
|
|
@@ -412,7 +415,7 @@ class PubsubBasePayload(SerializableAttrs['PubsubBasePayload']):
|
|
num_endpoints: Optional[int] = None
|
|
num_endpoints: Optional[int] = None
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class ActivityIndicatorData(SerializableAttrs['ActivityIndicatorData']):
|
|
class ActivityIndicatorData(SerializableAttrs['ActivityIndicatorData']):
|
|
timestamp: str
|
|
timestamp: str
|
|
sender_id: str
|
|
sender_id: str
|
|
@@ -428,20 +431,20 @@ class ActivityIndicatorData(SerializableAttrs['ActivityIndicatorData']):
|
|
return super().deserialize(data)
|
|
return super().deserialize(data)
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class PubsubPayloadData(SerializableAttrs['PubsubPayloadData']):
|
|
class PubsubPayloadData(SerializableAttrs['PubsubPayloadData']):
|
|
- double_publish: bool = field(json="doublePublish")
|
|
|
|
|
|
+ double_publish: bool = attr.ib(metadata={"json": "doublePublish"})
|
|
value: ActivityIndicatorData
|
|
value: ActivityIndicatorData
|
|
path: str
|
|
path: str
|
|
op: Operation = Operation.ADD
|
|
op: Operation = Operation.ADD
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class PubsubPayload(PubsubBasePayload, SerializableAttrs['PubsubPayload']):
|
|
class PubsubPayload(PubsubBasePayload, SerializableAttrs['PubsubPayload']):
|
|
data: List[PubsubPayloadData]
|
|
data: List[PubsubPayloadData]
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class PubsubEvent(SerializableAttrs['PubsubEvent']):
|
|
class PubsubEvent(SerializableAttrs['PubsubEvent']):
|
|
base: PubsubBasePayload
|
|
base: PubsubBasePayload
|
|
data: PubsubPayloadData
|
|
data: PubsubPayloadData
|
|
@@ -449,7 +452,7 @@ class PubsubEvent(SerializableAttrs['PubsubEvent']):
|
|
activity_indicator_id: str
|
|
activity_indicator_id: str
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class AppPresenceEvent(SerializableAttrs['AppPresenceEvent']):
|
|
class AppPresenceEvent(SerializableAttrs['AppPresenceEvent']):
|
|
user_id: str
|
|
user_id: str
|
|
is_active: bool
|
|
is_active: bool
|
|
@@ -457,24 +460,24 @@ class AppPresenceEvent(SerializableAttrs['AppPresenceEvent']):
|
|
in_threads: List[Any]
|
|
in_threads: List[Any]
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class AppPresenceEventPayload(SerializableAttrs['AppPresenceEventPayload']):
|
|
class AppPresenceEventPayload(SerializableAttrs['AppPresenceEventPayload']):
|
|
presence_event: AppPresenceEvent
|
|
presence_event: AppPresenceEvent
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class ZeroProductProvisioningEvent(SerializableAttrs['ZeroProductProvisioningEvent']):
|
|
class ZeroProductProvisioningEvent(SerializableAttrs['ZeroProductProvisioningEvent']):
|
|
device_id: str
|
|
device_id: str
|
|
product_name: str
|
|
product_name: str
|
|
zero_provisioned_time: str
|
|
zero_provisioned_time: str
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class RealtimeZeroProvisionPayload(SerializableAttrs['RealtimeZeroProvisionPayload']):
|
|
class RealtimeZeroProvisionPayload(SerializableAttrs['RealtimeZeroProvisionPayload']):
|
|
zero_product_provisioning_event: ZeroProductProvisioningEvent
|
|
zero_product_provisioning_event: ZeroProductProvisioningEvent
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class ClientConfigUpdateEvent(SerializableAttrs['ClientConfigUpdateEvent']):
|
|
class ClientConfigUpdateEvent(SerializableAttrs['ClientConfigUpdateEvent']):
|
|
publish_id: str
|
|
publish_id: str
|
|
client_config_name: str
|
|
client_config_name: str
|
|
@@ -482,7 +485,7 @@ class ClientConfigUpdateEvent(SerializableAttrs['ClientConfigUpdateEvent']):
|
|
client_subscription_id: str = GraphQLQueryID.clientConfigUpdate
|
|
client_subscription_id: str = GraphQLQueryID.clientConfigUpdate
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class ClientConfigUpdatePayload(SerializableAttrs['ClientConfigUpdatePayload']):
|
|
class ClientConfigUpdatePayload(SerializableAttrs['ClientConfigUpdatePayload']):
|
|
client_config_update_event: ClientConfigUpdateEvent
|
|
client_config_update_event: ClientConfigUpdateEvent
|
|
|
|
|
|
@@ -490,14 +493,14 @@ class ClientConfigUpdatePayload(SerializableAttrs['ClientConfigUpdatePayload']):
|
|
RealtimeDirectData = ActivityIndicatorData
|
|
RealtimeDirectData = ActivityIndicatorData
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class RealtimeDirectEvent(SerializableAttrs['RealtimeDirectEvent']):
|
|
class RealtimeDirectEvent(SerializableAttrs['RealtimeDirectEvent']):
|
|
op: Operation
|
|
op: Operation
|
|
path: str
|
|
path: str
|
|
value: RealtimeDirectData
|
|
value: RealtimeDirectData
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class LiveVideoCommentUser(SerializableAttrs['LiveVideoCommentUser']):
|
|
class LiveVideoCommentUser(SerializableAttrs['LiveVideoCommentUser']):
|
|
pk: str
|
|
pk: str
|
|
username: str
|
|
username: str
|
|
@@ -508,7 +511,7 @@ class LiveVideoCommentUser(SerializableAttrs['LiveVideoCommentUser']):
|
|
profile_pic_id: Optional[str] = None
|
|
profile_pic_id: Optional[str] = None
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class LiveVideoSystemComment(SerializableAttrs['LiveVideoSystemComment']):
|
|
class LiveVideoSystemComment(SerializableAttrs['LiveVideoSystemComment']):
|
|
pk: str
|
|
pk: str
|
|
created_at: int
|
|
created_at: int
|
|
@@ -517,7 +520,7 @@ class LiveVideoSystemComment(SerializableAttrs['LiveVideoSystemComment']):
|
|
user: LiveVideoCommentUser
|
|
user: LiveVideoCommentUser
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class LiveVideoComment(SerializableAttrs['LiveVideoComment']):
|
|
class LiveVideoComment(SerializableAttrs['LiveVideoComment']):
|
|
pk: str
|
|
pk: str
|
|
user_id: str
|
|
user_id: str
|
|
@@ -533,7 +536,7 @@ class LiveVideoComment(SerializableAttrs['LiveVideoComment']):
|
|
user: LiveVideoCommentUser
|
|
user: LiveVideoCommentUser
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class LiveVideoCommentEvent(SerializableAttrs['LiveVideoCommentEvent']):
|
|
class LiveVideoCommentEvent(SerializableAttrs['LiveVideoCommentEvent']):
|
|
client_subscription_id: str
|
|
client_subscription_id: str
|
|
live_seconds_per_comment: int
|
|
live_seconds_per_comment: int
|
|
@@ -550,6 +553,6 @@ class LiveVideoCommentEvent(SerializableAttrs['LiveVideoCommentEvent']):
|
|
system_comments: Optional[List[LiveVideoSystemComment]] = None
|
|
system_comments: Optional[List[LiveVideoSystemComment]] = None
|
|
|
|
|
|
|
|
|
|
-@dataclass
|
|
|
|
|
|
+@dataclass(kw_only=True)
|
|
class LiveVideoCommentPayload(SerializableAttrs['LiveVideoCommentPayload']):
|
|
class LiveVideoCommentPayload(SerializableAttrs['LiveVideoCommentPayload']):
|
|
live_video_comment_event: LiveVideoCommentEvent
|
|
live_video_comment_event: LiveVideoCommentEvent
|