Публикации

Публикации Подписки

10 онлайн-кинотеатров: сколько стоит подписка и что там можно посмотреть

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

Сервис доступен в России. Смотреть видео в высоком качестве можно на любых устройствах, кроме продукции компании Huawei, из-за санкций, введённых США (на них качество будет ниже, чем HD 720p). Все фильмы и сериалы можно смотреть онлайн, а некоторые — загружать, чтобы увидеть офлайн. Однако смотреть загруженные видео можно исключительно в приложении Netflix с активной подпиской, загрузить контент и сразу отменить подписку не получится.

Сколько стоит. Первый месяц — бесплатно. Далее есть разные тарифы.

Примеры контента:сериалы «Чёрное зеркало», «Карточный домик», «Очень странные дела».

В подписку входят и российские, и зарубежные фильмы и сериалы, а также самые зрелищные турниры UFC. Российский контент можно просмотреть до премьеры по телевизору, зарубежный — в день премьеры одновременно со всем миром. По подписке в разделе «ТВ» также доступны трансляции популярных телеканалов. Ещё у платформы есть собственные сериалы и шоу, выходящие под брендом More Originals.

Всё доступно в высоком качестве 1080р, без рекламы, на любых компьютерах и ноутбуках, в приложениях для смартфонов, планшетов, ТВ-приставок и телевизоров Smart TV.

Сколько стоит.299 ₽ в месяц.

Примеры контента:сериалы More Originals «Псих», «Чики», «Трудные подростки».

В Okko представлено более 70 тысяч фильмов, сериалов и мультфильмов от ведущих голливудских и российских студий, включая Warner Brothers, 20th Century Fox, Paramount Pictures, Universal Studios, Walt Disney Pictures. На контент можно оформить подписку либо купить или взять напрокат конкретный фильм. Также можно смотреть ТВ-каналы и спортивные трансляции.

Некоторые новинки доступны в Okko уже во время проката в кинотеатрах.

Смотреть их можно в HDR, 3D, Ultra HD 4K и в качестве 8К, со звуком Dolby Atmos и Dolby Digital Plus. Они могут не входить в подписку, покупать или брать в аренду их нужно отдельно.

Сколько стоит

Примеры контента: эксклюзивные сериал и фильм Okko «Выжившие», «Петровы в гриппе».

Стриминговый сервис с различными фильмами, мультфильмами и сериалами. Здесь нет тарифных планов: по стандартной подписке сразу предлагается вся видеотека, докупать отдельно ничего не нужно.

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

Сколько стоит. Стандартная подписка обойдётся в 299 ₽ в месяц, но если оформить её сразу на три месяца, цена снизится на 11%, на полгода — на 16%, на год — на 25%. То есть с максимальной скидкой подписка стоит 225 ₽ в месяц.

Примеры контента:эксклюзивные сериалы Start «Бывшие», «Медиатор», «Вампиры средней полосы».

Платформа предлагает эксклюзивные видеоматериалы, подготовленные телеканалами «ТНТ», «ТВ-3», «Пятница!», «Супер/Суббота!», «ТНТ4», «2×2», «НТВ», «Матч ТВ» и «Матч! Страна». В этот список входят сериалы, фильмы, мультфильмы и развлекательные шоу.

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

Сколько стоит. Общая подписка на все видео обойдётся в 199 ₽ в месяц. Любители футбола могут отдельно подключить пакет «Матч Премьер» за 299 ₽ или общий пакет «Спорт» с доступом к семи спортивным телеканалам за 399 ₽.

Примеры контента:эксклюзивные сериалы «Эпидемия» (переведён на 12 языков, также есть на Netflix), «Мир! Дружба! Жвачка!», «Инсомния».

Это видеосервис от «Яндекса» с тысячами фильмов, мультфильмов и сериалов. При наличии баллов Яндекс.Плюс ими можно оплачивать подписку или покупки отдельных видео на платформе. За просмотр первого фильма на телевизоре с технологией Smart TV начисляют дополнительные 200 баллов. 1 балл равен 1 ₽.

Сколько стоит.Если нет подписки на Яндекс.Плюс или на КиноПоиск НD, по промокоду можно получить её бесплатно на 45 дней, активировав до 31 декабря 2021 года.

Доступны пять вариантов подписок:

Примеры контента:сериалы «Последний министр», «Проект «Анна Николаевна”», «Топи».

Это одна из старейших в России видеоплатформ с десятками тысяч фильмов, мультфильмов и сериалов. Видео доступны и с переводом, и на языке оригинала с субтитрами, в хорошем качестве — от 1080р до 4К. Смотреть можно на всех устройствах.

Сколько стоит. Часть контента представлена бесплатно. К платной коллекции первые две недели есть доступ за 1 ₽. Далее подписка стоит 399 ₽ в месяц. Если оплатить сразу за три месяца, скидка составит 16%, за полгода — 25%, за год — 37%.

Некоторые фильмы, мультфильмы и сериалы можно взять в аренду или приобрести за дополнительную плату — в среднем 300 ₽ за видео.

Примеры контента: сериалы ivi Originals «Нежность», «Мёртвые души», «Пробуждение».

Крупный видео- и аудиосервис, работающий по всей Восточной Европе. Здесь есть как бесплатный, так и платный контент: фильмы, сериалы, шоу, мультфильмы от студий FOX, BBC news, Sony Corporation, Walt Disney Studios, Universal Pictures, Warner Brothers, Paramount Pictures и других. Можно смотреть спортивные и телевизионные трансляции и слушать подкасты и аудиокниги в приложении.

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

Другие подписки:  Как отключить ОККО от Сбербанка на телефоне: все способы пошагово

Сколько стоит. Есть три варианта подписки.

Примеры контента:эксклюзивные передачи о киберспорте, собственные подкасты и аудиокниги.

Стриминговый сервис для любителей качественных зрелищных зарубежных сериалов. Он выпускает премьеры всех новых проектов HBO и CBS Studios одновременно со всем миром. Также на площадке представлены проекты от FOX, Showtime, Starz, BBC, ABC Studios, Sony Pictures. Любители бокса могут посмотреть лучшие поединки. Смотреть можно на любом устройстве. Докупать отдельно ничего не нужно.

Сколько стоит.Первая неделя бесплатно, далее — 599 ₽ в месяц. Если оплатить сразу три месяца, скидка составит 17%, полгода или год — 30%.

Примеры контента: сериалы «Невероятные», «Сплетница», «Чернобыль».

Новая мультимедийная онлайн-платформа, созданная в 2021 году компанией МТС. Здесь можно смотреть популярные телеканалы, фильмы, мультфильмы, сериалы и бои ММА. Есть эксклюзивный контент, созданный специально для этого сервиса. Смотреть можно в высоком качестве, подключая до пяти устройств. Для этого не обязательно нужно быть абонентом МТС. Смотреть можно по всей России, кроме Республики Крым и Севастополя.

Сколько стоит. Единая подписка на весь контент платформы обойдётся в 199 ₽ в месяц, докупать ничего не потребуется.

Примеры контента: сериалы «Клиника счастья», «Секреты семейной жизни», «Пингвины моей мамы».

Выполнение запросов

Мы готовы выполнить наш первый запрос. Давайте попробуем найти фильм с актерами по его идентификатору. В GraphQL этот запрос выглядит так:

query {
    film(id: 0) {
        id
        title
        actors {
            id
            firstName
            lastName
        }
    }
}

Для Kotlin наш запрос выглядит практически точно так же:

// Instantiate DSL context
val context = cinemaContextOf(createKtorAdapter())

val result = context.query {
    film(id = 0L) {
        id()
        title()
        actors {
            id()
            firstName()
            lastName()
        }
    }
}

Функция context.query объявлена с модификатором suspend, поэтому она не блокирует текущий поток. А что же мы получаем в качестве результата выполнения запроса? В GraphQL результатом является JSON, который выглядит следующим образом:

{
  "data": {
    "film": {
      "id": "0",
      "title": "Amelie",
      "actors": [
        {
          "id": "0",
          "firstName": "Audrey",
          "lastName": "Tautou"
        },
        {
          "id": "1",
          "firstName": "Mathieu",
          "lastName": "Kassovitz"
        }
      ]
    }
  }
}

Для навигации по результатам запросов плагин генерирует интерфейсы «сущностей» на основе GraphQL типов из схемы:

interface Query {
    val film: Film?
    val films: List<Film>
}

interface Mutation {
    val createFilm: Film
}

interface Subscription {
    val filmCreated: Film
}

interface Film {
    val id: Long
    val title: String
    val actors: List<Actor>
}

interface Actor {
    val id: Long
    val firstName: String
    val lastName: String?
}

Функция context.query возвращает экземпляр сущности Query, поэтому навигация по результату выглядит следующим образом:

// Instantiate DSL context
val context = cinemaContextOf(createKtorAdapter())

val result = context.query {
    film(id = 0L) {
        id()
        title()
        actors {
            id()
            firstName()
            lastName()
        }
    }
}

result.film?.also { film ->
    println(film.title)
    film.actors.forEach { actor ->
        println("  ${actor.firstName} ${actor.lastName}")
    }
}

Выполнение мутаций

Давайте создадим новый фильм. GraphQL мутация для создания фильма выглядит так:

mutation {
    createFilm(title: "My Film") {
        id
        title
    }
}

И, в качестве результата, мы получим следующий JSON:

{
  "data": {
    "createFilm": {
      "id": "4",
      "title": "My Film"
    }
  }
}

Я думаю, что вы уже догадались, как наша мутация будет выглядеть в Kotlin:

// Instantiate DSL context
val context = cinemaContextOf(createKtorAdapter())

val result = context.mutation {
    createFilm(title = "My Film") {
        id()
        title()
    }
}

result.createFilm.also { film ->
    println(film.title)
}

Функция context.mutation возвращает экземпляр сущности Mutation, и, так же как и функция context.query, объявлена с модификатором suspend. Таким образом, текущий поток наша мутация не блокирует.

Как выбрать подходящую подписку

Сравните, какие сервисы входят в каждую подписку. Вдруг большая часть вам вообще не нужна. Однажды редактор этой статьи купила «Яндекс-плюс» за 199 Р в месяц. Она редко пользуется сервисами «Яндекса», но рассчитывала на кэшбэк с «Яндекс-маркета».

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

Как покупать подписки со скидкой

Использовать бесплатный пробный период. Те, кто еще ни разу не пользовался конкретной подпиской, могут подключить ее бесплатно. Сейчас, в феврале 2021 года, условия такие: в «Вк-комбо», «Яндекс-плюсе» и «Сбер-прайме» не нужно платить за первый месяц, а в «Плюс-мульти» — за первые два. Только в «Плюс-мульти с „Амедиатекой“» нет бесплатных периодов.

Но эти условия часто меняются. Например, до 11 января 2021 года новые пользователи «Сбер-прайма» могли подключить первые 6 месяцев по цене одного — за 199 Р. А бесплатных периодов не было.

Если у вас еще не было никаких подписок «Яндекса», то «Плюс» или «Плюс-мульти» можно попробовать бесплатно

Найти акцию или распродажу. Большую часть своих подписок я покупала на распродажах — случайно узнавала о них на страницах этих подписок.

На «Сбер-прайм» я тоже подписывалась на Черной пятнице в ноябре 2020 года. Вместо 1990 Р за один год отдала 999 Р за два. По сути подписка обошлась мне в 42 Р в месяц.

Подпиской «Вк-комбо» я пользовалась с ноября 2021 года по февраль 2020 года. В первые три месяца действовала скидка 100 Р, если оплачивать подписку картой «Виза». Тогда полная стоимость подписки была 199 Р в месяц, а не 149 Р, как сейчас.

Полностью пришлось платить и за «Плюс-мульти с „Амедиатекой“». Но предполагаю, что 3200 Р на год для четверых — это тоже временная акция. Не думаю, что «Плюс-мульти с „Амедиатекой“» всегда будет дешевле обычного «Плюс-мульти». Он стоит 299 Р в месяц, или 3588 Р в год.

Без этой подписки станция продается в магазинах за 12 990 Р, и к ней прилагаются 6 месяцев «Плюс-мульти с „Амедиатекой“» и еще 6 месяцев обычного «Плюса». Отдельно первая подписка стоила бы 299 Р в месяц, или 1794 Р за полгода.

А вторая — 199 Р в месяц, или 1194 Р за шесть. Вычитаем стоимость подарочных подписок из стоимости колонки и получаем 10 002 Р. То есть без акции колонка и две подписки обойдутся на 798 Р дешевле, чем по акции «„Плюс-мульти“ с покупкой „Яндекс-станции“».

Другие подписки:  Everwell отписаться от платных услуг - вернуть деньги
Я подписалась на «Плюс-мульти с „Амедиатекой“», когда подписка «Яндекс-плюс» еще не истекла. Оказалось, оставшиеся месяцы не сгорели — подписка включится снова, когда закончится «Плюс-мульти с „Амедиатекой“»

Оформить карту банка-партнера. Иногда банки выпускают карты, по которым можно получить скидку на конкретную подписку или получать по ней дополнительный кэшбэк. Вот у Тинькофф и «Альфа-банка» есть партнерские карты «Яндекс-плюса».

К тому же по карте будет кэшбэк 2% за оплату всех сервисов «Плюса»: «Яндекс-драйва», покупки билетов на «Яндекс-афише» и других. А каждый месяц на один из сервисов повышенный кэшбэк — 10%. Например, в феврале 2021 года такой кэшбэк за покупки на «Яндекс-маркете». Правда, если в подписках включен кэшбэк баллами, то кэшбэка деньгами по карте уже нет.

Дебетовая карта «Яндекс плюс Тинькофф» бесплатная, если перевести на нее кредит или сохранять остаток не меньше 50 000 Р. В остальных случаях она стоит 190 Р в месяц. А обслуживание кредитки в любом случае обойдется в 990 Р в год.

Я пользуюсь картой с марта 2020 года. До ноября у меня была подписка «Яндекс-плюс», а потом — «Плюс-мульти с „Амедиатекой“». В 2020 году мне 9 месяцев возвращали за них деньги. 8 раз я получала по 169 Р — сумма возврата сначала была такая. А потом ее повысили, и с декабря я получаю по 199 Р.

Мне не удалось вернуть деньги в августе, сентябре и октябре 2020 года. Я выполнила условие возврата и потратила по карте больше 10 000 Р. Но один платеж за доставку еды почему-то не учли. Всего за 2020 год я вернула за подписки «Яндекса» 1551 Р. А в 2021 году верну еще 2388 Р.

В октябре мне не хватило для возврата 3 Р: сервис доставки еды использовал неправильный код операции

Купить сертификат на подписку. В «М-видео» и на «Озоне» продают сертификаты на подписки «Яндекса». Такие можно купить, когда подписка нужна не на месяц и не на год, а на 3 или 6 месяцев. Получается выгоднее. В остальных случаях нет разницы: купить подписку напрямую на том же «Яндексе» или в виде сертификата.

Как я экономила с подпиской «вк-комбо»

«Вк-комбо» я пользовалась с ноября 2021 года по февраль 2020 года. Тогда она называлась «Комбо-мэйл-ру» и давала скидку на разные сервисы. Я пользовалась не всеми. Например, скидки 10% на 10 заказов в месяц на «Деливери-клаб» тогда просто не было, а сейчас есть. Та же история со скидкой 7% на заказы из «Самоката».

Но вот что мне пригодилось.

Скидка 10% на заказы в «Перекрестке». Чтобы ее получить, в супермаркете нужно было купить товары минимум на 1500 Р, а в приложении заказ мог быть на любую сумму. В «Вк-комбо» я получала промокод, который вводила на сайте или в приложении «Перекрестка». После этого включалась скидка. За 4 месяца я сэкономила 1855 Р.

Сейчас я предпочитаю заказывать еду в других супермаркетах.

Скидка 10% на все тарифы «Ситимобил». За 4 месяца я сэкономила 609 Р. Сейчас я пользуюсь такой же привилегией по подписке «Сбер-прайм».

Доступ к «Мегафон-ТВ». Тогда можно было выбрать, на что подписаться: на него или на онлайн-кинотеатр «Окко». Я выбрала «Мегафон-ТВ», чтобы смотреть сериалы в метро. Без подписки сервис обходился бы мне в 199 Р в месяц, то есть за 4 месяца я сэкономила 796 Р.

Сейчас, в феврале 2021 года, подписаться можно только на «Окко», и то до 31 марта 2021 года. Отдельно такая подписка стоит 199 Р в месяц. Но я предпочитаю «Амедиатеку» и «Кинопоиск», поэтому привилегия стала для меня бесполезной.

Но и эту акцию заменили: сейчас по подписке дают только двойной чизбургер, но не бесплатно, а за 99 Р вместо 125 Р. И не чаще одного раза в день.

В общем, подписка «Вк-комбо» стала для меня бесполезной, поэтому сейчас я ею не пользуюсь.

Как я экономлю с подписками «яндекса»

Подписками «Яндекса» я пользуюсь с середины 2021 года. Тогда мне понадобился доступ к «Яндекс-музыке» с телефона — отдельно он стоил 99 Р в месяц. А «Яндекс-плюс» за 169 Р в месяц предлагал и музыку, и много других плюшек.

У подписок «Яндекса» есть один большой минус: они дают не живую скидку, а кэшбэк в виде баллов. 1 балл = 1 Р. Они начисляются в личный кабинет на «Яндексе», и ими можно оплатить покупки только на тех сервисах, которые входят в подписку. Обычно я расплачиваюсь ими за такси.

В подписки «Яндекса» входит много разных привилегий: кэшбэк 5% баллами за поездки на «Яндекс-драйве», 10% — за покупки на «Яндекс-афише», 10 Гб дополнительного места на «Яндекс-диске» и много чего еще. Но я расскажу только о тех, которыми пользуюсь сама по подписке «Плюс-мульти с „Амедиатекой“». И посчитаю экономию за последние три месяца — с октября 2020 года по январь 2021 года.

Кэшбэк за покупки на «Яндекс-маркете» и выгодная доставка. 5—10% от стоимости заказа возвращается баллами. А доставка в пункты самовывоза бесплатная при любой сумме заказа. Без подписки нужно заказывать товары минимум на 2999 Р, иначе за доставку придется платить:

Привилегия распространяется и на курьерскую доставку. Без подписки она бесплатная только при заказе на сумму от 2999 Р, а с подпиской достаточно набрать на 699 Р.

Я могла бы получать кэшбэк и раньше, но до 1 октября 2020 года «Яндекс-маркет» был просто сервисом для выбора товаров, а покупать на нем было нельзя.

В приложении «Яндекс-маркет» видно, сколько баллов начислят за его покупку товара. Обычно это 5—10% от его стоимости

Доступ к кино и сериалам на «Кинопоиске» — без подписок «Яндекса» их не посмотреть. А в мою расширенную подписку входят еще сериалы и фильмы «Амедиатеки», доступ к которым тоже через «Кинопоиск».

Почти все фильмы и сериалы «Кинопоиска» и «Амедиатеки» доступны по подписке бесплатно. Платить нужно только за новинки: покупка будет стоить 390 Р — фильм на «Кинопоиске» можно будет смотреть сколько угодно раз в любое время.

Для тех, кто только что подписался, на «Кинопоиске» есть акция — первый фильм можно купить или арендовать со скидкой 90%

Кэшбэк за поездки на «Яндекс-такси»: если машина «Эконом» — 5% баллами, если «Комфорт», «Комфорт » или «Ультима» — 10%. Для меня это не очень выгодно: обычно я выезжаю с дочерью по «детскому тарифу», а за него кэшбэка нет.

В остальное время беру класс «Эконом». В ноябре 2020 года получила за поездки 155 баллов — каждый по 1 Р. А потом стала чаще ездить на такси «Ситимобил» по подписке «Сбер-прайм»: там живая скидка на поездки — 10%. Расскажу об этом дальше.

Доступ к «Амедиатеке». Без подписки доступ к ней обходился бы мне в 649 Р в месяц. Поэтому с ноября 2020 года по январь 2021 года я сэкономила уже 1947 Р.

Конфигурация плагина

Начнем со схемы нашего сервиса. По умолчанию Kobby ищет GraphQL схему в файлах с расширением graphqls в ресурсах проекта. Для простоты разместим нашу схему в одном файле cinema.graphqls:

type Query {
    film(id: ID!): Film
    films: [Film!]!
}

type Mutation {
    createFilm(title: String!): Film!
}

type Subscription {
    filmCreated: Film!
}

type Film {
    id: ID!
    title: String!
    actors: [Actor!]!
}

type Actor {
    id: ID!
    firstName: String!
    lastName: String
}

Эта простая схема позволит нам опробовать все виды операций GraphQL – запросы, мутации и подписки.

Другие подписки:  Решение проблем с EA Play

Далее нам нужно настроить сам плагин. Для Gradle это просто:

plugins {
    kotlin("jvm")
    id("io.github.ermadmi78.kobby") version "1.3.0"
}

dependencies {
    // Add this dependency to enable 
    // Jackson annotation generation in DTO classes
    compileOnly("com.fasterxml.jackson.core:jackson-annotations:2.12.2")

    // Add this dependency to enable 
    // default Ktor adapters generation
    compileOnly("io.ktor:ktor-client-cio:1.5.4")
}

Конфигурация плагина для Maven не столь элегантна:

Kobby поддерживает два способа конфигурации плагина — явную конфигурацию в коде и неявную на основе соглашений. Мы воспользовались конфигурацией на основе соглашений, добавив в проект зависимости от библиотек Jackson и Ktor.

Дело в том, что в процессе сборки проекта, Kobby анализирует его зависимости. И, если находит зависимость от Jackson, то генерирует Jackson аннотации для DTO классов, чтобы упростить их десериализацию из JSON. А если плагин находит зависимость от Ktor, то он генерирует DSL адаптер по умолчанию. Мы поговорим об адаптерах в следующем разделе.

О чем я не рассказал в этой статье?

И, самое главное, я не рассказал о том, как с помощью напильника и функций расширения Kotlin превратить генерируемый DSL в rich domain model на стероидах. Возможно, я расскажу об этом в следующих статьях.

Особенности оформления подписки на дополнительные сеансы или базы

Оформление таких подписок имеет следующие особенности:

  • каждая подписка на дополнительный сеанс или базу применяется к какой-либо подписке на основной тариф и может быть оформлена только до даты окончания этой основной подписки;
  • начало подписки на дополнительный сеанс или базу может быть оформлено текущей или будущей датой, но оно НЕ МОЖЕТ быть ранее начала даты основной подписки;
  • дата окончания подписки на дополнительный сеанс или базу НЕ МОЖЕТ быть после даты окончания основной подписки.

Порядок оформления подписки на дополнительные сеансы или базы

После заключения договора о подписке на дополнительные сеансы и/или базы пользователь партнера с правами оператора или владельца обслуживающей организации должен выполнить следующие действия:

С ноября 2021 года я потратила на подписки 5684 р без учета кэшбэка по карте

На «Яндексе» подписку «Плюс-мульти» можно оплачивать только помесячно — по 299 Р. А в «М-видео» продаются сертификаты на 3, 6 или 12 месяцев. По первому каждый месяц обойдется в 296 Р, по второму — в 248 Р, а по третьему — в 207 Р

Сколько стоят подписки без скидок

У «Яндекса» 5 видов подписок.

«Яндекс-плюс» стоит 199 Р в месяц. Если оплачивать сразу на год, получится дешевле — 1690 Р, или чуть меньше 141 Р в месяц. Я пользовалась этой подпиской с ноября 2021 года по ноябрь 2020 года.

«Плюс-мульти» — это тот же «Яндекс-плюс», только одновременно для четырех человек. Подписка стоит 299 Р в месяц, то есть каждому участнику четверки обходится в 74 Р в месяц.

Я и трое моих друзей пользуемся «Плюс-мульти с „Амедиатекой“» с ноября 2020 года, и она будет действовать год.

Еще у «Яндекса» есть «Плюс с More.tv» и «Плюс-мульти с More.tv». По ним можно смотреть сериалы с More.tv через сайт «Кинопоиска». Первая подписка для одного человека стоит 399 Р в месяц, а вторая — 499 Р в месяц для четверых. Но я ими не пользовалась, поэтому больше не буду упоминать в статье.

Чтобы подключить «Плюс-мульти» или «Плюс-мульти с „Амедиатекой“», один человек оплачивает подписку и подключает к ней еще трех участников. Мои друзья вернули мне ¾ стоимости подписки, когда я заплатила

Подписка «Сбер-прайм» включает в основном сервисы экосистемы «Сбера». Она стоит 199 Р в месяц и 1990 Р в год. Ее я подключила в ноябре 2020 года и пользуюсь до сих пор.

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

Создание контекста dsl

Мы настроили наш плагин. Выполните команду gradle build для Gradle или mvn compile для Maven, и плагин найдет файл cinema.graphqls и создаст DSL на его основе:

Плагин создал файл cinema.kt с функцией cinemaContextOf, которая позволяет создать экземпляр интерфейса CinemaContext. Этот интерфейс является точкой входа для нашего DSL:

fun cinemaContextOf(adapter: CinemaAdapter): CinemaContext =
    CinemaContextImpl(adapter)

В качестве аргумента функция cinemaContextOf принимает ссылку на адаптер – CinemaAdapter. Что такое адаптер? Дело в том, что созданный нами контекст, ничего не знает о транспортном уровне и о протоколе взаимодействия GraphQL.

Он просто собирает строку запроса, и передает ее адаптеру. А адаптер, в свою очередь, должен выполнить всю грязную работу — передать запрос серверу, получить и десериализовать ответ. Можно написать собственную реализацию адаптера или воспользоваться адаптером по умолчанию, созданным плагином.

Создание подписок

Давайте подпишемся на уведомления о новых фильмах в GraphQL:

subscription {
    filmCreated {
        id
        title
    }
}

По этой подписке мы будем получать уведомления в JSON формате:

{
  "data": {
    "filmCreated": {
      "id": "4",
      "title": "My Film"
    }
  }
}

Семантика операции подписки в Kotlin отличается от семантики операций запроса и мутации. В отличие от функций context.query и context.mutation, которые просто отправляют запрос и получают ответ, подписка создает долговременный сеанс для прослушивания входящих сообщений. Нам понадобится асинхронный слушатель:

// Instantiate DSL context
val context = cinemaContextOf(createKtorAdapter())

launch(Dispatchers.Default) {
    context.subscription {
        filmCreated {
            id()
            title()
        }
    }.subscribe {
        while (true) {
            val result = receive()
            result.filmCreated.also { film ->
                println(film.title)
            }
        }
    }
}

Не беспокойтесь, мы не заблокируем текущий поток в бесконечном цикле, так как функция subscribe и функция receiveобъявлены с модификатором suspend.

Время жизни сеанса подписки такое же, как время выполнения функции subscribe. Когда мы входим в функцию, создается сеанс, а когда мы выходим из нее, сеанс уничтожается.

Функция receive возвращает экземпляр сущности Subscription для каждого входящего сообщения.

Оцените статью
Подписки Help
Добавить комментарий