2017-09-13 1 views
1

J'essaie d'obtenir beaucoup de messages d'un serveur, donc je fais un test de scripts, et le logs_from() ne fonctionne pas comme je le pense, je ne sais pas si im en utilisant mal ou quoi, je suis en utilisant python 3.5 et la version la plus récente de discord.py sur pypidiscord.py logs_from ne fonctionne pas

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

et je reçois l'erreur

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

Est-ce votre intention d'obtenir l'entrée premier résultant de 'logs_from', ou la seconde? – mkrieger1

+0

finit par tous les obtenir, mais il ne reçoit pas l'un d'eux en ce moment, ce n'est pas grave –

Répondre

1

Client.logs_from est un coroutine, ce qui signifie que vous devez d'abord attends-le. Il renvoie également un itérateur, pas une liste, donc vous devriez le parcourir, au lieu de l'indexer.

exemple Python 3.5:

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

Python 3.4 Exemple:

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