
b0g3r
11.06.2017
07:19:05
А почему вебхук установлен по урл+ токен, а черри ловит индекс (просто урл)?

Benyomin
11.06.2017
07:19:41

b0g3r
11.06.2017
07:19:57
Ну а как по твоему?
Телеграм посылает на урл/токен, а черрипай слушает урл

Google

pride
11.06.2017
07:21:25
cherrypy.quickstart(WebhookServer(), WEBHOOK_URL_PATH, {'/': {}}) тут явно не хватает токена
а, хотя WEBHOOK_URL_PATH внутри ж токен

b0g3r
11.06.2017
07:23:30
А, тогда беру слова обратно

Alex
11.06.2017
07:24:00
умничка. быстро отозвал токен :D
(почти)

Benyomin
11.06.2017
07:24:34

Alex
11.06.2017
07:24:46

Benyomin
11.06.2017
07:24:52
))
спасибо

pride
11.06.2017
07:25:24
лол, успел набить вручную?)

Alex
11.06.2017
07:25:32
45 символов всего

b0g3r
11.06.2017
07:26:53
Надо логировать, хотя бы принтами
И кода make response нема

Benyomin
11.06.2017
07:27:13

Google

Alex
11.06.2017
07:27:14
а еще лучше функционалом модуля logging

b0g3r
11.06.2017
07:27:34

pride
11.06.2017
07:28:13
func=lambda message: True, content_types=['text']
в мануале
)

b0g3r
11.06.2017
07:29:20
А может и правда ?
Да, похоже на правду

pride
11.06.2017
07:31:34
:D
или в свой лямбду сунь

Евгений
11.06.2017
08:30:22
Господа, вопрос такой: есть бот на питоне, который будет периодически выбирать один элемент из большого (~3k-10k элементов) массива. Каждый элемент массива - строка в ~30 символов.
Вопрос: что эффективнее - загнать все эти данные в БД или подключить «массив» как объект в один из .py-файлов, загрузив его в память и дёргая оттуда элементы?

Froth
11.06.2017
08:35:04

Евгений
11.06.2017
08:35:34
Спасибо

Froth
11.06.2017
08:36:05

Alex
11.06.2017
08:36:56
но тут же возникаает вопрос скорости работы питона с большими объемами данных в памяти

Froth
11.06.2017
08:37:38

Alex
11.06.2017
08:38:33
а, хотя строка в ~30 символов.. может и справится
ибо с словарями/списками не справляется

b0g3r
11.06.2017
08:38:59
2 мегабайта
Большие данные

Google

b0g3r
11.06.2017
08:39:12
Что значит "не справляется"?)

Alex
11.06.2017
08:39:16

Rinat
11.06.2017
09:26:21
pyTelegramBotAPI. Кто сталкивался с такой проблемой: при отправке запроса к апи телеграма возникает
requests.exceptions.ReadTimeout: HTTPSConnectionPool(host='api.telegram.org', port=443): Read timed out. (read timeout=3.5)
Т.е. апи телеграма ничего не отправляет при том, что соединение установлено (иначе был бы ConnectTimeout и при connection_timeout=3 read_timeout=99999 не висел бы в ожидании ответа). А при коннекте к бд — ConnectionTimeout

pride
11.06.2017
09:29:54
с каналом проблемы
у меня постоянно боты валятся

Евгений
11.06.2017
09:30:50

pride
11.06.2017
09:30:54
о, тупой вопрос:
на хосте траблы с инетом, и бот часто падает
я сделал так:
def handle_ctrl_c(signal, frame):
teardown_network()
sys.exit(130)
и так:
if __name__ == "__main__":
while True:
signal.signal(signal.SIGINT, handle_ctrl_c)
try:
tb.polling(none_stop=True)
except requests.exceptions.ReadTimeout:
time.sleep(15)
если не использую синал, бот не реагирует на CTRL+C
можно без сигналов обойтись, с работающим брейком?

Rinat
11.06.2017
09:31:01

pride
11.06.2017
09:31:02
и обернул бы в трай:
if __name__ == '__main__':
try:
while True:
try:
tb.polling(...)
except ...ReadTimeout:
sleep(...)
except KeyboardInterrupt:
teardown_network()
sys.exit(130)
так не падает
и 1 и 2 решения работают
нагромождено чтобы ctrl+c работало

Rinat
11.06.2017
09:31:35

pride
11.06.2017
09:31:39
вышееее

Евгений
11.06.2017
09:31:55
ссори, да
https://github.com/eternnoir/pyTelegramBotAPI/issues/251#issuecomment-278531560

pride
11.06.2017
09:32:28
у меня он так на брейк не реагирует
поэтому два трая или сигналы

Rinat
11.06.2017
09:35:40

pride
11.06.2017
09:36:20
на одной бот падает 2-10 раз в день с этой ошибкой

Google

Евгений
11.06.2017
09:36:34

pride
11.06.2017
09:36:40
на одной висит неделями

Евгений
11.06.2017
09:36:45

pride
11.06.2017
09:36:53
да

Rinat
11.06.2017
09:37:37

pride
11.06.2017
09:37:45

Rinat
11.06.2017
09:38:10

pride
11.06.2017
09:38:15
я написал, что у меня решена проблема с брейком скрипта

Евгений
11.06.2017
09:38:59

pride
11.06.2017
09:39:08
в решение по ссылке он тупо не ловит ctrl+c
т.е. тебе придется убивать процесс вручную по pid
потому что решение по ссылке обработает все исключения
включая CTRL-C сигнал
бля

Sergey❄️
11.06.2017
09:39:50
Обернуть поллинг в трай, никогда бы не додумался

pride
11.06.2017
09:39:51
я как попугай тут

Alex
11.06.2017
09:39:59
kill -9 <PID>

pride
11.06.2017
09:40:01
пятый раз одно и то же пишу

Google

pride
11.06.2017
09:40:12
можно и сервер ребутнуть
только нахуя

Alex
11.06.2017
09:40:48
вообще

pride
11.06.2017
09:41:02
вообще да, но лучше сделать правильно)

Alex
11.06.2017
09:41:19
самым простым и очевидным решением проблем с лонгполингом есть вебхук

pride
11.06.2017
09:43:24
авотхуй)
ща узнаю у коллеги, но вроде на площадке где падает канал - он не спас

Rinat
11.06.2017
09:44:28
webhook для меня это механизм оповещения событий

Евгений
11.06.2017
09:54:03
Господа, а как вы справляетесь с "некорректными" для БД именами людей в телеге?
Например, у которых "пустые символы" или просто не буквы?

Chuvi
11.06.2017
09:54:30

b0g3r
11.06.2017
09:54:32
А почему оно некорректно в бд?
Ютф8 же

Евгений
11.06.2017
09:55:04

b0g3r
11.06.2017
09:55:53
Нет, я не очень понял что значит "некорректно в бд"

Chuvi
11.06.2017
09:55:53
А причём тут json?
При том что в базу тогда ложатся закодированные в ASCII значения для любого utf символа - нет невалидных символов.

b0g3r
11.06.2017
09:56:44

Евгений
11.06.2017
09:56:47

b0g3r
11.06.2017
09:57:37
Нормальные люди - в ASCII?

pride
11.06.2017
09:57:47

Wyldstyle
11.06.2017
09:57:54