Files
pytchat-fork/pytchat/downloader/dictquery.py
2020-01-23 02:00:50 +09:00

44 lines
1.4 KiB
Python

class DictQuery(dict):
def get(self, path, default = None):
keys = path.split("/")
val = None
for key in keys:
if val:
if key.isdecimal():
if isinstance(val,list) and len(val) > int(key):
#val=val[int(key)]
val=list(val)[int(key)]
else:return default
elif isinstance(val, dict):
val = val.get(key, default)
else:
return default
else:
val = dict.get(self, key, default)
return val
def find(target,**kwargs):
for key in kwargs.keys():
if key == target:
return kwargs[key]
if isinstance(kwargs[key], dict):
res = find(target,**kwargs[key])
elif isinstance(kwargs[key], list):
for item in kwargs[key]:
res = find(target,**item)
try:
return res
except UnboundLocalError:
return None
def getid_replay(item):
return list((list(item['replayChatItemAction']["actions"][0].values())[0])['item'].values())[0]['id']
def getid_realtime(item):
return list((list(item.values())[0])['item'].values())[0]['id']
def get_timestamp_realtime(item):
return list((list(item.values())[0])['item'].values())[0]['timestampUsec']