|
@@ -26,6 +26,10 @@ class Audio(object):
|
|
|
def __repr__(self):
|
|
|
return '<Audio {} ({})>'.format(self.url, self.durata)
|
|
|
|
|
|
+ @property
|
|
|
+ def urls(self):
|
|
|
+ return [self.url]
|
|
|
+
|
|
|
|
|
|
class AudioGroup(list):
|
|
|
def __init__(self, description=None):
|
|
@@ -50,6 +54,10 @@ class AudioGroup(list):
|
|
|
def durata(self):
|
|
|
return sum(a.durata for a in self.audios if a.durata is not None)
|
|
|
|
|
|
+ @property
|
|
|
+ def urls(self):
|
|
|
+ return [a.url for a in self.audios]
|
|
|
+
|
|
|
|
|
|
def get_tree(feed_url):
|
|
|
if feed_url.startswith('http:') or feed_url.startswith('https:'):
|
|
@@ -122,17 +130,19 @@ def get_parser():
|
|
|
|
|
|
def put(audio, copy=False):
|
|
|
if not copy:
|
|
|
- print(audio.url)
|
|
|
+ for url in audio.urls:
|
|
|
+ print(url)
|
|
|
else:
|
|
|
- destdir = (os.environ.get('TMPDIR', '.'))
|
|
|
- fname = posixpath.basename(urlparse(audio.url).path)
|
|
|
- # sanitize
|
|
|
- fname = "".join(c for c in fname
|
|
|
- if c.isalnum() or c in list('._-')).rstrip()
|
|
|
- dest = os.path.join(destdir, fname)
|
|
|
- os.makedirs(destdir, exist_ok=True)
|
|
|
- fname, headers = urllib.request.urlretrieve(audio.url, dest)
|
|
|
- print('file://%s' % os.path.realpath(fname))
|
|
|
+ for url in audio.urls:
|
|
|
+ destdir = (os.environ.get('TMPDIR', '.'))
|
|
|
+ fname = posixpath.basename(urlparse(url).path)
|
|
|
+ # sanitize
|
|
|
+ fname = "".join(c for c in fname
|
|
|
+ if c.isalnum() or c in list('._-')).rstrip()
|
|
|
+ dest = os.path.join(destdir, fname)
|
|
|
+ os.makedirs(destdir, exist_ok=True)
|
|
|
+ fname, headers = urllib.request.urlretrieve(url, dest)
|
|
|
+ print('file://%s' % os.path.realpath(fname))
|
|
|
|
|
|
|
|
|
def main():
|