From 7c6c7933718950b00346c223f965fc28e8cdacea Mon Sep 17 00:00:00 2001 From: Mason Larobina Date: Tue, 22 Sep 2009 01:29:24 +0800 Subject: Unicode support for the EM and sprite option for the progress plugin. --- examples/data/uzbl/scripts/event_manager.py | 6 +++--- examples/data/uzbl/scripts/plugins/bind.py | 2 +- examples/data/uzbl/scripts/plugins/config.py | 6 +++--- examples/data/uzbl/scripts/plugins/mode.py | 4 ++-- examples/data/uzbl/scripts/plugins/on_event.py | 4 ++-- examples/data/uzbl/scripts/plugins/progress_bar.py | 25 ++++++++++++++-------- 6 files changed, 27 insertions(+), 20 deletions(-) (limited to 'examples/data/uzbl/scripts') diff --git a/examples/data/uzbl/scripts/event_manager.py b/examples/data/uzbl/scripts/event_manager.py index a4be6b5..18a6d54 100755 --- a/examples/data/uzbl/scripts/event_manager.py +++ b/examples/data/uzbl/scripts/event_manager.py @@ -396,7 +396,7 @@ class UzblInstance(object): while len(self._fifo_cmd_queue): msg = self._fifo_cmd_queue.pop(0) print '<-- %s' % msg - h.write("%s\n" % msg) + h.write(("%s\n" % msg).encode('utf-8')) h.close() @@ -408,7 +408,7 @@ class UzblInstance(object): while len(self._socket_cmd_queue): msg = self._socket_cmd_queue.pop(0) print '<-- %s' % msg - self._socket.send("%s\n" % msg) + self._socket.send(("%s\n" % msg).encode('utf-8')) def _send_fifo(self, msg): @@ -536,7 +536,7 @@ class UzblInstance(object): def read_from_uzbl_socket(self): '''Reads event messages from a uzbl socket.''' - raw = self._socket.recv(1024) + raw = unicode(self._socket.recv(8192), 'utf-8', 'ignore') if not raw: # Read null byte self._running = False diff --git a/examples/data/uzbl/scripts/plugins/bind.py b/examples/data/uzbl/scripts/plugins/bind.py index eaa1d40..2175da0 100644 --- a/examples/data/uzbl/scripts/plugins/bind.py +++ b/examples/data/uzbl/scripts/plugins/bind.py @@ -227,7 +227,7 @@ def bind(uzbl, glob, handler, *args, **kargs): def parse_bind_event(uzbl, args): '''Break "event BIND fl* = js follownums.js" into (glob, command).''' - split = map(str.strip, args.split('=', 1)) + split = map(unicode.strip, args.split('=', 1)) if len(split) != 2: return error('missing "=" in bind definition: %r' % args) diff --git a/examples/data/uzbl/scripts/plugins/config.py b/examples/data/uzbl/scripts/plugins/config.py index 5ce614a..32114e9 100644 --- a/examples/data/uzbl/scripts/plugins/config.py +++ b/examples/data/uzbl/scripts/plugins/config.py @@ -4,7 +4,7 @@ import types __export__ = ['set', 'get_config'] _VALIDSETKEY = re.compile("^[a-zA-Z][a-zA-Z0-9_]*$").match -_TYPECONVERT = {'int': int, 'float': float, 'str': str} +_TYPECONVERT = {'int': int, 'float': float, 'str': unicode} UZBLS = {} @@ -12,7 +12,7 @@ UZBLS = {} def escape(value): '''A real escaping function may be required.''' - return str(value) + return unicode(value) def get_config(uzbl): @@ -36,7 +36,7 @@ def set(uzbl, key, value): value = value.replace("\n", "\\n") config = get_config(uzbl) - if key not in config or str(config[key]) != str(value): + if key not in config or unicode(config[key]) != unicode(value): uzbl.send('set %s = %s' % (key, value)) diff --git a/examples/data/uzbl/scripts/plugins/mode.py b/examples/data/uzbl/scripts/plugins/mode.py index 2befbf9..debaba6 100644 --- a/examples/data/uzbl/scripts/plugins/mode.py +++ b/examples/data/uzbl/scripts/plugins/mode.py @@ -106,12 +106,12 @@ def config_changed(uzbl, key, value): def mode_config(uzbl, args): - split = map(str.strip, _RE_FINDSPACES.split(args.lstrip(), 1)) + split = map(unicode.strip, _RE_FINDSPACES.split(args.lstrip(), 1)) if len(split) != 2: return error("invalid MODE_CONFIG syntax: %r" % args) mode, set = split - split = map(str.strip, set.split('=', 1)) + split = map(unicode.strip, set.split('=', 1)) if len(split) != 2: return error("invalid MODE_CONFIG set command: %r" % args) diff --git a/examples/data/uzbl/scripts/plugins/on_event.py b/examples/data/uzbl/scripts/plugins/on_event.py index ccfab4c..a05d91a 100644 --- a/examples/data/uzbl/scripts/plugins/on_event.py +++ b/examples/data/uzbl/scripts/plugins/on_event.py @@ -50,10 +50,10 @@ def expand(cmd, args): if len(args) > 1: for arg in args: - cmd = cmd.replace('%s', str(arg), 1) + cmd = cmd.replace('%s', unicode(arg), 1) else: - cmd = cmd.replace('%s', str(args[0])) + cmd = cmd.replace('%s', unicode(args[0])) return cmd diff --git a/examples/data/uzbl/scripts/plugins/progress_bar.py b/examples/data/uzbl/scripts/plugins/progress_bar.py index fd77810..c9f8a36 100644 --- a/examples/data/uzbl/scripts/plugins/progress_bar.py +++ b/examples/data/uzbl/scripts/plugins/progress_bar.py @@ -5,9 +5,9 @@ UZBLS = {} DEFAULTS = {'width': 8, 'done': '=', 'pending': '.', - 'arrow': '>', 'format': '[%d%a%p]%c', 'spinner': '-\\|/', + 'sprites': 'loading', 'updates': 0, 'progress': 100} @@ -38,12 +38,12 @@ def update_progress(uzbl, prog=None): The current substitution options are: %d = done char * done %p = pending char * remaining - %a = arrow %c = percent done %i = int done %s = -\|/ spinner %t = percent pending %o = int pending + %r = sprites ''' prog_config = get_progress_config(uzbl) @@ -52,9 +52,11 @@ def update_progress(uzbl, prog=None): if prog is None: prog = prog_config['progress'] - prog = int(prog) + else: + prog = int(prog) + prog_config['progress'] = prog + prog_config['updates'] += 1 - prog_config['progress'] = prog format = prog_config['format'] width = prog_config['width'] @@ -77,9 +79,6 @@ def update_progress(uzbl, prog=None): if '%p' in format: format = format.replace('%p', prog_config['pending']*pending) - if '%a' in format: - format = format.replace('%a', prog_config['arrow']) - if '%c' in format: format = format.replace('%c', '%d%%' % prog) @@ -93,11 +92,19 @@ def update_progress(uzbl, prog=None): format = format.replace('%o', '%d' % (100-prog)) if '%s' in format: - spin = '-' if not prog_config['spinner'] else prog_config['spinner'] + spinner = prog_config['spinner'] + spin = '-' if not spinner else spinner index = 0 if prog == 100 else prog_config['updates'] % len(spin) char = '\\\\' if spin[index] == '\\' else spin[index] format = format.replace('%s', char) + if '%r' in format: + sprites = prog_config['sprites'] + sprites = '-' if not sprites else sprites + index = int(((prog/100.0)*len(sprites))+0.5)-1 + sprite = '\\\\' if sprites[index] == '\\' else sprites[index] + format = format.replace('%r', sprite) + if 'progress_format' not in config or config['progress_format'] != format: config['progress_format'] = format @@ -112,7 +119,7 @@ def progress_config(uzbl, args): if len(split) != 2: return error("invalid syntax: %r" % args) - key, value = map(str.strip, split) + key, value = map(unicode.strip, split) prog_config = get_progress_config(uzbl) if key not in prog_config: -- cgit v1.2.3