TamTamBot для питона ✔️

123
Обсуждение, вопросы, предложения. TamTamBot (TTB): https://github.com/asvbkr/TamTamBot">https://github.com/asvbkr/TamTamBot OpenAPI client (OAC): https://github.com/asvbkr/openapi_client">https://github.com/asvbkr/openapi_client * туториал - https://habr.com/ru/company/mailru/blog/466373/ * демобот - https://github.com/asvbkr/ttBotDemo">https://github.com/asvbkr/ttBotDemo Его работающая инсталяция - @asvbkrTestBot1 * Другие примеры - https://github.com/asvbkr (!) Здесь мы все на "ты"
364
или запускать задание из шедулера
375
Да мне по-сути надо снимать с сервера статистику
368
типо того python bot.py и все, пусть работает
если без джанго, то так, ага
391
типо того python bot.py и все, пусть работает
384
как - зависит от используемых средств
379
абсолютли
380
Безусловно можно
375
Бота)
385
"Его" это кого? )
366
я вот только пока не понял, его из командой строчки можно запускать, а не из пичарма?
381
А, пожалста!
385
и за туториал огромный плюс
369
Сергей, воспользовался твоей либой. Спасибо)
384
Не исключаю, что в update.update_previous может быть и свой update.update_previous ну и т.д )))
367
"Беритя!" )
m4dn355
379
кайф вообще))) спасиб)))
m4dn355
389
Готово)))) вот так получилось: update_previous = UpdateCmn(update.update_previous) position = update.message.body.text print(f"ФИО: {update_previous.cmd_args.get('fio')}") print(f"Департамент: {update_previous.cmd_args.get('dep')}") print(f"Должность: {position}")
374
в команду он и приходит
374
Лучше на это переделай
Так он в ТТБ
m4dn355
376
а UpdateCmn откуда импортить?)
371
Да я понял)
363
это типа цитирование с хабры =)
375
Он никогда и не выкатывался, если честно)
362
опять Серега скатился в программирование
408
update_previous = UpdateCmn(update.update_previous)
Лучше на это переделай
367
И уже тогда: `print(f"ФИО: {update_previous.callback.payload.cmd_args.get('fio')}")
Или даже: `print(f"ФИО: {update_previous.payload.cmd_args.get('fio')}")
362
кто бы мне с flask так помог
m4dn355
362
просто Bro power skill pobeda)) вот так сделал: if isinstance(update.update_previous.callback.payload, str): cmd_args = json.loads(update.update_previous.callback.payload).get('cmd_args') fio = cmd_args.get('fio') dep = cmd_args.get('dep') else: print('Самсинг хэс гоу вронг')
385
update_previous = UpdateCmn(update.update_previous)
И уже тогда: `print(f"ФИО: {update_previous.callback.payload.cmd_args.get('fio')}")
402
update_previous = UpdateCmn(update.update_previous)
361
Или ещё проще
355
Вот так: `if isinstance(update.update_previous.callback.payload, str): update.update_previous.callback.payload = json.loads(update.update_previous.callback.payload)
391
не так
358
не
368
только лучше так: if isinstance(update.update_previous.callback.payload.cmd_args, str): update.update_previous.callback.payload.cmd_args = json.loads(update.update_previous.callback.payload.cmd_args)
360
в смысле update.update_previous.callback.payload.cmd_args
365
это ж джейсон
366
ну загрузи его
m4dn355
369
эх блин... эксепшн поймал... print(f"ФИО: {update.update_previous.callback.payload.cmd_args.get('fio')}") AttributeError: 'str' object has no attribute 'cmd_args'
366
как то так
m4dn355
360
ооооооо! вижу)) спасиб))) это получается update.update_previous.callback.payload.cmd_args.get('fio') ?)
359
выбранный пользователем ответ в callback.payload
m4dn355
361
а стоп.... это клавиатура, которую бот отправил, а не выбранный пользователем ответ....
356
ага
m4dn355
359
блин, думаю отсюда как-то можно достать) там в cmd_args есть ФИО и в text есть получается департамент)
m4dn355
357
update previous: {'callback': {'callback_id': 'qQ1krysU0TYTXlBU_UFFonD5JTh7RQih1cnN58hXVx0Gi7pKIXJaSRP1kOeXgOfx', 'payload': '{"cmd": "/position", "cmd_args": {"fio": ' '"\\u0418\\u0432\\u0430\\u043d\\u043e\\u0432 ' '\\u0418\\u0432\\u0430\\u043d ' '\\u0418\\u0432\\u0430\\u043d\\u043e\\u0432\\u0438\\u0447", ...
m4dn355
356
эх))) забыл добавить update.required_cmd_response = True )))
350
в else посмотреть на него нужно
359
Само запихнётся