
Sergey❄️
11.04.2018
18:20:48

German
11.04.2018
19:36:10
как можно запустить бота на aiogram как веб-приложение?

Stanislav
11.04.2018
19:36:39

German
11.04.2018
19:37:14

Google


Stanislav
11.04.2018
19:51:32
да, в примере на github смутно описывается это
В примере они запускают aiohttp сервер, где слушается WEBHOOK_URL_PATH
В первой строчке app = get_new_configured_app(dispatcher=dp, path=WEBHOOK_URL_PATH)
Вот эта функция из сорсов:
def get_new_configured_app(dispatcher, path=DEFAULT_WEB_PATH):
"""
Create new :class:`aiohttp.web.Application` and configure it.
:param dispatcher: Dispatcher instance
:param path: Path to your webhook.
:return:
"""
app = web.Application()
configure_app(dispatcher, app, path)
return app
Внутри configure_app:
def configure_app(dispatcher, app: web.Application, path=DEFAULT_WEB_PATH):
"""
You can prepare web.Application for working with webhook handler.
:param dispatcher: Dispatcher instance
:param app: :class:`aiohttp.web.Application`
:param path: Path to your webhook.
:return:
"""
app.router.add_route('*', path, WebhookRequestHandler, name='webhook_handler')
app[BOT_DISPATCHER_KEY] = dispatcher
Вот, app - это web.Application и это все есть в доках либы aiohttp
Самой последней строчкой они этот app запускают
web.run_app(app, host=WEBAPP_HOST, port=WEBAPP_PORT, ssl_context=context)
Что-бы приложение слушало определенной порт. И ещё передают ssl сертефикат вручную. Если будешь запускать на каком-то хероку или питонэнивере - то этот аргумент не нужен.
Вот, а за отправление данных которые приходят тебе отвечает Dispatcher. Про его работу более подробно написано тут `http://aiogram.readthedocs.io/en/latest/dispatcher/main.html`
Он кормит апдейты в хендлеры, вот, самый главный класс.
А вообще тут конечно только читать доки и сорсы, в PyCharm можно нажать CTRL+LMB что-бы перейти в исходное место.
Хотя я с их сайта, с телефона код копировал


German
11.04.2018
19:53:15
ок
спасибо большое

Диванный
11.04.2018
20:42:11
подскажите
чтобы ссылки с сайта открывалить в режиме предпростмотра телеграмма что надо сделать?

Decent
11.04.2018
20:42:48
Подскажите либа для пайтона Python-Telegram-Bot при использовании polling'а, обрабатывает запросы пользователей параллельно?
Кто ботов пишет на питоне, как решаете проблему параллельной записи в БД?

Andrew
11.04.2018
20:47:19

Sergey
11.04.2018
20:47:36

Sergey❄️
11.04.2018
20:48:31
Я не хочу ничего решать, я использую django

Decent
11.04.2018
20:50:50
ну вот я написал бота на pbt который при команде /start пишет в БД на shelve, имя пользователя и id его, запустил поллинг, одновременно команду /start дали 10 пользователей, обращения к shelve будут последовательными?

Sergey
11.04.2018
20:51:05
Да

Google

Decent
11.04.2018
20:53:57
а из чего это следует?

Sergey
11.04.2018
20:55:09
То что ptb обрабатывает всё в один тред (по умолчанию) и тебе всё равно на рейс кондишинс

Decent
11.04.2018
20:55:46
ну ок, спс

Sergey
11.04.2018
20:56:48
Почитай там про декоратор @run_async

Alex
11.04.2018
20:58:08

Sergey
11.04.2018
20:58:35
А там нет асинхронности вроде. Вроде просто треды

Alex
11.04.2018
20:58:58
именно.
только назвали async

Sergey
11.04.2018
21:00:14
только назвали async
Не люблю это слово. Ведь все "асинхронные" веб сервера наоборот как раз таки синхронные по рантайму, а большинство "не-асинхронных" могут работать на разных ядрах или просто тредах и выполнять более менее параллельно
А я не прав?)
Если нет, то обьясни почему, мне очень интересно

Vitaly
11.04.2018
21:02:50
да, но лень объяснять
потому только стикер

Sergey
11.04.2018
21:03:12
Ты имеешь в виду асинхронность с точки зрения ио а не рантайма?

Vitaly
11.04.2018
21:04:13
дефайн асинхронный рантайм

Sergey❄️
11.04.2018
21:05:01

Sergey
11.04.2018
21:05:40
То есть треды/процессы

Sergey❄️
11.04.2018
21:06:07
так треды или асинк

Vitaly
11.04.2018
21:06:13

Google

Sergey❄️
11.04.2018
21:06:36
Сер(гей), вы уж определитесь

Sergey
11.04.2018
21:07:50
понятно
Ну смотри. "Асинхронные веб-сервера" не используют треды, это я знаю. Но я жаловался на то, что слово "асинхронный" скорее намекает на обратное, что они как раз таки будут их использовать и параллелить код.

Vitaly
11.04.2018
21:08:25
То есть треды/процессы
я люблю задавать на собесе вопрос чем процессс от треда отличается, процентов 5 отвечают ))
а потом они треды на каждый коннекшн поднимают, хакеры )

Sergey
11.04.2018
21:10:10
Треды - это просто эмуляция параллельности внутри программы, при помощи переключателя тредов процессора или даже программного переключателя, что не так круто. А процессы - это аналог на уровне ОС, только ещё (как правило) без шейред мемори и всего прочего, то есть просто отдельные программы
Или я снова не прав?)

Vitaly
11.04.2018
21:10:52
А процессы - это аналог на уровне ОС - чо?
ладно, а что такое асинк тогда? если не io

?Kolay
11.04.2018
21:13:57
Я знаю что асинк работает быстрее
Юзаю только его

Vitaly
11.04.2018
21:14:47

Бананиум
11.04.2018
21:14:47
колая помещен в карантин.

Sergey❄️
11.04.2018
21:15:04
Хорошее био, себе поставлю как-нибудь

Sergey
11.04.2018
21:15:33
ладно, а что такое асинк тогда? если не io
Способ строения сервера, который позволяет избежать блокирующих операций за счёт того, что не имеет тредов. Если в обычных серверах при большом количестве тредов много времени уходит чисто на переключение между тредами и попыткой найти хоть один где можно что то посчитать, то в асинке на блокирующую операцию просто вешается новый ивент, и снова к операции сервер не возвращается
Так?)
А сам async - это враппер вокруг блокирующей операции, который означает что она вернёт новый ивент, а пока что можно переключится на следующую задачу

Vitaly
11.04.2018
21:16:20
Ну почти, нет про io
Без io - этот подход будет хуже чем тупо в 1 поток все считать

Sergey
11.04.2018
21:17:35
Ну почти, нет про io
Всякие веб-реквесты или просто файлая система, тобто ио, как раз часто и занимает много времени не на сторону сервера а например оборудования, и потому асинк позволяет избежать этих задержек. Как я понимаю это

Vitaly
11.04.2018
21:17:43
Процессор синхронный btw :)

Google

Vitaly
11.04.2018
21:17:57

Диванный
11.04.2018
21:34:23
подскажите
чтобы ссылки с сайта открывалить в режиме предпростмотра телеграмма что надо сделать?

?Kolay
11.04.2018
21:35:09
И чтобы ТГ его принял

Диванный
11.04.2018
21:36:47
спасибо

Stanislav
11.04.2018
23:49:02
Кто знает почему https://core.telegram.org/methods тут нет нихуя?
И почему у них в апдейтах доков последняя дата - 2014 год?

Yuri
12.04.2018
00:11:35

Stanislav
12.04.2018
00:13:42
Я вкурсе, распаршенных схем есть несколько. У телетона хорошо распаршено
Но

Yuri
12.04.2018
00:14:10

Stanislav
12.04.2018
00:14:51
Нихуя не понятно иногда, при обновлениях версии новые аргументы добавляются

Yuri
12.04.2018
00:15:57
Уже несколько месяцев исходники офф приложений не обновляются. Дурову пофиг похоже на его громкие заявления про доступное апи и открытый код
Это речь просто про исходники. А про документацию никото уже даже не говорит)
Хорошо хоть бот апи сразу обновляют

Stanislav
12.04.2018
00:19:01

Yuri
12.04.2018
00:19:45
Вот только саму десктоп версию не обновляют) она сильно уступает андроид и иос версии

Stanislav
12.04.2018
00:21:27
Но такое чувство что разрабы под мобилы с Дуровом в более близких отношениях

Denis
12.04.2018
03:15:45
https://pastebin.com/RcxzMQNY

Google

Denis
12.04.2018
03:16:13
почему бот падает если с ним одновременно 2 клиента работают?

Emil
12.04.2018
03:21:04
какая ошибка?

Denis
12.04.2018
03:24:33

Emil
12.04.2018
03:27:45

Denis
12.04.2018
03:27:57
да
там пол экрана глобальных)

Иван
12.04.2018
03:28:19
Дайте сайт ск крым

Denis
12.04.2018
03:29:15
я так понял надо сделать какой то словарь и хранить их там

Иван
12.04.2018
03:37:17
Ск соли