IndexError:列表索引超出范围[python irc bot]

时间:2014-05-15 10:33:10

标签: python python-2.7 bots

对于我的IRC机器人,当我尝试使用`db addcol命令时,我会得到索引错误,但我不知道它有什么问题。

@hook.command(adminonly=True, autohelp=False)
def db(inp,db=None):
    split = inp.split(' ')
    action = split[0]
    if "init" in action:
        result = db.execute("create table if not exists users(nick primary key, host, location, greeting, lastfm, fines, battlestation, desktop, horoscope, version)")
        db.commit()
        return result
    elif "addcol" in action:
        table = split[1]
        col = split[2]
        if table is not None and col is not None:
        db.execute("ALTER TABLE {} ADD COLUMN {}".format(table,col))
            db.commit
            return "Added Column"

这是我试图执行的命令,这是错误:

Unhandled exeption in thread started by <function run at 0xb70d6844
Traceback (most recent call last):
  File "core/main.py", line 68, in run
    out = func(input.inp, **kw)
  File "plugins/core_admin_global.py", :ine 308, in db
    col = split[2]
IndexError: list index out of range

您可以在GIT repository找到整个代码。

编辑:这个机器人只是我在学习python时一直在玩的小东西所以不要指望我对此有太多的了解。

另一个编辑: 我试图添加的命令,只需用妈妈替换桌面。

@hook.command(autohelp=False)
def desktop(inp, nick=None, conn=None, chan=None,db=None, notice=None):
    "desktop http://url.to/desktop | @ nick -- Shows a users Desktop."
    if inp:
        if "http" in inp:
            database.set(db,'users','desktop',inp.strip(),'nick',nick)
            notice("Saved your desktop.")
            return
        elif 'del' in inp:
            database.set(db,'users','desktop','','nick',nick)
            notice("Deleted your desktop.")
            return
        else:
            if '@' in inp: nick = inp.split('@')[1].strip()
            else: nick = inp.strip()

    result = database.get(db,'users','desktop','nick',nick)
    if result:
        return '{}: {}'.format(nick,result)
    else:
        if not '@' in inp: notice(desktop.__doc__)
        return 'No desktop saved for {}.'.format(nick)

0 个答案:

没有答案