weboob-devel/contrib/plugin.video.videoobmc/resources/lib/base/weboobmc2.py
Laurent Bachelier 74a4ef6723 Use the print function everywhere
python modernize.py --no-six -f libmodernize.fixes.fix_print -w

With manual fixes as the import was put always on top.
2014-10-06 17:00:17 +02:00

81 lines
2.8 KiB
Python

#!/usr/bin/python
# -*- coding: utf-8 -*-
from __future__ import print_function
from weboob.tools.application.base import Application
import os
import re
import subprocess
class Weboobmc(Application):
def __init__(self, count=10):
Application.__init__(self)
self.count = int(count)
self._is_default_count = False
def update(self):
self.weboob.update()
def get_backend_icon(self, module):
minfo = self.weboob.repositories.get_module_info(module)
return self.weboob.repositories.get_module_icon_path(minfo)
def obj_to_filename(self, obj, dest=None, default=None):
"""
This method can be used to get a filename from an object, using a mask
filled by information of this object.
All patterns are braces-enclosed, and are name of available fields in
the object.
:param obj: object type obj: BaseObject param dest: dest given by user (default None)
type dest: str param default: default file mask (if not given, this is
:'{id}-{title}.{ext}') type default: str rtype: str
"""
if default is None:
default = '{id}-{title}.{ext}'
if dest is None:
dest = '.'
if os.path.isdir(dest):
dest = os.path.join(dest, default)
def repl(m):
field = m.group(1)
if hasattr(obj, field):
return re.sub('[?:/]', '-', '%s' % getattr(obj, field))
else:
return m.group(0)
return re.sub(r'\{(.+?)\}', repl, dest)
def download_obj(self, obj, dest):
def check_exec(executable):
with open('/dev/null', 'w') as devnull:
process = subprocess.Popen(['which', executable], stdout=devnull)
if process.wait() != 0:
print('Please install "%s"' % executable)
return False
return True
dest = self.obj_to_filename(obj, dest)
if obj.url.startswith('rtmp'):
if not check_exec('rtmpdump'):
return 1
args = ('rtmpdump', '-e', '-r', obj.url, '-o', dest)
elif obj.url.startswith('mms'):
if not check_exec('mimms'):
return 1
args = ('mimms', '-r', obj.url, dest)
elif u'm3u8' == obj.ext:
_dest, _ = os.path.splitext(dest)
dest = u'%s.%s' % (_dest, 'mp4')
args = ('wget',) + tuple(line for line in self.read_url(obj.url) if not line.startswith('#')) + ('-O', dest)
else:
if check_exec('wget'):
args = ('wget', '-c', obj.url, '-O', dest)
elif check_exec('curl'):
args = ('curl', '-C', '-', obj.url, '-o', dest)
else:
return 1
os.spawnlp(os.P_WAIT, args[0], *args)