summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO2
-rwxr-xr-xcutter.py7
-rw-r--r--cutter/cue.py8
3 files changed, 13 insertions, 4 deletions
diff --git a/TODO b/TODO
index 383708e..79ab0d8 100644
--- a/TODO
+++ b/TODO
@@ -8,4 +8,4 @@ OK 7. substitute odd symbols in track names
OK 8. add charset coding argument
OK 9. prepare setup
OK 10. create default config on startup
-11. make cchardet optional
+OK 11. make cchardet optional
diff --git a/cutter.py b/cutter.py
index 38268b7..78e6cf5 100755
--- a/cutter.py
+++ b/cutter.py
@@ -213,6 +213,9 @@ def find_cuefile(path):
printerr("no cue file")
sys.exit(1)
+def switch(value, opts):
+ opts.get(value, lambda: None)()
+
def main():
options, args = parse_args()
if not process_options(options):
@@ -254,12 +257,12 @@ def main():
if cuesheet.dir:
cuesheet.dir += "/"
- {
+ switch(options.dump, {
"cue": lambda: print_cue(cuesheet),
"tags": lambda: Splitter(cuesheet, options).dump_tags(),
"tracks": lambda: Splitter(cuesheet, options).dump_tracks(),
None: lambda: Splitter(cuesheet, options).split()
- }[options.dump]()
+ })
return 0
diff --git a/cutter/cue.py b/cutter/cue.py
index d2fb958..043884b 100644
--- a/cutter/cue.py
+++ b/cutter/cue.py
@@ -1,8 +1,12 @@
-from cchardet import detect as encoding_detect
import codecs
import sys
import re
+try:
+ from cchardet import detect as encoding_detect
+except ImportError:
+ encoding_detect = None
+
class Track:
def __init__(self, number, datatype):
try:
@@ -303,6 +307,8 @@ def __read_file(filename, coding = None):
try:
encoded = data.decode("utf-8-sig")
except UnicodeDecodeError:
+ if not encoding_detect:
+ raise Exception("unknown encoding (autodetect is off)")
pass
if encoded is None: