fix when rtmpdump is missing and for canalplus

This commit is contained in:
Romain Bignon 2010-11-09 23:07:05 +01:00
commit 73cc25fadb

View file

@ -16,11 +16,10 @@
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
import errno
import logging
import os import os
from subprocess import Popen, PIPE from subprocess import Popen, PIPE
from weboob.tools.log import getLogger
__all__ = ['MediaPlayer'] __all__ = ['MediaPlayer']
@ -42,6 +41,9 @@ class MediaPlayer():
('xine', 'stdin:/'), ('xine', 'stdin:/'),
] ]
def __init__(self, logger=None):
self.logger = getLogger('mediaplayer', logger)
def get_player_name(self, preferred=None): def get_player_name(self, preferred=None):
player_names = preferred if preferred else [player[0] for player in self.PLAYERS] player_names = preferred if preferred else [player[0] for player in self.PLAYERS]
for player_name in player_names: for player_name in player_names:
@ -79,7 +81,8 @@ class MediaPlayer():
""" """
if not self._find_in_path(os.environ['PATH'], 'rtmpdump'): if not self._find_in_path(os.environ['PATH'], 'rtmpdump'):
raise OSError(errno.ENOENT, '"rtmpdump" binary not found') self.logger.warning('"rtmpdump" binary not found')
return self._play_default(media)
media_url = media.url media_url = media.url
try: try:
@ -87,10 +90,10 @@ class MediaPlayer():
rtmp = 'rtmpdump -r %s --swfVfy %s' % (media_url, player_url) rtmp = 'rtmpdump -r %s --swfVfy %s' % (media_url, player_url)
except AttributeError: except AttributeError:
logging.warning('Your media object does not have a "swf_player" attribute. SWF verification will be ' self.logger.warning('Your media object does not have a "swf_player" attribute. SWF verification will be '
'disabled and may prevent correct media playback.') 'disabled and may prevent correct media playback.')
rtmp = 'rtmpdump -r %s' % media_url return self._play_default(media)
rtmp += ' --quiet' rtmp += ' --quiet'