Script: biditext.py

Display right-to-left text in chat with fribidi.
Author: spacepluk — Version: 1 — License: GPL-3.0-or-later
For WeeChat ≥ 0.3.0, requires: python-pyfribidi.
Tags: display, rtl, py2, py3
Added: 2012-12-04

Download GitHub Repository

 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
# -*- coding: utf-8 -*-
#
# Copyright (c) 2012 by Oscar Morante <oscar@morante.eu>
#
# 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/>.
#

# This script uses fribidi library to display rtl text properly

import weechat
from pyfribidi import *

SCRIPT_NAME    = "biditext"
SCRIPT_AUTHOR  = "Oscar Morante <oscar@morante.eu>"
SCRIPT_VERSION = "1"
SCRIPT_LICENSE = "GPL3"
SCRIPT_DESC    = "Use fribidi to handle RTL text"


def biditext_cb(data, modifier, modifier_data, line):
    return log2vis(line, LTR)


if __name__ == "__main__":
    if weechat.register(SCRIPT_NAME,
                        SCRIPT_AUTHOR,
                        SCRIPT_VERSION,
                        SCRIPT_LICENSE,
                        SCRIPT_DESC, "", ""):
        weechat.hook_modifier('weechat_print', 'biditext_cb', '')