41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
from .base import BaseRenderer
|
|
|
|
|
|
class LiveChatMembershipItemRenderer(BaseRenderer):
|
|
def __init__(self, item):
|
|
super().__init__(item, "newSponsorEvent")
|
|
|
|
def get_snippet(self):
|
|
message = self.get_message(self.renderer)
|
|
return {
|
|
"type": self.chattype,
|
|
"liveChatId": "",
|
|
"authorChannelId": self.renderer.get("authorExternalChannelId"),
|
|
"publishedAt": self.get_publishedat(self.renderer.get("timestampUsec", 0)),
|
|
"hasDisplayContent": True,
|
|
"displayMessage": message,
|
|
|
|
}
|
|
|
|
def get_authordetails(self):
|
|
authorExternalChannelId = self.renderer.get("authorExternalChannelId")
|
|
# parse subscriber type
|
|
isVerified, isChatOwner, _, isChatModerator = (
|
|
self.get_badges(self.renderer)
|
|
)
|
|
return {
|
|
"channelId": authorExternalChannelId,
|
|
"channelUrl": "http://www.youtube.com/channel/" + authorExternalChannelId,
|
|
"displayName": self.renderer["authorName"]["simpleText"],
|
|
"profileImageUrl": self.renderer["authorPhoto"]["thumbnails"][1]["url"],
|
|
"isVerified": isVerified,
|
|
"isChatOwner": isChatOwner,
|
|
"isChatSponsor": True,
|
|
"isChatModerator": isChatModerator
|
|
}
|
|
|
|
def get_message(self, renderer):
|
|
message = ''.join([mes.get("text", "")
|
|
for mes in renderer["headerSubtext"]["runs"]])
|
|
return message, [message]
|