10000

Как я с голосовыми сообщениями боролся2

Сижу я, значит, пью чай, спорю в переписке с одной знакомой дамой об отношении к голосовым сообщениям. (Я из тех, кто считает их лютой дичью.) И внезапно понимаю, что столь желанной функции запрета приема голосовых сообщений от создателей мессенджеров я не дождусь, а просить каждого невоспитанного писать текстом...

Значит, настало время взять ситуацию в свои руки, и воспользоваться тем, что api Телеграма, в котором я переписываюсь чаще всего, открыт. Наверняка уже есть какое-то готовое решение в сети.

штош, иду в гугл. Ииии ничего нет, максимум боты для групп. Обидно, досадно, но ладно, придется вспоминать навыки кодинга, полученные и благополучно забытые лет 5 назад.

Снова иду в гугл, и нахожу телеграм-клиент, написанный на Python, где в примерах уже написана самая сложная часть кода, и даже уже дан пример ответа на сообщения. Вот куда-то сюда надо будет вставить ответ на голосовухи:

Обращаю внимание на подсказку где брать api_id и api_hash для авторизации, получаю, и переношу все это в текстовой файл, попутно удалив лишние строки:

Устанавливаю на компьютер Python, устанавливаю telethon (клиент телеграма, о котором идет речь), запускаю скрипт, авторизируюсь по номеру телефона, и вижу, что мой аккаунт теперь на любое входящее сообщение в ответ присылает "тестовое сообщение". Отлично, половина работы сделана =)

Теперь нужно каким-то образом вычислять какое из входящих сообщений является голосовухой, и какое из них прислано в личном чате (не в группе и не в канале). И эта информация, видимо, прячется в переменной "event". Курение документации в течение часа, к сожалению, ни к чему не приводит, все как на китайском. Отчаиваюсь, иду за дополнительной кружкой чая, в голове матеря любителей голосовух.

Спустя время приходит в голову идея: ищу расширение, которое полностью распечатывает массив, и вывожу всё содержимое "event" в консоль. И в куче текста вижу это:

попалась, голосовуха проклятая!! Щас мы тебя задетектим... Так подумал я, и ничего не получилось: прямой путь к переменной по многомерному массиву не возвращает что-либо типа bool, или хотя бы текст. В итоге скрипт при запуске жалуется на тип данных, и отрубается.

Что ж, пора снова наливать чай и копаться в документации. И снова ничего не выходит.

И раз законными методами не получилось, решил я попробовать кое-что очень грязное.. А именно, проверять, не содержится ли текст "voice=True" в массиве, полностью преобразованном в текст. Сказано - сделано, пора воплощать:

Проверяю: ессс, работает. Скрипт всегда отвечает "тестовое сообщение" на голосовуху.

Ну и дело остается за малым:

1) Добавить проверку на то, что чат личный. Тут все просто: ID каналов и групп всегда отрицательный, а у личных чатов он положительный.

2) Добавить удаление голосовухи из чата. С этим тоже проблем не возникло, кое-что полезное из документации все же удалось вытащить.

3) Поменять текст сообщения. Чтобы он был курсивным, пришлось поставить по 2 подчеркивания по краям.

Конечный результат:

Вы смотрите срез комментариев. Показать все
Автор поста оценил этот комментарий

Просто попросить не присылать и если не послушали перестать общаться? Нее, зачем такие простые пути решения проблемы.

раскрыть ветку (12)
2
Автор поста оценил этот комментарий
Кодить не умеешь? А человек умеет.
раскрыть ветку (2)
Автор поста оценил этот комментарий

Я умею доносить свои мысли до собеседника без глупых обидок, а вот автор не умеет. Щито поделать.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Чего это, каких обидок? Обычное вежливое сообщение в ответ с донесением мысли, не маты же
3
Автор поста оценил этот комментарий

Потому что люди разные бывают?
Есть у меня один знакомый, который присылал мне голосовухи, я ему сообщил, что не приемлю такой вид общения. Потом перестал, потом, видать, забыл об этом, и снова прислал пачку голосовух, был послан нахуй, и вот уже около пары месяцев я не видел ни единой голосовухи от него. Снова забудет, снова оболью говном с ног до головы и отправлю гулять по хуиным полям.
И вот от того, что есть у него такой ебанутый пунктик, мне с ним перестать общаться? Ну так все мы не без греха.

Решение же, которое привёл автор, конечно, классное, но подобное должно быть во всех мессенджерах по дефолту, и именно это решение, а не перевод "нуууу", "ээээ", "аааа" и пердежа на заднем фоне в текст, ибо у меня помимо заёба на голосовухи ещё и заёб на "размер" чата есть - ненавижу когда от пользователей идёт спам сообщений. Хочешь что-то написать - сформируй мысль и пиши, а не шли мне по слову отдельным сообщением.

Я бы ещё что-то из серии "Данный пользователь отрубит вам нахер руку, если вы ещё раз пришлёте ему сраное эмодзи" хотел бы увидеть в мессенджерах.

Вам скучно и хотите попиздеть, видя эмоции человека, имея возможно перебивать его односложными предложениями - для Вас изобрели видео-звонки.

раскрыть ветку (8)
5
Автор поста оценил этот комментарий
И бесят экономящие 3 копейки звоня через мессенджер, при дешевой обычно сотовой связи...
раскрыть ветку (6)
2
Автор поста оценил этот комментарий

Есть у меня и такие индивиды. Отучил их от этого фразой "У меня не установлен whatsapp/viber/skype/telegram/vk (нужное подчеркнуть", и иногда даже врать не приходится, ибо решил почистить весь зоопарк месенджеров на телефоне, оставив только телегу и ВК.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Сброс и заблокировать:)
1
Автор поста оценил этот комментарий

Если разговаривать человеком с другим оператором часто, то деньги заметно уходят. Не три копейки, а рублей 7-14 в минуту, в зависимости от тарифа. В этом случае мессенджеры выгоднее.

раскрыть ветку (3)
1
Автор поста оценил этот комментарий
Почему это должно быть моей проблемой, что у человека нет на позвонить. На трафик то нашел, мобилку умную прикупил, а на позвонить нет денег - дожили
раскрыть ветку (2)
4
Автор поста оценил этот комментарий

Вай-фай безлимитный. А если мобилку когда-то прикупил, это ещё не значит, что сейчас много свободных денег. Не все предпочитают тратить деньги на виртуальные штуки, если собеседников это устраивает, то почему бы нет.

раскрыть ветку (1)
1
Автор поста оценил этот комментарий
Как было в подписи у одного мобильного перекупа начала двухтысячных - если у вас нет денег позвонить, то мы с вами не договоримся.
ещё комментарий
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку