|
@@ -330,47 +330,50 @@ def main():
|
|
|
|
|
|
audios = []
|
|
|
for url in sources:
|
|
|
- if url.startswith('http:') or url.startswith('https:') \
|
|
|
- or os.path.isfile(url):
|
|
|
- # download the feed
|
|
|
- tree = get_tree(url)
|
|
|
- # filtering
|
|
|
- if not args.group:
|
|
|
- # get audio urls, removing those that are too long
|
|
|
- audios += [audio for audio in get_urls(tree) if
|
|
|
- (args.max_len == 0 or
|
|
|
- audio.duration <= args.max_len) and
|
|
|
- (args.min_len == 0 or
|
|
|
- audio.duration >= args.min_len) and
|
|
|
- (args.min_age.total_seconds() == 0 or
|
|
|
- audio.age >= args.min_age) and
|
|
|
- (args.max_age.total_seconds() == 0 or
|
|
|
- audio.age <= args.max_age)
|
|
|
- ]
|
|
|
- else:
|
|
|
- groups = get_grouped_urls(tree)
|
|
|
- audios += [groups[g] for g in groups.keys()
|
|
|
- if
|
|
|
- (args.max_len == 0 or
|
|
|
- groups[g].duration <= args.max_len) and
|
|
|
- (args.min_len == 0 or
|
|
|
- groups[g].duration >= args.max_len) and
|
|
|
- (args.min_age.total_seconds() == 0 or
|
|
|
- groups[g].age >= args.min_age) and
|
|
|
- (args.max_age.total_seconds() == 0 or
|
|
|
- groups[g].age <= args.max_age)
|
|
|
- ]
|
|
|
- elif os.path.isdir(url):
|
|
|
- audiodir = get_audio_from_dir(url)
|
|
|
- if not args.group:
|
|
|
+ if not args.group:
|
|
|
+ if os.path.isdir(url):
|
|
|
+ audiodir = get_audio_from_dir(url)
|
|
|
audios += audiodir
|
|
|
+ elif url.startswith('http:') or url.startswith('https:') \
|
|
|
+ or os.path.isfile(url):
|
|
|
+ audios += get_urls(get_tree(url))
|
|
|
else:
|
|
|
+ logging.info('unsupported url `%s`', url)
|
|
|
+ audios = [audio for audio in audios if
|
|
|
+ (args.max_len == 0 or
|
|
|
+ audio.duration <= args.max_len) and
|
|
|
+ (args.min_len == 0 or
|
|
|
+ audio.duration >= args.min_len) and
|
|
|
+ (args.min_age.total_seconds() == 0 or
|
|
|
+ audio.age >= args.min_age) and
|
|
|
+ (args.max_age.total_seconds() == 0 or
|
|
|
+ audio.age <= args.max_age)
|
|
|
+ ]
|
|
|
+ else: # group
|
|
|
+ if os.path.isdir(url):
|
|
|
+ audiodir = get_audio_from_dir(url)
|
|
|
+ agroups = []
|
|
|
for a in audiodir:
|
|
|
ag = AudioGroup(os.path.basename(a.url))
|
|
|
ag.append(a)
|
|
|
- audios.append(ag)
|
|
|
- else:
|
|
|
- logging.info('unsupported url `%s`', url)
|
|
|
+ agroups.append(ag)
|
|
|
+ elif url.startswith('http:') or url.startswith('https:') \
|
|
|
+ or os.path.isfile(url):
|
|
|
+ groups = get_grouped_urls(get_tree(url))
|
|
|
+ agroups = groups.values()
|
|
|
+ else:
|
|
|
+ logging.info('unsupported url `%s`', url)
|
|
|
+ audios += [g for g in agroups
|
|
|
+ if
|
|
|
+ (args.max_len == 0 or
|
|
|
+ g.duration <= args.max_len) and
|
|
|
+ (args.min_len == 0 or
|
|
|
+ g.duration >= args.max_len) and
|
|
|
+ (args.min_age.total_seconds() == 0 or
|
|
|
+ g.age >= args.min_age) and
|
|
|
+ (args.max_age.total_seconds() == 0 or
|
|
|
+ g.age <= args.max_age)
|
|
|
+ ]
|
|
|
|
|
|
# sort
|
|
|
if args.sort_by == 'random':
|