From 889c93ee3542537eefeb24e8820445f2bc5f153c Mon Sep 17 00:00:00 2001 From: Mikhail Osipov Date: Fri, 25 Oct 2013 01:36:12 +0400 Subject: make cchardet optional --- TODO | 2 +- cutter.py | 7 +++++-- cutter/cue.py | 8 +++++++- 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: -- cgit v1.2.3-70-g09d2