Implement base downloader

This commit is contained in:
taizan-hokuto
2020-01-23 02:00:50 +09:00
parent 03537c0a06
commit 9d494446e1
4 changed files with 330 additions and 0 deletions

View File

@@ -0,0 +1,43 @@
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']