add --intro and --outro
This commit is contained in:
parent
f4e04a41ee
commit
4c9f73f705
1 changed files with 22 additions and 0 deletions
22
feed
22
feed
|
@ -122,6 +122,12 @@ class Audio(object):
|
||||||
self.date = date
|
self.date = date
|
||||||
self.end_date = datetime.datetime(9999, 12, 31, tzinfo=datetime.timezone.utc)
|
self.end_date = datetime.datetime(9999, 12, 31, tzinfo=datetime.timezone.utc)
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def from_trusted(cls, url_or_path) -> 'Audio':
|
||||||
|
if url_or_path.startswith('/'):
|
||||||
|
return cls('file://' + url_or_path)
|
||||||
|
return cls(url_or_path)
|
||||||
|
|
||||||
def __str__(self):
|
def __str__(self):
|
||||||
return self.url
|
return self.url
|
||||||
|
|
||||||
|
@ -465,6 +471,12 @@ def get_parser():
|
||||||
help="Between each item, put a random file from DIR",
|
help="Between each item, put a random file from DIR",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
intro = p.add_argument_group(
|
||||||
|
"intro", "Add intro/outro to output, but only if at least one audio will be output"
|
||||||
|
)
|
||||||
|
intro.add_argument("--intro", default=None, type=str, metavar="PATH")
|
||||||
|
intro.add_argument("--outro", default=None, type=str, metavar="PATH")
|
||||||
|
|
||||||
p.add_argument(
|
p.add_argument(
|
||||||
"--start",
|
"--start",
|
||||||
default=0,
|
default=0,
|
||||||
|
@ -640,6 +652,15 @@ def get_audio_by_source(args, parser):
|
||||||
sources = [weighted_choice(sources, weights)]
|
sources = [weighted_choice(sources, weights)]
|
||||||
return audio_by_source, sources
|
return audio_by_source, sources
|
||||||
|
|
||||||
|
def add_intro_outro(audios: list, args) -> list:
|
||||||
|
if not audios:
|
||||||
|
return audios
|
||||||
|
audios = audios.copy()
|
||||||
|
if args.intro:
|
||||||
|
audios.insert(0, Audio.from_trusted(args.intro))
|
||||||
|
if args.outro:
|
||||||
|
audios.append(Audio.from_trusted(args.outro))
|
||||||
|
return audios
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
parser = get_parser()
|
parser = get_parser()
|
||||||
|
@ -701,6 +722,7 @@ def main():
|
||||||
# this is to support the --slotsize option
|
# this is to support the --slotsize option
|
||||||
if not audios:
|
if not audios:
|
||||||
return
|
return
|
||||||
|
audios = add_intro_outro(audios, args)
|
||||||
for audio in audios[:-1]:
|
for audio in audios[:-1]:
|
||||||
if args.debug:
|
if args.debug:
|
||||||
debug(repr(audio))
|
debug(repr(audio))
|
||||||
|
|
Loading…
Reference in a new issue