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]