Move parser functions to processor
This commit is contained in:
parent
7c6e12cbe5
commit
64ec413bca
@@ -1,44 +0,0 @@
|
|||||||
|
|
||||||
from .renderer.textmessage import LiveChatTextMessageRenderer
|
|
||||||
from .renderer.paidmessage import LiveChatPaidMessageRenderer
|
|
||||||
from .renderer.paidsticker import LiveChatPaidStickerRenderer
|
|
||||||
from .renderer.legacypaid import LiveChatLegacyPaidMessageRenderer
|
|
||||||
|
|
||||||
class Parser:
|
|
||||||
def parse(self, sitem):
|
|
||||||
|
|
||||||
action = sitem.get("addChatItemAction")
|
|
||||||
if action:
|
|
||||||
item = action.get("item")
|
|
||||||
if item is None: return None
|
|
||||||
rd={}
|
|
||||||
try:
|
|
||||||
renderer = self.get_renderer(item)
|
|
||||||
if renderer == None:
|
|
||||||
return None
|
|
||||||
|
|
||||||
rd["kind"] = "youtube#liveChatMessage"
|
|
||||||
rd["etag"] = ""
|
|
||||||
rd["id"] = 'LCC.' + renderer.get_id()
|
|
||||||
rd["snippet"] = renderer.get_snippet()
|
|
||||||
rd["authorDetails"] = renderer.get_authordetails()
|
|
||||||
except (KeyError,TypeError,AttributeError) as e:
|
|
||||||
print(f"------{str(type(e))}-{str(e)}----------")
|
|
||||||
print(sitem)
|
|
||||||
return None
|
|
||||||
|
|
||||||
return rd
|
|
||||||
|
|
||||||
def get_renderer(self, item):
|
|
||||||
if item.get("liveChatTextMessageRenderer"):
|
|
||||||
renderer = LiveChatTextMessageRenderer(item)
|
|
||||||
elif item.get("liveChatPaidMessageRenderer"):
|
|
||||||
renderer = LiveChatPaidMessageRenderer(item)
|
|
||||||
elif item.get( "liveChatPaidStickerRenderer"):
|
|
||||||
renderer = LiveChatPaidStickerRenderer(item)
|
|
||||||
elif item.get("liveChatLegacyPaidMessageRenderer"):
|
|
||||||
renderer = LiveChatLegacyPaidMessageRenderer(item)
|
|
||||||
else:
|
|
||||||
renderer = None
|
|
||||||
return renderer
|
|
||||||
|
|
||||||
@@ -1,13 +1,14 @@
|
|||||||
from . parser import Parser
|
|
||||||
import json
|
|
||||||
import os
|
|
||||||
import traceback
|
|
||||||
import datetime
|
import datetime
|
||||||
import time
|
import time
|
||||||
|
from .renderer.textmessage import LiveChatTextMessageRenderer
|
||||||
|
from .renderer.paidmessage import LiveChatPaidMessageRenderer
|
||||||
|
from .renderer.paidsticker import LiveChatPaidStickerRenderer
|
||||||
|
from .renderer.legacypaid import LiveChatLegacyPaidMessageRenderer
|
||||||
|
from ... import mylogger
|
||||||
|
from ... import config
|
||||||
|
logger = mylogger.get_logger(__name__,mode=config.LOGGER_MODE)
|
||||||
|
|
||||||
class CompatibleProcessor:
|
class CompatibleProcessor:
|
||||||
def __init__(self):
|
|
||||||
self.parser = Parser()
|
|
||||||
|
|
||||||
def process(self, chat_components: list):
|
def process(self, chat_components: list):
|
||||||
|
|
||||||
@@ -29,7 +30,7 @@ class CompatibleProcessor:
|
|||||||
if action.get('addChatItemAction') is None: continue
|
if action.get('addChatItemAction') is None: continue
|
||||||
if action['addChatItemAction'].get('item') is None: continue
|
if action['addChatItemAction'].get('item') is None: continue
|
||||||
|
|
||||||
chat = self.parser.parse(action)
|
chat = self.parse(action)
|
||||||
if chat:
|
if chat:
|
||||||
chatlist.append(chat)
|
chatlist.append(chat)
|
||||||
ret["pollingIntervalMillis"] = int(timeout*1000)
|
ret["pollingIntervalMillis"] = int(timeout*1000)
|
||||||
@@ -39,4 +40,42 @@ class CompatibleProcessor:
|
|||||||
}
|
}
|
||||||
ret["items"] = chatlist
|
ret["items"] = chatlist
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
def parse(self, sitem):
|
||||||
|
|
||||||
|
action = sitem.get("addChatItemAction")
|
||||||
|
if action:
|
||||||
|
item = action.get("item")
|
||||||
|
if item is None: return None
|
||||||
|
rd={}
|
||||||
|
try:
|
||||||
|
renderer = self.get_renderer(item)
|
||||||
|
if renderer == None:
|
||||||
|
return None
|
||||||
|
|
||||||
|
rd["kind"] = "youtube#liveChatMessage"
|
||||||
|
rd["etag"] = ""
|
||||||
|
rd["id"] = 'LCC.' + renderer.get_id()
|
||||||
|
rd["snippet"] = renderer.get_snippet()
|
||||||
|
rd["authorDetails"] = renderer.get_authordetails()
|
||||||
|
except (KeyError,TypeError,AttributeError) as e:
|
||||||
|
print(f"------{str(type(e))}-{str(e)}----------")
|
||||||
|
print(sitem)
|
||||||
|
return None
|
||||||
|
|
||||||
|
return rd
|
||||||
|
|
||||||
|
def get_renderer(self, item):
|
||||||
|
if item.get("liveChatTextMessageRenderer"):
|
||||||
|
renderer = LiveChatTextMessageRenderer(item)
|
||||||
|
elif item.get("liveChatPaidMessageRenderer"):
|
||||||
|
renderer = LiveChatPaidMessageRenderer(item)
|
||||||
|
elif item.get( "liveChatPaidStickerRenderer"):
|
||||||
|
renderer = LiveChatPaidStickerRenderer(item)
|
||||||
|
elif item.get("liveChatLegacyPaidMessageRenderer"):
|
||||||
|
renderer = LiveChatLegacyPaidMessageRenderer(item)
|
||||||
|
else:
|
||||||
|
renderer = None
|
||||||
|
return renderer
|
||||||
|
|
||||||
|
|||||||
@@ -1,39 +0,0 @@
|
|||||||
|
|
||||||
from .renderer.textmessage import LiveChatTextMessageRenderer
|
|
||||||
from .renderer.paidmessage import LiveChatPaidMessageRenderer
|
|
||||||
from .renderer.paidsticker import LiveChatPaidStickerRenderer
|
|
||||||
from .renderer.legacypaid import LiveChatLegacyPaidMessageRenderer
|
|
||||||
|
|
||||||
def parse(sitem):
|
|
||||||
|
|
||||||
action = sitem.get("addChatItemAction")
|
|
||||||
if action:
|
|
||||||
item = action.get("item")
|
|
||||||
if item is None: return None
|
|
||||||
try:
|
|
||||||
renderer = get_renderer(item)
|
|
||||||
if renderer == None:
|
|
||||||
return None
|
|
||||||
|
|
||||||
renderer.get_snippet()
|
|
||||||
renderer.get_authordetails()
|
|
||||||
except (KeyError,TypeError,AttributeError) as e:
|
|
||||||
print(f"------{str(type(e))}-{str(e)}----------")
|
|
||||||
print(sitem)
|
|
||||||
return None
|
|
||||||
|
|
||||||
return renderer
|
|
||||||
|
|
||||||
def get_renderer(item):
|
|
||||||
if item.get("liveChatTextMessageRenderer"):
|
|
||||||
renderer = LiveChatTextMessageRenderer(item)
|
|
||||||
elif item.get("liveChatPaidMessageRenderer"):
|
|
||||||
renderer = LiveChatPaidMessageRenderer(item)
|
|
||||||
elif item.get( "liveChatPaidStickerRenderer"):
|
|
||||||
renderer = LiveChatPaidStickerRenderer(item)
|
|
||||||
elif item.get("liveChatLegacyPaidMessageRenderer"):
|
|
||||||
renderer = LiveChatLegacyPaidMessageRenderer(item)
|
|
||||||
else:
|
|
||||||
renderer = None
|
|
||||||
return renderer
|
|
||||||
|
|
||||||
@@ -1,6 +1,9 @@
|
|||||||
from . import parser
|
|
||||||
import asyncio
|
import asyncio
|
||||||
import time
|
import time
|
||||||
|
from .renderer.textmessage import LiveChatTextMessageRenderer
|
||||||
|
from .renderer.paidmessage import LiveChatPaidMessageRenderer
|
||||||
|
from .renderer.paidsticker import LiveChatPaidStickerRenderer
|
||||||
|
from .renderer.legacypaid import LiveChatLegacyPaidMessageRenderer
|
||||||
|
|
||||||
|
|
||||||
class Chatdata:
|
class Chatdata:
|
||||||
@@ -37,8 +40,40 @@ class DefaultProcessor:
|
|||||||
if action.get('addChatItemAction') is None: continue
|
if action.get('addChatItemAction') is None: continue
|
||||||
if action['addChatItemAction'].get('item') is None: continue
|
if action['addChatItemAction'].get('item') is None: continue
|
||||||
|
|
||||||
chat = parser.parse(action)
|
chat = self.parse(action)
|
||||||
if chat:
|
if chat:
|
||||||
chatlist.append(chat)
|
chatlist.append(chat)
|
||||||
return Chatdata(chatlist, float(timeout))
|
return Chatdata(chatlist, float(timeout))
|
||||||
|
|
||||||
|
|
||||||
|
def parse(self, sitem):
|
||||||
|
|
||||||
|
action = sitem.get("addChatItemAction")
|
||||||
|
if action:
|
||||||
|
item = action.get("item")
|
||||||
|
if item is None: return None
|
||||||
|
try:
|
||||||
|
renderer = self.get_renderer(item)
|
||||||
|
if renderer == None:
|
||||||
|
return None
|
||||||
|
|
||||||
|
renderer.get_snippet()
|
||||||
|
renderer.get_authordetails()
|
||||||
|
except (KeyError,TypeError,AttributeError) as e:
|
||||||
|
print(f"------{str(type(e))}-{str(e)}----------")
|
||||||
|
print(sitem)
|
||||||
|
return None
|
||||||
|
return renderer
|
||||||
|
|
||||||
|
def get_renderer(self, item):
|
||||||
|
if item.get("liveChatTextMessageRenderer"):
|
||||||
|
renderer = LiveChatTextMessageRenderer(item)
|
||||||
|
elif item.get("liveChatPaidMessageRenderer"):
|
||||||
|
renderer = LiveChatPaidMessageRenderer(item)
|
||||||
|
elif item.get( "liveChatPaidStickerRenderer"):
|
||||||
|
renderer = LiveChatPaidStickerRenderer(item)
|
||||||
|
elif item.get("liveChatLegacyPaidMessageRenderer"):
|
||||||
|
renderer = LiveChatLegacyPaidMessageRenderer(item)
|
||||||
|
else:
|
||||||
|
renderer = None
|
||||||
|
return renderer
|
||||||
Reference in New Issue
Block a user