Search
Write a publication
Pull to refresh
277.46
Альфа-Банк
Лучший мобильный банк по версии Markswebb

Мне 34, я был в 65 странах, и у меня есть для вас лайфхак

Level of difficultyEasy
Reading time4 min
Views101K

Вы же попались на этот кликбейт? На самом деле этим лайфхаком я пользовался 4 раза. Но и это немало. Как обычно ищут дешёвые билеты (а может, и туры)?

  • Есть подписка на сервисах бронирований типа Aviasales. Но мне никогда не попадались с её помощью реально хорошие билеты.

  • Есть распродажи авиакомпаний. Чтобы словить выгодные билеты, надо подписаться на большое количество авиакомпаний. Будет приходить много писем, и придётся их просматривать на предмет реальной выгоды и интересных вам стран.

  • Регулярно смотреть самому интересующее направление. Но здесь подойдёт мем:

    Все так же ждали дешёвых билетов?
    Все так же ждали дешёвых билетов?
  • Подписаться на Telegram‑каналы, которые сами мониторят лучшие предложения, типа Samokatus (мне интересно, они руками это делают или как‑то автоматизировали?). О таких каналах и пойдёт дальше речь.

Что лично для меня не так с Telegram-каналами?

  • В них очень много сообщений (до 50 в день). Глазами просматривать это практически невозможно.

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

  • Реально хорошие предложения требую мгновенной реакции, так как улетают как горячие пирожки.

И тут мне пришла в голову идея — а что если как‑то в онлайне вычленять сообщения с конкретным направлением и пересылать его себе? Раньше я уже писал пару ботов для Telegram. Но тут другая история — чат публичный, и бота туда не добавить без разрешения админов.

Я начал исследовать, как можно автоматизировать. Нашёл информацию о том, что у Telegram есть один протокол для работы с ботами, а другой — для работы клиентов, он называется MTProto.

Оказывается, клиенты для десктопов и разных мобилок пишет не сам Telegram, а отдаёт это на откуп сторонним разработчикам. Именно поэтому есть много кастомных клиентов. Значит и мне нужно написать свой (ну как написать — использовать реализацию протокола через либу).

Самая популярная библиотека — это Telethon, написанная на Python. Именно им я пользовался 3 года назад, когда пересылал себе сообщения миниатюрным скриптом, который работал на домашнем компьютере.

Но тут-то я решил расшарить свой лайфхак на OpenSource — значит нужно что‑то серьёзное, разворачиваемое по кнопке и масштабируемое не на меня одного. Начал искать аналогичную либу на Java / Kotlin (мой основной стек), но ни одной готовой работающей библиотеки не нашёл.

Есть либа на C++ от Telegram, но во‑первых, это будет проблема с переносимостью, во‑вторых, она собиралась у меня 30 минут (а ноут улетал в облака) и упала в результате на стандартном MacBook. Значит будем делать минимально возможную версию на Python, а всё остальное на Java.

В итоге получилось две части приложения.

  1. SenderAPI — приложение на Python (аллилуйя СhatGPT), которое:

  • Получает подписки с бэк‑части.

  • Вступает в группы.

  • Читает сообщения группы.

  • Пересылает их в личку от аккаунта.

  1. BackendForwarder — приложение, с которым через бота можно подписаться на открытые группы.

Так это выглядит на схеме:

Схема работы модулей
Схема работы модулей

Я сразу подумал, что можно написать spring-boot-starter, в котором уже есть шедулер, работающий на шаблоне проектирования цепочки обязанностей. Достаточно реализовать свои сервисы обработчики сообщений.

Как это работает:

  • Вы реализуете свои UpdatesService.

  • Шедулер, который запускается в стартере, отдаёт вам сообщения.

Например, у меня сервис CreateSubscriptionService отвечает за создание подписки, а GetForDeleteSubscriptionsService — за просмотр и удаление. Каждый обрабатывает сообщения, предназначенные только для этого сервиса (ссылки в конце статьи).

А теперь самое интересное — демонстрация

Задача: я хочу получать интересные предложения из канала Samokatus.

Идём в бот и подписываемся на публичные группы и сообщения с определёнными фразами.

Ищем крутые билеты
Ищем крутые билеты

Ждём сообщения в личку от аккаунта (нужно разрешить писать тебе не твоим контактам или добавить в контакт свой сервисный аккаунт).

Получаем интересующие сообщения
Получаем интересующие сообщения

При желании можно добавлять новые подписки / управлять старыми.

Мораль этой статьи — когда очень что-то надо, люди могут быть очень изобретательными. Теперь у вас есть инструмент для активных путешествий. Как говорится, путешествуйте, оно того стоит, касатики.

Полезные ссылки, чтобы сделать такого же бота

P. S. Наверно, можно добавить бот не только в группу с путешествиями (или добавить функционал с сочетанием слов для поиска по датам или цене). Найти своё применение вы можете сами.

P.P.S. Помимо билетов и туров чат еще часто используют для поиска товаров по распродажам.

Делитесь в комментариях, как вы обычно ищете билеты и туры.

UPD

Продолжение тут и тут


Статьи, которые могут быть интересны:

Самое главное о том, как проходила моя стажировка на backend-разработчика
Привет! Меня зовут Кирилл, я студент 3-го курса НИУ МЭИ, направление — «Информатика и вычислительная...
habr.com
Заходят как-то в бар Сократ, DeepSeek и 1000 серверов
Так мог бы начаться анекдот, но тема серьёзная — никаких шуток. Сейчас будем говорить про древний ме...
habr.com
Как я пересел на электробайк, а потом обратно
Пересел на электробайк, а потом обратно на обычный велосипед и гибрид больше не куплю  Каждую весну ...
habr.com
Техники антипродуктивности
К чёрту продуктивность. Лично я более 10 лет варился в супе техник продуктивности и борьбы с прокрас...
habr.com
Мне 34, я был в 67 странах, и у меня есть для вас лайфхак (часть 2)
Это не опечатка. Фото из последней поездки есть на обложке статьи. С момента написания прошлой стать...
habr.com

Подписывайтесь на Телеграм-канал Alfa Digital. Рассказываем о работе в IT и Digital, делимся полезными советами, новостями, видео с митапов, краткими выжимками из статей и многим другим, иногда шутим.

Подписывайтесь на блог Альфа-Банка на Хабре, впереди много хороших статей.

Tags:
Hubs:
Total votes 130: ↑68 and ↓62+35
Comments114

Useful links

Программисты всё вымирают и вымирают

Level of difficultyEasy
Reading time19 min
Views139K
Total votes 332: ↑322 and ↓10+374
Comments584

Дореволюционный Энциклопедический словарь Брокгауза и Ефрона

Level of difficultyEasy
Reading time13 min
Views5.4K
Total votes 50: ↑49 and ↓1+67
Comments19

Не всё так просто с луддитами, как кажется

Level of difficultyEasy
Reading time24 min
Views21K
Total votes 138: ↑130 and ↓8+146
Comments136

Кнопки в автомобиле — это уже роскошь

Level of difficultyEasy
Reading time26 min
Views21K
Total votes 86: ↑84 and ↓2+96
Comments610

Великобритания, долги, Южные моря и Исаак Ньютон

Level of difficultyEasy
Reading time12 min
Views8.6K
Total votes 41: ↑40 and ↓1+52
Comments35

Information

Website
digital.alfabank.ru
Registered
Founded
1990
Employees
over 10,000 employees
Location
Россия