
Sergio
09.07.2017
19:50:24
так нет. ошибка когда метод getWebhookinfo вызываю

Magic
09.07.2017
19:50:44
бесплатный от гугла

Google

Sergio
09.07.2017
19:50:50
эммм

Magic
09.07.2017
19:50:51
доброе утро
https://letsencrypt.org/
и установка почти в пару строк
с подключением)))))

Sergio
09.07.2017
19:51:30
хм)
спасибо! но это уже будет последней каплей)))

Sergey
09.07.2017
19:59:38
дело не в сертификате, какая раница сам сгенерил или на сайте, телега принимает самописные и ладно

Sergio
09.07.2017
20:06:34
ничерта не пашет, чёрт!
блин, ну как так-то?
сделал через letsencrypt.org
всеравно в getWebhookinfo pending_update_count == 0, хоть убей

Vaderoff
09.07.2017
20:39:13

Google

You
09.07.2017
20:39:30
Для всех

Евгений
09.07.2017
20:41:21
"Delete for (name)" = "Удалить у (имя)"

BoberMod?
09.07.2017
20:41:58
тут типа удалить дл я твоег собеседника

Vaderoff
09.07.2017
20:42:05
Спасибо

Sergey
09.07.2017
21:03:36

Sergio
09.07.2017
21:10:18
Я же сказал дело не в серте, ищи ошибку в своём коде
вот код, который на данный момент находится в hook.php
$content = file_get_contents("php://input");
$update = json_decode($content, true);
if (!$update) exit;
header("Content-Type: application/json");
$parameters = array();
$parameters["method"] = "sendMessage";
$parameters["chat_id"] = $update["message"]["chat"]["id"];
$parameters["text"] = "blabla";
echo json_encode($parameters);

Sergey
09.07.2017
21:10:48

Sergio
09.07.2017
21:11:50

Sergey
09.07.2017
21:13:58

Yury
09.07.2017
21:21:42
Хм, надо сделать ребрендинг чтобы вписаться в диалог
Телеграм шлёт на твой скрипт запрос, видит ответ 200 OK, и очищает очередь

Сергей
09.07.2017
21:52:00
Подскажите пожалуйста как сделать проверку по нескольким id. Пытаюсь сделать в декораторе проверку, так как не хочется в каждой функцие делать прооверку.
Делаю так, но не работает
def white_list(ids):
print(ids)
f=open('config.json', 'r')
data=json.loads(f.read())
return True
for i in data['tg_chat_ids']:
if i==ids:
return False
@bot.message_handler(func=lambda m: white_list(m.chat.id))
def pas(msg): pass

Sergio
09.07.2017
22:06:10
А в чём проблема?
ну, когда я пишу боту, что угодно, он в товет должен же прислать мне "blabla", но этого он не делает

Rocket
09.07.2017
22:24:15
Ребзи, посоветуйте клиент для iOS, какой там нормальный сейчас есть?

Sergey❄️
09.07.2017
22:25:29
Mobogram вроде

匕モ匕匕モㄥ
09.07.2017
22:29:45
Как бы странно слово "официальный" не звучало

Rocket
09.07.2017
22:30:28

Google

Rocket
09.07.2017
22:30:49
Официальный у меня уже стоит, мне второй нужен

匕モ匕匕モㄥ
09.07.2017
22:31:07
iTele вроде

Vlad
09.07.2017
22:43:41

Rocket
09.07.2017
22:47:41


Карабанов
09.07.2017
23:05:55
Всем привет. У меня около-риторический вопрос. Вероятно, что он пересекается с тем горением, которое было в рамках спора - стоит ли на простые задачи с базой данных - ставить большие БД или ограничиться sqlite.
Есть база данных с "визитками" компаний. Затрахало, когда пользователи пишут - "а поменяй в описании букву "и" на букву "т" и так далее". Я тут подумал - если я могу идентифицировать пользователя по его id, а также по номеру телефона - почему бы не дать ему возможность самостоятельно исправлять что угодно?
И тут возник вопрос. Предположим, что я реализую кнопку "Редактировать" для каждого из пользователей. Он заходит в личный кабинет, жмет "редактировать", получает вопрос - "что редактируем"? Например - "номер телефона". Запрашиваем у него новый номер телефона. И тут вопрос.
Открываем БД, находим таблицу, строку, столбец. Редактируем. Закрываем курсор и таблицу.
Но если кто-то в этот момент отправил запрос с обращением к БД - при сохранении изменений - можно поймать locked. Как тут быть?


Yury
09.07.2017
23:29:54
Всем привет. У меня около-риторический вопрос. Вероятно, что он пересекается с тем горением, которое было в рамках спора - стоит ли на простые задачи с базой данных - ставить большие БД или ограничиться sqlite.
Есть база данных с "визитками" компаний. Затрахало, когда пользователи пишут - "а поменяй в описании букву "и" на букву "т" и так далее". Я тут подумал - если я могу идентифицировать пользователя по его id, а также по номеру телефона - почему бы не дать ему возможность самостоятельно исправлять что угодно?
И тут возник вопрос. Предположим, что я реализую кнопку "Редактировать" для каждого из пользователей. Он заходит в личный кабинет, жмет "редактировать", получает вопрос - "что редактируем"? Например - "номер телефона". Запрашиваем у него новый номер телефона. И тут вопрос.
Открываем БД, находим таблицу, строку, столбец. Редактируем. Закрываем курсор и таблицу.
Но если кто-то в этот момент отправил запрос с обращением к БД - при сохранении изменений - можно поймать locked. Как тут быть?
Попробовать ещё раз, если получили ответ sqlite_busy?


Карабанов
09.07.2017
23:41:46

Yury
09.07.2017
23:49:52
Я не помню, выбрасывает ли она эксепшн
Как то так:
success = False
while not success:
status = db.update_info({...})
success = (status == 'okay')
if not success:
time.sleep(0.1)
Это не очень правильно, конечно, но с пивом потянет

Карабанов
09.07.2017
23:51:53
ну вот история про пиво смущает =) но как я понимаю - такой костыль словить - это нормально? я думаю сделать иначе. Если человек хочет отредактировать что-то - он вносит изменения, но они далее уходят не в БД, а на модерацию во временную таблицу. Да, лишний труд, но без рисков

Yury
10.07.2017
00:02:55
Ну да, или так
Очередь называется такой подход (queue)
Но по трудозатратам, наверное, проще подключить нормальную базу (типа Postgres, как выше советовали), и не париться вообще со всеми этими локами

Карабанов
10.07.2017
00:03:36
Точнее :)

Chuvi
10.07.2017
00:15:46
Ну вообще я тоже подтапливаю за SQLite, но в многопользовательность она плохо может, да.

Карабанов
10.07.2017
00:34:40
У меня ещё вопрос. Вот у меня сидят рыбы в боте. Бывают те, кто про него забыл. Мне их надо вернуть на /start(чтобы они получили последнюю версию бота), если они возвращаются через месяц. Я решил это так - на входной группе у меня стоит консолидатор uid, который тупо в бд пишет id пользователя при первом входе. Далее при любом действии происходит отсылка к функции, где проверяется - есть такой uid в бд или нет. Если нет, то иди в /start. Если я обновил бота, я чищу таблицу. На сколько это верно?


Chuvi
10.07.2017
00:37:20
У меня ещё вопрос. Вот у меня сидят рыбы в боте. Бывают те, кто про него забыл. Мне их надо вернуть на /start(чтобы они получили последнюю версию бота), если они возвращаются через месяц. Я решил это так - на входной группе у меня стоит консолидатор uid, который тупо в бд пишет id пользователя при первом входе. Далее при любом действии происходит отсылка к функции, где проверяется - есть такой uid в бд или нет. Если нет, то иди в /start. Если я обновил бота, я чищу таблицу. На сколько это верно?
Ну, так как куки или какого-либо другого способа "пометить" пользователя нет, то это наверное единственный способ. Разве что можно где-нить в прослоечке, типа Редиса, кэшировать id пользователя на месяц, чтоб основную базу не терзать.

Карабанов
10.07.2017
00:38:11

Michael
10.07.2017
01:26:19
@rust_resisting, to use or not to use sqlite: https://sqlite.org/whentouse.html

Google

Magic
10.07.2017
01:58:31

Евгений
10.07.2017
05:06:47
Парни, вопрос такой: есть БОТ который постить из РСС только людям из списка по ИД в телеграмме?

Илья
10.07.2017
05:14:15

Anton
10.07.2017
05:25:20

Евгений
10.07.2017
05:44:23
А время скрипта лимитированно же

Anton
10.07.2017
05:47:58
Ну разобраться с асинхронностью, вопрос только в том, когда ботапи начнёт залупаться

Николай
10.07.2017
05:48:23

Sergey
10.07.2017
05:48:43
Пул трэдов создаёшь и ловишь ошибку что много запросов ?

Евгений
10.07.2017
05:49:03

Anton
10.07.2017
05:49:10
Ну да, тут уже не 20 строчек

Николай
10.07.2017
05:50:19

Евгений
10.07.2017
05:50:42
Окей, спасибо

Sergey
10.07.2017
05:51:44
Ну хз телега не очень с рассылками из за ограничения
В вк хотя бы можно 25 запросов в 1 обьединить

Николай
10.07.2017
05:53:07
именно, тут ограничение со стороны телеги, а не со стороны скрипта будут. прийдется отправлять партиями и ждать.
к них в ботапи было описано рганичение,насколько помню.

Oleg
10.07.2017
05:57:56
Описание про ограничения неактуально. Актуальных точных параметров нигде нет.
Видимо у телеги «интеллектуальный антифлуд»

Sergey
10.07.2017
06:08:50
Ну я думаю ничего хитрого нет
Просто смотрят если за короткий промежуток ограничение превышено то выдаёт ошибку

stonepig
10.07.2017
07:22:56
привет
Какие бд юзаете для небольшого кол-ва данных?
для ботов

Google

Kirill
10.07.2017
07:24:00
SQLite?

Valera
10.07.2017
07:25:54
Народ, кто знает название POST переменной в которой хранится объект Update, который Telegram по вебхуку отправляет на сервер бота?
Ну или как прочитать обновление в Golang по вебхуку

Serg
10.07.2017
07:38:05

Sergey
10.07.2017
07:38:27
Нужно поймать этот запрос и обработать
А какими инструментами это в go делается я не знаю

Serg
10.07.2017
07:38:38

Valera
10.07.2017
07:39:05

Sergey
10.07.2017
07:39:44

Yury
10.07.2017
07:43:03

Evgeny
10.07.2017
07:43:30
запустил пример на питоне из pytelegrambotapi c cherrpy, все работает но только до определенного момента.
(причем такая же проблема возникает и при использовании pooling)
Проблема одинаковая и на Windows и на Raspbian
После того, как бот не получал сообщений 20 минут, он, такое впечатление, что подвисает(засыпает).
Т.е. отправляем сообщение - получаем эхо.
Ждем 20 минут.
Отправляем сообщение - эха нет (ошибок тоже нет, и даже 200 статус есть).
Отправляем сообщение через 2 секунды - эхо есть.
Что не так?
В пулинге если ловить ошибку, то RedHomeHelper:
20170710_09:47:01_ERROR_polling: <class 'requests.exceptions.ConnectionError'>
20170710_10:26:16_ERROR_polling: <class 'requests.exceptions.ConnectionError'>

Valera
10.07.2017
07:44:46

Константин
10.07.2017
07:45:05
доброго дня, на учебной практике дали задание написать бота для получения погоды.
в принципе бот написан, но он падает, если ввести город, которого нет, либо вообще не ввести город.
погоду беру с yahoo weather
как сделать проверку на пустой json?
пишу на java (изучать начал с началом практики, 5 дней назад)

stonepig
10.07.2017
07:50:36
проверку на response code сделай