Мотивация

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

Попробовал ВК Музыку и МТС Музыку вместо Spotify. Ну и посмотрел разные онлайн-кинотеатры, пока были бесплатные пробные периоды и промокоды: More TV, Окко и ТНТ Премьер (До этого сидел в основном на Кинопоиске и Netflix). Не везде впечатлился или впечатлился недостаточно сильно, чтобы продлить подписку, но опыт был интересный.

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

Технологический стэк

В общем подумал: я ж программист - и решил написать Telegram-бота, который будет напоминать мне о подписках. Пара вечеров, сервер на Яндекс Облаке (дабы не было проблем с оплатой AWS, Google Cloud Functions и прочей приблуды, которая в любой момент может закрыть продажи на российском рынке) и готово.

Мой технологический стэк:

  • Python

  • Яндекс.Облако.

    • Плюс №1. Яндекс не уйдёт из России, не перестанет предоставлять услуги, не заблокирует мне учётку со всем кодом и продолжит принимать оплату. Если бы я сделал бота на Google Cloud Functions или AWS, есть риск, что потом пришлось бы всё переписывать.

    • Плюс №2. У Яндекса есть собственные аналоги под всё, что мне было нужно и этим можно пользоваться бесплатно (по крайней мере, пока это не стало популярным). Например, можно воспользоваться Managed Service for YDB вместо других дорогих СУБД.

    • Минус №1 вытекает из предыдущего пункта. Я привык, что, когда что-то не получается в программировании, можно нагуглить решение твоей проблемы на StackOverFlow или найти видео на Youtube, где харизматичный индус всё доходчиво объяснит. В моём случае всё было иначе: очень мало туториалов от сообщества, когда дело доходит до тонкостей, не было (на момент написания бота) видео от харизматичных индусов и приходилось кропотливо самому вникать во все тонкости, читая документацию. Но в итоге я справился.

    • Знаю, что найти туториал по телеграм ботам на Yandex Cloud Functions непросто, так что прикладываю ссылку на годное видео.

Из интересного про всякие облака. Пока пользовался ботом, пробил бесплатный пробный период и пришлось внести депозит, чтобы он не отключился. Ну я и внёс 50 рублей. До сих пор не списали ни рубля, зато бот работает стабильно. Видимо, особо ничего и не потребляет.

Telegram Бот

Ссылка на сам бот

В общем, делюсь сим чудом с общественностью: мб кому-то будет полезен.

Сценарии

Вернёмся к подпискам. Решил остановиться на 3 основных сценариях:

  1. Окончание пробного периода.

  2. Ежемесячная подписка

  3. Ежегодная подписка

Из дополнительного функционала

  • ставлю зелёную галочку рядом с оплаченными подписками,

  • ставлю молнию у подписок, которые ещё предстоит оплатить,

  • считаю общую сумму подписок и пишу, сколько из них уже оплачено.

Это помогает трезво оценивать траты на Digital Entertainment и не выходить за рамки бюджета. Ну и просто интерактивчик. Добавленная подписка вбивается с помощью кнопок и клавиатуры за 5-10 секунд и в итоге список выглядит так:

Сценарии

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

Напоминания о предстоящих списаниях выглядят так.

Вывод

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

Ну и несколько наблюдений по подпискам, которые я выявил в рамках тестирования:

  1. В конце 2021 года я перешёл на годовые подписки в нескольких сервисах ради экономии. Так вот за год стоимость годовой подписки у некоторых сервисов выросла в 2-3 раза. Ну например, в 2021 я купил годовую подписку на сервис N за 1290 рублей, а в декабре у меня с карты списалось 3190. В итоге пришлось писать в поддержку и ругаться.

  2. В онлайн-кинотеатрах есть кросс-показы. Это когда кинотеатры делятся друг с другом собственным контентом и таким образом увеличивают собственную базу фильмов и охват аудитории. Например, Трудных подростков от More TV можно было посмотреть на Кинопоиске без всяких доп подписок. Ну это если вы любите отечественные сериалы. Мне некоторые заходят. Имхо наш кинопродакшн потихонечку развивается и в будущем жду больше годных картин.

Комментарии (14)


  1. centralhardware2
    00.00.0000 00:00
    +3

    Яндекс из России не уйдут конечно, но вы можете и перестать поддерживать бота. Бот интересный и актуальный, но пожалуй я бы предпочтел бы развернуть на своей сервере в докере


  1. AndreyYu
    00.00.0000 00:00

    .


  1. astrelnikov
    00.00.0000 00:00
    +3

    А на код самого бота нет возможности посмотреть ?

    Интересно как начинающему изучать Python.


    1. Big_Russian_Vlad Автор
      00.00.0000 00:00

      Привет! На самом деле в интернете полно всяких разных туториалов на Python. Можно прям гуглить любую мелочь или пример написания бота от А до Я. Свои исходники не выложу: кода много по разным файлам и сразу всего не разберёшь в любом случае.

      На мой взгляд, главная сложность - развернуть бота в докере и настроить локальный сервер (тут тоже есть куча туториалов) или выложить бота на облачный сервер (вот для Яндекса откопал такое https://www.youtube.com/watch?v=4VRSKlMzOX4)


      1. astrelnikov
        00.00.0000 00:00

        Спасибо, буду изучать :)


  1. kaasnake
    00.00.0000 00:00

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


    1. centralhardware2
      00.00.0000 00:00
      +1

      А можно прикрутить туда учет стоимости?


      1. kaasnake
        00.00.0000 00:00

        Имхо функционал суммирования стоимости подписок в разрезе времени избыточен и не оправдывает усложнение решения.


        1. centralhardware2
          00.00.0000 00:00

          Но ведь уменьшение трат это основная цель таких утилит


  1. thunderspb
    00.00.0000 00:00
    +1

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


  1. Bluesrocker22
    00.00.0000 00:00

    Присоединюсь к идее своего сервера. В данный момент пользуюсь чат-ботом для учета всех расходов в firefly-iii, настроил максимально автоматизацию, по пути из магазина забиваю сумму чеков, все разлетаются по категориям. Развернул у себя в облачке и пользуюсь не только я, но и домашние. Есть некоторые некоторые пожелания к разработчику бота, которые я скоро опишу ему в github. Думаю, Ваш проект как-то похожим образом должен реализоваться.

    Не хотелось бы доверять данные по услугам внешним сервисам без какого-то либо явно прописанных agreement и SLA.

    Справедливо замечу, что события в календаре лично мне кажутся более логичным юзкейсом, но тут на вкус и цвет, как говорится.

    Опять же, траты на подписки лично у меня часть бюджета, а его я веду в отдельном "большом" приложении. Остаются напоминалки и в этом плане все же календарь удобнее.


    1. Big_Russian_Vlad Автор
      00.00.0000 00:00

      Интересная идея, спасибо! Подумаю над этим


  1. Deskczar
    00.00.0000 00:00

    Так. Бот не работает. Меняй.


    1. Big_Russian_Vlad Автор
      00.00.0000 00:00

      Привет! Спасибо за обратную связь.

      А что не работает? Пиши, буду разбираться