diff options
| -rw-r--r-- | TODO | 2 | ||||
| -rwxr-xr-x | cutter.py | 7 | ||||
| -rw-r--r-- | cutter/cue.py | 8 |
3 files changed, 13 insertions, 4 deletions
@@ -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 @@ -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: |
