【问题标题】:Python | How to restrict command in the IRC bot?蟒蛇 |如何限制 IRC 机器人中的命令?
【发布时间】:2014-02-07 12:12:26
【问题描述】:

如何在 Python 编写的 IRC bot 中限制命令?

例如我有:

data. = irc.recv(2048)

if data.find("^cmd",7) != -1:
    irc.send('PRIVMSG ' + channel + ' :' + 'do_something' + '\r\n')

但是如果任何用户写bla bla ^cmdblabla 它也可以。我不想要它,我该如何限制它?尝试使用len(),但没有机会通过这种方式做到这一点。似乎正则表达式对此也无济于事。

【问题讨论】:

  • 你使用的是哪个库?
  • 看起来他写了自己的库。如果你不得不问这个问题是个坏主意。
  • @LuRsT,socket,string,re.

标签: python command bots irc restrict


【解决方案1】:

您需要使用允许的参数编写一个元组。例如:

commands = ("some_command", "other_command", "this_continues")

那么就:

if not command in commands:
    print("Unrecognized command.")

您必须先解析数据才能获取命令。可能是这样的:

command = data[:data.find(" ")]
# And here the code above

希望对你有帮助。

【讨论】:

  • if not data in commands: irc.send('PRIVMSG ' + ' :' + 'Unrecognized' + '\r\n') 遗憾的是它不起作用。来自服务器的消息没有要发送的文本
  • 请提供您的完整代码,看看您做错了什么。
  • 抱歉没有换行但不知道怎么做while 1:data = irc.recv(2048)print datacommands = ('^cmd', '^cmd1', '^cmd2')if not data in commands: irc.send('PRIVMSG ' + ' :' + 'Unrecognized' + 'command' + '\r\n')
  • 抱歉,data 应该是命令,而不是您从服务器接收到的命令。查看更新的答案。
  • 如果语句不等待任何命令,它会立即向通道发送消息。
猜你喜欢
  • 1970-01-01
  • 2019-05-17
  • 2011-01-24
  • 2015-01-21
  • 2023-04-08
  • 2019-04-01
  • 1970-01-01
  • 2010-09-29
  • 2011-07-25
相关资源
最近更新 更多