Modify metadata selection
This commit is contained in:
@@ -199,7 +199,6 @@ class LiveChatAsync:
|
|||||||
-------
|
-------
|
||||||
'contents' dict which includes metadata & chatdata.
|
'contents' dict which includes metadata & chatdata.
|
||||||
'''
|
'''
|
||||||
|
|
||||||
livechat_json = (await
|
livechat_json = (await
|
||||||
self._get_livechat_json(continuation, session, headers)
|
self._get_livechat_json(continuation, session, headers)
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -31,11 +31,8 @@ class Parser:
|
|||||||
def parse(self, contents):
|
def parse(self, contents):
|
||||||
"""
|
"""
|
||||||
このparse関数はLiveChat._listen() 関数から定期的に呼び出される。
|
このparse関数はLiveChat._listen() 関数から定期的に呼び出される。
|
||||||
引数jsnはYoutubeから取得したチャットデータの生JSONであり、
|
引数contentsはYoutubeから取得したチャットデータの生JSONであり、
|
||||||
このparse関数によって与えられたJSONを以下に分割して返す。
|
与えられたJSONをチャットデータとメタデータに分割して返す。
|
||||||
+ timeout (次のチャットデータ取得までのインターバル)
|
|
||||||
+ chat data(チャットデータ本体)
|
|
||||||
+ continuation (次のチャットデータ取得に必要となるパラメータ).
|
|
||||||
|
|
||||||
Parameter
|
Parameter
|
||||||
----------
|
----------
|
||||||
@@ -45,19 +42,17 @@ class Parser:
|
|||||||
|
|
||||||
Returns
|
Returns
|
||||||
-------
|
-------
|
||||||
+ metadata : dict
|
tuple:
|
||||||
+ チャットデータに付随するメタデータ。timeout、 動画ID、continuationパラメータで構成される。
|
+ metadata : dict チャットデータに付随するメタデータ
|
||||||
|
+ timeout
|
||||||
|
+ video_id
|
||||||
|
+ continuation
|
||||||
+ chatdata : list[dict]
|
+ chatdata : list[dict]
|
||||||
+ チャットデータ本体のリスト。
|
チャットデータ本体のリスト。
|
||||||
"""
|
"""
|
||||||
# if jsn is None:
|
|
||||||
# return {'timeoutMs':0,'continuation':None},[]
|
|
||||||
# if jsn['response']['responseContext'].get('errors'):
|
|
||||||
# raise ResponseContextError('動画に接続できません。'
|
|
||||||
# '動画IDが間違っているか、動画が削除/非公開の可能性があります。')
|
|
||||||
# contents=jsn['response'].get('continuationContents')
|
|
||||||
'''配信が終了した場合、もしくはチャットデータが取得できない場合'''
|
|
||||||
if contents is None:
|
if contents is None:
|
||||||
|
'''配信が終了した場合、もしくはチャットデータが取得できない場合'''
|
||||||
raise NoContentsException('チャットデータを取得できませんでした。')
|
raise NoContentsException('チャットデータを取得できませんでした。')
|
||||||
|
|
||||||
cont = contents['liveChatContinuation']['continuations'][0]
|
cont = contents['liveChatContinuation']['continuations'][0]
|
||||||
@@ -65,7 +60,8 @@ class Parser:
|
|||||||
raise NoContinuationsException('No Continuation')
|
raise NoContinuationsException('No Continuation')
|
||||||
metadata = (cont.get('invalidationContinuationData') or
|
metadata = (cont.get('invalidationContinuationData') or
|
||||||
cont.get('timedContinuationData') or
|
cont.get('timedContinuationData') or
|
||||||
cont.get('reloadContinuationData')
|
cont.get('reloadContinuationData') or
|
||||||
|
cont.get('liveChatReplayContinuationData')
|
||||||
)
|
)
|
||||||
if metadata is None:
|
if metadata is None:
|
||||||
unknown = list(cont.keys())[0]
|
unknown = list(cont.keys())[0]
|
||||||
|
|||||||
Reference in New Issue
Block a user