All pastes #17598 Raw Edit

Miscellany

public text v1 · immutable
#17598 ·published 2005-07-13 06:42 UTC
rendered paste body
#!/usr/bin/python
__module_name__ = "xcsec"
__module_version__ = "0.1"
__module_description__ = "Xchat module for sec."

## imports ##
import sec
import xchat

def encode(word, word_eol, userdata):
        print userdata
        word = word_eol[1]
        w = sec.encode(word)
        xchat.command("say !x0 %s" % (w))
        return xchat.EAT_ALL
def decode(word, word_eol, userdata):
    event, pos = userdata
    if type(pos) is int:
        pos = (pos,)
    changed = False
    if word[1].find("!x0") != -1:
        for i in pos:
            try:
                reencoded = sec.decode(word[i].replace("!x0 ", ""))
            except (UnicodeError, IndexError):
                continue
            if reencoded != word[i]:
                word[i] = reencoded
                changed = True
        if changed:
            xchat.emit_print(event, *word)
            return xchat.EAT_XCHAT
        else:
            return xchat.EAT_NONE

xchat.hook_command("x0e", encode, help="/x0e <string to encode>")
EVENTS = []
EVENTS.append(("Channel Message", 1))
EVENTS.append(("Private Message", 1))
EVENTS.append(("Your Message", 1))
for event in EVENTS:
        xchat.hook_print(event[0], decode, event)