TamTamBot для питона ✔️
123 •
@pyBotApiFrm
Обсуждение, вопросы, предложения.
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
(!) Здесь мы все на "ты"
Иван
279
Я хочу делать ботом вот так
Иван
257
Не понял)
Иван
263
Кто-нибудь подскажет?
Иван
263
Пока вопрос. А как пересылать сообщения в рамках одного чата? В библиотеке не нашёл forward_message
Иван
255
Долго тупил, принимая mp3 за байты
Иван
285
import speech_recognition as sr
import subprocess
import urllib
from urllib.request import urlopen
if update.message.body.attachments and update.message.body.attachments[0].type == 'audio':
url = update.message.body.attachments[0].payload.url
urllib.request.urlretrieve(url, 'temp.mp3')
subprocess.call(['ffmpeg', '-y', '-i', 'temp.mp3', 'temp.wav']) ...
Иван
263
Пока вопрос. А как пересылать сообщения в рамках одного чата? В библиотеке не нашёл forward_message
Иван
258
Сейчас добью и скину
Иван
257
А нет, ещё не до конца
Иван
257
Полдня убил)
Иван
260
Коллеги, я разобрался
m4dn355
256
круто)
m4dn355
251
вот-вот)
RED
250
осталось только скачать файл, перенаправить в яндекс и получить текст
m4dn355
259
в url ссылка на mp3 файл
m4dn355
255
вот бот получил аудиосообщение
m4dn355
253
[{'payload': {'token': 'azikyhk6EtfUokQ3XEnuaeN0JvuXNKuj4K6IhBJkUtE',
'url': 'https://m.ok.ru/dk?st.cmd=moviePlaybackRedirect&expires=1658835999722&type=2&sig=wWIOV_AVvyg&ct=2&clientType=7&id=581810784836'},
'type': 'audio'}]
m4dn355
253
все правильно)
RED
245
Иван отказывается делиться подробностями с сообществом..
m4dn355
244
кстати, интересная тема))
я же правильно понимаю, голосовое сообщение оно будет как и обычное, но в attachments будет ссылка на аудиофайл?
RED
244
ничего невозможного нет
RED
249
обрабатывать.. звучит страшновато. или решил замутить голосовые команды?
Иван
245
Вопрос непонятен. Что делаешь и что не получается при этом?
Хочу принимать и обрабатывать голосовые. Никак не получается
m4dn355
241
все))) заработало))) спасибо огромнейшее))
m4dn355
246
было вот так:
self.msg.send_message(NewMessageBody(f'{data["text"]}', attachment=links), chat_id=-71505373495364)
а должно было быть attachmentS
m4dn355
246
твою дивизию)))) я нашел опечатку)))
RED
245
подставь в своём коде строку print(type(attachments)), чтоб понять, что ты ему пытаешься скормить
m4dn355
247
и тогда заработает?
m4dn355
249
может дело в том, что он во второй строке снизу с ошибкой пишет " 'Content-Type': 'application/json; " ? и надо эту штуку как-то в json конвертировать?
RED
245
[30.10.2019 16:04] RED: eval type(eval("{'lol': 1}"))
[30.10.2019 16:04] BreezeT: <class 'dict'>
[30.10.2019 16:04] RED: eval type(eval("[{'lol': 1}]"))
[30.10.2019 16:04] BreezeT: <class 'list'>
[30.10.2019 16:04] RED: eval type("[{'lol': 1}]")
[30.10.2019 16:04] BreezeT: <class 'str'>
m4dn355
243
блин... eval не заработал....
m4dn355
248
сам бы точно не разобрался))
m4dn355
245
спасибо большое))
RED
245
eval заработает
RED
244
умф
m4dn355
249
точняяяк!! либо я могу хранить в бд mid, а потом каким-то образом узнавать attachments по этому mid)) но это в случае если eval() не заработает))
m4dn355
245
понял)) после обеда поменяю и проверю))) надеюсь заработает))
а то мне в голову еще более жесткий костыль пришел)) завести десяток глобальных переменных и в них хранить содержимое attachments для каждой строки в бд)) и в бд хранить только номер переменной и в зависимости от номера вызывать определенную переменную)) но это костыль жесткий)) перезапускаешь скрипт, или вырубается свет и данные потеря ...
RED
246
сорян. eval
m4dn355
249
блин, после применения exec() содержимое превращается в None ...
RED
244
костыльно на вид, но должно работать.. мне кажется у бд должны быть встроенные средства для таких дел
RED
253
ye z yt pyf.? ytcrjkmrj rjcnskmyj/ e ,l ljk;ys ,snm dcnhjtyyst chtlcndf? vyt rf;tncz
m4dn355
251
то есть перед записью в бд a = str(a), а после чтения a = exec(a), да?)
m4dn355
250
ща попробую))
RED
250
или json
RED
252
ы = exec(ы), например
RED
253
самое простое, разверни строку в словарь с помощью exec