Yandex.Metrika Counter

В феврале 2019 года я узнал, что Metallica, группа, которую я слушаю уже без малого 18 лет, собирается посетить Россию с концертом. Он пройдёт в Москве в спорткомплексе «Лужники» 21 июля. Естественно, я сразу вознамерился посетить его, но, как оказалось, билетов нет и не было уже с сентября прошлого года.

Фанаты утверждали, что билеты периодически появляются небольшими партиями на сайте официального продавца. Отлично, подумал я, осталось только поймать момент! Но эти же люди выяснили, что билеты раскупают в течение 10 минут. Упустить своё не хотелось, поэтому я решил быстро написать приложение на хорошо знакомом мне JavaScript, а заодно и изучить столько популярный сейчас Node.js. Оно должно было периодически ходить на сайт продавца, парсить страницу и оповещать меня о появлении билетов.

Приложение я написал, но оно не работало как надо — просто переставало функционировать спустя некоторое время. Что интересно, ошибок никаких не было, и вообще — с виду всё было нормально. Периодически я делился своими наблюдениями с коллегами, и все настойчиво рекомендовали переписывать приложение под .NET (благо было кому подсказать, как работать с этой технологией). К тому времени я узнал, что кто-то написал бота «ВКонтакте»  и решил задачу, но во мне уже играли спортивный азарт и любопытство. Так что я взялся за перенос проекта на новую платформу. Тем более, что основная логика занимала меньше 100 строк на JavaSctipt.

Долго ли, коротко ли, в апреле проект пошел на живой. А через пару дней после релиза прошло боевое крещение, настойчиво разбудив меня среди ночи и предложив купить заветный билет.

О том, что билеты появились в продаже, оповещает бот в Telegram

Как это работает? Всё просто: на сайте есть ссылка на группу в Telegram, в которой есть я и бот. Бот отправляет сообщение, как только на странице с билетами появляется таблица цен. Приложение ещё сырое, но оно работает. Отследить и купить билет — реально.

Я разместил исходный код нового приложения на C# на GitHub. Так что при желании вы можете переделать проект под себя и отследить, например, билеты на концерт Rammstein, Стаса Михайлова или любой другой интересующий вас ивент.

Хочу поблагодарить всех, кто помогал советом — это половина бэкендеров нашей компании. Возможно, я сам и не воспользуюсь приложением, но я уже получил огромное удовлетворение от своего первого pet project с реальным практическим применением.

P.S. Наблюдение по «Металлике» — билеты не раскупают за 10 минут: в прошлый раз два выложенных места в фан-зоне забрали меньше, чем за две минуты. А билет в ложу продержался по меньшей мере полчаса.