work without network
This commit is contained in:
@@ -33,6 +33,7 @@ from morituri.program import cdrdao, cdparanoia
|
||||
from morituri.image import image
|
||||
|
||||
from morituri.extern.task import task, gstreamer
|
||||
from morituri.extern.musicbrainzngs import musicbrainz
|
||||
|
||||
|
||||
# FIXME: should Program have a runner ?
|
||||
@@ -297,10 +298,18 @@ class Program(log.Loggable):
|
||||
"""
|
||||
# FIXME: convert to nonblocking?
|
||||
import CDDB
|
||||
code, md = CDDB.query(cddbdiscid)
|
||||
self.debug('CDDB query result: %r, %r', code, md)
|
||||
if code == 200:
|
||||
return md['title']
|
||||
try:
|
||||
code, md = CDDB.query(cddbdiscid)
|
||||
self.debug('CDDB query result: %r, %r', code, md)
|
||||
if code == 200:
|
||||
return md['title']
|
||||
|
||||
except IOError, e:
|
||||
# FIXME: for some reason errno is a str ?
|
||||
if e.errno == 'socket error':
|
||||
self._stdout.write("Warning: network error: %r\n" % (e, ))
|
||||
else:
|
||||
raise
|
||||
|
||||
return None
|
||||
|
||||
@@ -325,6 +334,9 @@ class Program(log.Loggable):
|
||||
record=self._record)
|
||||
except mbngs.NotFoundException, e:
|
||||
break
|
||||
except musicbrainz.NetworkError, e:
|
||||
self._stdout.write("Warning: network error: %r\n" % (e, ))
|
||||
break
|
||||
except mbngs.MusicBrainzException, e:
|
||||
self._stdout.write("Warning: %r\n" % (e, ))
|
||||
time.sleep(5)
|
||||
|
||||
@@ -23,6 +23,8 @@
|
||||
import os
|
||||
import math
|
||||
import glob
|
||||
import urllib2
|
||||
import socket
|
||||
|
||||
import gobject
|
||||
gobject.threads_init()
|
||||
@@ -97,8 +99,9 @@ class _CD(logcommand.LogCommand):
|
||||
self.stdout.write('FreeDB identifies disc as %s\n' % cddbmd)
|
||||
|
||||
# also used by rip cd info
|
||||
if not getattr(self.options, 'unknown', False) and self.eject:
|
||||
self.program.ejectDevice(self.device)
|
||||
if not getattr(self.options, 'unknown', False):
|
||||
if self.eject:
|
||||
self.program.ejectDevice(self.device)
|
||||
return -1
|
||||
|
||||
# now, read the complete index table, which is slower
|
||||
@@ -478,7 +481,18 @@ Install pycdio and run 'rip offset find' to detect your drive's offset.
|
||||
self.stdout.write("AccurateRip URL %s\n" % url)
|
||||
|
||||
accucache = accurip.AccuCache()
|
||||
responses = accucache.retrieve(url)
|
||||
try:
|
||||
responses = accucache.retrieve(url)
|
||||
except urllib2.URLError, e:
|
||||
if isinstance(e.args[0], socket.gaierror):
|
||||
if e.args[0].errno == -2:
|
||||
self.stdout.write("Warning: network error: %r\n" % (
|
||||
e.args[0], ))
|
||||
responses = None
|
||||
else:
|
||||
raise
|
||||
else:
|
||||
raise
|
||||
|
||||
if not responses:
|
||||
self.stdout.write('Album not found in AccurateRip database\n')
|
||||
|
||||
Reference in New Issue
Block a user