Bugfix release v0.5.10
Fixed verbose == 0 to no longer produce output or attempt to reset the
terminal. Bug pointed out by Gary Lawrence Murphy.
Fixed bug with -m option.


file:d3db1a26620b1dd04aad26ca3c83b433b366f383 -> file:48ca2afac7ba8b842fcd8202f71f55256c008f45
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+mp3togo (0.5.10) unstable; urgency=low
+
+ * Made quiet mode really quiet. Fixed -m option.
+
+ -- Simeon Veldstra <reallifesim@gmail.com> Mon, 12 Feb 2007 19:25:48 -0800
+
mp3togo (0.5.9) unstable; urgency=low
* Added -u update switch for conditional --force. Thanks Mark J. Hewitt.
file:9de10c6c87670c0805d601688052ed070afccae4 -> file:834a64f089d2cfea8044768ba7fcaf6195832e97
--- a/debian/mp3togo.1
+++ b/debian/mp3togo.1
@@ -134,4 +134,4 @@ License can be found in /usr/share/commo
.PP
mp3togo can be found online at http://puddle.ca/mp3togo
-.\" created by instant / docbook-to-man, Sun 04 Feb 2007, 16:42
+.\" created by instant / docbook-to-man, Mon 12 Feb 2007, 19:29
file:25aaffbfb799c4b143a2a204e0093ed0ca00253b -> file:ba74ec7a745c717657b4493ed42d53b4df4f9f80
--- a/mp3togo/__init__.py
+++ b/mp3togo/__init__.py
@@ -21,5 +21,5 @@
# __all__ = ('converter', 'main', 'options', 'setup')
-version = '0.5.9'
+version = '0.5.10'
file:4ec6814c38ddeb1b4382ee34fc7a84c88bf63526 -> file:617c46556e1220ac0dc6efd99fc7ab3024e68010
--- a/mp3togo/conf.py
+++ b/mp3togo/conf.py
@@ -104,7 +104,7 @@ class Options(options.Options):
'''The encoder to use to create the output files. Options are wav, lame or oggenc.'''),
('encopts', 'E', 'encoder-options', '', None,
'''Compression options for the encoder.'''),
- ('compfactor', 'z', 'compression-factor', 16.0, None,
+ ('compfactor', 'z', 'compression-factor', 18.0, None,
'''If you change the lame options, you must change this factor to match the compression rate of the new options. This is used to estimate completed file size.'''),
('makecache', '', 'make-cache', '', self._absfile, '''Make an output file cache at the given path.'''),
('cachesize', '', '', 0L, None, ''),
file:a167abc0046dca23308027b915265a1f6e63e5e3 -> file:37c60f80e56193ccfe2497131e31cc8aa6e9515c
--- a/mp3togo/main.py
+++ b/mp3togo/main.py
@@ -140,8 +140,14 @@ def main(argv):
def execute_sequential(playlist, opts, cooked=None):
"""Run the conversions one at a time"""
- print "mp3togo %s\n" % mp3togo.version
- print "<space> or 'p' to pause, <esc> or 'q' to quit\n"
+ # shouldn't print if verbose is 0:
+ if opts['verbosity']:
+ tryp = conf.try_print
+ else:
+ tryp = lambda x: None
+
+ tryp("mp3togo %s\n\n" % mp3togo.version)
+ tryp("<space> or 'p' to pause, <esc> or 'q' to quit\n\n")
c = ''
start_time = time.time()
good_ones = 0
@@ -150,25 +156,27 @@ def execute_sequential(playlist, opts, c
try:
# Terminal sushi
- fd = sys.stdin.fileno()
- oldterm = termios.tcgetattr(fd)
- newattr = termios.tcgetattr(fd)
- newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
- termios.tcsetattr(fd, termios.TCSANOW, newattr)
-
- oldflags = fcntl.fcntl(fd, fcntl.F_GETFL)
- fcntl.fcntl(fd, fcntl.F_SETFL, oldflags | os.O_NONBLOCK)
-
+ raw = False
if opts['verbosity']:
- tryp = conf.try_print
- else:
- tryp = lambda x: None
+ try:
+ fd = sys.stdin.fileno()
+ oldterm = termios.tcgetattr(fd)
+ newattr = termios.tcgetattr(fd)
+ newattr[3] = newattr[3] & ~termios.ICANON & ~termios.ECHO
+ termios.tcsetattr(fd, termios.TCSANOW, newattr)
+ oldflags = fcntl.fcntl(fd, fcntl.F_GETFL)
+ fcntl.fcntl(fd, fcntl.F_SETFL, oldflags | os.O_NONBLOCK)
+ raw = True
+ except:
+ fail('Error setting the terminal to raw mode.\nIs this a tty?')
+
+ pl = pool.Pool(opts) # make a new one for every track? Huh?
for name in playlist:
track_start = time.time()
tryp("(%d/%d) %s: \n" % (playlist.cur_file() + 1, len(playlist), name))
trk = track.Track(name, opts, cooked)
- pl = pool.Pool(opts) # make a new one for every track? Huh?
+ #pl = pool.Pool(opts) # make a new one for every track? Huh?
if pl.add_track(trk):
tsk = trk.getfirst()
try:
@@ -229,8 +237,7 @@ def execute_sequential(playlist, opts, c
tryp("Undo: %s\n" % tsk.name)
tsk.undo()
tsk = tsk.prev()
- sys.exit(1)
- pass
+ break
else:
opts.log(1, "Out of space. Exiting.")
break
@@ -259,14 +266,15 @@ def execute_sequential(playlist, opts, c
bad_str = ", %d tracks failed." % bad_ones
else:
bad_str = "."
- #bytes = format_bytes(pl.produced_bytes) # you are using a new pool each time!
- tryp("\n%d tracks done%s %s total time elapsed.\n" %
- (good_ones, bad_str, ts))
+ bytes = format_bytes(pl.produced_bytes)
+ tryp("\n%s written for %d tracks%s %s total time elapsed.\n" %
+ (bytes, good_ones, bad_str, ts))
finally:
# Fry some fish:
- termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)
- fcntl.fcntl(fd, fcntl.F_SETFL, oldflags)
+ if raw:
+ termios.tcsetattr(fd, termios.TCSAFLUSH, oldterm)
+ fcntl.fcntl(fd, fcntl.F_SETFL, oldflags)
def format_time(tm):
@@ -286,14 +294,12 @@ def format_bytes(bytes):
k = 1024.0
m = 1024 * k
g = 1024 * m
- if 0 < bytes < k:
- ret = str(int(bytes/k)) + " KB"
- elif k <= bytes < m:
- ret = str(int(bytes/k)) + " KB"
- elif m <= bytes < g:
- ret = str(int(bytes/m)) + " MB"
+ if k <= bytes < m:
+ return "%.2f KB" % (bytes/k)
+ elif m <= bytes: # < g:
+ return "%.2f MB" % (bytes/m)
else:
- ret = str(bytes) + " Bytes"
+ return str(bytes) + " Bytes"
if __name__ == "__main__": main(sys.argv)
file:8d11771cb378db48717ed907b58b1ac27451ec70 -> file:98f3dce73c4b6312636e85d819396f0270a7e06a
--- a/mp3togo/track.py
+++ b/mp3togo/track.py
@@ -28,18 +28,11 @@ import mp3togo.task as task
import mp3togo.cache as cache
from mp3togo.helpers import helpers
-#helpers = mp3togo.helpers.helpers
-
-
READY = "ready"
RUNNING = "running"
DONE = 0
FAILED = None
-DOGGFACTOR = 10
-DMP3FACTOR = 10
-DFLACFACTOR = 3
-
class Track:
"""Encapsulate the transformation of a file."""
@@ -252,16 +245,6 @@ class Track:
tasks.append(job)
del job
- ## Consider the track done if the output file exists:
- #if os.path.exists(self._outname) and not opts['force']:
- # opts.log(1, "Skipping existing file: %s\n" % self._outname)
- # self._queue = tuple(tasks)
- # if self._hash and self._cache:
- # self._cache.release(self._hash)
- # for tsk in self._queue:
- # tsk._status = task.DONE
- # self._state = DONE
- # return
if not opts['force']:
if os.path.exists(self._outname):
# In update mode, consider the track done if an existing file is older than the source
@@ -275,6 +258,7 @@ class Track:
self._cache.release(self._hash)
for tsk in self._queue:
tsk._status = task.DONE
+ self.bytes = os.stat(self._outname).st_size
self._state = DONE
return
else:
@@ -286,6 +270,7 @@ class Track:
self._cache.release(self._hash)
for tsk in self._queue:
tsk._status = task.DONE
+ self.bytes = os.stat(self._outname).st_size
self._state = DONE
return