Replaces text you write with upside down text.
Author: xt
— Version: 0.3.1
— License: GPL-3.0-or-later
For WeeChat ≥ 0.3.0.
Tags: input, py3
Added: 2010-01-14
— Updated: 2022-03-19
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | # -*- 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: # 2022-03-14, TauPan <taupan@gmail.com> # version 0.3.1: port to python3 # 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.1" 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.items(): 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 w.buffer_set(w.current_buffer(), 'input', outstring) return w.WEECHAT_RC_OK |