diff --git a/couchpotato/core/logger.py b/couchpotato/core/logger.py index 374d8ff..6049af1 100644 --- a/couchpotato/core/logger.py +++ b/couchpotato/core/logger.py @@ -1,4 +1,3 @@ -import color_logs import logging import re diff --git a/couchpotato/core/plugins/log/static/log.js b/couchpotato/core/plugins/log/static/log.js index 70be4c7..bc8b395 100644 --- a/couchpotato/core/plugins/log/static/log.js +++ b/couchpotato/core/plugins/log/static/log.js @@ -64,10 +64,10 @@ Page.Log = new Class({ addColors: function(text){ var self = this; - text = text.replace(/\u001b\[31m\u001b\[31m/gi, '') - text = text.replace(/\u001b\[36m\u001b\[36m/gi, '') - text = text.replace(/\u001b\[0m\u001b\[0m\n/gi, '') - text = text.replace(/\u001b\[0m\u001b\[0m/gi, '') + text = text.replace(/\u001b\[31m/gi, '') + text = text.replace(/\u001b\[36m/gi, '') + text = text.replace(/\u001b\[0m\n/gi, '') + text = text.replace(/\u001b\[0m/gi, '') return '' + text + ''; } diff --git a/couchpotato/core/providers/nzb/moovee/main.py b/couchpotato/core/providers/nzb/moovee/main.py index 82ad304..735c1c7 100644 --- a/couchpotato/core/providers/nzb/moovee/main.py +++ b/couchpotato/core/providers/nzb/moovee/main.py @@ -37,7 +37,7 @@ class Moovee(NZBProvider): log.error('Failed to get data from %s.' % url) return results - match = re.compile(self.urls['regex'], re.DOTALL).finditer(data) + match = re.compile(self.regex, re.DOTALL).finditer(data) for nzb in match: new = { diff --git a/couchpotato/runner.py b/couchpotato/runner.py index d9c12dd..c9d411c 100644 --- a/couchpotato/runner.py +++ b/couchpotato/runner.py @@ -96,7 +96,8 @@ def runCouchPotato(options, base_path, args): server_log = logging.getLogger('werkzeug') server_log.disabled = True - # Start logging + # Start logging & enable colors + import color_logs from couchpotato.core.logger import CPLog log = CPLog(__name__) log.debug('Started with options %s' % options) diff --git a/libs/color_logs.py b/libs/color_logs.py index 1a78e91..87ff7b7 100644 --- a/libs/color_logs.py +++ b/libs/color_logs.py @@ -1,80 +1,6 @@ -#!/usr/bin/env python -# encoding: utf-8 import logging -import platform - -def add_coloring_to_emit_windows(fn): - # add methods we need to the class - def _out_handle(self): - import ctypes - return ctypes.windll.kernel32.GetStdHandle(self.STD_OUTPUT_HANDLE) - - out_handle = property(_out_handle) - - def _set_color(self, code): - import ctypes - # Constants from the Windows API - self.STD_OUTPUT_HANDLE = -11 - hdl = ctypes.windll.kernel32.GetStdHandle(self.STD_OUTPUT_HANDLE) - ctypes.windll.kernel32.SetConsoleTextAttribute(hdl, code) - - setattr(logging.StreamHandler, '_set_color', _set_color) - - def new(*args): - FOREGROUND_BLUE = 0x0001 # text color contains blue. - FOREGROUND_GREEN = 0x0002 # text color contains green. - FOREGROUND_RED = 0x0004 # text color contains red. - FOREGROUND_INTENSITY = 0x0008 # text color is intensified. - FOREGROUND_WHITE = FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED - # winbase.h - STD_INPUT_HANDLE = -10 - STD_OUTPUT_HANDLE = -11 - STD_ERROR_HANDLE = -12 - - # wincon.h - FOREGROUND_BLACK = 0x0000 - FOREGROUND_BLUE = 0x0001 - FOREGROUND_GREEN = 0x0002 - FOREGROUND_CYAN = 0x0003 - FOREGROUND_RED = 0x0004 - FOREGROUND_MAGENTA = 0x0005 - FOREGROUND_YELLOW = 0x0006 - FOREGROUND_GREY = 0x0007 - FOREGROUND_INTENSITY = 0x0008 # foreground color is intensified. - - BACKGROUND_BLACK = 0x0000 - BACKGROUND_BLUE = 0x0010 - BACKGROUND_GREEN = 0x0020 - BACKGROUND_CYAN = 0x0030 - BACKGROUND_RED = 0x0040 - BACKGROUND_MAGENTA = 0x0050 - BACKGROUND_YELLOW = 0x0060 - BACKGROUND_GREY = 0x0070 - BACKGROUND_INTENSITY = 0x0080 # background color is intensified. - - levelno = args[1].levelno - if(levelno >= 50): - color = BACKGROUND_YELLOW | FOREGROUND_RED | FOREGROUND_INTENSITY | BACKGROUND_INTENSITY - elif(levelno >= 40): - color = FOREGROUND_RED | FOREGROUND_INTENSITY - elif(levelno >= 30): - color = FOREGROUND_YELLOW | FOREGROUND_INTENSITY - elif(levelno >= 20): - color = FOREGROUND_GREEN - elif(levelno >= 10): - color = FOREGROUND_MAGENTA - else: - color = FOREGROUND_WHITE - args[0]._set_color(color) - - ret = fn(*args) - args[0]._set_color(FOREGROUND_WHITE) - #print "after" - return ret - return new def add_coloring_to_emit_ansi(fn): - # add methods we need to the class def new(*args): levelno = args[1].levelno if(levelno >= 50): @@ -88,13 +14,12 @@ def add_coloring_to_emit_ansi(fn): elif(levelno >= 10): color = '\x1b[36m' else: - color = '\x1b[0m' - args[1].msg = color + args[1].msg + '\x1b[0m' # normal - #print "after" + color = '\x1b[0m' # normal + + if not args[1].msg.startswith(color): + args[1].msg = color + args[1].msg + '\x1b[0m' + return fn(*args) return new -if platform.system() == 'Windows': - logging.StreamHandler.emit = add_coloring_to_emit_windows(logging.StreamHandler.emit) -else: - logging.StreamHandler.emit = add_coloring_to_emit_ansi(logging.StreamHandler.emit) +logging.StreamHandler.emit = add_coloring_to_emit_ansi(logging.StreamHandler.emit)