2017-09-13 66 views
1

我想從服務器獲取大量的消息,所以我正在做一個測試腳本,而logs_from()不工作,我認爲它應該如何,我不知道如果即時通訊使用錯了還是什麼,我使用python 3.5,discord.py的PyPI上discord.py logs_from不工作

@client.event 
@asyncio.coroutine 
def on_message(message): 
    number = 200 
    x = client.logs_from(message.channel, limit = number) 
    print(x[1]) 

最新的版本,我得到的錯誤

TypeError: 'LogsFromIterator' object does not support indexing 
+0

是您的意向得到'logs_from'產生的第一個條目,或者第二個? – mkrieger1

+0

最終得到他們所有人,但它現在沒有得到任何他們,沒關係 –

回答

1

Client.logs_from是協同程序,這意味着你必須先等待它。它也返回一個迭代器,而不是一個列表,所以你應該遍歷它,而不是索引它。

的Python 3.5例如:

async def get_logs_from(channel): 
    async for m in client.logs_from(channel): 
     print(m.clean_content) 

的Python 3.4例如:

@asyncio.coroutine 
def get_logs_from(channel): 
    logs = yield from client.logs_from(channel): 
    for m in logs: 
     print(m.clean_content)