From da7666540576b29c042e6b849c42213e9ed95883 Mon Sep 17 00:00:00 2001 From: Il`ya Semyonov Date: Mon, 1 Feb 2021 13:02:08 +0100 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=20=D0=BF=D1=80=D0=B8=D0=BC=D0=B5=D1=80=20=D0=B8=D1=81?= =?UTF-8?q?=D0=BF=D0=BE=D0=BB=D1=8C=D0=B7=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8?= =?UTF-8?q?=D1=8F=20=D0=BF=D1=80=D0=BE=D0=BA=D1=81=D0=B8=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B8=20=D0=BD=D0=B5=D0=BE=D0=B1=D1=85=D0=BE=D0=B4=D0=B8=D0=BC?= =?UTF-8?q?=D0=BE=D1=81=D1=82=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- examples/README.md | 4 ++++ examples/proxy.py | 23 +++++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 examples/proxy.py diff --git a/examples/README.md b/examples/README.md index 7b2985d..3840f34 100644 --- a/examples/README.md +++ b/examples/README.md @@ -3,6 +3,10 @@ В этой папке есть небольшие примеры, чтобы показать, как выглядят скрипты, написанные с помощью `yandex-music-api`. +- [proxy](proxy.py) – пример использования прокси, когда у пользователя нет подписки + (так как Яндекс.Музыка недоступна за пределами СНГ. Актуально для расположения + скрипта на зарубежном сервере). При проблемах с авторизацией или токеном + использование клиента без авторизации. - [radio_example](radio_example) – пример [@Angel777d](https://github.com/Angel777d) без внесения правок. Обёртка для более легкого взаимодействия с радио и потоками по разным сущностям ЯМ с примерами её использования. diff --git a/examples/proxy.py b/examples/proxy.py new file mode 100644 index 0000000..07f9f09 --- /dev/null +++ b/examples/proxy.py @@ -0,0 +1,23 @@ +import os + +from yandex_music import Client +from yandex_music.exceptions import YandexMusicError +from yandex_music.utils.request import Request + +yandex_music_token = os.environ.get('YANDEX_MUSIC_TOKEN') +proxied_request = Request(proxy_url=os.environ.get('PROXY_URL')) + +try: + if not yandex_music_token: + raise YandexMusicError() + + # подключаемся без прокси для получения информации об аккаунте (доступно из других стран) + client = Client(yandex_music_token, request=Request()) + # проверяем отсутствие подписки у пользователя + if client.me and client.me.plus and not client.me.plus.has_plus: + # если подписки нет - пересоздаем клиент с использованием прокси + client = Client(yandex_music_token, request=proxied_request) +except YandexMusicError: + # если есть проблемы с авторизацией, токеном или чем-либо еще, то инициализируем клиент без авторизации + # так как сервисом можно пользоваться будучи гостем, но со своими ограничениями + client = Client(request=proxied_request, fetch_account_status=False)