Добавлен пример использования прокси при необходимости

このコミットが含まれているのは:
Il`ya Semyonov 2021-02-01 13:02:08 +01:00
コミット da76665405
2個のファイルの変更27行の追加0行の削除

ファイルの表示

@ -3,6 +3,10 @@
В этой папке есть небольшие примеры, чтобы показать, как выглядят скрипты,
написанные с помощью `yandex-music-api`.
- [proxy](proxy.py) пример использования прокси, когда у пользователя нет подписки
(так как Яндекс.Музыка недоступна за пределами СНГ. Актуально для расположения
скрипта на зарубежном сервере). При проблемах с авторизацией или токеном
использование клиента без авторизации.
- [radio_example](radio_example) пример [@Angel777d](https://github.com/Angel777d)
без внесения правок. Обёртка для более легкого взаимодействия с радио и
потоками по разным сущностям ЯМ с примерами её использования.

23
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)