Merge pull request #109 from Freso/fix-morituri-references
Fix references to morituri.
This commit is contained in:
2
HACKING
2
HACKING
@@ -44,7 +44,7 @@ unicode
|
|||||||
- Use asserts liberally to ensure this so we catch problems earlier.
|
- Use asserts liberally to ensure this so we catch problems earlier.
|
||||||
- All gst.parse_launch() pipelines should be passed as utf-8; use
|
- All gst.parse_launch() pipelines should be passed as utf-8; use
|
||||||
encode('utf-8')
|
encode('utf-8')
|
||||||
- morituri.extern.log.log is not unicode-safe; don't pass it unicode objects;
|
- whipper.extern.log.log is not unicode-safe; don't pass it unicode objects;
|
||||||
for example, always use %r to log paths
|
for example, always use %r to log paths
|
||||||
- run with RIP_DEBUG=5 once in a while to catch unicode/logging errors.
|
- run with RIP_DEBUG=5 once in a while to catch unicode/logging errors.
|
||||||
- Also use unicode prefix/suffix in tempfile.* methods; to force unicode.
|
- Also use unicode prefix/suffix in tempfile.* methods; to force unicode.
|
||||||
|
|||||||
4
doc/.gitignore
vendored
4
doc/.gitignore
vendored
@@ -1,4 +1,4 @@
|
|||||||
morituri.ics
|
whipper.ics
|
||||||
morituri.rss2
|
whipper.rss2
|
||||||
reference
|
reference
|
||||||
rip.1
|
rip.1
|
||||||
|
|||||||
@@ -1,30 +1,30 @@
|
|||||||
EXTRA_DIST = morituri.rss2 morituri.ics $(man_MANS)
|
EXTRA_DIST = whipper.rss2 whipper.ics $(man_MANS)
|
||||||
DISTCLEANFILES = $(man_MANS)
|
DISTCLEANFILES = $(man_MANS)
|
||||||
|
|
||||||
all-local: feeds reference
|
all-local: feeds reference
|
||||||
|
|
||||||
if HAVE_EPYDOC
|
if HAVE_EPYDOC
|
||||||
reference: $(top_srcdir)/morituri/*.py feeds
|
reference: $(top_srcdir)/whipper/*.py feeds
|
||||||
epydoc -o reference $(top_srcdir)/morituri
|
epydoc -o reference $(top_srcdir)/whipper
|
||||||
else
|
else
|
||||||
reference:
|
reference:
|
||||||
@true
|
@true
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# generate feeds
|
# generate feeds
|
||||||
feeds: morituri.rss2 morituri.ics
|
feeds: whipper.rss2 whipper.ics
|
||||||
|
|
||||||
# don't fail fatally if user does not have RDF
|
# don't fail fatally if user does not have RDF
|
||||||
morituri.rss2: $(top_srcdir)/morituri.doap
|
whipper.rss2: $(top_srcdir)/whipper.doap
|
||||||
-moap doap -f $(top_srcdir)/morituri.doap rss > morituri.rss2
|
-moap doap -f $(top_srcdir)/whipper.doap rss > whipper.rss2
|
||||||
|
|
||||||
morituri.ics: $(top_srcdir)/morituri.doap
|
whipper.ics: $(top_srcdir)/whipper.doap
|
||||||
-moap doap -f $(top_srcdir)/morituri.doap ical > morituri.ics
|
-moap doap -f $(top_srcdir)/whipper.doap ical > whipper.ics
|
||||||
|
|
||||||
man_MANS = rip.1
|
man_MANS = rip.1
|
||||||
|
|
||||||
rip.1: $(top_srcdir)/morituri/extern/python-command/scripts/help2man $(top_srcdir)/morituri
|
rip.1: $(top_srcdir)/whipper/extern/python-command/scripts/help2man $(top_srcdir)/whipper
|
||||||
PYTHONPATH=$(top_srcdir) $(PYTHON) $(top_srcdir)/morituri/extern/python-command/scripts/help2man morituri.rip.main.Rip rip > rip.1
|
PYTHONPATH=$(top_srcdir) $(PYTHON) $(top_srcdir)/whipper/extern/python-command/scripts/help2man whipper.rip.main.Rip rip > rip.1
|
||||||
|
|
||||||
clean-local:
|
clean-local:
|
||||||
@rm -rf reference
|
@rm -rf reference
|
||||||
|
|||||||
@@ -1,21 +1,19 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_header -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_header -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|||||||
@@ -182,7 +182,7 @@ blacklist = [
|
|||||||
#warning: couldn't find real module for class xml.parsers.expat.ExpatError (module name: xml.parsers.expat)
|
#warning: couldn't find real module for class xml.parsers.expat.ExpatError (module name: xml.parsers.expat)
|
||||||
'xml.parsers.expat',
|
'xml.parsers.expat',
|
||||||
'unittest',
|
'unittest',
|
||||||
'morituri.extern.log.log',
|
'whipper.extern.log.log',
|
||||||
]
|
]
|
||||||
|
|
||||||
# ignore global variables not used if name is one of these values
|
# ignore global variables not used if name is one of these values
|
||||||
|
|||||||
BIN
morituri/test/cache/result/fe105a11.pickle
vendored
BIN
morituri/test/cache/result/fe105a11.pickle
vendored
Binary file not shown.
6
setup.py
6
setup.py
@@ -1,9 +1,9 @@
|
|||||||
from setuptools import setup, find_packages
|
from setuptools import setup, find_packages
|
||||||
from morituri import __version__ as morituri_version
|
from whipper import __version__ as whipper_version
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name="whipper",
|
name="whipper",
|
||||||
version=morituri_version,
|
version=whipper_version,
|
||||||
description="a secure cd ripper preferring accuracy over speed",
|
description="a secure cd ripper preferring accuracy over speed",
|
||||||
author=['Thomas Vander Stichele', 'Joe Lametta', 'Samantha Baldwin'],
|
author=['Thomas Vander Stichele', 'Joe Lametta', 'Samantha Baldwin'],
|
||||||
maintainer=['Joe Lametta', 'Samantha Baldwin'],
|
maintainer=['Joe Lametta', 'Samantha Baldwin'],
|
||||||
@@ -12,7 +12,7 @@ setup(
|
|||||||
packages=find_packages(),
|
packages=find_packages(),
|
||||||
entry_points={
|
entry_points={
|
||||||
'console_scripts': [
|
'console_scripts': [
|
||||||
'whipper = morituri.command.main:main'
|
'whipper = whipper.command.main:main'
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,29 +1,27 @@
|
|||||||
# -*- Mode: Python -*-
|
# -*- Mode: Python -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from morituri.command.basecommand import BaseCommand
|
from whipper.command.basecommand import BaseCommand
|
||||||
from morituri.common import accurip
|
from whipper.common import accurip
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -5,7 +5,7 @@ import argparse
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from morituri.common import drive
|
from whipper.common import drive
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -67,7 +67,7 @@ class BaseCommand():
|
|||||||
if not drives:
|
if not drives:
|
||||||
msg = 'No CD-DA drives found!'
|
msg = 'No CD-DA drives found!'
|
||||||
logger.critical(msg)
|
logger.critical(msg)
|
||||||
# morituri exited with return code 3 here
|
# whipper exited with return code 3 here
|
||||||
raise IOError(msg)
|
raise IOError(msg)
|
||||||
self.parser.add_argument('-d', '--device',
|
self.parser.add_argument('-d', '--device',
|
||||||
action="store",
|
action="store",
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
# -*- Mode: Python -*-
|
# -*- Mode: Python -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
@@ -30,12 +28,12 @@ import sys
|
|||||||
import gobject
|
import gobject
|
||||||
gobject.threads_init()
|
gobject.threads_init()
|
||||||
|
|
||||||
from morituri.command.basecommand import BaseCommand
|
from whipper.command.basecommand import BaseCommand
|
||||||
from morituri.common import (
|
from whipper.common import (
|
||||||
accurip, common, config, drive, program, task
|
accurip, common, config, drive, program, task
|
||||||
)
|
)
|
||||||
from morituri.program import cdrdao, cdparanoia, utils
|
from whipper.program import cdrdao, cdparanoia, utils
|
||||||
from morituri.result import result
|
from whipper.result import result
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -225,7 +223,7 @@ class Info(_CD):
|
|||||||
|
|
||||||
class Rip(_CD):
|
class Rip(_CD):
|
||||||
summary = "rip CD"
|
summary = "rip CD"
|
||||||
# see morituri.common.program.Program.getPath for expansion
|
# see whipper.common.program.Program.getPath for expansion
|
||||||
description = """
|
description = """
|
||||||
Rips a CD.
|
Rips a CD.
|
||||||
|
|
||||||
@@ -257,7 +255,7 @@ Log files will log the path to tracks relative to this directory.
|
|||||||
_CD.add_arguments(self.parser)
|
_CD.add_arguments(self.parser)
|
||||||
|
|
||||||
self.parser.add_argument('-L', '--logger',
|
self.parser.add_argument('-L', '--logger',
|
||||||
action="store", dest="logger", default='morituri',
|
action="store", dest="logger", default='whipper',
|
||||||
help="logger to use (choose from '" + "', '".join(loggers) + "')")
|
help="logger to use (choose from '" + "', '".join(loggers) + "')")
|
||||||
# FIXME: get from config
|
# FIXME: get from config
|
||||||
self.parser.add_argument('-o', '--offset',
|
self.parser.add_argument('-o', '--offset',
|
||||||
@@ -274,7 +272,7 @@ Log files will log the path to tracks relative to this directory.
|
|||||||
help="output directory; will be included in file paths in log")
|
help="output directory; will be included in file paths in log")
|
||||||
self.parser.add_argument('-W', '--working-directory',
|
self.parser.add_argument('-W', '--working-directory',
|
||||||
action="store", dest="working_directory",
|
action="store", dest="working_directory",
|
||||||
help="working directory; morituri will change to this directory "
|
help="working directory; whipper will change to this directory "
|
||||||
"and files will be created relative to it when not absolute")
|
"and files will be created relative to it when not absolute")
|
||||||
self.parser.add_argument('--track-template',
|
self.parser.add_argument('--track-template',
|
||||||
action="store", dest="track_template",
|
action="store", dest="track_template",
|
||||||
@@ -1,31 +1,29 @@
|
|||||||
# -*- Mode: Python -*-
|
# -*- Mode: Python -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from morituri.command.basecommand import BaseCommand
|
from whipper.command.basecommand import BaseCommand
|
||||||
from morituri.common import cache, task
|
from whipper.common import cache, task
|
||||||
from morituri.result import result
|
from whipper.result import result
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -89,7 +87,7 @@ class RCLog(BaseCommand):
|
|||||||
self.parser.add_argument(
|
self.parser.add_argument(
|
||||||
'-L', '--logger',
|
'-L', '--logger',
|
||||||
action="store", dest="logger",
|
action="store", dest="logger",
|
||||||
default='morituri',
|
default='whipper',
|
||||||
help="logger to use (choose from '" + "', '".join(loggers) + "')"
|
help="logger to use (choose from '" + "', '".join(loggers) + "')"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -136,7 +134,7 @@ class Checksum(BaseCommand):
|
|||||||
def do(self):
|
def do(self):
|
||||||
runner = task.SyncRunner()
|
runner = task.SyncRunner()
|
||||||
# here to avoid import gst eating our options
|
# here to avoid import gst eating our options
|
||||||
from morituri.common import checksum
|
from whipper.common import checksum
|
||||||
|
|
||||||
for f in self.options.files:
|
for f in self.options.files:
|
||||||
fromPath = unicode(f)
|
fromPath = unicode(f)
|
||||||
@@ -151,7 +149,7 @@ class Encode(BaseCommand):
|
|||||||
|
|
||||||
def add_arguments(self):
|
def add_arguments(self):
|
||||||
# here to avoid import gst eating our options
|
# here to avoid import gst eating our options
|
||||||
from morituri.common import encode
|
from whipper.common import encode
|
||||||
|
|
||||||
self.parser.add_argument('input', action='store',
|
self.parser.add_argument('input', action='store',
|
||||||
help="audio file to encode")
|
help="audio file to encode")
|
||||||
@@ -159,7 +157,7 @@ class Encode(BaseCommand):
|
|||||||
help="output path")
|
help="output path")
|
||||||
|
|
||||||
def do(self):
|
def do(self):
|
||||||
from morituri.common import encode
|
from whipper.common import encode
|
||||||
|
|
||||||
try:
|
try:
|
||||||
fromPath = unicode(self.options.input)
|
fromPath = unicode(self.options.input)
|
||||||
@@ -209,7 +207,7 @@ class Tag(BaseCommand):
|
|||||||
|
|
||||||
runner = task.SyncRunner()
|
runner = task.SyncRunner()
|
||||||
|
|
||||||
from morituri.common import encode
|
from whipper.common import encode
|
||||||
logger.debug('Reading tags from %s' % path.encode('utf-8'))
|
logger.debug('Reading tags from %s' % path.encode('utf-8'))
|
||||||
tagtask = encode.TagReadTask(path)
|
tagtask = encode.TagReadTask(path)
|
||||||
|
|
||||||
@@ -238,7 +236,7 @@ Example disc id: KnpGsLhvH.lPrNc1PBL21lb9Bg4-"""
|
|||||||
sys.stdout.write('Please specify a MusicBrainz disc id.\n')
|
sys.stdout.write('Please specify a MusicBrainz disc id.\n')
|
||||||
return 3
|
return 3
|
||||||
|
|
||||||
from morituri.common import mbngs
|
from whipper.common import mbngs
|
||||||
metadatas = mbngs.musicbrainz(discId, record=self.options.record)
|
metadatas = mbngs.musicbrainz(discId, record=self.options.record)
|
||||||
|
|
||||||
sys.stdout.write('%d releases\n' % len(metadatas))
|
sys.stdout.write('%d releases\n' % len(metadatas))
|
||||||
@@ -265,7 +263,7 @@ class CDParanoia(BaseCommand):
|
|||||||
description = summary
|
description = summary
|
||||||
|
|
||||||
def do(self):
|
def do(self):
|
||||||
from morituri.program import cdparanoia
|
from whipper.program import cdparanoia
|
||||||
version = cdparanoia.getCdParanoiaVersion()
|
version = cdparanoia.getCdParanoiaVersion()
|
||||||
sys.stdout.write("cdparanoia version: %s\n" % version)
|
sys.stdout.write("cdparanoia version: %s\n" % version)
|
||||||
|
|
||||||
@@ -275,7 +273,7 @@ class CDRDAO(BaseCommand):
|
|||||||
description = summary
|
description = summary
|
||||||
|
|
||||||
def do(self):
|
def do(self):
|
||||||
from morituri.program import cdrdao
|
from whipper.program import cdrdao
|
||||||
version = cdrdao.getCDRDAOVersion()
|
version = cdrdao.getCDRDAOVersion()
|
||||||
sys.stdout.write("cdrdao version: %s\n" % version)
|
sys.stdout.write("cdrdao version: %s\n" % version)
|
||||||
|
|
||||||
@@ -1,31 +1,29 @@
|
|||||||
# -*- Mode: Python -*-
|
# -*- Mode: Python -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from morituri.command.basecommand import BaseCommand
|
from whipper.command.basecommand import BaseCommand
|
||||||
from morituri.common import config, drive
|
from whipper.common import config, drive
|
||||||
from morituri.extern.task import task
|
from whipper.extern.task import task
|
||||||
from morituri.program import cdparanoia
|
from whipper.program import cdparanoia
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -1,34 +1,32 @@
|
|||||||
# -*- Mode: Python -*-
|
# -*- Mode: Python -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
from morituri.command.basecommand import BaseCommand
|
from whipper.command.basecommand import BaseCommand
|
||||||
from morituri.common import accurip, config, program
|
from whipper.common import accurip, config, program
|
||||||
from morituri.common import encode
|
from whipper.common import encode
|
||||||
from morituri.extern.task import task
|
from whipper.extern.task import task
|
||||||
from morituri.image import image
|
from whipper.image import image
|
||||||
from morituri.result import result
|
from whipper.result import result
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -6,20 +6,20 @@ import sys
|
|||||||
import pkg_resources
|
import pkg_resources
|
||||||
import musicbrainzngs
|
import musicbrainzngs
|
||||||
|
|
||||||
import morituri
|
import whipper
|
||||||
|
|
||||||
from morituri.command import cd, offset, drive, image, accurip, debug
|
from whipper.command import cd, offset, drive, image, accurip, debug
|
||||||
from morituri.command.basecommand import BaseCommand
|
from whipper.command.basecommand import BaseCommand
|
||||||
from morituri.common import common, directory
|
from whipper.common import common, directory
|
||||||
from morituri.extern.task import task
|
from whipper.extern.task import task
|
||||||
from morituri.program.utils import eject_device
|
from whipper.program.utils import eject_device
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
# set user agent
|
# set user agent
|
||||||
musicbrainzngs.set_useragent("whipper", morituri.__version__,
|
musicbrainzngs.set_useragent("whipper", whipper.__version__,
|
||||||
"https://github.com/JoeLametta/whipper")
|
"https://github.com/JoeLametta/whipper")
|
||||||
# register plugins with pkg_resources
|
# register plugins with pkg_resources
|
||||||
distributions, _ = pkg_resources.working_set.find_plugins(
|
distributions, _ = pkg_resources.working_set.find_plugins(
|
||||||
@@ -92,5 +92,5 @@ You can get help on subcommands by using the -h option to the subcommand.
|
|||||||
self.parser.print_help()
|
self.parser.print_help()
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
if self.options.version:
|
if self.options.version:
|
||||||
print "whipper %s" % morituri.__version__
|
print "whipper %s" % whipper.__version__
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
# -*- Mode: Python -*-
|
# -*- Mode: Python -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import argparse
|
import argparse
|
||||||
import os
|
import os
|
||||||
@@ -28,13 +26,13 @@ import tempfile
|
|||||||
import gobject
|
import gobject
|
||||||
gobject.threads_init()
|
gobject.threads_init()
|
||||||
|
|
||||||
from morituri.command.basecommand import BaseCommand
|
from whipper.command.basecommand import BaseCommand
|
||||||
from morituri.common import accurip, common, config, drive, program
|
from whipper.common import accurip, common, config, drive, program
|
||||||
from morituri.common import task as ctask
|
from whipper.common import task as ctask
|
||||||
from morituri.program import cdrdao, cdparanoia, utils
|
from whipper.program import cdrdao, cdparanoia, utils
|
||||||
from morituri.common import checksum
|
from whipper.common import checksum
|
||||||
|
|
||||||
from morituri.extern.task import task
|
from whipper.extern.task import task
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -198,7 +196,7 @@ CD in the AccurateRip database."""
|
|||||||
logger.debug('Ripping track %r with offset %d ...', track, offset)
|
logger.debug('Ripping track %r with offset %d ...', track, offset)
|
||||||
|
|
||||||
fd, path = tempfile.mkstemp(
|
fd, path = tempfile.mkstemp(
|
||||||
suffix=u'.track%02d.offset%d.morituri.wav' % (
|
suffix=u'.track%02d.offset%d.whipper.wav' % (
|
||||||
track, offset))
|
track, offset))
|
||||||
os.close(fd)
|
os.close(fd)
|
||||||
|
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_accurip -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_accurip -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import errno
|
import errno
|
||||||
import os
|
import os
|
||||||
@@ -26,7 +24,7 @@ import struct
|
|||||||
import urlparse
|
import urlparse
|
||||||
import urllib2
|
import urllib2
|
||||||
|
|
||||||
from morituri.common import directory
|
from whipper.common import directory
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_cache -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_cache -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import os.path
|
import os.path
|
||||||
@@ -26,8 +24,8 @@ import glob
|
|||||||
import tempfile
|
import tempfile
|
||||||
import shutil
|
import shutil
|
||||||
|
|
||||||
from morituri.result import result
|
from whipper.result import result
|
||||||
from morituri.common import directory
|
from whipper.common import directory
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -81,7 +79,7 @@ class Persister:
|
|||||||
|
|
||||||
# pickle
|
# pickle
|
||||||
self.object = obj
|
self.object = obj
|
||||||
(fd, path) = tempfile.mkstemp(suffix='.morituri.pickle')
|
(fd, path) = tempfile.mkstemp(suffix='.whipper.pickle')
|
||||||
handle = os.fdopen(fd, 'wb')
|
handle = os.fdopen(fd, 'wb')
|
||||||
import pickle
|
import pickle
|
||||||
pickle.dump(obj, handle, 2)
|
pickle.dump(obj, handle, 2)
|
||||||
@@ -1,32 +1,30 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_checksum -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_checksum -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import binascii
|
import binascii
|
||||||
import wave
|
import wave
|
||||||
|
|
||||||
|
|
||||||
from morituri.extern.task import task as etask
|
from whipper.extern.task import task as etask
|
||||||
|
|
||||||
from morituri.program.arc import accuraterip_checksum
|
from whipper.program.arc import accuraterip_checksum
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_common -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_common -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
import os
|
import os
|
||||||
@@ -27,7 +25,7 @@ import commands
|
|||||||
import math
|
import math
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
from morituri.extern import asyncsub
|
from whipper.extern import asyncsub
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_config -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_config -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import ConfigParser
|
import ConfigParser
|
||||||
import codecs
|
import codecs
|
||||||
@@ -27,7 +25,7 @@ import shutil
|
|||||||
import tempfile
|
import tempfile
|
||||||
import urllib
|
import urllib
|
||||||
|
|
||||||
from morituri.common import directory
|
from whipper.common import directory
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -51,7 +49,7 @@ class Config:
|
|||||||
len(self._parser.sections()))
|
len(self._parser.sections()))
|
||||||
|
|
||||||
def write(self):
|
def write(self):
|
||||||
fd, path = tempfile.mkstemp(suffix=u'.moriturirc')
|
fd, path = tempfile.mkstemp(suffix=u'.whipperrc')
|
||||||
handle = os.fdopen(fd, 'w')
|
handle = os.fdopen(fd, 'w')
|
||||||
self._parser.write(handle)
|
self._parser.write(handle)
|
||||||
handle.close()
|
handle.close()
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_directory -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_directory -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2013 Thomas Vander Stichele
|
# Copyright (C) 2013 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
from os import getenv, makedirs
|
from os import getenv, makedirs
|
||||||
from os.path import join, expanduser, exists
|
from os.path import join, expanduser, exists
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_drive -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_drive -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
@@ -1,32 +1,30 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_encode -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_encode -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
|
||||||
from mutagen.flac import FLAC
|
from mutagen.flac import FLAC
|
||||||
|
|
||||||
from morituri.extern.task import task
|
from whipper.extern.task import task
|
||||||
|
|
||||||
from morituri.program import sox
|
from whipper.program import sox
|
||||||
from morituri.program import flac
|
from whipper.program import flac
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -65,7 +63,7 @@ class FlacEncodeTask(task.Task):
|
|||||||
|
|
||||||
# TODO: Wizzup: Do we really want this as 'Task'...?
|
# TODO: Wizzup: Do we really want this as 'Task'...?
|
||||||
# I only made it a task for now because that it's easier to integrate in
|
# I only made it a task for now because that it's easier to integrate in
|
||||||
# program/cdparanoia.py - where morituri currently does the tagging.
|
# program/cdparanoia.py - where whipper currently does the tagging.
|
||||||
# We should just move the tagging to a more sensible place.
|
# We should just move the tagging to a more sensible place.
|
||||||
class TaggingTask(task.Task):
|
class TaggingTask(task.Task):
|
||||||
description = 'Writing tags to FLAC'
|
description = 'Writing tags to FLAC'
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_mbngs -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_mbngs -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009, 2010, 2011 Thomas Vander Stichele
|
# Copyright (C) 2009, 2010, 2011 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Handles communication with the musicbrainz server using NGS.
|
Handles communication with the musicbrainz server using NGS.
|
||||||
@@ -90,7 +88,7 @@ def _record(record, which, name, what):
|
|||||||
# optionally record to disc as a JSON serialization
|
# optionally record to disc as a JSON serialization
|
||||||
if record:
|
if record:
|
||||||
import json
|
import json
|
||||||
filename = 'morituri.%s.%s.json' % (which, name)
|
filename = 'whipper.%s.%s.json' % (which, name)
|
||||||
handle = open(filename, 'w')
|
handle = open(filename, 'w')
|
||||||
handle.write(json.dumps(what))
|
handle.write(json.dumps(what))
|
||||||
handle.close()
|
handle.close()
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_path -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_path -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import re
|
import re
|
||||||
|
|
||||||
@@ -1,27 +1,25 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_program -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_program -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009, 2010, 2011 Thomas Vander Stichele
|
# Copyright (C) 2009, 2010, 2011 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Common functionality and class for all programs using morituri.
|
Common functionality and class for all programs using whipper.
|
||||||
"""
|
"""
|
||||||
|
|
||||||
import musicbrainzngs
|
import musicbrainzngs
|
||||||
@@ -29,11 +27,11 @@ import os
|
|||||||
import sys
|
import sys
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from morituri.common import common, mbngs, cache, path
|
from whipper.common import common, mbngs, cache, path
|
||||||
from morituri.common import checksum
|
from whipper.common import checksum
|
||||||
from morituri.program import cdrdao, cdparanoia
|
from whipper.program import cdrdao, cdparanoia
|
||||||
from morituri.image import image
|
from whipper.image import image
|
||||||
from morituri.extern.task import task
|
from whipper.extern.task import task
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -51,7 +49,7 @@ class Program:
|
|||||||
@ivar result: the rip's result
|
@ivar result: the rip's result
|
||||||
@type result: L{result.RipResult}
|
@type result: L{result.RipResult}
|
||||||
@type outdir: unicode
|
@type outdir: unicode
|
||||||
@type config: L{morituri.common.config.Config}
|
@type config: L{whipper.common.config.Config}
|
||||||
"""
|
"""
|
||||||
|
|
||||||
cuePath = None
|
cuePath = None
|
||||||
@@ -286,7 +284,7 @@ class Program:
|
|||||||
|
|
||||||
def getMusicBrainz(self, ittoc, mbdiscid, release=None, country=None, prompt=False):
|
def getMusicBrainz(self, ittoc, mbdiscid, release=None, country=None, prompt=False):
|
||||||
"""
|
"""
|
||||||
@type ittoc: L{morituri.image.table.Table}
|
@type ittoc: L{whipper.image.table.Table}
|
||||||
"""
|
"""
|
||||||
# look up disc on musicbrainz
|
# look up disc on musicbrainz
|
||||||
self._stdout.write('Disc duration: %s, %d audio tracks\n' % (
|
self._stdout.write('Disc duration: %s, %d audio tracks\n' % (
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_renamer -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_renamer -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import tempfile
|
import tempfile
|
||||||
@@ -201,7 +199,7 @@ class RenameInFile(Operation):
|
|||||||
|
|
||||||
def do(self):
|
def do(self):
|
||||||
with open(self._path) as handle:
|
with open(self._path) as handle:
|
||||||
(fd, name) = tempfile.mkstemp(suffix='.morituri')
|
(fd, name) = tempfile.mkstemp(suffix='.whipper')
|
||||||
|
|
||||||
for s in handle:
|
for s in handle:
|
||||||
os.write(fd, s.replace(self._source, self._destination))
|
os.write(fd, s.replace(self._source, self._destination))
|
||||||
@@ -5,8 +5,8 @@ import os
|
|||||||
import signal
|
import signal
|
||||||
import subprocess
|
import subprocess
|
||||||
|
|
||||||
from morituri.extern import asyncsub
|
from whipper.extern import asyncsub
|
||||||
from morituri.extern.task import task
|
from whipper.extern.task import task
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
# -*- Mode: Python -*-
|
# -*- Mode: Python -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_image_cue -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_image_cue -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Reading .cue files
|
Reading .cue files
|
||||||
@@ -29,8 +27,8 @@ See http://digitalx.org/cuesheetsyntax.php
|
|||||||
import re
|
import re
|
||||||
import codecs
|
import codecs
|
||||||
|
|
||||||
from morituri.common import common
|
from whipper.common import common
|
||||||
from morituri.image import table
|
from whipper.image import table
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_image_image -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_image_image -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Wrap on-disk CD images based on the .cue file.
|
Wrap on-disk CD images based on the .cue file.
|
||||||
@@ -26,12 +24,12 @@ Wrap on-disk CD images based on the .cue file.
|
|||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from morituri.common import encode
|
from whipper.common import encode
|
||||||
from morituri.common import common
|
from whipper.common import common
|
||||||
from morituri.common import checksum
|
from whipper.common import checksum
|
||||||
from morituri.image import cue, table
|
from whipper.image import cue, table
|
||||||
from morituri.extern.task import task
|
from whipper.extern.task import task
|
||||||
from morituri.program.soxi import AudioLengthTask
|
from whipper.program.soxi import AudioLengthTask
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_image_table -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_image_table -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Wrap Table of Contents.
|
Wrap Table of Contents.
|
||||||
@@ -28,9 +26,9 @@ import copy
|
|||||||
import urllib
|
import urllib
|
||||||
import urlparse
|
import urlparse
|
||||||
|
|
||||||
import morituri
|
import whipper
|
||||||
|
|
||||||
from morituri.common import common
|
from whipper.common import common
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -527,7 +525,7 @@ class Table(object):
|
|||||||
discId1[-1], discId1[-2], discId1[-3],
|
discId1[-1], discId1[-2], discId1[-3],
|
||||||
self.getAudioTracks(), discId1, discId2, self.getCDDBDiscId())
|
self.getAudioTracks(), discId1, discId2, self.getCDDBDiscId())
|
||||||
|
|
||||||
def cue(self, cuePath='', program='morituri'):
|
def cue(self, cuePath='', program='whipper'):
|
||||||
"""
|
"""
|
||||||
@param cuePath: path to the cue file to be written. If empty,
|
@param cuePath: path to the cue file to be written. If empty,
|
||||||
will treat paths as if in current directory.
|
will treat paths as if in current directory.
|
||||||
@@ -556,7 +554,7 @@ class Table(object):
|
|||||||
|
|
||||||
assert self.hasTOC(), "Table does not represent a full CD TOC"
|
assert self.hasTOC(), "Table does not represent a full CD TOC"
|
||||||
lines.append('REM DISCID %s' % self.getCDDBDiscId().upper())
|
lines.append('REM DISCID %s' % self.getCDDBDiscId().upper())
|
||||||
lines.append('REM COMMENT "%s %s"' % (program, morituri.__version__))
|
lines.append('REM COMMENT "%s %s"' % (program, whipper.__version__))
|
||||||
|
|
||||||
if self.catalog:
|
if self.catalog:
|
||||||
lines.append("CATALOG %s" % self.catalog)
|
lines.append("CATALOG %s" % self.catalog)
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_image_toc -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_image_toc -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
Reading .toc files
|
Reading .toc files
|
||||||
@@ -29,8 +27,8 @@ The .toc file format is described in the man page of cdrdao
|
|||||||
import re
|
import re
|
||||||
import codecs
|
import codecs
|
||||||
|
|
||||||
from morituri.common import common
|
from whipper.common import common
|
||||||
from morituri.image import table
|
from whipper.image import table
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_program_cdparanoia -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_program_cdparanoia -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import errno
|
import errno
|
||||||
import os
|
import os
|
||||||
@@ -29,10 +27,10 @@ import subprocess
|
|||||||
import tempfile
|
import tempfile
|
||||||
import time
|
import time
|
||||||
|
|
||||||
from morituri.common import common
|
from whipper.common import common
|
||||||
from morituri.common import task as ctask
|
from whipper.common import task as ctask
|
||||||
from morituri.extern import asyncsub
|
from whipper.extern import asyncsub
|
||||||
from morituri.extern.task import task
|
from whipper.extern.task import task
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -454,12 +452,12 @@ class ReadVerifyTrackTask(task.MultiSeparateTask):
|
|||||||
if taglist:
|
if taglist:
|
||||||
logger.debug('read and verify with taglist %r', taglist)
|
logger.debug('read and verify with taglist %r', taglist)
|
||||||
# FIXME: choose a dir on the same disk/dir as the final path
|
# FIXME: choose a dir on the same disk/dir as the final path
|
||||||
fd, tmppath = tempfile.mkstemp(suffix='.morituri.wav')
|
fd, tmppath = tempfile.mkstemp(suffix='.whipper.wav')
|
||||||
tmppath = unicode(tmppath)
|
tmppath = unicode(tmppath)
|
||||||
os.close(fd)
|
os.close(fd)
|
||||||
self._tmpwavpath = tmppath
|
self._tmpwavpath = tmppath
|
||||||
|
|
||||||
from morituri.common import checksum
|
from whipper.common import checksum
|
||||||
|
|
||||||
self.tasks = []
|
self.tasks = []
|
||||||
self.tasks.append(
|
self.tasks.append(
|
||||||
@@ -484,7 +482,7 @@ class ReadVerifyTrackTask(task.MultiSeparateTask):
|
|||||||
self._tmppath = tmpoutpath
|
self._tmppath = tmpoutpath
|
||||||
self.path = path
|
self.path = path
|
||||||
|
|
||||||
from morituri.common import encode
|
from whipper.common import encode
|
||||||
|
|
||||||
self.tasks.append(encode.FlacEncodeTask(tmppath, tmpoutpath))
|
self.tasks.append(encode.FlacEncodeTask(tmppath, tmpoutpath))
|
||||||
|
|
||||||
@@ -581,7 +579,7 @@ class AnalyzeTask(ctask.PopenTask):
|
|||||||
|
|
||||||
def __init__(self, device=None):
|
def __init__(self, device=None):
|
||||||
# cdparanoia -A *always* writes cdparanoia.log
|
# cdparanoia -A *always* writes cdparanoia.log
|
||||||
self.cwd = tempfile.mkdtemp(suffix='.morituri.cache')
|
self.cwd = tempfile.mkdtemp(suffix='.whipper.cache')
|
||||||
self.command = ['cdparanoia', '-A']
|
self.command = ['cdparanoia', '-A']
|
||||||
if device:
|
if device:
|
||||||
self.command += ['-d', device]
|
self.command += ['-d', device]
|
||||||
@@ -3,8 +3,8 @@ import re
|
|||||||
import tempfile
|
import tempfile
|
||||||
from subprocess import Popen, PIPE
|
from subprocess import Popen, PIPE
|
||||||
|
|
||||||
from morituri.common.common import EjectError
|
from whipper.common.common import EjectError
|
||||||
from morituri.image.toc import TocFile
|
from whipper.image.toc import TocFile
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -6,7 +6,7 @@ logger = logging.getLogger(__name__)
|
|||||||
def encode(infile, outfile):
|
def encode(infile, outfile):
|
||||||
"""
|
"""
|
||||||
Encodes infile to outfile, with flac.
|
Encodes infile to outfile, with flac.
|
||||||
Uses '-f' because morituri already creates the file.
|
Uses '-f' because whipper already creates the file.
|
||||||
"""
|
"""
|
||||||
try:
|
try:
|
||||||
# TODO: Replace with Popen so that we can catch stderr and write it to
|
# TODO: Replace with Popen so that we can catch stderr and write it to
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
import os
|
import os
|
||||||
|
|
||||||
from morituri.common import common
|
from whipper.common import common
|
||||||
from morituri.common import task as ctask
|
from whipper.common import task as ctask
|
||||||
|
|
||||||
import logging
|
import logging
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
import time
|
import time
|
||||||
import hashlib
|
import hashlib
|
||||||
|
|
||||||
import morituri
|
import whipper
|
||||||
|
|
||||||
from morituri.common import common
|
from whipper.common import common
|
||||||
from morituri.result import result
|
from whipper.result import result
|
||||||
|
|
||||||
|
|
||||||
class MorituriLogger(result.Logger):
|
class WhipperLogger(result.Logger):
|
||||||
|
|
||||||
_accuratelyRipped = 0
|
_accuratelyRipped = 0
|
||||||
_inARDatabase = 0
|
_inARDatabase = 0
|
||||||
@@ -26,7 +26,7 @@ class MorituriLogger(result.Logger):
|
|||||||
|
|
||||||
# Ripper version
|
# Ripper version
|
||||||
lines.append("Log created by: whipper %s (internal logger)" %
|
lines.append("Log created by: whipper %s (internal logger)" %
|
||||||
morituri.__version__)
|
whipper.__version__)
|
||||||
|
|
||||||
# Rip date
|
# Rip date
|
||||||
date = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime(epoch)).strip()
|
date = time.strftime("%Y-%m-%dT%H:%M:%SZ", time.gmtime(epoch)).strip()
|
||||||
@@ -1,24 +1,22 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_result_result -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_result_result -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
# Morituri - for those about to RIP
|
|
||||||
|
|
||||||
# Copyright (C) 2009 Thomas Vander Stichele
|
# Copyright (C) 2009 Thomas Vander Stichele
|
||||||
|
|
||||||
# This file is part of morituri.
|
# This file is part of whipper.
|
||||||
#
|
#
|
||||||
# morituri is free software: you can redistribute it and/or modify
|
# whipper is free software: you can redistribute it and/or modify
|
||||||
# it under the terms of the GNU General Public License as published by
|
# it under the terms of the GNU General Public License as published by
|
||||||
# the Free Software Foundation, either version 3 of the License, or
|
# the Free Software Foundation, either version 3 of the License, or
|
||||||
# (at your option) any later version.
|
# (at your option) any later version.
|
||||||
#
|
#
|
||||||
# morituri is distributed in the hope that it will be useful,
|
# whipper is distributed in the hope that it will be useful,
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
# GNU General Public License for more details.
|
# GNU General Public License for more details.
|
||||||
#
|
#
|
||||||
# You should have received a copy of the GNU General Public License
|
# You should have received a copy of the GNU General Public License
|
||||||
# along with morituri. If not, see <http://www.gnu.org/licenses/>.
|
# along with whipper. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import pkg_resources
|
import pkg_resources
|
||||||
import time
|
import time
|
||||||
@@ -83,7 +81,7 @@ class RipResult:
|
|||||||
|
|
||||||
@ivar offset: sample read offset
|
@ivar offset: sample read offset
|
||||||
@ivar table: the full index table
|
@ivar table: the full index table
|
||||||
@type table: L{morituri.image.table.Table}
|
@type table: L{whipper.image.table.Table}
|
||||||
|
|
||||||
@ivar vendor: vendor of the CD drive
|
@ivar vendor: vendor of the CD drive
|
||||||
@ivar model: model of the CD drive
|
@ivar model: model of the CD drive
|
||||||
@@ -149,22 +147,22 @@ class Logger(object):
|
|||||||
|
|
||||||
|
|
||||||
class EntryPoint(object):
|
class EntryPoint(object):
|
||||||
name = 'morituri'
|
name = 'whipper'
|
||||||
|
|
||||||
def load(self):
|
def load(self):
|
||||||
from morituri.result import logger
|
from whipper.result import logger
|
||||||
return logger.MorituriLogger
|
return logger.WhipperLogger
|
||||||
|
|
||||||
|
|
||||||
def getLoggers():
|
def getLoggers():
|
||||||
"""
|
"""
|
||||||
Get all logger plugins with entry point 'morituri.logger'.
|
Get all logger plugins with entry point 'whipper.logger'.
|
||||||
|
|
||||||
@rtype: dict of C{str} -> C{Logger}
|
@rtype: dict of C{str} -> C{Logger}
|
||||||
"""
|
"""
|
||||||
d = {}
|
d = {}
|
||||||
|
|
||||||
pluggables = list(pkg_resources.iter_entry_points("morituri.logger"))
|
pluggables = list(pkg_resources.iter_entry_points("whipper.logger"))
|
||||||
for entrypoint in [EntryPoint(), ] + pluggables:
|
for entrypoint in [EntryPoint(), ] + pluggables:
|
||||||
plugin_class = entrypoint.load()
|
plugin_class = entrypoint.load()
|
||||||
d[entrypoint.name] = plugin_class
|
d[entrypoint.name] = plugin_class
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
REM DISCID AD0BE00D
|
REM DISCID AD0BE00D
|
||||||
REM COMMENT "morituri 0.5.1"
|
REM COMMENT "whipper 0.5.1"
|
||||||
FILE "data.wav" WAVE
|
FILE "data.wav" WAVE
|
||||||
TRACK 01 AUDIO
|
TRACK 01 AUDIO
|
||||||
PREGAP 03:22:70
|
PREGAP 03:22:70
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
REM DISCID BE08990D
|
REM DISCID BE08990D
|
||||||
REM COMMENT "morituri 0.5.1"
|
REM COMMENT "whipper 0.5.1"
|
||||||
CATALOG 0652637280326
|
CATALOG 0652637280326
|
||||||
PERFORMER "THE BREEDERS"
|
PERFORMER "THE BREEDERS"
|
||||||
TITLE "MOUNTAIN BATTLES"
|
TITLE "MOUNTAIN BATTLES"
|
||||||
903
whipper/test/cache/result/fe105a11.pickle
vendored
Normal file
903
whipper/test/cache/result/fe105a11.pickle
vendored
Normal file
@@ -0,0 +1,903 @@
|
|||||||
|
(iwhipper.result.result
|
||||||
|
RipResult
|
||||||
|
p1
|
||||||
|
(dp2
|
||||||
|
S'vendor'
|
||||||
|
p3
|
||||||
|
S'PLEXTOR '
|
||||||
|
p4
|
||||||
|
sS'artist'
|
||||||
|
p5
|
||||||
|
S"Destiny's Child"
|
||||||
|
p6
|
||||||
|
sS'title'
|
||||||
|
p7
|
||||||
|
S"The Writing's on the Wall"
|
||||||
|
p8
|
||||||
|
sS'tracks'
|
||||||
|
p9
|
||||||
|
(lp10
|
||||||
|
(iwhipper.result.result
|
||||||
|
TrackResult
|
||||||
|
p11
|
||||||
|
(dp12
|
||||||
|
S'testcrc'
|
||||||
|
p13
|
||||||
|
I938873735
|
||||||
|
sS'quality'
|
||||||
|
p14
|
||||||
|
F1
|
||||||
|
sS'number'
|
||||||
|
p15
|
||||||
|
I1
|
||||||
|
sS'filename'
|
||||||
|
p16
|
||||||
|
Vwhipper/Destiny's Child - The Writing's on the Wall/01. Destiny's Child - Intro (The Writing's on the Wall).flac
|
||||||
|
p17
|
||||||
|
sS'peak'
|
||||||
|
p18
|
||||||
|
F0.988555908203125
|
||||||
|
sS'pregap'
|
||||||
|
p19
|
||||||
|
I0
|
||||||
|
sS'copycrc'
|
||||||
|
p20
|
||||||
|
I938873735
|
||||||
|
sba(iwhipper.result.result
|
||||||
|
TrackResult
|
||||||
|
p21
|
||||||
|
(dp22
|
||||||
|
g13
|
||||||
|
I764981533
|
||||||
|
sg14
|
||||||
|
F1
|
||||||
|
sg15
|
||||||
|
I2
|
||||||
|
sg16
|
||||||
|
Vwhipper/Destiny's Child - The Writing's on the Wall/02. Destiny's Child - So Good.flac
|
||||||
|
p23
|
||||||
|
sg18
|
||||||
|
F0.988555908203125
|
||||||
|
sg19
|
||||||
|
I0
|
||||||
|
sg20
|
||||||
|
I764981533
|
||||||
|
sba(iwhipper.result.result
|
||||||
|
TrackResult
|
||||||
|
p24
|
||||||
|
(dp25
|
||||||
|
g13
|
||||||
|
I4263524715
|
||||||
|
sg14
|
||||||
|
F1
|
||||||
|
sg15
|
||||||
|
I3
|
||||||
|
sg16
|
||||||
|
Vwhipper/Destiny's Child - The Writing's on the Wall/03. Destiny's Child - Bills, Bills, Bills.flac
|
||||||
|
p26
|
||||||
|
sg18
|
||||||
|
F0.988555908203125
|
||||||
|
sg19
|
||||||
|
I0
|
||||||
|
sg20
|
||||||
|
I4263524715
|
||||||
|
sba(iwhipper.result.result
|
||||||
|
TrackResult
|
||||||
|
p27
|
||||||
|
(dp28
|
||||||
|
g13
|
||||||
|
I30436888
|
||||||
|
sg14
|
||||||
|
F1
|
||||||
|
sg15
|
||||||
|
I4
|
||||||
|
sg16
|
||||||
|
Vwhipper/Destiny's Child - The Writing's on the Wall/04. Destiny's Child - Confessions (feat. Missy Elliott).flac
|
||||||
|
p29
|
||||||
|
sg18
|
||||||
|
F0.9322509765625
|
||||||
|
sg19
|
||||||
|
I0
|
||||||
|
sg20
|
||||||
|
I30436888
|
||||||
|
sba(iwhipper.result.result
|
||||||
|
TrackResult
|
||||||
|
p30
|
||||||
|
(dp31
|
||||||
|
g13
|
||||||
|
I1780180644
|
||||||
|
sg14
|
||||||
|
F1
|
||||||
|
sg15
|
||||||
|
I5
|
||||||
|
sg16
|
||||||
|
Vwhipper/Destiny's Child - The Writing's on the Wall/05. Destiny's Child - Bug a Boo.flac
|
||||||
|
p32
|
||||||
|
sg18
|
||||||
|
F0.988555908203125
|
||||||
|
sg19
|
||||||
|
I0
|
||||||
|
sg20
|
||||||
|
I1780180644
|
||||||
|
sba(iwhipper.result.result
|
||||||
|
TrackResult
|
||||||
|
p33
|
||||||
|
(dp34
|
||||||
|
g13
|
||||||
|
I2209417071
|
||||||
|
sg14
|
||||||
|
F1
|
||||||
|
sg15
|
||||||
|
I6
|
||||||
|
sg16
|
||||||
|
Vwhipper/Destiny's Child - The Writing's on the Wall/06. Destiny's Child - Temptation.flac
|
||||||
|
p35
|
||||||
|
sg18
|
||||||
|
F0.988555908203125
|
||||||
|
sg19
|
||||||
|
I0
|
||||||
|
sg20
|
||||||
|
I2209417071
|
||||||
|
sba(iwhipper.result.result
|
||||||
|
TrackResult
|
||||||
|
p36
|
||||||
|
(dp37
|
||||||
|
g13
|
||||||
|
I3797794701
|
||||||
|
sg14
|
||||||
|
F1
|
||||||
|
sg15
|
||||||
|
I7
|
||||||
|
sg16
|
||||||
|
Vwhipper/Destiny's Child - The Writing's on the Wall/07. Destiny's Child - Now That She's Gone.flac
|
||||||
|
p38
|
||||||
|
sg18
|
||||||
|
F0.98748779296875
|
||||||
|
sg19
|
||||||
|
I0
|
||||||
|
sg20
|
||||||
|
I3797794701
|
||||||
|
sba(iwhipper.result.result
|
||||||
|
TrackResult
|
||||||
|
p39
|
||||||
|
(dp40
|
||||||
|
g13
|
||||||
|
I3950896430
|
||||||
|
sg14
|
||||||
|
F1
|
||||||
|
sg15
|
||||||
|
I8
|
||||||
|
sg16
|
||||||
|
Vwhipper/Destiny's Child - The Writing's on the Wall/08. Destiny's Child - Where'd You Go.flac
|
||||||
|
p41
|
||||||
|
sg18
|
||||||
|
F0.987518310546875
|
||||||
|
sg19
|
||||||
|
I0
|
||||||
|
sg20
|
||||||
|
I3950896430
|
||||||
|
sba(iwhipper.result.result
|
||||||
|
TrackResult
|
||||||
|
p42
|
||||||
|
(dp43
|
||||||
|
g13
|
||||||
|
I1794899732
|
||||||
|
sg14
|
||||||
|
F1
|
||||||
|
sg15
|
||||||
|
I9
|
||||||
|
sg16
|
||||||
|
Vwhipper/Destiny's Child - The Writing's on the Wall/09. Destiny's Child - Hey Ladies.flac
|
||||||
|
p44
|
||||||
|
sg18
|
||||||
|
F0.98748779296875
|
||||||
|
sg19
|
||||||
|
I0
|
||||||
|
sg20
|
||||||
|
I1794899732
|
||||||
|
sba(iwhipper.result.result
|
||||||
|
TrackResult
|
||||||
|
p45
|
||||||
|
(dp46
|
||||||
|
g13
|
||||||
|
I1955082442
|
||||||
|
sg14
|
||||||
|
F1
|
||||||
|
sg15
|
||||||
|
I10
|
||||||
|
sg16
|
||||||
|
Vwhipper/Destiny's Child - The Writing's on the Wall/10. Destiny's Child - If You Leave (feat. Next).flac
|
||||||
|
p47
|
||||||
|
sg18
|
||||||
|
F0.987518310546875
|
||||||
|
sg19
|
||||||
|
I0
|
||||||
|
sg20
|
||||||
|
I1955082442
|
||||||
|
sba(iwhipper.result.result
|
||||||
|
TrackResult
|
||||||
|
p48
|
||||||
|
(dp49
|
||||||
|
g13
|
||||||
|
I1068452097
|
||||||
|
sg14
|
||||||
|
F1
|
||||||
|
sg15
|
||||||
|
I11
|
||||||
|
sg16
|
||||||
|
Vwhipper/Destiny's Child - The Writing's on the Wall/11. Destiny's Child - Jumpin', Jumpin'.flac
|
||||||
|
p50
|
||||||
|
sg18
|
||||||
|
F0.987518310546875
|
||||||
|
sg19
|
||||||
|
I0
|
||||||
|
sg20
|
||||||
|
I1068452097
|
||||||
|
sba(iwhipper.result.result
|
||||||
|
TrackResult
|
||||||
|
p51
|
||||||
|
(dp52
|
||||||
|
g13
|
||||||
|
I745616805
|
||||||
|
sg14
|
||||||
|
F1
|
||||||
|
sg15
|
||||||
|
I12
|
||||||
|
sg16
|
||||||
|
Vwhipper/Destiny's Child - The Writing's on the Wall/12. Destiny's Child - Say My Name.flac
|
||||||
|
p53
|
||||||
|
sg18
|
||||||
|
F0.98748779296875
|
||||||
|
sg19
|
||||||
|
I0
|
||||||
|
sg20
|
||||||
|
I745616805
|
||||||
|
sba(iwhipper.result.result
|
||||||
|
TrackResult
|
||||||
|
p54
|
||||||
|
(dp55
|
||||||
|
g13
|
||||||
|
I4044254516
|
||||||
|
sg14
|
||||||
|
F1
|
||||||
|
sg15
|
||||||
|
I13
|
||||||
|
sg16
|
||||||
|
Vwhipper/Destiny's Child - The Writing's on the Wall/13. Destiny's Child - She Can't Love You.flac
|
||||||
|
p56
|
||||||
|
sg18
|
||||||
|
F0.98748779296875
|
||||||
|
sg19
|
||||||
|
I0
|
||||||
|
sg20
|
||||||
|
I4044254516
|
||||||
|
sba(iwhipper.result.result
|
||||||
|
TrackResult
|
||||||
|
p57
|
||||||
|
(dp58
|
||||||
|
g13
|
||||||
|
I1397142025
|
||||||
|
sg14
|
||||||
|
F1
|
||||||
|
sg15
|
||||||
|
I14
|
||||||
|
sg16
|
||||||
|
Vwhipper/Destiny's Child - The Writing's on the Wall/14. Destiny's Child - Stay.flac
|
||||||
|
p59
|
||||||
|
sg18
|
||||||
|
F0.98748779296875
|
||||||
|
sg19
|
||||||
|
I0
|
||||||
|
sg20
|
||||||
|
I1397142025
|
||||||
|
sba(iwhipper.result.result
|
||||||
|
TrackResult
|
||||||
|
p60
|
||||||
|
(dp61
|
||||||
|
g13
|
||||||
|
I379991554
|
||||||
|
sg14
|
||||||
|
F1
|
||||||
|
sg15
|
||||||
|
I15
|
||||||
|
sg16
|
||||||
|
Vwhipper/Destiny's Child - The Writing's on the Wall/15. Destiny's Child - Sweet Sixteen.flac
|
||||||
|
p62
|
||||||
|
sg18
|
||||||
|
F0.98748779296875
|
||||||
|
sg19
|
||||||
|
I0
|
||||||
|
sg20
|
||||||
|
I379991554
|
||||||
|
sba(iwhipper.result.result
|
||||||
|
TrackResult
|
||||||
|
p63
|
||||||
|
(dp64
|
||||||
|
g13
|
||||||
|
I554404073
|
||||||
|
sg14
|
||||||
|
F1
|
||||||
|
sg15
|
||||||
|
I16
|
||||||
|
sg16
|
||||||
|
Vwhipper/Destiny's Child - The Writing's on the Wall/16. Destiny's Child - Outro (Amazing Grace... Dedicated to Andretta Tillman).flac
|
||||||
|
p65
|
||||||
|
sg18
|
||||||
|
F0.987396240234375
|
||||||
|
sg19
|
||||||
|
I0
|
||||||
|
sg20
|
||||||
|
I554404073
|
||||||
|
sba(iwhipper.result.result
|
||||||
|
TrackResult
|
||||||
|
p66
|
||||||
|
(dp67
|
||||||
|
g13
|
||||||
|
I1166447811
|
||||||
|
sg14
|
||||||
|
F1
|
||||||
|
sg15
|
||||||
|
I17
|
||||||
|
sg16
|
||||||
|
Vwhipper/Destiny's Child - The Writing's on the Wall/17. Destiny's Child - Get on the Bus.flac
|
||||||
|
p68
|
||||||
|
sg18
|
||||||
|
F0.988494873046875
|
||||||
|
sg19
|
||||||
|
I0
|
||||||
|
sg20
|
||||||
|
I1166447811
|
||||||
|
sbasS'offset'
|
||||||
|
p69
|
||||||
|
I48
|
||||||
|
sS'table'
|
||||||
|
p70
|
||||||
|
ccopy_reg
|
||||||
|
_reconstructor
|
||||||
|
p71
|
||||||
|
(cwhipper.image.table
|
||||||
|
Table
|
||||||
|
p72
|
||||||
|
c__builtin__
|
||||||
|
object
|
||||||
|
p73
|
||||||
|
NtRp74
|
||||||
|
(dp75
|
||||||
|
S'catalog'
|
||||||
|
p76
|
||||||
|
V5099749439429
|
||||||
|
p77
|
||||||
|
sg9
|
||||||
|
(lp78
|
||||||
|
(iwhipper.image.table
|
||||||
|
Track
|
||||||
|
p79
|
||||||
|
(dp80
|
||||||
|
S'isrc'
|
||||||
|
p81
|
||||||
|
VUSSM19901053
|
||||||
|
p82
|
||||||
|
sS'audio'
|
||||||
|
p83
|
||||||
|
I01
|
||||||
|
sg15
|
||||||
|
I1
|
||||||
|
sS'cdtext'
|
||||||
|
p84
|
||||||
|
(dp85
|
||||||
|
sS'indexes'
|
||||||
|
p86
|
||||||
|
(dp87
|
||||||
|
I1
|
||||||
|
(iwhipper.image.table
|
||||||
|
Index
|
||||||
|
p88
|
||||||
|
(dp89
|
||||||
|
S'relative'
|
||||||
|
p90
|
||||||
|
I0
|
||||||
|
sS'path'
|
||||||
|
p91
|
||||||
|
g17
|
||||||
|
sS'counter'
|
||||||
|
p92
|
||||||
|
I1
|
||||||
|
sg15
|
||||||
|
I1
|
||||||
|
sS'absolute'
|
||||||
|
p93
|
||||||
|
I0
|
||||||
|
sbssba(iwhipper.image.table
|
||||||
|
Track
|
||||||
|
p94
|
||||||
|
(dp95
|
||||||
|
g81
|
||||||
|
VUSSM19901043
|
||||||
|
p96
|
||||||
|
sg83
|
||||||
|
I01
|
||||||
|
sg15
|
||||||
|
I2
|
||||||
|
sg84
|
||||||
|
(dp97
|
||||||
|
sg86
|
||||||
|
(dp98
|
||||||
|
I1
|
||||||
|
(iwhipper.image.table
|
||||||
|
Index
|
||||||
|
p99
|
||||||
|
(dp100
|
||||||
|
g90
|
||||||
|
I0
|
||||||
|
sg91
|
||||||
|
g23
|
||||||
|
sg92
|
||||||
|
I2
|
||||||
|
sg15
|
||||||
|
I1
|
||||||
|
sg93
|
||||||
|
I9435
|
||||||
|
sbssba(iwhipper.image.table
|
||||||
|
Track
|
||||||
|
p101
|
||||||
|
(dp102
|
||||||
|
g81
|
||||||
|
VUSSM19900561
|
||||||
|
p103
|
||||||
|
sg83
|
||||||
|
I01
|
||||||
|
sg15
|
||||||
|
I3
|
||||||
|
sg84
|
||||||
|
(dp104
|
||||||
|
sg86
|
||||||
|
(dp105
|
||||||
|
I1
|
||||||
|
(iwhipper.image.table
|
||||||
|
Index
|
||||||
|
p106
|
||||||
|
(dp107
|
||||||
|
g90
|
||||||
|
I0
|
||||||
|
sg91
|
||||||
|
g26
|
||||||
|
sg92
|
||||||
|
I3
|
||||||
|
sg15
|
||||||
|
I1
|
||||||
|
sg93
|
||||||
|
I23980
|
||||||
|
sbssba(iwhipper.image.table
|
||||||
|
Track
|
||||||
|
p108
|
||||||
|
(dp109
|
||||||
|
g81
|
||||||
|
VUSSM19901050
|
||||||
|
p110
|
||||||
|
sg83
|
||||||
|
I01
|
||||||
|
sg15
|
||||||
|
I4
|
||||||
|
sg84
|
||||||
|
(dp111
|
||||||
|
sg86
|
||||||
|
(dp112
|
||||||
|
I1
|
||||||
|
(iwhipper.image.table
|
||||||
|
Index
|
||||||
|
p113
|
||||||
|
(dp114
|
||||||
|
g90
|
||||||
|
I0
|
||||||
|
sg91
|
||||||
|
g29
|
||||||
|
sg92
|
||||||
|
I4
|
||||||
|
sg15
|
||||||
|
I1
|
||||||
|
sg93
|
||||||
|
I43182
|
||||||
|
sbssba(iwhipper.image.table
|
||||||
|
Track
|
||||||
|
p115
|
||||||
|
(dp116
|
||||||
|
g81
|
||||||
|
VUSSM19901045
|
||||||
|
p117
|
||||||
|
sg83
|
||||||
|
I01
|
||||||
|
sg15
|
||||||
|
I5
|
||||||
|
sg84
|
||||||
|
(dp118
|
||||||
|
sg86
|
||||||
|
(dp119
|
||||||
|
I1
|
||||||
|
(iwhipper.image.table
|
||||||
|
Index
|
||||||
|
p120
|
||||||
|
(dp121
|
||||||
|
g90
|
||||||
|
I0
|
||||||
|
sg91
|
||||||
|
g32
|
||||||
|
sg92
|
||||||
|
I5
|
||||||
|
sg15
|
||||||
|
I1
|
||||||
|
sg93
|
||||||
|
I65482
|
||||||
|
sbssba(iwhipper.image.table
|
||||||
|
Track
|
||||||
|
p122
|
||||||
|
(dp123
|
||||||
|
g81
|
||||||
|
VUSSM19901046
|
||||||
|
p124
|
||||||
|
sg83
|
||||||
|
I01
|
||||||
|
sg15
|
||||||
|
I6
|
||||||
|
sg84
|
||||||
|
(dp125
|
||||||
|
sg86
|
||||||
|
(dp126
|
||||||
|
I1
|
||||||
|
(iwhipper.image.table
|
||||||
|
Index
|
||||||
|
p127
|
||||||
|
(dp128
|
||||||
|
g90
|
||||||
|
I0
|
||||||
|
sg91
|
||||||
|
g35
|
||||||
|
sg92
|
||||||
|
I6
|
||||||
|
sg15
|
||||||
|
I1
|
||||||
|
sg93
|
||||||
|
I81415
|
||||||
|
sbssba(iwhipper.image.table
|
||||||
|
Track
|
||||||
|
p129
|
||||||
|
(dp130
|
||||||
|
g81
|
||||||
|
VUSSM19901049
|
||||||
|
p131
|
||||||
|
sg83
|
||||||
|
I01
|
||||||
|
sg15
|
||||||
|
I7
|
||||||
|
sg84
|
||||||
|
(dp132
|
||||||
|
sg86
|
||||||
|
(dp133
|
||||||
|
I1
|
||||||
|
(iwhipper.image.table
|
||||||
|
Index
|
||||||
|
p134
|
||||||
|
(dp135
|
||||||
|
g90
|
||||||
|
I0
|
||||||
|
sg91
|
||||||
|
g38
|
||||||
|
sg92
|
||||||
|
I7
|
||||||
|
sg15
|
||||||
|
I1
|
||||||
|
sg93
|
||||||
|
I99835
|
||||||
|
sbssba(iwhipper.image.table
|
||||||
|
Track
|
||||||
|
p136
|
||||||
|
(dp137
|
||||||
|
g81
|
||||||
|
VUSSM19901048
|
||||||
|
p138
|
||||||
|
sg83
|
||||||
|
I01
|
||||||
|
sg15
|
||||||
|
I8
|
||||||
|
sg84
|
||||||
|
(dp139
|
||||||
|
sg86
|
||||||
|
(dp140
|
||||||
|
I1
|
||||||
|
(iwhipper.image.table
|
||||||
|
Index
|
||||||
|
p141
|
||||||
|
(dp142
|
||||||
|
g90
|
||||||
|
I0
|
||||||
|
sg91
|
||||||
|
g41
|
||||||
|
sg92
|
||||||
|
I8
|
||||||
|
sg15
|
||||||
|
I1
|
||||||
|
sg93
|
||||||
|
I124995
|
||||||
|
sbssba(iwhipper.image.table
|
||||||
|
Track
|
||||||
|
p143
|
||||||
|
(dp144
|
||||||
|
g81
|
||||||
|
VUSSM19901044
|
||||||
|
p145
|
||||||
|
sg83
|
||||||
|
I01
|
||||||
|
sg15
|
||||||
|
I9
|
||||||
|
sg84
|
||||||
|
(dp146
|
||||||
|
sg86
|
||||||
|
(dp147
|
||||||
|
I1
|
||||||
|
(iwhipper.image.table
|
||||||
|
Index
|
||||||
|
p148
|
||||||
|
(dp149
|
||||||
|
g90
|
||||||
|
I0
|
||||||
|
sg91
|
||||||
|
g44
|
||||||
|
sg92
|
||||||
|
I9
|
||||||
|
sg15
|
||||||
|
I1
|
||||||
|
sg93
|
||||||
|
I144140
|
||||||
|
sbssba(iwhipper.image.table
|
||||||
|
Track
|
||||||
|
p150
|
||||||
|
(dp151
|
||||||
|
g81
|
||||||
|
VUSSM19901055
|
||||||
|
p152
|
||||||
|
sg83
|
||||||
|
I01
|
||||||
|
sg15
|
||||||
|
I10
|
||||||
|
sg84
|
||||||
|
(dp153
|
||||||
|
sg86
|
||||||
|
(dp154
|
||||||
|
I1
|
||||||
|
(iwhipper.image.table
|
||||||
|
Index
|
||||||
|
p155
|
||||||
|
(dp156
|
||||||
|
g90
|
||||||
|
I0
|
||||||
|
sg91
|
||||||
|
g47
|
||||||
|
sg92
|
||||||
|
I10
|
||||||
|
sg15
|
||||||
|
I1
|
||||||
|
sg93
|
||||||
|
I163335
|
||||||
|
sbssba(iwhipper.image.table
|
||||||
|
Track
|
||||||
|
p157
|
||||||
|
(dp158
|
||||||
|
g81
|
||||||
|
VUSSM19901054
|
||||||
|
p159
|
||||||
|
sg83
|
||||||
|
I01
|
||||||
|
sg15
|
||||||
|
I11
|
||||||
|
sg84
|
||||||
|
(dp160
|
||||||
|
sg86
|
||||||
|
(dp161
|
||||||
|
I1
|
||||||
|
(iwhipper.image.table
|
||||||
|
Index
|
||||||
|
p162
|
||||||
|
(dp163
|
||||||
|
g90
|
||||||
|
I0
|
||||||
|
sg91
|
||||||
|
g50
|
||||||
|
sg92
|
||||||
|
I11
|
||||||
|
sg15
|
||||||
|
I1
|
||||||
|
sg93
|
||||||
|
I183972
|
||||||
|
sbssba(iwhipper.image.table
|
||||||
|
Track
|
||||||
|
p164
|
||||||
|
(dp165
|
||||||
|
g81
|
||||||
|
VUSSM19901056
|
||||||
|
p166
|
||||||
|
sg83
|
||||||
|
I01
|
||||||
|
sg15
|
||||||
|
I12
|
||||||
|
sg84
|
||||||
|
(dp167
|
||||||
|
sg86
|
||||||
|
(dp168
|
||||||
|
I1
|
||||||
|
(iwhipper.image.table
|
||||||
|
Index
|
||||||
|
p169
|
||||||
|
(dp170
|
||||||
|
g90
|
||||||
|
I0
|
||||||
|
sg91
|
||||||
|
g53
|
||||||
|
sg92
|
||||||
|
I12
|
||||||
|
sg15
|
||||||
|
I1
|
||||||
|
sg93
|
||||||
|
I201237
|
||||||
|
sbssba(iwhipper.image.table
|
||||||
|
Track
|
||||||
|
p171
|
||||||
|
(dp172
|
||||||
|
g81
|
||||||
|
VUSSM19901056
|
||||||
|
p173
|
||||||
|
sg83
|
||||||
|
I01
|
||||||
|
sg15
|
||||||
|
I13
|
||||||
|
sg84
|
||||||
|
(dp174
|
||||||
|
sg86
|
||||||
|
(dp175
|
||||||
|
I1
|
||||||
|
(iwhipper.image.table
|
||||||
|
Index
|
||||||
|
p176
|
||||||
|
(dp177
|
||||||
|
g90
|
||||||
|
I0
|
||||||
|
sg91
|
||||||
|
g56
|
||||||
|
sg92
|
||||||
|
I13
|
||||||
|
sg15
|
||||||
|
I1
|
||||||
|
sg93
|
||||||
|
I221587
|
||||||
|
sbssba(iwhipper.image.table
|
||||||
|
Track
|
||||||
|
p178
|
||||||
|
(dp179
|
||||||
|
g81
|
||||||
|
VUSSM19901051
|
||||||
|
p180
|
||||||
|
sg83
|
||||||
|
I01
|
||||||
|
sg15
|
||||||
|
I14
|
||||||
|
sg84
|
||||||
|
(dp181
|
||||||
|
sg86
|
||||||
|
(dp182
|
||||||
|
I1
|
||||||
|
(iwhipper.image.table
|
||||||
|
Index
|
||||||
|
p183
|
||||||
|
(dp184
|
||||||
|
g90
|
||||||
|
I0
|
||||||
|
sg91
|
||||||
|
g59
|
||||||
|
sg92
|
||||||
|
I14
|
||||||
|
sg15
|
||||||
|
I1
|
||||||
|
sg93
|
||||||
|
I239952
|
||||||
|
sbssba(iwhipper.image.table
|
||||||
|
Track
|
||||||
|
p185
|
||||||
|
(dp186
|
||||||
|
g81
|
||||||
|
VUSSM19901047
|
||||||
|
p187
|
||||||
|
sg83
|
||||||
|
I01
|
||||||
|
sg15
|
||||||
|
I15
|
||||||
|
sg84
|
||||||
|
(dp188
|
||||||
|
sg86
|
||||||
|
(dp189
|
||||||
|
I1
|
||||||
|
(iwhipper.image.table
|
||||||
|
Index
|
||||||
|
p190
|
||||||
|
(dp191
|
||||||
|
g90
|
||||||
|
I0
|
||||||
|
sg91
|
||||||
|
g62
|
||||||
|
sg92
|
||||||
|
I15
|
||||||
|
sg15
|
||||||
|
I1
|
||||||
|
sg93
|
||||||
|
I261795
|
||||||
|
sbssba(iwhipper.image.table
|
||||||
|
Track
|
||||||
|
p192
|
||||||
|
(dp193
|
||||||
|
g81
|
||||||
|
VUSSM19901052
|
||||||
|
p194
|
||||||
|
sg83
|
||||||
|
I01
|
||||||
|
sg15
|
||||||
|
I16
|
||||||
|
sg84
|
||||||
|
(dp195
|
||||||
|
sg86
|
||||||
|
(dp196
|
||||||
|
I1
|
||||||
|
(iwhipper.image.table
|
||||||
|
Index
|
||||||
|
p197
|
||||||
|
(dp198
|
||||||
|
g90
|
||||||
|
I0
|
||||||
|
sg91
|
||||||
|
g65
|
||||||
|
sg92
|
||||||
|
I16
|
||||||
|
sg15
|
||||||
|
I1
|
||||||
|
sg93
|
||||||
|
I280750
|
||||||
|
sbssba(iwhipper.image.table
|
||||||
|
Track
|
||||||
|
p199
|
||||||
|
(dp200
|
||||||
|
g83
|
||||||
|
I01
|
||||||
|
sg15
|
||||||
|
I17
|
||||||
|
sg84
|
||||||
|
(dp201
|
||||||
|
sg86
|
||||||
|
(dp202
|
||||||
|
I1
|
||||||
|
(iwhipper.image.table
|
||||||
|
Index
|
||||||
|
p203
|
||||||
|
(dp204
|
||||||
|
g90
|
||||||
|
I0
|
||||||
|
sg91
|
||||||
|
g68
|
||||||
|
sg92
|
||||||
|
I17
|
||||||
|
sg15
|
||||||
|
I1
|
||||||
|
sg93
|
||||||
|
I292627
|
||||||
|
sbssbasS'logName'
|
||||||
|
p205
|
||||||
|
S'Table 0x023B9D90'
|
||||||
|
p206
|
||||||
|
sg84
|
||||||
|
(dp207
|
||||||
|
sS'instanceVersion'
|
||||||
|
p208
|
||||||
|
I2
|
||||||
|
sS'leadout'
|
||||||
|
p209
|
||||||
|
I313955
|
||||||
|
sbsS'model'
|
||||||
|
p210
|
||||||
|
S'DVDR PX-810SA '
|
||||||
|
p211
|
||||||
|
sb.
|
||||||
@@ -5,7 +5,7 @@ import re
|
|||||||
import os
|
import os
|
||||||
import sys
|
import sys
|
||||||
|
|
||||||
import morituri
|
import whipper
|
||||||
|
|
||||||
# twisted's unittests have skip support, standard unittest don't
|
# twisted's unittests have skip support, standard unittest don't
|
||||||
from twisted.trial import unittest
|
from twisted.trial import unittest
|
||||||
@@ -70,8 +70,8 @@ class TestCase(unittest.TestCase):
|
|||||||
ret = open(os.path.join(os.path.dirname(__file__), name)).read(
|
ret = open(os.path.join(os.path.dirname(__file__), name)).read(
|
||||||
).decode('utf-8')
|
).decode('utf-8')
|
||||||
ret = re.sub(
|
ret = re.sub(
|
||||||
'REM COMMENT "Morituri.*',
|
'REM COMMENT "whipper.*',
|
||||||
'REM COMMENT "Morituri %s"' % (morituri.__version__),
|
'REM COMMENT "whipper %s"' % (whipper.__version__),
|
||||||
ret, re.MULTILINE)
|
ret, re.MULTILINE)
|
||||||
|
|
||||||
return ret
|
return ret
|
||||||
@@ -80,7 +80,7 @@ class UnicodeTestMixin:
|
|||||||
# A helper mixin to skip tests if we're not in a UTF-8 locale
|
# A helper mixin to skip tests if we're not in a UTF-8 locale
|
||||||
|
|
||||||
try:
|
try:
|
||||||
os.stat(u'morituri.test.B\xeate Noire.empty')
|
os.stat(u'whipper.test.B\xeate Noire.empty')
|
||||||
except UnicodeEncodeError:
|
except UnicodeEncodeError:
|
||||||
skip = 'No UTF-8 locale'
|
skip = 'No UTF-8 locale'
|
||||||
except OSError:
|
except OSError:
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
REM DISCID B90C650D
|
REM DISCID B90C650D
|
||||||
REM COMMENT "morituri 0.5.1"
|
REM COMMENT "whipper 0.5.1"
|
||||||
CATALOG 0602517642256
|
CATALOG 0602517642256
|
||||||
FILE "data.wav" WAVE
|
FILE "data.wav" WAVE
|
||||||
TRACK 01 AUDIO
|
TRACK 01 AUDIO
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
(lp0
|
(lp0
|
||||||
(imorituri.result.result
|
(iwhipper.result.result
|
||||||
TrackResult
|
TrackResult
|
||||||
p1
|
p1
|
||||||
(dp2
|
(dp2
|
||||||
@@ -22,7 +22,7 @@ sS'filename'
|
|||||||
p8
|
p8
|
||||||
V/home/thomas/Bloc Party - Silent Alarm/00. Bloc Party - Hidden Track One Audio.flac
|
V/home/thomas/Bloc Party - Silent Alarm/00. Bloc Party - Hidden Track One Audio.flac
|
||||||
p9
|
p9
|
||||||
sba(imorituri.result.result
|
sba(iwhipper.result.result
|
||||||
TrackResult
|
TrackResult
|
||||||
p10
|
p10
|
||||||
(dp11
|
(dp11
|
||||||
@@ -57,7 +57,7 @@ p18
|
|||||||
I15220
|
I15220
|
||||||
sg5
|
sg5
|
||||||
L1476997036L
|
L1476997036L
|
||||||
sba(imorituri.result.result
|
sba(iwhipper.result.result
|
||||||
TrackResult
|
TrackResult
|
||||||
p19
|
p19
|
||||||
(dp20
|
(dp20
|
||||||
@@ -86,7 +86,7 @@ sg18
|
|||||||
I0
|
I0
|
||||||
sg5
|
sg5
|
||||||
L2118180996L
|
L2118180996L
|
||||||
sba(imorituri.result.result
|
sba(iwhipper.result.result
|
||||||
TrackResult
|
TrackResult
|
||||||
p22
|
p22
|
||||||
(dp23
|
(dp23
|
||||||
@@ -115,7 +115,7 @@ sg18
|
|||||||
I0
|
I0
|
||||||
sg5
|
sg5
|
||||||
L2397618238L
|
L2397618238L
|
||||||
sba(imorituri.result.result
|
sba(iwhipper.result.result
|
||||||
TrackResult
|
TrackResult
|
||||||
p25
|
p25
|
||||||
(dp26
|
(dp26
|
||||||
@@ -144,7 +144,7 @@ sg18
|
|||||||
I0
|
I0
|
||||||
sg5
|
sg5
|
||||||
L1340624205L
|
L1340624205L
|
||||||
sba(imorituri.result.result
|
sba(iwhipper.result.result
|
||||||
TrackResult
|
TrackResult
|
||||||
p28
|
p28
|
||||||
(dp29
|
(dp29
|
||||||
@@ -173,7 +173,7 @@ sg18
|
|||||||
I72
|
I72
|
||||||
sg5
|
sg5
|
||||||
L183201985L
|
L183201985L
|
||||||
sba(imorituri.result.result
|
sba(iwhipper.result.result
|
||||||
TrackResult
|
TrackResult
|
||||||
p31
|
p31
|
||||||
(dp32
|
(dp32
|
||||||
@@ -202,7 +202,7 @@ sg18
|
|||||||
I41
|
I41
|
||||||
sg5
|
sg5
|
||||||
L221401921L
|
L221401921L
|
||||||
sba(imorituri.result.result
|
sba(iwhipper.result.result
|
||||||
TrackResult
|
TrackResult
|
||||||
p34
|
p34
|
||||||
(dp35
|
(dp35
|
||||||
@@ -231,7 +231,7 @@ sg18
|
|||||||
I17
|
I17
|
||||||
sg5
|
sg5
|
||||||
L3133726276L
|
L3133726276L
|
||||||
sba(imorituri.result.result
|
sba(iwhipper.result.result
|
||||||
TrackResult
|
TrackResult
|
||||||
p37
|
p37
|
||||||
(dp38
|
(dp38
|
||||||
@@ -260,7 +260,7 @@ sg18
|
|||||||
I4
|
I4
|
||||||
sg5
|
sg5
|
||||||
L2318646110L
|
L2318646110L
|
||||||
sba(imorituri.result.result
|
sba(iwhipper.result.result
|
||||||
TrackResult
|
TrackResult
|
||||||
p40
|
p40
|
||||||
(dp41
|
(dp41
|
||||||
@@ -289,7 +289,7 @@ sg18
|
|||||||
I11
|
I11
|
||||||
sg5
|
sg5
|
||||||
L3145161267L
|
L3145161267L
|
||||||
sba(imorituri.result.result
|
sba(iwhipper.result.result
|
||||||
TrackResult
|
TrackResult
|
||||||
p43
|
p43
|
||||||
(dp44
|
(dp44
|
||||||
@@ -318,7 +318,7 @@ sg18
|
|||||||
I0
|
I0
|
||||||
sg5
|
sg5
|
||||||
L3022257630L
|
L3022257630L
|
||||||
sba(imorituri.result.result
|
sba(iwhipper.result.result
|
||||||
TrackResult
|
TrackResult
|
||||||
p46
|
p46
|
||||||
(dp47
|
(dp47
|
||||||
@@ -347,7 +347,7 @@ sg18
|
|||||||
I43
|
I43
|
||||||
sg5
|
sg5
|
||||||
L2011827324L
|
L2011827324L
|
||||||
sba(imorituri.result.result
|
sba(iwhipper.result.result
|
||||||
TrackResult
|
TrackResult
|
||||||
p49
|
p49
|
||||||
(dp50
|
(dp50
|
||||||
@@ -376,7 +376,7 @@ sg18
|
|||||||
I116
|
I116
|
||||||
sg5
|
sg5
|
||||||
L933582879L
|
L933582879L
|
||||||
sba(imorituri.result.result
|
sba(iwhipper.result.result
|
||||||
TrackResult
|
TrackResult
|
||||||
p52
|
p52
|
||||||
(dp53
|
(dp53
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_accurip -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_accurip -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from morituri.common import accurip
|
from whipper.common import accurip
|
||||||
|
|
||||||
from morituri.test import common as tcommon
|
from whipper.test import common as tcommon
|
||||||
|
|
||||||
|
|
||||||
class AccurateRipResponseTestCase(tcommon.TestCase):
|
class AccurateRipResponseTestCase(tcommon.TestCase):
|
||||||
@@ -1,11 +1,11 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_cache -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_cache -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from morituri.common import cache
|
from whipper.common import cache
|
||||||
|
|
||||||
from morituri.test import common as tcommon
|
from whipper.test import common as tcommon
|
||||||
|
|
||||||
|
|
||||||
class ResultCacheTestCase(tcommon.TestCase):
|
class ResultCacheTestCase(tcommon.TestCase):
|
||||||
@@ -1,18 +1,18 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_common -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_common -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
from morituri.common import common
|
from whipper.common import common
|
||||||
|
|
||||||
from morituri.test import common as tcommon
|
from whipper.test import common as tcommon
|
||||||
|
|
||||||
|
|
||||||
class ShrinkTestCase(tcommon.TestCase):
|
class ShrinkTestCase(tcommon.TestCase):
|
||||||
|
|
||||||
def testSufjan(self):
|
def testSufjan(self):
|
||||||
path = (u'morituri/Sufjan Stevens - Illinois/02. Sufjan Stevens - '
|
path = (u'whipper/Sufjan Stevens - Illinois/02. Sufjan Stevens - '
|
||||||
'The Black Hawk War, or, How to Demolish an Entire '
|
'The Black Hawk War, or, How to Demolish an Entire '
|
||||||
'Civilization and Still Feel Good About Yourself in the '
|
'Civilization and Still Feel Good About Yourself in the '
|
||||||
'Morning, or, We Apologize for the Inconvenience but '
|
'Morning, or, We Apologize for the Inconvenience but '
|
||||||
@@ -1,18 +1,18 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_config -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_config -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
import os
|
import os
|
||||||
import tempfile
|
import tempfile
|
||||||
|
|
||||||
from morituri.common import config
|
from whipper.common import config
|
||||||
|
|
||||||
from morituri.test import common as tcommon
|
from whipper.test import common as tcommon
|
||||||
|
|
||||||
|
|
||||||
class ConfigTestCase(tcommon.TestCase):
|
class ConfigTestCase(tcommon.TestCase):
|
||||||
|
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
fd, self._path = tempfile.mkstemp(suffix=u'.morituri.test.config')
|
fd, self._path = tempfile.mkstemp(suffix=u'.whipper.test.config')
|
||||||
os.close(fd)
|
os.close(fd)
|
||||||
self._config = config.Config(self._path)
|
self._config = config.Config(self._path)
|
||||||
|
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_directory -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_directory -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
from morituri.common import directory
|
from whipper.common import directory
|
||||||
|
|
||||||
from morituri.test import common
|
from whipper.test import common
|
||||||
|
|
||||||
|
|
||||||
class DirectoryTestCase(common.TestCase):
|
class DirectoryTestCase(common.TestCase):
|
||||||
@@ -1,8 +1,8 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_drive -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_drive -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
from morituri.test import common
|
from whipper.test import common
|
||||||
from morituri.common import drive
|
from whipper.common import drive
|
||||||
|
|
||||||
|
|
||||||
class ListifyTestCase(common.TestCase):
|
class ListifyTestCase(common.TestCase):
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_mbngs -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_mbngs -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
import os
|
import os
|
||||||
@@ -6,7 +6,7 @@ import json
|
|||||||
|
|
||||||
import unittest
|
import unittest
|
||||||
|
|
||||||
from morituri.common import mbngs
|
from whipper.common import mbngs
|
||||||
|
|
||||||
|
|
||||||
class MetadataTestCase(unittest.TestCase):
|
class MetadataTestCase(unittest.TestCase):
|
||||||
@@ -14,7 +14,7 @@ class MetadataTestCase(unittest.TestCase):
|
|||||||
# Generated with rip -R cd info
|
# Generated with rip -R cd info
|
||||||
def testJeffEverybodySingle(self):
|
def testJeffEverybodySingle(self):
|
||||||
path = os.path.join(os.path.dirname(__file__),
|
path = os.path.join(os.path.dirname(__file__),
|
||||||
'morituri.release.3451f29c-9bb8-4cc5-bfcc-bd50104b94f8.json')
|
'whipper.release.3451f29c-9bb8-4cc5-bfcc-bd50104b94f8.json')
|
||||||
handle = open(path, "rb")
|
handle = open(path, "rb")
|
||||||
response = json.loads(handle.read())
|
response = json.loads(handle.read())
|
||||||
handle.close()
|
handle.close()
|
||||||
@@ -27,7 +27,7 @@ class MetadataTestCase(unittest.TestCase):
|
|||||||
def test2MeterSessies10(self):
|
def test2MeterSessies10(self):
|
||||||
# various artists, multiple artists per track
|
# various artists, multiple artists per track
|
||||||
path = os.path.join(os.path.dirname(__file__),
|
path = os.path.join(os.path.dirname(__file__),
|
||||||
'morituri.release.a76714e0-32b1-4ed4-b28e-f86d99642193.json')
|
'whipper.release.a76714e0-32b1-4ed4-b28e-f86d99642193.json')
|
||||||
handle = open(path, "rb")
|
handle = open(path, "rb")
|
||||||
response = json.loads(handle.read())
|
response = json.loads(handle.read())
|
||||||
handle.close()
|
handle.close()
|
||||||
@@ -55,7 +55,7 @@ class MetadataTestCase(unittest.TestCase):
|
|||||||
def testBalladOfTheBrokenSeas(self):
|
def testBalladOfTheBrokenSeas(self):
|
||||||
# various artists disc
|
# various artists disc
|
||||||
path = os.path.join(os.path.dirname(__file__),
|
path = os.path.join(os.path.dirname(__file__),
|
||||||
'morituri.release.e32ae79a-336e-4d33-945c-8c5e8206dbd3.json')
|
'whipper.release.e32ae79a-336e-4d33-945c-8c5e8206dbd3.json')
|
||||||
handle = open(path, "rb")
|
handle = open(path, "rb")
|
||||||
response = json.loads(handle.read())
|
response = json.loads(handle.read())
|
||||||
handle.close()
|
handle.close()
|
||||||
@@ -88,7 +88,7 @@ class MetadataTestCase(unittest.TestCase):
|
|||||||
# single artist disc, but with multiple artists tracks
|
# single artist disc, but with multiple artists tracks
|
||||||
# see https://github.com/thomasvs/morituri/issues/19
|
# see https://github.com/thomasvs/morituri/issues/19
|
||||||
path = os.path.join(os.path.dirname(__file__),
|
path = os.path.join(os.path.dirname(__file__),
|
||||||
'morituri.release.61c6fd9b-18f8-4a45-963a-ba3c5d990cae.json')
|
'whipper.release.61c6fd9b-18f8-4a45-963a-ba3c5d990cae.json')
|
||||||
handle = open(path, "rb")
|
handle = open(path, "rb")
|
||||||
response = json.loads(handle.read())
|
response = json.loads(handle.read())
|
||||||
handle.close()
|
handle.close()
|
||||||
@@ -1,9 +1,9 @@
|
|||||||
# -*- Mode: Python; test-case-name: morituri.test.test_common_path -*-
|
# -*- Mode: Python; test-case-name: whipper.test.test_common_path -*-
|
||||||
# vi:si:et:sw=4:sts=4:ts=4
|
# vi:si:et:sw=4:sts=4:ts=4
|
||||||
|
|
||||||
from morituri.common import path
|
from whipper.common import path
|
||||||
|
|
||||||
from morituri.test import common
|
from whipper.test import common
|
||||||
|
|
||||||
|
|
||||||
class FilterTestCase(common.TestCase):
|
class FilterTestCase(common.TestCase):
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user