@ru_python

Страница 3201 из 9768
b0g3r
14.07.2017
13:21:10
Он не встроенный таки

Oleg
14.07.2017
13:21:40
ну, смысл в том, что я прикрутил ptb, указал адрес и вебкух работает =)

b0g3r
14.07.2017
13:22:16
Ptb?

Oleg
14.07.2017
13:22:24
pythont-telegram-bot

Google
b0g3r
14.07.2017
13:22:30
К чему прикрутил? О чем мы щас говорим? Давай ссылочку

Там нет никакого фласк-апп, только в примерах

Может в туторе каком, но это все равно руками все делается

Oleg
14.07.2017
13:23:09
https://github.com/python-telegram-bot/python-telegram-bot/

Aleksandr
14.07.2017
13:23:32
Не обязательно там днище. погугли Высота 239 в Челябинске
не знал про Высоту, прикольная история

Oleg
14.07.2017
13:25:15
updater.bot.setWebhook(URL) updater.start_webhook(listen=IP, port=PORT, url_path=PATH)

и больше ничего делать не надо =)

The python-telegram-bot library ships a custom HTTP server, based on the CPython BaseHTTPServer.HTTPServer implementation, that is tightly integrated in the telegram.ext module and can be started using Updater.start_webhook. This webserver also takes care of decrypting the HTTPS traffic. It is probably the easiest way to set up a webhook.

Вопрос-то не в этом

Вопрос в том как сделать то, что я описал :)

Когда прилетел вебхук, не отвечать автоматом 200, а ждать пока кто-то из хенлеров приготовит ответ и отправлять ответ вместе с 200, а не отдельным реквестом

b0g3r
14.07.2017
13:28:15
В общем случае - никак

Потому что нужно учесть: 1) таймауты апи (~60 секунд, но иногда снижаются до 30-40 без предупреждения) 2) невозможность получения статуса (отправляешь маркдаун? В тексте звёздочка? Хер узнаешь) 3) невозможность отправить несколько действий за раз (нажатие на инлайн клавиатуру: редактирование и answercallbackquery)

Google
b0g3r
14.07.2017
13:29:17
Ну и давай ближе к конкретике: какой враппер используешь, какой веб-фреймворк

Для этого придется слегка переписать весь свой код: в функции, обрабатывающей запрос от вебхука, хэндлер должен вызываться явно и возвращать список из действий (или вызываться неявно и писать его в глобальную переменную) вместо вызовов методов апи. Все кроме последнего действия отправляем запросами в апи, одно - ответом на вебхук. Если важна последовательность, то думаем о последовательности

Oleg
14.07.2017
13:35:47
го в лс :)

b0g3r
14.07.2017
13:35:49
(но т.к. ответ на запрос от вебхука не позволяет узнать статус, то надеемся на худшее)

Зачем?)

Это же не только тебе может пригодиться

Oleg
14.07.2017
13:36:26
про то, что результат я не узнаю - не страшно

Вопрос том, как воспринимает телега ответы

b0g3r
14.07.2017
13:37:23
https://core.telegram.org/bots/faq#how-can-i-make-requests-in-response-to-updates + @botoid

Roman
14.07.2017
13:37:30
не знал про Высоту, прикольная история
да на самом деле много чего такого. страна то большая. но это не мало кому инетерсно, а вот если запостишь картинку из серии угадай страну, где сравнивают Доху и деревню Верхняя кабанка, то сразу попадаешь в тренды

Oleg
14.07.2017
13:38:22
https://core.telegram.org/bots/faq#how-can-i-make-requests-in-response-to-updates + @botoid
это я читал ) в ситуации, когда я сразу отвечаю 200, а потом следом кидаю реквест - мы нервируем телегу ) при онлайне в 300 пользователей в минуту - телега начинает захлёбываться и сыпет retry after

при одновременном ответе лимитов нет

b0g3r
14.07.2017
13:39:14
Oleg
14.07.2017
13:39:45
в том и вопрос, как это реализовать правильно

b0g3r
14.07.2017
13:49:13
Для этого придется слегка переписать весь свой код: в функции, обрабатывающей запрос от вебхука, хэндлер должен вызываться явно и возвращать список из действий (или вызываться неявно и писать его в глобальную переменную) вместо вызовов методов апи. Все кроме последнего действия отправляем запросами в апи, одно - ответом на вебхук. Если важна последовательность, то думаем о последовательности

Anatoly
14.07.2017
13:52:09
Можно ли как-нибудь узнать всех прямых детей класса? Или можно ли отлавливать когда от класса создается наследник?

Reanimator
14.07.2017
13:52:14
Ну так что? За косарь баксов в км в лом написать пару строк?

Пример есть, укров говнокод. Пашет как часи только когда лосят ложится Малеха биржа

Google
Tigran
14.07.2017
13:54:58
Можно ли как-нибудь узнать всех прямых детей класса? Или можно ли отлавливать когда от класса создается наследник?
В смысле, объявляется класс-наследник или создаётся объект класса-наследника?

Anatoly
14.07.2017
13:55:49
Что есть "создаётся"?
Создается класс, т.е. class Derived(Base) Вот Base должен как-то узнать что от него отнаследовались

Nikolay
14.07.2017
13:56:23
Makc
14.07.2017
13:56:24
А, уже написали)

Nikolay
14.07.2017
13:56:29
а так - метаклассы

Tigran
14.07.2017
14:01:42
ClassName.__subclasses__
Хм, у меня object.__subclasses__() какой-то очень ограниченный список выдаёт

b0g3r
14.07.2017
14:01:53
Прямых только

Tigran
14.07.2017
14:02:03
или нет

а, всё в порядке

Tigran
14.07.2017
14:02:43
видимо, стандартная библиотека редко наследуется от object

Sarvar
14.07.2017
14:03:32
https://www.youtube.com/watch?v=Sv7tI4wjBss

sad
14.07.2017
14:03:43
А ты имел ввиду object который object

видимо, стандартная библиотека редко наследуется от object
В питоне2 в стандарной библиотеке вообще old-style classes полно, например

sad
14.07.2017
14:05:55
ivan
14.07.2017
14:21:35
Можно ли как-то получить список всех экземпляров одного класса?

Google
Nikolay
14.07.2017
14:21:58
можешь прямо в конструкторе запихивать self куда угодно

ivan
14.07.2017
14:22:38
Хм

Подойдёт

Artem
14.07.2017
14:22:51
главное не забывать в деструкторе убирать

хотя лол

Admin
ERROR: S client not available

Artem
14.07.2017
14:23:14
он не будет вызываться, потому что селф где-то

Nikolay
14.07.2017
14:23:16
хотя лол
так это же

викрефы можно пихать в сет

Artem
14.07.2017
14:23:44
можно

да, так правильно

sad
14.07.2017
14:30:41
Но правильней да регестрировать их

блин торможу уже всё сказали

Artem
14.07.2017
14:31:58
weakref?
Уже обсудили

ivan
14.07.2017
14:33:07
Спасибо

sad
14.07.2017
14:33:10
filter(lambda obj: isinstance(obj, ClassName), gc.get_objects())

>>> gc.get_objects() Traceback (most recent call last): File "<stdin>", line 1, in <module> NotImplementedError: not applicable to Java GC

Google
sad
14.07.2017
14:37:17
Вообще насчет gc не строит полагаться на поведение специфичное для cpython. Я когда-то написал говнокод и так было что-то вроде text = open(filename).read() в цикле. В расчете на то, что файл закроется сам. Это происходит в cpython, а вот в jython сборщик мусора работает не так. И код валился из-за превышения допустимого количества открытых файлов.

В ironpython тоже как-то так. И во всяких других реализациях тоже может отличаться поведение.

Аналогично с деструкторами, которые в питоне вроде как и не деструкторы и лучше их не использовать.

Lucky
14.07.2017
15:00:01
Есть код который выполняется N раз: result = c.execute("SELECT * FROM MAIN WHERE ID=? AND NAME=?", (str(id), str(name))) for N in result: temp += f'{row[2]}' Есть почти такой же код, который выполняется 1 раз вне зависимости от количества результатов: result = c.execute("SELECT * FROM MAIN WHERE ID=? AND NAME=?", (str(id), str(name))) for N in result: c.execute("DELETE FROM MAIN WHERE SOME=?", (str(row[0]))) сonnect.commit() Подскажите почему так, пожалуйста.

Dk
14.07.2017
15:02:24
ты курсор перезаписываешь

Бекболот
14.07.2017
15:03:47
Друзья, мы можем внести вклад во всестороннее развитие молодежи Кыргызстана. Наш друг Абдырахман участвует в "поединке" среди иностранных студентов за годичное проживание в общежитии зарубежом при поступлении на магистерскую программу. Как можно скорее нужно набрать 5000 голосов. Для этого нужно: 1. Пройти по данной ниже ссылке: https://scholarship.uniplaces.com/en/u/sulmanew33361 2. В открывшемся окне нажать VOTE NOW. 3. В поле для e-mail написать ваш адрес электронной почты. 4. Поставить галочку в строке " Я не робот". 5. Ответив на потверждение, (надо еще раз нажать VOTE NOW) пришедшее на вашу почту, вы считаетесь проголосовавшим. Спасибо всем. Репост приветствуется.

Nikolay
14.07.2017
15:04:47
Мне и надо один раз¯\_(ツ)_/¯
ну так и пиши запрос правильно

Lucky
14.07.2017
15:05:30
ну так и пиши запрос правильно
Но мне интересно почему удаляется только одна запись несмотря на цикл

ты курсор перезаписываешь
на самом деле не курсор, пофиксил

ilya
14.07.2017
15:12:01
эй. Зачем удалили,я не успел дочитать про Казань))

Daria
14.07.2017
15:12:18
Сорри, гайз, случайно))

Vitalik
14.07.2017
15:14:02
Кто в сокетах шарит?

Nikolay
14.07.2017
15:15:08
Кто в сокетах шарит?
Петю с тракторного спроси, скажи, что от Хмурыча

Страница 3201 из 9768