Использование случайного модуля Python со скриптами IRC XCHAT - PullRequest
0 голосов
/ 10 сентября 2010

Я пытаюсь распечатать случайные элементы из списка в сообщениях моего канала XCHAT. До сих пор я мог печатать только случайные элементы из своего списка, но без какого-либо конкретного текста.

Пример использования: «/ ran blahblahblah» для получения желаемого эффекта сообщения канала, такого как «blahblahblah [random item]» *

__module_name__ = "ran.py"
__module_version__ = "1.0"
__module_description__ = "script to add random text to channel messages"

import xchat
import random

def ran(message):
    message = random.choice(['test1', 'test2', 'test3', 'test4', 'test5'])
    return(message)

def ran_cb(word, word_eol, userdata):
    message = ''
    message = ran(message)
    xchat.command("msg %s %s"%(xchat.get_info('channel'), message))
    return xchat.EAT_ALL

xchat.hook_command("ran", ran_cb, help="/ran to use")

1 Ответ

0 голосов
/ 10 сентября 2010
  1. Вы не разрешаете вызывающей стороне указывать аргументы для выбора.

    def ran(choices=None):
        if not choices:
            choices = ('test1', 'test2', 'test3', 'test4', 'test5')
        return random.choice(choices)
    
  2. Вам необходимо получить выбор из команды.

    def ran_cb(word, word_eol, userdata):
        message = ran(word[1:])
        xchat.command("msg %s %s"%(xchat.get_info('channel'), message))
        return xchat.EAT_ALL
    

    word - это список слов, передаваемых через команду, word[0] - это сама команда, поэтому копировать можно только с 1 и далее.

...