diff options
| author | Ben Beltran <ben@nsovocal.com> | 2012-10-20 13:14:07 -0500 |
|---|---|---|
| committer | Ben Beltran <ben@nsovocal.com> | 2012-10-20 13:14:07 -0500 |
| commit | aca6370146f453f45ccebd020eb8315b54fd0e5b (patch) | |
| tree | 9b078e0d6fa0e2a29cbafeea5506af2fd2c62a1b /weechat/python/upside_down.py | |
| parent | ee6d2b11353c28d428b287752c0079f5ec407061 (diff) | |
Add weechat, ack, git and nethack
Diffstat (limited to 'weechat/python/upside_down.py')
| -rw-r--r-- | weechat/python/upside_down.py | 130 |
1 files changed, 130 insertions, 0 deletions
diff --git a/weechat/python/upside_down.py b/weechat/python/upside_down.py new file mode 100644 index 0000000..e07a7bf --- /dev/null +++ b/weechat/python/upside_down.py @@ -0,0 +1,130 @@ +# -*- coding: utf-8 -*- +# +# Copyright (c) 2009 by xt <xt@bash.no> +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see <http://www.gnu.org/licenses/>. +# +# +# +# USAGE: Bind a key to command /flip . Then write some text at input line +# press your key to transform it to upside down. + +# +# (this script requires WeeChat 0.3.0 or newer) +# +# History: +# 2010-01-14, xt +# version 0.3: steal more chars from m4v +# 2010-01-06, xt <xt@bash.no> +# version 0.2: fix idiotic programming +# 2009-11-12, xt <xt@bash.no> +# version 0.1: initial release + +import weechat as w +import re + +SCRIPT_NAME = "upside_down" +SCRIPT_AUTHOR = "xt <xt@bash.no>" +SCRIPT_VERSION = "0.3" +SCRIPT_LICENSE = "GPL3" +SCRIPT_DESC = "Replaces text you write with upside down text" + +settings = {} + +replacements = { +# Upper case + u'A' : u'\N{FOR ALL}', + u'B' : u'\N{GREEK SMALL LETTER XI}', + u'C' : u'\N{ROMAN NUMERAL REVERSED ONE HUNDRED}', + u'D' : u'\N{LEFT HALF BLACK CIRCLE}', + u'E' : u'\N{LATIN CAPITAL LETTER REVERSED E}', + u'F' : u'\N{TURNED CAPITAL F}', + u'G' : u'\N{TURNED SANS-SERIF CAPITAL G}', + u'J' : u'\N{LATIN SMALL LETTER LONG S}', + u'K' : u'\N{RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT}', + u'L' : u'\ua780', + u'M' : u'W', + u'N' : u'\N{LATIN LETTER SMALL CAPITAL REVERSED N}', + u'P' : u'\N{CYRILLIC CAPITAL LETTER KOMI DE}', + u'Q' : u'\N{GREEK CAPITAL LETTER OMICRON WITH TONOS}', + u'R' : u'\N{LATIN LETTER SMALL CAPITAL TURNED R}', + u'T' : u'\N{UP TACK}', + u'U' : u'\N{INTERSECTION}', + u'V' : u'\u0245', + u'Y' : u'\N{TURNED SANS-SERIF CAPITAL Y}', + 'a' : u"\u0250", + 'b' : u'q', + 'c' : u"\u0254", + 'd' : u'p', + 'e' : u"\u01DD", + 'f' : u"\u025F", + 'g' : u"\u0183", + 'h' : u'\u0265', + 'i' : u'\u0131', + 'j' : u'\u027E', + 'k' : u'\u029E', + 'm' : u'\u026F', + 'n' : u'u', + 'r' : u'\u0279', + 't' : u'\u0287', + 'p' : u'd', + 'u' : u'n', + 'q' : u'b', + 'v' : u'\u028C', + 'w' : u'\u028D', + 'y' : u'\u028E', + '.' : u'\u02D9', + '[' : u']', + '(' : u')', + '{' : u'}', + '?' : u'\u00BF', + '!' : u'\u00A1', + "\'" :u',', + '>' : u'<', + '<' : u'>', + '_' : u'\u203E', + ';' : u'\u061B', + '\u203F' : u'\u2040', + '\u2045' : u'\u2046', + '\u2234' : u'\u2235', +} + + + +if w.register(SCRIPT_NAME, SCRIPT_AUTHOR, SCRIPT_VERSION, SCRIPT_LICENSE, + SCRIPT_DESC, "", ""): + for option, default_value in settings.iteritems(): + if not w.config_is_set_plugin(option): + w.config_set_plugin(option, default_value) + w.hook_command("flip", + SCRIPT_DESC, + "[text]", + "text: text to be flipped\n" + "", + "", "flip_cmd_cb", "") + + +def flip_cmd_cb(data, buffer, args): + ''' Command /flip ''' + translate_input = args + if not translate_input: + translate_input = w.buffer_get_string(w.current_buffer(), "input") + outstring = '' + for char in translate_input: + if char in replacements: + char = replacements[char] + outstring += char + outstring = outstring.encode('UTF-8') + w.buffer_set(w.current_buffer(), 'input', outstring) + return w.WEECHAT_RC_OK |