2010-09-10 1 views
-1

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

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

__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") 

ответ

0
  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 и далее.

+0

Я по-прежнему получаю примерно такой же эффект, все еще не уверен, как добавлять текст со случайным элементом в сообщениях моего канала. – isfigd

+0

Игнасио был прав, если не считать слова 'word_eol' вместо слова. 'word_eol' предоставляет от слова' i' до конца строки вместо отдельных слов. –