Size: a a a

2017 November 11

m

m0cesta in aiogram [ru]
Получаю map короутин
источник
2017 November 13

AR

Alex RootJunior in aiogram [ru]
упс
источник

AR

Alex RootJunior in aiogram [ru]
приветствую.
источник

AR

Alex RootJunior in aiogram [ru]
m0cesta
Ребят, когда я получаю сообщение, содержащее геопозицию, какой ContentType у него должен быть?
проверил контент-тайп. добавил типы которые упустил ранее.
// dev-1.x
источник

AR

Alex RootJunior in aiogram [ru]
и добавил поддержку обработки всех типов одним хэндлером с указанием одного content_type=ContentType.ALL
источник
2017 November 15

AR

Alex RootJunior in aiogram [ru]
m0cesta
Обнаружил другую ошибку. Когда вызываю asyncio.gather получаю:
Task exception was never retrieved
future: <Task finished coro=<Dispatcher._process_pooling_updates() done, defined at /home/hector/Projects/aiogram_python_env/lib/python3.6/site-packages/aiogram-1.0.dev20171027172954-py3.6.egg/aiogram/dispatcher/__init__.py:208> exception=TypeError('An asyncio.Future, a coroutine or an awaitable is required',)>
Traceback (most recent call last):
 File "/home/hector/Projects/aiogram_python_env/lib/python3.6/site-packages/aiogram-1.0.dev20171027172954-py3.6.egg/aiogram/dispatcher/__init__.py", line 215, in _process_pooling_updates
   for response in await self.process_updates(updates):
 File "/home/hector/Projects/aiogram_python_env/lib/python3.6/site-packages/aiogram-1.0.dev20171027172954-py3.6.egg/aiogram/dispatcher/__init__.py", line 103, in process_updates
   return await asyncio.gather(*tasks)
 File "/home/hector/Projects/aiogram_python_env/lib/python3.6/site-packages/aiogram-1.0.dev20171027172954-py3.6.egg/aiogram/dispatcher/__init__.py", line 120, in process_update
   return await self.message_handlers.notify(update.message)
 File "/home/hector/Projects/aiogram_python_env/lib/python3.6/site-packages/aiogram-1.0.dev20171027172954-py3.6.egg/aiogram/dispatcher/handler.py", line 42, in notify
   response = await handler(*args, **kwargs)
 File "src/fsm.py", line 337, in get_contacts_and_finish
   await profile_mailing(message)
 File "src/fsm.py", line 100, in profile_mailing
   return_exceptions=True
 File "/home/hector/Downloads/Python-3.6.3/Lib/asyncio/tasks.py", line 596, in gather
   fut = ensure_future(arg, loop=loop)
 File "/home/hector/Downloads/Python-3.6.3/Lib/asyncio/tasks.py", line 526, in ensure_future
   raise TypeError('An asyncio.Future, a coroutine or an awaitable is '
TypeError: An asyncio.Future, a coroutine or an awaitable is required

Вот код:
    async def profile_mailing(message):
       state = dp.current_state(chat=message.chat.id,
                                user=message.from_user.id)
       data = await state.get_data()
       temp = open('res/texts/template_for_provider.txt').read()
       
       if type(data['location']) == int:
           location = 'См. геопозицию'
       else:
           location = data['location']
           
       if type(data['description']) == int:
           description = 'См. файл медиа'
       else:
           description = data['description']
       
       temp = temp.format(
           data['srvc'],
           description,
           location,
           data['contacts']
       )
       
       packages = [lambda recipient: bot.send_message(recipient, temp)]
       #profile_messages.append((recipient, mess.message_id))
       if type(data['description']) == int:
           packages.append(lambda recipient: bot.forward_message(
               recipient,
               message.chat.id,
               data['description']
           ))
       if type(data['location']) == int:
           packages.append(lambda recipient: bot.forward_message(
               recipient,
               message.chat.id,
               data['location']
           ))
       
       if data['srvc'] == BL.SRVC_UNDETECTED:
           recipients = [FEEDBACK_CHANNEL_CHAT_ID]
       else:
           recipients = BL.SERVICE_DISTRIBUTION[data['srvc']]
       
       for recipient in recipients:
           msgs = asyncio.gather(
               map(lambda f: f(recipient), packages),
               loop=loop,
               return_exceptions=True
           )
           profile_messages += [(recipient, msg.message_id) for msg in msgs]
           
       
       
       profile_messages += data.get('profile_messages', [])
       await state.update_data(profile_messages=profile_messages,
                               last_mailing_time=datetime.now().timestamp())
а, кстати, asyncio.gather(*list_of_coros)
источник

AR

Alex RootJunior in aiogram [ru]
Что то критическое еще всплывало в тестовой версии?
источник
2017 November 16

AR

Alex RootJunior in aiogram [ru]
Добавил еще фильтров.
источник

AR

Alex RootJunior in aiogram [ru]
и еще немного безопасности. У вебхука добавил проверку адреса, с которого пришел апдейт. (в доках есть написаны айпишники серверов тг)

опционально.
источник

BE

Bogdan Evstratenko in aiogram [ru]
Alex RootJunior
и еще немного безопасности. У вебхука добавил проверку адреса, с которого пришел апдейт. (в доках есть написаны айпишники серверов тг)

опционально.
я бы опционально вырубал, а по дефолту оставил вайтлист
источник

AR

Alex RootJunior in aiogram [ru]
Bogdan Evstratenko
я бы опционально вырубал, а по дефолту оставил вайтлист
Окей, сделаю так.
источник

AR

Alex RootJunior in aiogram [ru]
Кстати, локалхост оставлять в разрешенных?
источник

BE

Bogdan Evstratenko in aiogram [ru]
1 из 300 пускает траф через прокси и все такое
источник

BE

Bogdan Evstratenko in aiogram [ru]
Alex RootJunior
Кстати, локалхост оставлять в разрешенных?
я бы оставил
у меня есть проект с роутером
источник

AR

Alex RootJunior in aiogram [ru]
Bogdan Evstratenko
1 из 300 пускает траф через прокси и все такое
Если прокси настроить как описано в доках нгинкса и как это принято делать - вайтлист тоже работает.
источник

BE

Bogdan Evstratenko in aiogram [ru]
Alex RootJunior
Если прокси настроить как описано в доках нгинкса и как это принято делать - вайтлист тоже работает.
ну с прокси я может перегнул, а вот с роутером такое не прокатит
источник

BE

Bogdan Evstratenko in aiogram [ru]
Bogdan Evstratenko
ну с прокси я может перегнул, а вот с роутером такое не прокатит
да и вообще бы хорошо вайтлист самому определять
источник

AR

Alex RootJunior in aiogram [ru]
Bogdan Evstratenko
да и вообще бы хорошо вайтлист самому определять
сделал.
from aiogram.dispatcher import webhook as wh
wh.allow_ip('127.0.0.1')
источник

BE

Bogdan Evstratenko in aiogram [ru]
а то если у меня бот, который много вычисляет, то разделить так будет полезно
источник

OA

Oleg A. 🇷🇺 in aiogram [ru]
ого! ) круто!
источник