@botoid

Страница 1021 из 4042
Vitaly
07.07.2017
22:04:25
микробо - просто раннер, чтобы только логику бота описать и запустить, без этой еботы с полингом и вэбхуками

Сергей
07.07.2017
22:06:52
Привет всем. Подскажите как скрыть кнопки

pride
07.07.2017
22:07:57
Google
Карабанов
07.07.2017
22:09:59
Ребята, почитал вас - спасибо! Подумал, что в случае, если уйду за 10+ к строк - это уже будет успехом и поводом передать все в управление настоящим кодерам =))

Klim
07.07.2017
22:11:18
Все работает как часы в первом случае, но почему второй способ не работает?

Карабанов
07.07.2017
22:11:49
АА!! вопрос формата "рукалицо". В PyCharm как свернуть все развернутые функции? :))))) есть хоткеи? :)

Vitaly
07.07.2017
22:12:43
Все работает как часы в первом случае, но почему второй способ не работает?
потому что первый способ и с телеграфом сработает, точнее везде сработает

Klim
07.07.2017
22:13:05
Хз что это, но мб надо ./micro-bot ?
нет, -bash: ./micro-bot: No such file or directory

Vitaly
07.07.2017
22:13:37
это работает если глобально установить, или если в npm скрипте прописать

Klim
07.07.2017
22:13:40
Я у себя еще пробую микробота

понял

Vitaly
07.07.2017
22:14:23
проще глянуть исходники micro-bot - там строк 100

Google
Карабанов
07.07.2017
22:15:01
ctrl+shift+numpad - \ +
с маком сложнее видимо, но на винде прокатит, надеюсь, спасибо!

pride
07.07.2017
22:16:25
с маком сложнее видимо, но на винде прокатит, надеюсь, спасибо!
ну максимум будет cmd+shit или также останется

Карабанов
07.07.2017
22:16:37
А не не - работает, спасибо огромное!

Карабанов
07.07.2017
22:17:09
ага, там и нашел cmd+shift -/+

b0g3r
07.07.2017
22:17:26
есть ещё магия с ctrl+shift+a

pride
07.07.2017
22:17:27
Yury
07.07.2017
22:29:05
где?
Ну типо этот скрипт скорее всего не установлен глобально, поэтому путь где он лежит отсутствует в $PATH, поэтому запустить его вот так как, как показано в мануале, не получится

И нужно либо через npm bin запускать, либо через export path, либо через абсолютный/относительный путь Как то так Пофиг

Klim
07.07.2017
22:47:27
Vitaly, micro-bot на хероку все равно отваливается

Vitaly
07.07.2017
22:47:53
покажи package.json

Klim
07.07.2017
22:49:04
{ "name": "smart-bot", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "start": "micro-bot -d https://ancient-taiga-58221.herokuapp.com/", "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "micro-bot": "^1.3.0" } }

тут тоже что ли node надо прописать?

Vitaly
07.07.2017
22:50:51
слеш в конце урла ненужен

но то такое

а дерни getWebhookInfo

и еще, сделай вот так "start": "micro-bot -d ${URL} - как в доке

Klim
07.07.2017
23:01:47
"start": "micro-bot -d ${URL} поправил и тогда пришли сообщения

Google
Klim
07.07.2017
23:02:04
но все равно 2017-07-07T22:58:09.940830+00:00 app[web.1]: μ-bot :: Bot started 2017-07-07T22:59:06.964946+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch 2017-07-07T22:59:06.964946+00:00 heroku[web.1]: Stopping process with SIGKILL 2017-07-07T22:59:07.055193+00:00 heroku[web.1]: Process exited with status 137 2017-07-07T22:59:07.068534+00:00 heroku[web.1]: State changed from starting to crashed

Vitaly
07.07.2017
23:15:31
попробуй "start": "micro-bot -d ${URL} -p ${PORT}

Klim
07.07.2017
23:19:37
та же проблема

Vitaly
07.07.2017
23:20:58
странно

гляну вечерком

Klim
07.07.2017
23:22:21
? Спасибо!

Карабанов
07.07.2017
23:22:54
Народ, ракую, спасайте =( Надо одновременно выдать 2 кнопки. (не инлайн) Одна - запрашивает геолокацию, вторая просто "Вернуться". Первая - button_geo = types.KeyboardButton(text="Отправить местоположение", request_location=True) Как смонтировать вторую!? ну это ппц просто упоролся

Карабанов
07.07.2017
23:24:13
а шо таки вторая должна делать?
вернуть блок кнопок, условно key0

pride
07.07.2017
23:25:13
ну keyboardbutton умеет в текст, контакт и гео

больше нихуя

передавай текст, по которому бот будет рисовать другую клавиатуру

например команду /back

Карабанов
07.07.2017
23:31:23
Какой я тупой

bk = types.KeyboardButton(text="Назад")

не думал, что так можно =)

pride
07.07.2017
23:31:35
вут

https://core.telegram.org/bots/api#keyboardbutton

Карабанов
07.07.2017
23:33:06
ага, оттуда и забрал =( ... я вечно изобретаю колесо =(

Стал ловить баг KeyError. Грабля. Причина - пользователь проходит регистрацию путём анкетирования. Все передаваемые ими данные пишутся в словарь. Словарь соответственно декларируется при запуске скрипта, как пустой. Дальше уже user_id набивает его при регистрации. В случае, если он доходит до финала - из словаря все данные уходят в БД и его словарь "опустошается". И все было хорошо... и тут вы сами понимаете - упал бот по таймауту (пример) - перезапуск = пустой словарь для всех. Обновление - перезапуск во время чьей-то регистрации = пустой словарь для всех. Начал ловить KeyError, а тут такое ... только перезапускаешься, человек получает ответ бота - начинает дальше кормить его инфой и снова KeyError - попоболь. Сейчас я обернул KeyError в try/except и возвращаю пользователя в старт регистрации, если словарь был ликвидирован =) , но понимаю, что это не панацея и костыль. Я полагаю, что имеет смысл "конечные автоматы" (если это можно так назвать) при регистрации хранить в БД. Или я не прав про БД?

Google
Илья
08.07.2017
00:00:51
Создай отдельную таблицу для временных результатов, по крону отбрасывай устаревшие результаты

Это дешевле чем держать процесс пока пользователь не родит

Карабанов
08.07.2017
00:02:30
ну просто да - я думал - оп-оп и регистрацию прошли, но некоторые на паузу ставят аж на несколько дней (отвлекли, забыли и прочее), потом возвращаются, а я уже накатил пару версий новых и KeyError - снится уже, мать его

Yury
08.07.2017
00:02:49
Если критично хранить состояние юзера - то да, можно хранить в бд, в Redis например

Карабанов
08.07.2017
00:03:18
а почему не в sqlite в котором я и работаю?

Yury
08.07.2017
00:03:33
Но имхо лучше хранить в переменной и просто проверять, типа if user_id not in states: Если юзер забил на работу с ботом, то ему все равно будет через несколько дней проще начать сначала

а почему не в sqlite в котором я и работаю?
Redis работает с ОЗУ, а sqlite с диском, поэтому редис примерно в миллион раз быстрее

pride
08.07.2017
00:13:53
или держи состояние регистрации in_progress \ finished в бд и лей данные по мере ввода, когда всё заполнено - меняй статус на finished, если брейк был или юзер через два дня вспомнил - по статусу продолжай спрашивать с незаполненного поля а не окончивших регу и висящих чисти из бд по таймеру

Карабанов
08.07.2017
00:15:19
вот я к этому варианту больше склонен - спасибо! =)

Valera
08.07.2017
05:06:25
Народ, как в Golang получить Update по Вебхуку. То есть вебхук уже установлен и нужно в коде получить то, что мне отправил Telegram . Типа аналог в PHP file_get_contents("php://input")

Vitaly
08.07.2017
05:15:01
https://www.google.com/search?q=golang+http+server

b0g3r
08.07.2017
07:19:16
Стал ловить баг KeyError. Грабля. Причина - пользователь проходит регистрацию путём анкетирования. Все передаваемые ими данные пишутся в словарь. Словарь соответственно декларируется при запуске скрипта, как пустой. Дальше уже user_id набивает его при регистрации. В случае, если он доходит до финала - из словаря все данные уходят в БД и его словарь "опустошается". И все было хорошо... и тут вы сами понимаете - упал бот по таймауту (пример) - перезапуск = пустой словарь для всех. Обновление - перезапуск во время чьей-то регистрации = пустой словарь для всех. Начал ловить KeyError, а тут такое ... только перезапускаешься, человек получает ответ бота - начинает дальше кормить его инфой и снова KeyError - попоболь. Сейчас я обернул KeyError в try/except и возвращаю пользователя в старт регистрации, если словарь был ликвидирован =) , но понимаю, что это не панацея и костыль. Я полагаю, что имеет смысл "конечные автоматы" (если это можно так назвать) при регистрации хранить в БД. Или я не прав про БД?
Все верно про бд. Любое внешнее хранилище

Klim
08.07.2017
07:56:39
гляну вечерком
@dotcypress есть новости по микроботу?

Sergey❄️
08.07.2017
10:53:39
Когда слишком много денег

Thank you for your generosity, we currently no longer accept donations via this bot.

b0g3r
08.07.2017
11:04:59
как они это аргументируют?)

Oleg
08.07.2017
11:06:48
как они это аргументируют?)
Когда ты тратишь больше миллиона долларов в месяц на Telegram и собираешь 500 через донаты - то смысла это делать нет.

b0g3r
08.07.2017
11:07:22
а зачем изначально тогда делали? в качестве презентации?

так у них вроде был бот такой же

Google
b0g3r
08.07.2017
11:08:27
чет по воспоминаниям у них был бот без реальной отправки денег, но показывающий интерфейс

Vaderoff
08.07.2017
11:09:46
Есть ли какая нибудь рекламная сеть в телеграме? Ну чтобы через моего бота была реклама, а мне платили за это

Shaman
08.07.2017
11:31:37


Создатель беседы не может из неё ливнуть?

Евгений
08.07.2017
11:34:26
Создатель беседы не может из неё ливнуть?
Если речь о супергруппе, то только через деактивацию аккаунта

Shaman
08.07.2017
11:35:01
Если речь о супергруппе, то только через деактивацию аккаунта
Она потом уничтожится или будет без админа? Если других админов нет

Евгений
08.07.2017
11:35:11
Shaman
08.07.2017
11:35:14
Ок

Yury
08.07.2017
14:37:38
А еще лучше постгрес юзать.
Ноу Постгрес тоже хранит данные на диске А стейты нужно получать максимально быстро, то есть из памяти

Alex
08.07.2017
14:38:47
Pavel
08.07.2017
14:39:11
Во-первых никто из баз сейчас не хранит данные только на диске, у всех есть буферизация и кеширование в памяти. Во-вторых, так ли важно - будет стейт загружен из потсгреса за 0.001 секунду или из редиса за 0.0001 секунду?

Yury
08.07.2017
14:39:43
А теперь иди гуглить сравнение скорости работы разных БД
Ээм, ты мне хочешь сказать, что чтение и запись с диска быстрее, чем чтение и запись из RAM?

Sergey
08.07.2017
14:40:26
? твое лицо когда хванишь стейты в sqlite

Vaderoff
08.07.2017
14:42:43
Я вообще помйму обычный mysql юзаю

Yury
08.07.2017
14:44:50
? твое лицо когда хванишь стейты в sqlite
Ничего страшного в этом нет, просто при большой нагрузке или при большом количестве записей она будет подтормаживать

Страница 1021 из 4042