mirror of
https://gitea.phreedom.club/localhost_frssoft/funkwlmpv
synced 2024-12-25 21:23:33 +02:00
add recursive get tracks
This commit is contained in:
parent
e8252246d3
commit
c1d53370b2
1 changed files with 16 additions and 1 deletions
|
@ -14,6 +14,7 @@ parser = argparse.ArgumentParser(
|
|||
parser.add_argument('-s', '--search')
|
||||
parser.add_argument('-t', '--tag')
|
||||
parser.add_argument('-i', '--instance')
|
||||
parser.add_argument('-r', '--recursion', type=int, default=0)
|
||||
args = parser.parse_args()
|
||||
if args.instance:
|
||||
instances = [args.instance]
|
||||
|
@ -49,10 +50,24 @@ def filter_tracks(tracks):
|
|||
tracks_stor.append(i)
|
||||
|
||||
|
||||
def search_tracks_on_instance(instance, tag='', query=''):
|
||||
def search_tracks_on_instance(instance, tag='', query='', recursion=args.recursion):
|
||||
tracks = requests.get(f'https://{instance}/api/v1/tracks', params={'tag': tag, 'q': query,
|
||||
'local': True, 'playable': True,
|
||||
'ordering': 'random'}, timeout=10).json()
|
||||
count = tracks['count']
|
||||
print(f'found {count} tracks on {instance}')
|
||||
if recursion == 1:
|
||||
recursion_limit = 0
|
||||
while tracks['next']:
|
||||
try:
|
||||
if recursion_limit >= 5:
|
||||
break
|
||||
new_tracks = requests.get(tracks['next']).json()
|
||||
tracks['results'] += new_tracks['results']
|
||||
tracks['next'] = new_tracks['next']
|
||||
recursion_limit += 1
|
||||
except Exception as E:
|
||||
print(E)
|
||||
tracks_replacer = []
|
||||
for track in tracks['results']:
|
||||
track['listen_url'] = f'https://{instance}' + track['listen_url']
|
||||
|
|
Loading…
Reference in a new issue