бот disord возвращает значение асинхронных функций синхронно - PullRequest
0 голосов
/ 26 августа 2018

Я пытался не задавать вопрос, поэтому я пытался решить эту проблему в течение 2 дней :( Я не смог. Вот я я просто пытаюсь получить доступ к списку 'Сигналы' вне функции асинхронности, чтобы позже работать с ним в моем коде синхронизации.

это асинхронная функция из обёртки диска 'discord.py' он читает сообщения на определенном канале. Моя цель состоит в том, чтобы получить список из каждого содержимого сообщения.

import asyncio
from syncer import sync
import discord
import os
import time
from discord.ext import commands

class A:

    TOKEN = "XXXXXXXXX"
    client = commands.Bot(command_prefix = ".")


    @client.event
    async def on_message(message):
        autor = message.author
        content = message.content
        channel = message.channel.id
        while ( channel == 'XXXXXXXXXXXXXX' ):
            if #some filters 
                Signal =[message.content]

                return Signal #'till here the code functions and i get the list' 

 bot =A()
 tasks = asyncio.ensure_future(bot.on_message())
 loop =asyncio.get_event_loop()
 loop.run_until_complete(asyncio.gather(*tasks))

 bot.client.run(bot.TOKEN)

это я пытаюсь получить список сигналов:

bot =A()
tasks = asyncio.ensure_future(bot.on_message()) 
loop = asyncio.get_event_loop()
loop.run_until_complete(asyncio.gather(*tasks))
bot.client.run(bot.TOKEN)

loop.run_until_complete (asyncio.gather (* задача)) AssertionError: выход из не использовался с будущим

Я пытался использовать async_to_sync Wrapper под названием Syncer:

bot =A()
b = sync(bot.on_message(message))
assert  Signal ==b()

b = синхронизация (bot.on_message (сообщение)) NameError: имя 'message' не определено Незакрытая клиентская сессия client_session:

когда я определяю сообщение:

message = {}
bot =A()
b = sync(bot.on_message(message))
assert  Signal ==b()
b = sync(bot.on_message(message))

TypeError: on_message () принимает 1 позиционный аргумент, но 2 были заданы Незакрытая клиентская сессия client_session:

Извините за глупый вопрос, я знаю, что, вероятно, я все делаю неправильно я изо всех сил стараюсь учиться спасибо

...