2010-09-10 9 views
-1

J'essaie d'imprimer des éléments aléatoires d'une liste dans mes messages de canal XCHAT. Jusqu'à présent, je n'ai pu imprimer que les éléments aléatoires de ma liste, mais pas avec un texte spécifique.Utilisation du module aléatoire Python avec les scripts XCHAT IRC

Exemple d'utilisation serait: «/couru blahblahblah » pour produire l'effet désiré d'un message de canal tel que « blahblahblah [point aléatoire] »

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

Répondre

0
  1. Vous ne permettent pas l'appelant spécifiez les arguments à choisir.

    def ran(choices=None): 
        if not choices: 
         choices = ('test1', 'test2', 'test3', 'test4', 'test5') 
        return random.choice(choices) 
    
  2. Vous devez obtenir les choix de la commande.

    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 est une liste de mots envoyés par l'intermédiaire de la commande, la commande word[0] est elle-même si seule copie à partir de 1 et plus.

+0

Je reçois toujours le même effet, ne sachant toujours pas comment ajouter du texte avec un élément aléatoire dans mes messages de canal. – isfigd

+0

Ignacio's était correct sauf pour dire "word_eol" au lieu de "word". 'word_eol' fournit à partir du' i'th mot jusqu'à la fin de la ligne au lieu de mots individuels. –