将 Python 随机模块与 XCHAT IRC 脚本结合使用

发布于 2024-09-18 17:16:18 字数 667 浏览 11 评论 0原文

我正在尝试将列表中的随机项目打印到我的 XCHAT 频道消息中。到目前为止,我只能打印列表中的随机项目,但不能打印任何特定文本。

示例用法为:“/ran 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")

I'm trying to print random items from a list into my XCHAT channel messages. So far I've only been able to print the random items from my list alone, but not with any specific text.

Example usage would be: "/ran blahblahblah" to produce the desired effect of a channel message such as "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")

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

牵强ㄟ 2024-09-25 17:16:18
  1. 您不允许调用者指定可供选择的参数。

    def ran(选择=无):
        如果没有选择:
            选择=('测试1','测试2','测试3','测试4','测试5')
        返回随机.选择(选择)
    
  2. 您需要从命令中获取选择。

    def ran_cb(word, word_eol, userdata):
        消息 = 跑(字[1:])
        xchat.command("消息 %s %s"%(xchat.get_info('频道'), 消息))
        返回xchat.EAT_ALL
    

    word 是通过命令发送的单词列表,word[0] 是命令本身,因此只能从 1 及更远的位置复制。

  1. You don't allow the caller to specify the arguments to choose from.

    def ran(choices=None):
        if not choices:
            choices = ('test1', 'test2', 'test3', 'test4', 'test5')
        return random.choice(choices)
    
  2. You need to get the choices from the command.

    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 is a list of the words sent through the command, word[0] is the command itself so only copy from 1 and further.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文