Merge remote-tracking branch 'origin/main'

This commit is contained in:
kokarare1212 2021-05-23 09:42:36 +09:00
commit 319bde1639
52 changed files with 3085 additions and 2137 deletions

View File

@ -2,28 +2,50 @@
![Stars](https://img.shields.io/github/stars/kokarare1212/librespot-python.svg) ![Stars](https://img.shields.io/github/stars/kokarare1212/librespot-python.svg)
![Forks](https://img.shields.io/github/forks/kokarare1212/librespot-python.svg) ![Forks](https://img.shields.io/github/forks/kokarare1212/librespot-python.svg)
[![DeepSource](https://deepsource.io/gh/kokarare1212/librespot-python.svg/?label=active+issues&show_trend=true)](https://deepsource.io/gh/kokarare1212/librespot-python/?ref=repository-badge) [![DeepSource](https://deepsource.io/gh/kokarare1212/librespot-python.svg/?label=active+issues&show_trend=true)](https://deepsource.io/gh/kokarare1212/librespot-python/?ref=repository-badge)
# Librespot-Python # Librespot-Python
Open Source Spotify Client Open Source Spotify Client
## About The Project ## About The Project
This project was developed to make the music streaming service Spotify available on any device.
This project was developed to make the music streaming service Spotify available
on any device.
## Note ## Note
It is still in the idea stage, so there is a possibility of unintended behavior or major specification changes.
We **DO NOT** encourage piracy and **DO NOT** support any form of downloader/recorder designed with the help of this repository and in general anything that goes against the Spotify ToS. It is still in the idea stage, so there is a possibility of unintended behavior
For other guidelines, please see [CODE_OF_CONDUCT.md](https://github.com/kokarare1212/librespot-python/blob/main/CODE_OF_CONDUCT.md). or major specification changes.
We **DO NOT** encourage piracy and **DO NOT** support any form of
downloader/recorder designed with the help of this repository and in general
anything that goes against the Spotify ToS.
For other guidelines, please see
[CODE_OF_CONDUCT.md](https://github.com/kokarare1212/librespot-python/blob/main/CODE_OF_CONDUCT.md).
## Getting Started ## Getting Started
### Prerequisites ### Prerequisites
* [Python](https://python.org/)
- [Python](https://python.org/)
### Installation ### Installation
Stable Version **\*still not working.** Stable Version **\*still not working.**
```commandline ```commandline
pip install librespot pip install librespot
``` ```
Snapshot Version \***Recommended** Snapshot Version \***Recommended**
```commandline ```commandline
pip install git+https://github.com/kokarare1212/librespot-python pip install git+https://github.com/kokarare1212/librespot-python
``` ```
## Usage ## Usage
### Get Spotify's OAuth token ### Get Spotify's OAuth token
```python ```python
from librespot.core import Session from librespot.core import Session
@ -34,7 +56,9 @@ session = Session.Builder() \
aceess_token = session.tokens().get("playlist-read") aceess_token = session.tokens().get("playlist-read")
``` ```
### Get Music Stream ### Get Music Stream
\*Currently, music streaming is supported, but it may cause unintended behavior. \*Currently, music streaming is supported, but it may cause unintended behavior.
```python ```python
@ -53,24 +77,44 @@ stream = session.content_feeder().load(track_id, VorbisOnlyAudioQuality(AudioQua
# stream.input_stream.stream().read() to get one byte of the music stream. # stream.input_stream.stream().read() to get one byte of the music stream.
# ex: 1 (If there is no more voice data, -1 is received as the result.) # ex: 1 (If there is no more voice data, -1 is received as the result.)
``` ```
Other uses are [examples](https://github.com/kokarare1212/librespot-python/tree/main/examples) or read [this document](https://librespot-python.rtfd.io) for detailed specifications.
Other uses are
[examples](https://github.com/kokarare1212/librespot-python/tree/main/examples)
or read [this document](https://librespot-python.rtfd.io) for detailed
specifications.
## Debug ## Debug
To display the debug information, you need to inject the following code at the top of the code.
To display the debug information, you need to inject the following code at the
top of the code.
```python ```python
import logging import logging
logging.basicConfig(level=logging.DEBUG) logging.basicConfig(level=logging.DEBUG)
``` ```
## Roadmap ## Roadmap
Please read [ROADMAP.md](https://github.com/kokarare1212/librespot-python/blob/main/ROADMAP.md).
Please read
[ROADMAP.md](https://github.com/kokarare1212/librespot-python/blob/main/ROADMAP.md).
## Contributing ## Contributing
Pull requests are welcome. Pull requests are welcome.
## License ## License
Distributed under the Apache-2.0 License. See [LICENSE.txt](https://github.com/kokarare1212/librespot-python/blob/main/LICENSE.txt) for more information.
Distributed under the Apache-2.0 License. See
[LICENSE.txt](https://github.com/kokarare1212/librespot-python/blob/main/LICENSE.txt)
for more information.
## Related Projects ## Related Projects
* [Librespot](https://github.com/librespot-org/librespot) (Concept)
* [Librespot-Java](https://github.com/librespot-org/librespot-java) (Core) - [Librespot](https://github.com/librespot-org/librespot) (Concept)
- [Librespot-Java](https://github.com/librespot-org/librespot-java) (Core)
## Special thanks ## Special thanks
Coming soon Coming soon

View File

@ -16,6 +16,5 @@ currently being supported with security updates.
Use this section to tell people how to report a vulnerability. Use this section to tell people how to report a vulnerability.
Tell them where to go, how often they can expect to get an update on a Tell them where to go, how often they can expect to get an update on a reported
reported vulnerability, what to expect if the vulnerability is accepted or vulnerability, what to expect if the vulnerability is accepted or declined, etc.
declined, etc.

View File

@ -1,2 +1,3 @@
# API Reference # API Reference
Coming soon :) Coming soon :)

View File

@ -12,6 +12,7 @@
# import sys # import sys
# sys.path.insert(0, os.path.abspath('.')) # sys.path.insert(0, os.path.abspath('.'))
from recommonmark.transform import AutoStructify from recommonmark.transform import AutoStructify
# -- Project information ----------------------------------------------------- # -- Project information -----------------------------------------------------
project = "librespot-python" project = "librespot-python"
@ -55,7 +56,11 @@ source_parsers = {
def setup(app): def setup(app):
app.add_config_value("recommonmark_config", { app.add_config_value(
"recommonmark_config",
{
"auto_toc_tree_section": "Contents", "auto_toc_tree_section": "Contents",
}, True) },
True,
)
app.add_transform(AutoStructify) app.add_transform(AutoStructify)

View File

@ -7,13 +7,14 @@
## Contents ## Contents
* [Get Started](index.md) - [Get Started](index.md)
* [Supported Futures](supported.md) - [Supported Futures](supported.md)
* [API Reference](api.md) - [API Reference](api.md)
## What's librespot-python? ## What's librespot-python?
librespot-python is a python port of Spotify's open source client library [librespot](https://github.com/librespot-org/librespot). librespot-python is a python port of Spotify's open source client library
[librespot](https://github.com/librespot-org/librespot).
It was created to play Spotify on various platforms and devices. It was created to play Spotify on various platforms and devices.
@ -29,19 +30,20 @@ Please keep in mind that this library is not like Spotify approved.
Therefore, the worst that can happen is that you will be banned from Spotify. Therefore, the worst that can happen is that you will be banned from Spotify.
Also, please keep in mind that this library is in alpha and may behave in unintended ways. Also, please keep in mind that this library is in alpha and may behave in
unintended ways.
## Installation ## Installation
You can download this library in the following way. You can download this library in the following way.
Stable Version ***still not working.** Stable Version **\*still not working.**
```commandline ```commandline
pip install librespot pip install librespot
``` ```
Snapshot Version ***Recommended** Snapshot Version **\*Recommended**
```commandline ```commandline
pip install git+https://github.com/kokarare1212/librespot-python pip install git+https://github.com/kokarare1212/librespot-python
@ -64,7 +66,7 @@ aceess_token = session.tokens().get("playlist-read")
### Get Music Stream ### Get Music Stream
*Currently, music streaming is supported, but it may cause unintended behavior. \*Currently, music streaming is supported, but it may cause unintended behavior.
```python ```python
from librespot.core import Session from librespot.core import Session
@ -85,7 +87,8 @@ stream = session.content_feeder().load(track_id, VorbisOnlyAudioQuality(AudioQua
## Debug ## Debug
To display the debug information, you need to inject the following code at the top of the code. To display the debug information, you need to inject the following code at the
top of the code.
```python ```python
import logging import logging

View File

@ -6,10 +6,11 @@
| Get Metadata | | | Get Metadata | |
| Play Music | △*1 | | Play Music | △\*1 |
| Spotify Connect | ×*2 | | Spotify Connect | ×\*2 |
*1 It is currently possible to retrieve the music stream, but it requires separate software for decoding. \*1 It is currently possible to retrieve the music stream, but it requires
separate software for decoding.
*2 This feature will be added in the future. \*2 This feature will be added in the future.

View File

@ -1,13 +1,15 @@
import os
import platform
import re
import subprocess
import time
import requests
from librespot.audio.decoders import AudioQuality from librespot.audio.decoders import AudioQuality
from librespot.core import Session from librespot.core import Session
from librespot.metadata import TrackId from librespot.metadata import TrackId
from librespot.player.codecs import VorbisOnlyAudioQuality from librespot.player.codecs import VorbisOnlyAudioQuality
import os
import platform
import re
import requests
import subprocess
import time
quality: AudioQuality = AudioQuality.VERY_HIGH quality: AudioQuality = AudioQuality.VERY_HIGH
session: Session = None session: Session = None
@ -30,10 +32,16 @@ def client():
if args[0] == "exit" or args[0] == "quit": if args[0] == "exit" or args[0] == "quit":
return return
if (args[0] == "p" or args[0] == "play") and len(args) == 2: if (args[0] == "p" or args[0] == "play") and len(args) == 2:
track_uri_search = re.search(r"^spotify:track:(?P<TrackID>[0-9a-zA-Z]{22})$", args[1]) track_uri_search = re.search(
track_url_search = re.search(r"^(https?://)?open.spotify.com/track/(?P<TrackID>[0-9a-zA-Z]{22})(\?si=.+?)?$", args[1]) r"^spotify:track:(?P<TrackID>[0-9a-zA-Z]{22})$", args[1])
track_url_search = re.search(
r"^(https?://)?open.spotify.com/track/(?P<TrackID>[0-9a-zA-Z]{22})(\?si=.+?)?$",
args[1],
)
if track_uri_search is not None or track_url_search is not None: if track_uri_search is not None or track_url_search is not None:
track_id_str = (track_uri_search if track_uri_search is not None else track_url_search).group("TrackID") track_id_str = (track_uri_search
if track_uri_search is not None else
track_url_search).group("TrackID")
play(track_id_str) play(track_id_str)
wait() wait()
if args[0] == "q" or args[0] == "quality": if args[0] == "q" or args[0] == "quality":
@ -51,11 +59,24 @@ def client():
wait() wait()
if (args[0] == "s" or args[0] == "search") and len(args) >= 2: if (args[0] == "s" or args[0] == "search") and len(args) >= 2:
token = session.tokens().get("user-read-email") token = session.tokens().get("user-read-email")
resp = requests.get("https://api.spotify.com/v1/search", {"limit": "5", "offset": "0", "q": cmd[2:], "type": "track"}, headers={"Authorization": "Bearer %s" % token}) resp = requests.get(
"https://api.spotify.com/v1/search",
{
"limit": "5",
"offset": "0",
"q": cmd[2:],
"type": "track"
},
headers={"Authorization": "Bearer %s" % token},
)
i = 1 i = 1
tracks = resp.json()["tracks"]["items"] tracks = resp.json()["tracks"]["items"]
for track in tracks: for track in tracks:
print("%d, %s | %s" % (i, track["name"], ",".join([artist["name"] for artist in track["artists"]]))) print("%d, %s | %s" % (
i,
track["name"],
",".join([artist["name"] for artist in track["artists"]]),
))
i += 1 i += 1
position = -1 position = -1
while True: while True:
@ -92,12 +113,14 @@ def login():
def play(track_id_str: str): def play(track_id_str: str):
track_id = TrackId.from_base62(track_id_str) track_id = TrackId.from_base62(track_id_str)
stream = session.content_feeder().load(track_id, stream = session.content_feeder().load(
VorbisOnlyAudioQuality(AudioQuality.VERY_HIGH), track_id, VorbisOnlyAudioQuality(AudioQuality.VERY_HIGH), False, None)
False, ffplay = subprocess.Popen(
None) ["ffplay", "-"],
ffplay = subprocess.Popen(["ffplay", "-"], stdin=subprocess.PIPE, stdout=subprocess.DEVNULL, stdin=subprocess.PIPE,
stderr=subprocess.DEVNULL) stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL,
)
while True: while True:
byte = stream.input_stream.stream().read() byte = stream.input_stream.stream().read()
if byte == -1: if byte == -1:
@ -106,8 +129,7 @@ def play(track_id_str: str):
def splash(): def splash():
print( print("=================================\n"
"=================================\n"
"| Librespot-Python Player |\n" "| Librespot-Python Player |\n"
"| |\n" "| |\n"
"| by kokarare1212 |\n" "| by kokarare1212 |\n"

View File

@ -4,7 +4,9 @@ import concurrent.futures
import random import random
import socket import socket
from zeroconf import ServiceBrowser, ServiceInfo, Zeroconf from zeroconf import ServiceBrowser
from zeroconf import ServiceInfo
from zeroconf import Zeroconf
from librespot.common import Utils from librespot.common import Utils
from librespot.core import Session from librespot.core import Session

View File

@ -1,10 +1,11 @@
from librespot.audio.HaltListener import HaltListener
from librespot.standard.InputStream import InputStream
import math import math
import threading import threading
import time import time
import typing import typing
from librespot.audio.HaltListener import HaltListener
from librespot.standard.InputStream import InputStream
class AbsChunkedInputStream(InputStream, HaltListener): class AbsChunkedInputStream(InputStream, HaltListener):
preload_ahead: typing.Final[int] = 3 preload_ahead: typing.Final[int] = 3
@ -63,8 +64,7 @@ class AbsChunkedInputStream(InputStream, HaltListener):
raise IOError("Stream is closed!") raise IOError("Stream is closed!")
self._pos = where self._pos = where
self.check_availability(int(self._pos / (128 * 1024)), self.check_availability(int(self._pos / (128 * 1024)), False, False)
False, False)
def skip(self, n: int) -> int: def skip(self, n: int) -> int:
if n < 0: if n < 0:
@ -111,8 +111,8 @@ class AbsChunkedInputStream(InputStream, HaltListener):
for i in range(chunk + 1, for i in range(chunk + 1,
min(self.chunks() - 1, chunk + self.preload_ahead) + 1): min(self.chunks() - 1, chunk + self.preload_ahead) + 1):
if self.requested_chunks( if (self.requested_chunks()[i]
)[i] and self.retries[i] < self.preload_chunk_retries: and self.retries[i] < self.preload_chunk_retries):
self.request_chunk_from_stream(i) self.request_chunk_from_stream(i)
self.requested_chunks()[chunk] = True self.requested_chunks()[chunk] = True

View File

@ -1,16 +1,17 @@
from __future__ import annotations from __future__ import annotations
import logging
import queue
import struct import struct
import threading
import typing
from librespot.common import Utils from librespot.common import Utils
from librespot.core import Session from librespot.core import Session
from librespot.core.PacketsReceiver import PacketsReceiver from librespot.core.PacketsReceiver import PacketsReceiver
from librespot.crypto import Packet from librespot.crypto import Packet
from librespot.standard import BytesInputStream, ByteArrayOutputStream from librespot.standard import ByteArrayOutputStream
import logging from librespot.standard import BytesInputStream
import queue
import threading
import typing
class AudioKeyManager(PacketsReceiver): class AudioKeyManager(PacketsReceiver):

View File

@ -1,20 +1,26 @@
from __future__ import annotations from __future__ import annotations
from librespot.audio import GeneralAudioStream, HaltListener, NormalizationData import logging
import typing
from librespot.audio import GeneralAudioStream
from librespot.audio import HaltListener
from librespot.audio import NormalizationData
from librespot.audio.cdn import CdnFeedHelper from librespot.audio.cdn import CdnFeedHelper
from librespot.audio.format import AudioQualityPicker from librespot.audio.format import AudioQualityPicker
from librespot.common.Utils import Utils from librespot.common.Utils import Utils
from librespot.core import Session from librespot.core import Session
from librespot.metadata import PlayableId, TrackId from librespot.metadata import PlayableId
from librespot.proto import Metadata, StorageResolve from librespot.metadata import TrackId
import logging from librespot.proto import Metadata
import typing from librespot.proto import StorageResolve
class PlayableContentFeeder: class PlayableContentFeeder:
_LOGGER: logging = logging.getLogger(__name__) _LOGGER: logging = logging.getLogger(__name__)
STORAGE_RESOLVE_INTERACTIVE: str = "/storage-resolve/files/audio/interactive/{}" STORAGE_RESOLVE_INTERACTIVE: str = "/storage-resolve/files/audio/interactive/{}"
STORAGE_RESOLVE_INTERACTIVE_PREFETCH: str = "/storage-resolve/files/audio/interactive_prefetch/{}" STORAGE_RESOLVE_INTERACTIVE_PREFETCH: str = (
"/storage-resolve/files/audio/interactive_prefetch/{}")
session: Session session: Session
def __init__(self, session: Session): def __init__(self, session: Session):
@ -30,9 +36,13 @@ class PlayableContentFeeder:
return None return None
def load(self, playable_id: PlayableId, def load(
audio_quality_picker: AudioQualityPicker, preload: bool, self,
halt_listener: HaltListener): playable_id: PlayableId,
audio_quality_picker: AudioQualityPicker,
preload: bool,
halt_listener: HaltListener,
):
if type(playable_id) is TrackId: if type(playable_id) is TrackId:
return self.load_track(playable_id, audio_quality_picker, preload, return self.load_track(playable_id, audio_quality_picker, preload,
halt_listener) halt_listener)
@ -41,9 +51,13 @@ class PlayableContentFeeder:
self, file_id: bytes, self, file_id: bytes,
preload: bool) -> StorageResolve.StorageResolveResponse: preload: bool) -> StorageResolve.StorageResolveResponse:
resp = self.session.api().send( resp = self.session.api().send(
"GET", (self.STORAGE_RESOLVE_INTERACTIVE_PREFETCH "GET",
(self.STORAGE_RESOLVE_INTERACTIVE_PREFETCH
if preload else self.STORAGE_RESOLVE_INTERACTIVE).format( if preload else self.STORAGE_RESOLVE_INTERACTIVE).format(
Utils.bytes_to_hex(file_id)), None, None) Utils.bytes_to_hex(file_id)),
None,
None,
)
if resp.status_code != 200: if resp.status_code != 200:
raise RuntimeError(resp.status_code) raise RuntimeError(resp.status_code)
@ -55,10 +69,13 @@ class PlayableContentFeeder:
storage_resolve_response.ParseFromString(body) storage_resolve_response.ParseFromString(body)
return storage_resolve_response return storage_resolve_response
def load_track(self, track_id_or_track: typing.Union[TrackId, def load_track(
Metadata.Track], self,
audio_quality_picker: AudioQualityPicker, preload: bool, track_id_or_track: typing.Union[TrackId, Metadata.Track],
halt_listener: HaltListener): audio_quality_picker: AudioQualityPicker,
preload: bool,
halt_listener: HaltListener,
):
if type(track_id_or_track) is TrackId: if type(track_id_or_track) is TrackId:
original = self.session.api().get_metadata_4_track( original = self.session.api().get_metadata_4_track(
track_id_or_track) track_id_or_track)
@ -75,9 +92,14 @@ class PlayableContentFeeder:
return self.load_stream(file, track, None, preload, halt_listener) return self.load_stream(file, track, None, preload, halt_listener)
def load_stream(self, file: Metadata.AudioFile, track: Metadata.Track, def load_stream(
episode: Metadata.Episode, preload: bool, self,
halt_lister: HaltListener): file: Metadata.AudioFile,
track: Metadata.Track,
episode: Metadata.Episode,
preload: bool,
halt_lister: HaltListener,
):
if track is None and episode is None: if track is None and episode is None:
raise RuntimeError() raise RuntimeError()
@ -106,11 +128,13 @@ class PlayableContentFeeder:
normalization_data: NormalizationData normalization_data: NormalizationData
metrics: PlayableContentFeeder.Metrics metrics: PlayableContentFeeder.Metrics
def __init__(self, track_or_episode: typing.Union[Metadata.Track, def __init__(
Metadata.Episode], self,
track_or_episode: typing.Union[Metadata.Track, Metadata.Episode],
input_stream: GeneralAudioStream, input_stream: GeneralAudioStream,
normalization_data: NormalizationData, normalization_data: NormalizationData,
metrics: PlayableContentFeeder.Metrics): metrics: PlayableContentFeeder.Metrics,
):
if type(track_or_episode) is Metadata.Track: if type(track_or_episode) is Metadata.Track:
self.track = track_or_episode self.track = track_or_episode
self.episode = None self.episode = None

View File

@ -1,13 +1,18 @@
from __future__ import annotations from __future__ import annotations
from librespot.audio import NormalizationData, PlayableContentFeeder, HaltListener
from librespot.common import Utils
from librespot.core import Session
from librespot.proto import Metadata, StorageResolve
import logging import logging
import random import random
import time import time
import typing import typing
from librespot.audio import HaltListener
from librespot.audio import NormalizationData
from librespot.audio import PlayableContentFeeder
from librespot.common import Utils
from librespot.core import Session
from librespot.proto import Metadata
from librespot.proto import StorageResolve
class CdnFeedHelper: class CdnFeedHelper:
_LOGGER: logging = logging.getLogger(__name__) _LOGGER: logging = logging.getLogger(__name__)
@ -17,10 +22,14 @@ class CdnFeedHelper:
return random.choice(resp.cdnurl) return random.choice(resp.cdnurl)
@staticmethod @staticmethod
def load_track(session: Session, track: Metadata.Track, file: Metadata.AudioFile, def load_track(
session: Session,
track: Metadata.Track,
file: Metadata.AudioFile,
resp_or_url: typing.Union[StorageResolve.StorageResolveResponse, str], resp_or_url: typing.Union[StorageResolve.StorageResolveResponse, str],
preload: bool, halt_listener: HaltListener)\ preload: bool,
-> PlayableContentFeeder.PlayableContentFeeder.LoadedStream: halt_listener: HaltListener,
) -> PlayableContentFeeder.PlayableContentFeeder.LoadedStream:
if type(resp_or_url) is str: if type(resp_or_url) is str:
url = resp_or_url url = resp_or_url
else: else:
@ -31,13 +40,17 @@ class CdnFeedHelper:
streamer = session.cdn().stream_file(file, key, url, halt_listener) streamer = session.cdn().stream_file(file, key, url, halt_listener)
input_stream = streamer.stream() input_stream = streamer.stream()
normalization_data = NormalizationData.NormalizationData.read(input_stream) normalization_data = NormalizationData.NormalizationData.read(
if input_stream.skip(0xa7) != 0xa7: input_stream)
if input_stream.skip(0xA7) != 0xA7:
raise IOError("Couldn't skip 0xa7 bytes!") raise IOError("Couldn't skip 0xa7 bytes!")
return PlayableContentFeeder.PlayableContentFeeder.LoadedStream( return PlayableContentFeeder.PlayableContentFeeder.LoadedStream(
track, streamer, normalization_data, track,
streamer,
normalization_data,
PlayableContentFeeder.PlayableContentFeeder.Metrics( PlayableContentFeeder.PlayableContentFeeder.Metrics(
file.file_id, preload, -1 if preload else audio_key_time)) file.file_id, preload, -1 if preload else audio_key_time),
)
@staticmethod @staticmethod
def load_episode_external( def load_episode_external(
@ -56,15 +69,20 @@ class CdnFeedHelper:
streamer = session.cdn().stream_external_episode( streamer = session.cdn().stream_external_episode(
episode, url, halt_listener) episode, url, halt_listener)
return PlayableContentFeeder.PlayableContentFeeder.LoadedStream( return PlayableContentFeeder.PlayableContentFeeder.LoadedStream(
episode, streamer, None, episode,
streamer,
None,
PlayableContentFeeder.PlayableContentFeeder.Metrics( PlayableContentFeeder.PlayableContentFeeder.Metrics(
None, False, -1)) None, False, -1),
)
@staticmethod @staticmethod
def load_episode( def load_episode(
session: Session, episode: Metadata.Episode, file: Metadata.AudioFile, session: Session,
resp_or_url: typing.Union[StorageResolve.StorageResolveResponse, episode: Metadata.Episode,
str], halt_listener: HaltListener file: Metadata.AudioFile,
resp_or_url: typing.Union[StorageResolve.StorageResolveResponse, str],
halt_listener: HaltListener,
) -> PlayableContentFeeder.PlayableContentFeeder.LoadedStream: ) -> PlayableContentFeeder.PlayableContentFeeder.LoadedStream:
if type(resp_or_url) is str: if type(resp_or_url) is str:
url = resp_or_url url = resp_or_url
@ -77,9 +95,12 @@ class CdnFeedHelper:
streamer = session.cdn().stream_file(file, key, url, halt_listener) streamer = session.cdn().stream_file(file, key, url, halt_listener)
input_stream = streamer.stream() input_stream = streamer.stream()
normalization_data = NormalizationData.read(input_stream) normalization_data = NormalizationData.read(input_stream)
if input_stream.skip(0xa7) != 0xa7: if input_stream.skip(0xA7) != 0xA7:
raise IOError("Couldn't skip 0xa7 bytes!") raise IOError("Couldn't skip 0xa7 bytes!")
return PlayableContentFeeder.PlayableContentFeeder.LoadedStream( return PlayableContentFeeder.PlayableContentFeeder.LoadedStream(
episode, streamer, normalization_data, episode,
streamer,
normalization_data,
PlayableContentFeeder.PlayableContentFeeder.Metrics( PlayableContentFeeder.PlayableContentFeeder.Metrics(
file.file_id, False, audio_key_time)) file.file_id, False, audio_key_time),
)

View File

@ -1,11 +1,5 @@
from __future__ import annotations from __future__ import annotations
from librespot.audio.AbsChunkedInputStream import AbsChunkedInputStream
from librespot.audio import GeneralAudioStream, GeneralWritableStream, StreamId
from librespot.audio.decrypt import AesAudioDecrypt, NoopAudioDecrypt
from librespot.audio.format import SuperAudioFormat
from librespot.audio.storage import ChannelManager
from librespot.common import Utils
from librespot.proto import StorageResolve
import concurrent.futures import concurrent.futures
import logging import logging
import math import math
@ -14,9 +8,20 @@ import time
import typing import typing
import urllib.parse import urllib.parse
from librespot.audio import GeneralAudioStream
from librespot.audio import GeneralWritableStream
from librespot.audio import StreamId
from librespot.audio.AbsChunkedInputStream import AbsChunkedInputStream
from librespot.audio.decrypt import AesAudioDecrypt
from librespot.audio.decrypt import NoopAudioDecrypt
from librespot.audio.format import SuperAudioFormat
from librespot.audio.storage import ChannelManager
from librespot.common import Utils
from librespot.proto import StorageResolve
if typing.TYPE_CHECKING: if typing.TYPE_CHECKING:
from librespot.audio.HaltListener import HaltListener
from librespot.audio.decrypt.AudioDecrypt import AudioDecrypt from librespot.audio.decrypt.AudioDecrypt import AudioDecrypt
from librespot.audio.HaltListener import HaltListener
from librespot.cache.CacheManager import CacheManager from librespot.cache.CacheManager import CacheManager
from librespot.core.Session import Session from librespot.core.Session import Session
from librespot.proto import Metadata from librespot.proto import Metadata
@ -30,9 +35,11 @@ class CdnManager:
self._session = session self._session = session
def get_head(self, file_id: bytes): def get_head(self, file_id: bytes):
resp = self._session.client() \ resp = self._session.client().get(
.get(self._session.get_user_attribute("head-files-url", "https://heads-fa.spotify.com/head/{file_id}") self._session.get_user_attribute(
.replace("{file_id}", Utils.bytes_to_hex(file_id))) "head-files-url",
"https://heads-fa.spotify.com/head/{file_id}").replace(
"{file_id}", Utils.bytes_to_hex(file_id)))
if resp.status_code != 200: if resp.status_code != 200:
raise IOError("{}".format(resp.status_code)) raise IOError("{}".format(resp.status_code))
@ -46,24 +53,41 @@ class CdnManager:
def stream_external_episode(self, episode: Metadata.Episode, def stream_external_episode(self, episode: Metadata.Episode,
external_url: str, external_url: str,
halt_listener: HaltListener): halt_listener: HaltListener):
return CdnManager.Streamer(self._session, StreamId(episode), return CdnManager.Streamer(
self._session,
StreamId(episode),
SuperAudioFormat.MP3, SuperAudioFormat.MP3,
CdnManager.CdnUrl(self, None, external_url), CdnManager.CdnUrl(self, None, external_url),
self._session.cache(), NoopAudioDecrypt(), self._session.cache(),
halt_listener) NoopAudioDecrypt(),
halt_listener,
)
def stream_file(self, file: Metadata.AudioFile, key: bytes, url: str, def stream_file(
halt_listener: HaltListener): self,
return CdnManager.Streamer(self._session, StreamId.StreamId(file), file: Metadata.AudioFile,
key: bytes,
url: str,
halt_listener: HaltListener,
):
return CdnManager.Streamer(
self._session,
StreamId.StreamId(file),
SuperAudioFormat.get(file.format), SuperAudioFormat.get(file.format),
CdnManager.CdnUrl(self, file.file_id, url), CdnManager.CdnUrl(self, file.file_id, url),
self._session.cache(), AesAudioDecrypt(key), self._session.cache(),
halt_listener) AesAudioDecrypt(key),
halt_listener,
)
def get_audio_url(self, file_id: bytes): def get_audio_url(self, file_id: bytes):
resp = self._session.api().send( resp = self._session.api().send(
"GET", "/storage-resolve/files/audio/interactive/{}".format( "GET",
Utils.bytes_to_hex(file_id)), None, None) "/storage-resolve/files/audio/interactive/{}".format(
Utils.bytes_to_hex(file_id)),
None,
None,
)
if resp.status_code != 200: if resp.status_code != 200:
raise IOError(resp.status_code) raise IOError(resp.status_code)
@ -159,7 +183,10 @@ class CdnManager:
else: else:
self._expiration = -1 self._expiration = -1
class Streamer(GeneralAudioStream.GeneralAudioStream, GeneralWritableStream.GeneralWritableStream): class Streamer(
GeneralAudioStream.GeneralAudioStream,
GeneralWritableStream.GeneralWritableStream,
):
_session: Session = None _session: Session = None
_streamId: StreamId = None _streamId: StreamId = None
_executorService = concurrent.futures.ThreadPoolExecutor() _executorService = concurrent.futures.ThreadPoolExecutor()
@ -174,10 +201,16 @@ class CdnManager:
_internalStream: CdnManager.Streamer.InternalStream = None _internalStream: CdnManager.Streamer.InternalStream = None
_haltListener: HaltListener = None _haltListener: HaltListener = None
def __init__(self, session: Session, stream_id: StreamId, def __init__(
audio_format: SuperAudioFormat, cdn_url, self,
cache: CacheManager, audio_decrypt: AudioDecrypt, session: Session,
halt_listener: HaltListener): stream_id: StreamId,
audio_format: SuperAudioFormat,
cdn_url,
cache: CacheManager,
audio_decrypt: AudioDecrypt,
halt_listener: HaltListener,
):
self._session = session self._session = session
self._streamId = stream_id self._streamId = stream_id
self._audioFormat = audio_format self._audioFormat = audio_format
@ -250,12 +283,12 @@ class CdnManager:
range_start = ChannelManager.CHUNK_SIZE * chunk range_start = ChannelManager.CHUNK_SIZE * chunk
range_end = (chunk + 1) * ChannelManager.CHUNK_SIZE - 1 range_end = (chunk + 1) * ChannelManager.CHUNK_SIZE - 1
resp = self._session.client().get(self._cdnUrl._url, resp = self._session.client().get(
self._cdnUrl._url,
headers={ headers={
"Range": "Range": "bytes={}-{}".format(range_start, range_end)
"bytes={}-{}".format( },
range_start, range_end) )
})
if resp.status_code != 206: if resp.status_code != 206:
raise IOError(resp.status_code) raise IOError(resp.status_code)

View File

@ -1,8 +1,10 @@
from __future__ import annotations from __future__ import annotations
from librespot.proto.Metadata import AudioFile
import enum import enum
import typing import typing
from librespot.proto.Metadata import AudioFile
class AudioQuality(enum.Enum): class AudioQuality(enum.Enum):
NORMAL = 0x00 NORMAL = 0x00
@ -11,19 +13,19 @@ class AudioQuality(enum.Enum):
@staticmethod @staticmethod
def get_quality(audio_format: AudioFile.Format) -> AudioQuality: def get_quality(audio_format: AudioFile.Format) -> AudioQuality:
if audio_format == AudioFile.MP3_96 or \ if (audio_format == AudioFile.MP3_96
audio_format == AudioFile.OGG_VORBIS_96 or \ or audio_format == AudioFile.OGG_VORBIS_96
audio_format == AudioFile.AAC_24_NORM: or audio_format == AudioFile.AAC_24_NORM):
return AudioQuality.NORMAL return AudioQuality.NORMAL
if audio_format == AudioFile.MP3_160 or \ if (audio_format == AudioFile.MP3_160
audio_format == AudioFile.MP3_160_ENC or \ or audio_format == AudioFile.MP3_160_ENC
audio_format == AudioFile.OGG_VORBIS_160 or \ or audio_format == AudioFile.OGG_VORBIS_160
audio_format == AudioFile.AAC_24: or audio_format == AudioFile.AAC_24):
return AudioQuality.HIGH return AudioQuality.HIGH
if audio_format == AudioFile.MP3_320 or \ if (audio_format == AudioFile.MP3_320
audio_format == AudioFile.MP3_256 or \ or audio_format == AudioFile.MP3_256
audio_format == AudioFile.OGG_VORBIS_320 or \ or audio_format == AudioFile.OGG_VORBIS_320
audio_format == AudioFile.AAC_48: or audio_format == AudioFile.AAC_48):
return AudioQuality.VERY_HIGH return AudioQuality.VERY_HIGH
raise RuntimeError("Unknown format: {}".format(format)) raise RuntimeError("Unknown format: {}".format(format))
@ -31,8 +33,8 @@ class AudioQuality(enum.Enum):
files: typing.List[AudioFile]) -> typing.List[AudioFile]: files: typing.List[AudioFile]) -> typing.List[AudioFile]:
file_list = [] file_list = []
for file in files: for file in files:
if hasattr(file, "format") and AudioQuality.get_quality( if (hasattr(file, "format")
file.format) == self: and AudioQuality.get_quality(file.format) == self):
file_list.append(file) file_list.append(file)
return file_list return file_list

View File

@ -1,14 +1,30 @@
import time
from Crypto.Cipher import AES from Crypto.Cipher import AES
from Crypto.Util import Counter from Crypto.Util import Counter
from librespot.audio.storage import ChannelManager
from librespot.audio.decrypt.AudioDecrypt import AudioDecrypt from librespot.audio.decrypt.AudioDecrypt import AudioDecrypt
import time from librespot.audio.storage import ChannelManager
class AesAudioDecrypt(AudioDecrypt): class AesAudioDecrypt(AudioDecrypt):
audio_aes_iv = bytes([ audio_aes_iv = bytes([
0x72, 0xe0, 0x67, 0xfb, 0xdd, 0xcb, 0xcf, 0x77, 0xeb, 0xe8, 0xbc, 0x64, 0x72,
0x3f, 0x63, 0x0d, 0x93 0xE0,
0x67,
0xFB,
0xDD,
0xCB,
0xCF,
0x77,
0xEB,
0xE8,
0xBC,
0x64,
0x3F,
0x63,
0x0D,
0x93,
]) ])
iv_int = int.from_bytes(audio_aes_iv, "big") iv_int = int.from_bytes(audio_aes_iv, "big")
iv_diff = 0x100 iv_diff = 0x100
@ -25,9 +41,11 @@ class AesAudioDecrypt(AudioDecrypt):
iv = self.iv_int + int(ChannelManager.CHUNK_SIZE * chunk_index / 16) iv = self.iv_int + int(ChannelManager.CHUNK_SIZE * chunk_index / 16)
start = time.time_ns() start = time.time_ns()
for i in range(0, len(buffer), 4096): for i in range(0, len(buffer), 4096):
cipher = AES.new(key=self.key, cipher = AES.new(
key=self.key,
mode=AES.MODE_CTR, mode=AES.MODE_CTR,
counter=Counter.new(128, initial_value=iv)) counter=Counter.new(128, initial_value=iv),
)
count = min(4096, len(buffer) - i) count = min(4096, len(buffer) - i)
decrypted_buffer = cipher.decrypt(buffer[i:i + count]) decrypted_buffer = cipher.decrypt(buffer[i:i + count])
@ -45,5 +63,5 @@ class AesAudioDecrypt(AudioDecrypt):
return new_buffer return new_buffer
def decrypt_time_ms(self): def decrypt_time_ms(self):
return 0 if self.decrypt_count == 0 else int( return (0 if self.decrypt_count == 0 else int(
(self.decrypt_total_time / self.decrypt_count) / 1000000) (self.decrypt_total_time / self.decrypt_count) / 1000000))

View File

@ -1,4 +1,5 @@
from __future__ import annotations from __future__ import annotations
import typing import typing
if typing.TYPE_CHECKING: if typing.TYPE_CHECKING:

View File

@ -1,16 +1,20 @@
from __future__ import annotations from __future__ import annotations
import concurrent.futures
import logging
import queue import queue
import threading
import typing
from librespot.audio.storage import AudioFile from librespot.audio.storage import AudioFile
from librespot.common import Utils from librespot.common import Utils
from librespot.core import PacketsReceiver, Session from librespot.core import PacketsReceiver
from librespot.core import Session
from librespot.crypto import Packet from librespot.crypto import Packet
from librespot.standard import BytesInputStream, BytesOutputStream, Closeable, Runnable from librespot.standard import BytesInputStream
import concurrent.futures from librespot.standard import BytesOutputStream
import logging from librespot.standard import Closeable
import threading from librespot.standard import Runnable
import typing
class ChannelManager(Closeable, PacketsReceiver.PacketsReceiver): class ChannelManager(Closeable, PacketsReceiver.PacketsReceiver):
@ -19,8 +23,8 @@ class ChannelManager(Closeable, PacketsReceiver.PacketsReceiver):
_channels: typing.Dict[int, Channel] = {} _channels: typing.Dict[int, Channel] = {}
_seqHolder: int = 0 _seqHolder: int = 0
_seqHolderLock: threading.Condition = threading.Condition() _seqHolderLock: threading.Condition = threading.Condition()
_executorService: concurrent.futures.ThreadPoolExecutor = concurrent.futures.ThreadPoolExecutor( _executorService: concurrent.futures.ThreadPoolExecutor = (
) concurrent.futures.ThreadPoolExecutor())
_session: Session = None _session: Session = None
def __init__(self, session: Session): def __init__(self, session: Session):
@ -37,8 +41,8 @@ class ChannelManager(Closeable, PacketsReceiver.PacketsReceiver):
out.write_short(channel.chunkId) out.write_short(channel.chunkId)
out.write_int(0x00000000) out.write_int(0x00000000)
out.write_int(0x00000000) out.write_int(0x00000000)
out.write_int(0x00004e20) out.write_int(0x00004E20)
out.write_int(0x00030d40) out.write_int(0x00030D40)
out.write(file_id) out.write(file_id)
out.write_int(start) out.write_int(start)
out.write_int(end) out.write_int(end)

View File

@ -1,26 +1,9 @@
from __future__ import annotations from __future__ import annotations
from Crypto.Hash import HMAC, SHA1
from Crypto.PublicKey import RSA
from Crypto.Signature import PKCS1_v1_5
from librespot.audio import AudioKeyManager, PlayableContentFeeder
from librespot.audio.cdn import CdnManager
from librespot.audio.storage import ChannelManager
from librespot.cache import CacheManager
from librespot.common.Utils import Utils
from librespot.core import ApResolver, EventService, SearchManager, TokenProvider
from librespot.crypto import CipherPair, DiffieHellman, Packet
from librespot.dealer import ApiClient, DealerClient
from librespot.mercury import MercuryClient, SubListener
from librespot.proto import Authentication, Connect, Keyexchange
from librespot.proto.ExplicitContentPubsub import UserAttributesUpdate
from librespot.standard import BytesInputStream, Closeable, Proxy
from librespot.Version import Version
import base64 import base64
import defusedxml.ElementTree
import json import json
import logging import logging
import os import os
import requests
import sched import sched
import socket import socket
import struct import struct
@ -28,32 +11,299 @@ import threading
import time import time
import typing import typing
import defusedxml.ElementTree
import requests
from Crypto.Hash import HMAC
from Crypto.Hash import SHA1
from Crypto.PublicKey import RSA
from Crypto.Signature import PKCS1_v1_5
from librespot.audio import AudioKeyManager
from librespot.audio import PlayableContentFeeder
from librespot.audio.cdn import CdnManager
from librespot.audio.storage import ChannelManager
from librespot.cache import CacheManager
from librespot.common.Utils import Utils
from librespot.core import ApResolver
from librespot.core import EventService
from librespot.core import SearchManager
from librespot.core import TokenProvider
from librespot.crypto import CipherPair
from librespot.crypto import DiffieHellman
from librespot.crypto import Packet
from librespot.dealer import ApiClient
from librespot.dealer import DealerClient
from librespot.mercury import MercuryClient
from librespot.mercury import SubListener
from librespot.proto import Authentication
from librespot.proto import Connect
from librespot.proto import Keyexchange
from librespot.proto.ExplicitContentPubsub import UserAttributesUpdate
from librespot.standard import BytesInputStream
from librespot.standard import Closeable
from librespot.standard import Proxy
from librespot.Version import Version
class Session(Closeable, SubListener, DealerClient.MessageListener): class Session(Closeable, SubListener, DealerClient.MessageListener):
_LOGGER: logging = logging.getLogger(__name__) _LOGGER: logging = logging.getLogger(__name__)
_serverKey: bytes = bytes([ _serverKey: bytes = bytes([
0xac, 0xe0, 0x46, 0x0b, 0xff, 0xc2, 0x30, 0xaf, 0xf4, 0x6b, 0xfe, 0xc3, 0xAC,
0xbf, 0xbf, 0x86, 0x3d, 0xa1, 0x91, 0xc6, 0xcc, 0x33, 0x6c, 0x93, 0xa1, 0xE0,
0x4f, 0xb3, 0xb0, 0x16, 0x12, 0xac, 0xac, 0x6a, 0xf1, 0x80, 0xe7, 0xf6, 0x46,
0x14, 0xd9, 0x42, 0x9d, 0xbe, 0x2e, 0x34, 0x66, 0x43, 0xe3, 0x62, 0xd2, 0x0B,
0x32, 0x7a, 0x1a, 0x0d, 0x92, 0x3b, 0xae, 0xdd, 0x14, 0x02, 0xb1, 0x81, 0xFF,
0x55, 0x05, 0x61, 0x04, 0xd5, 0x2c, 0x96, 0xa4, 0x4c, 0x1e, 0xcc, 0x02, 0xC2,
0x4a, 0xd4, 0xb2, 0x0c, 0x00, 0x1f, 0x17, 0xed, 0xc2, 0x2f, 0xc4, 0x35, 0x30,
0x21, 0xc8, 0xf0, 0xcb, 0xae, 0xd2, 0xad, 0xd7, 0x2b, 0x0f, 0x9d, 0xb3, 0xAF,
0xc5, 0x32, 0x1a, 0x2a, 0xfe, 0x59, 0xf3, 0x5a, 0x0d, 0xac, 0x68, 0xf1, 0xF4,
0xfa, 0x62, 0x1e, 0xfb, 0x2c, 0x8d, 0x0c, 0xb7, 0x39, 0x2d, 0x92, 0x47, 0x6B,
0xe3, 0xd7, 0x35, 0x1a, 0x6d, 0xbd, 0x24, 0xc2, 0xae, 0x25, 0x5b, 0x88, 0xFE,
0xff, 0xab, 0x73, 0x29, 0x8a, 0x0b, 0xcc, 0xcd, 0x0c, 0x58, 0x67, 0x31, 0xC3,
0x89, 0xe8, 0xbd, 0x34, 0x80, 0x78, 0x4a, 0x5f, 0xc9, 0x6b, 0x89, 0x9d, 0xBF,
0x95, 0x6b, 0xfc, 0x86, 0xd7, 0x4f, 0x33, 0xa6, 0x78, 0x17, 0x96, 0xc9, 0xBF,
0xc3, 0x2d, 0x0d, 0x32, 0xa5, 0xab, 0xcd, 0x05, 0x27, 0xe2, 0xf7, 0x10, 0x86,
0xa3, 0x96, 0x13, 0xc4, 0x2f, 0x99, 0xc0, 0x27, 0xbf, 0xed, 0x04, 0x9c, 0x3D,
0x3c, 0x27, 0x58, 0x04, 0xb6, 0xb2, 0x19, 0xf9, 0xc1, 0x2f, 0x02, 0xe9, 0xA1,
0x48, 0x63, 0xec, 0xa1, 0xb6, 0x42, 0xa0, 0x9d, 0x48, 0x25, 0xf8, 0xb3, 0x91,
0x9d, 0xd0, 0xe8, 0x6a, 0xf9, 0x48, 0x4d, 0xa1, 0xc2, 0xba, 0x86, 0x30, 0xC6,
0x42, 0xea, 0x9d, 0xb3, 0x08, 0x6c, 0x19, 0x0e, 0x48, 0xb3, 0x9d, 0x66, 0xCC,
0xeb, 0x00, 0x06, 0xa2, 0x5a, 0xee, 0xa1, 0x1b, 0x13, 0x87, 0x3c, 0xd7, 0x33,
0x19, 0xe6, 0x55, 0xbd 0x6C,
0x93,
0xA1,
0x4F,
0xB3,
0xB0,
0x16,
0x12,
0xAC,
0xAC,
0x6A,
0xF1,
0x80,
0xE7,
0xF6,
0x14,
0xD9,
0x42,
0x9D,
0xBE,
0x2E,
0x34,
0x66,
0x43,
0xE3,
0x62,
0xD2,
0x32,
0x7A,
0x1A,
0x0D,
0x92,
0x3B,
0xAE,
0xDD,
0x14,
0x02,
0xB1,
0x81,
0x55,
0x05,
0x61,
0x04,
0xD5,
0x2C,
0x96,
0xA4,
0x4C,
0x1E,
0xCC,
0x02,
0x4A,
0xD4,
0xB2,
0x0C,
0x00,
0x1F,
0x17,
0xED,
0xC2,
0x2F,
0xC4,
0x35,
0x21,
0xC8,
0xF0,
0xCB,
0xAE,
0xD2,
0xAD,
0xD7,
0x2B,
0x0F,
0x9D,
0xB3,
0xC5,
0x32,
0x1A,
0x2A,
0xFE,
0x59,
0xF3,
0x5A,
0x0D,
0xAC,
0x68,
0xF1,
0xFA,
0x62,
0x1E,
0xFB,
0x2C,
0x8D,
0x0C,
0xB7,
0x39,
0x2D,
0x92,
0x47,
0xE3,
0xD7,
0x35,
0x1A,
0x6D,
0xBD,
0x24,
0xC2,
0xAE,
0x25,
0x5B,
0x88,
0xFF,
0xAB,
0x73,
0x29,
0x8A,
0x0B,
0xCC,
0xCD,
0x0C,
0x58,
0x67,
0x31,
0x89,
0xE8,
0xBD,
0x34,
0x80,
0x78,
0x4A,
0x5F,
0xC9,
0x6B,
0x89,
0x9D,
0x95,
0x6B,
0xFC,
0x86,
0xD7,
0x4F,
0x33,
0xA6,
0x78,
0x17,
0x96,
0xC9,
0xC3,
0x2D,
0x0D,
0x32,
0xA5,
0xAB,
0xCD,
0x05,
0x27,
0xE2,
0xF7,
0x10,
0xA3,
0x96,
0x13,
0xC4,
0x2F,
0x99,
0xC0,
0x27,
0xBF,
0xED,
0x04,
0x9C,
0x3C,
0x27,
0x58,
0x04,
0xB6,
0xB2,
0x19,
0xF9,
0xC1,
0x2F,
0x02,
0xE9,
0x48,
0x63,
0xEC,
0xA1,
0xB6,
0x42,
0xA0,
0x9D,
0x48,
0x25,
0xF8,
0xB3,
0x9D,
0xD0,
0xE8,
0x6A,
0xF9,
0x48,
0x4D,
0xA1,
0xC2,
0xBA,
0x86,
0x30,
0x42,
0xEA,
0x9D,
0xB3,
0x08,
0x6C,
0x19,
0x0E,
0x48,
0xB3,
0x9D,
0x66,
0xEB,
0x00,
0x06,
0xA2,
0x5A,
0xEE,
0xA1,
0x1B,
0x13,
0x87,
0x3C,
0xD7,
0x19,
0xE6,
0x55,
0xBD,
]) ])
_keys: DiffieHellman = None _keys: DiffieHellman = None
_inner: Session.Inner = None _inner: Session.Inner = None
@ -101,14 +351,16 @@ class Session(Closeable, SubListener, DealerClient.MessageListener):
if conf.proxyAuth and conf.proxyType is not Proxy.Type.DIRECT: if conf.proxyAuth and conf.proxyType is not Proxy.Type.DIRECT:
if conf.proxyAuth: if conf.proxyAuth:
proxy_setting = [ proxy_setting = [
conf.proxyUsername, conf.proxyPassword, conf.proxyAddress, conf.proxyUsername,
conf.proxyPort conf.proxyPassword,
conf.proxyAddress,
conf.proxyPort,
] ]
else: else:
proxy_setting = [conf.proxyAddress, conf.proxyPort] proxy_setting = [conf.proxyAddress, conf.proxyPort]
client.proxies = { client.proxies = {
"http": "{}:{}@{}:{}".format(*proxy_setting), "http": "{}:{}@{}:{}".format(*proxy_setting),
"https": "{}:{}@{}:{}".format(*proxy_setting) "https": "{}:{}@{}:{}".format(*proxy_setting),
} }
return client return client
@ -119,7 +371,7 @@ class Session(Closeable, SubListener, DealerClient.MessageListener):
if (lo & 0x80) == 0: if (lo & 0x80) == 0:
return lo return lo
hi = buffer[1] hi = buffer[1]
return lo & 0x7f | hi << 7 return lo & 0x7F | hi << 7
def client(self) -> requests.Session: def client(self) -> requests.Session:
return self._client return self._client
@ -140,7 +392,8 @@ class Session(Closeable, SubListener, DealerClient.MessageListener):
diffie_hellman=Keyexchange.LoginCryptoDiffieHellmanHello( diffie_hellman=Keyexchange.LoginCryptoDiffieHellmanHello(
gc=self._keys.public_key_array(), server_keys_known=1), ), gc=self._keys.public_key_array(), server_keys_known=1), ),
client_nonce=nonce, client_nonce=nonce,
padding=bytes([0x1e])) padding=bytes([0x1E]),
)
client_hello_bytes = client_hello.SerializeToString() client_hello_bytes = client_hello.SerializeToString()
length = 2 + 4 + len(client_hello_bytes) length = 2 + 4 + len(client_hello_bytes)
@ -178,8 +431,10 @@ class Session(Closeable, SubListener, DealerClient.MessageListener):
diffie_hellman.gs) diffie_hellman.gs)
# noinspection PyTypeChecker # noinspection PyTypeChecker
if not pkcs1_v1_5.verify( if not pkcs1_v1_5.verify(
sha1, ap_response_message.challenge.login_crypto_challenge. sha1,
diffie_hellman.gs_signature): ap_response_message.challenge.login_crypto_challenge.
diffie_hellman.gs_signature,
):
raise RuntimeError("Failed signature check!") raise RuntimeError("Failed signature check!")
# Solve challenge # Solve challenge
@ -203,7 +458,8 @@ class Session(Closeable, SubListener, DealerClient.MessageListener):
diffie_hellman=Keyexchange.LoginCryptoDiffieHellmanResponse( diffie_hellman=Keyexchange.LoginCryptoDiffieHellmanResponse(
hmac=challenge)), hmac=challenge)),
pow_response=Keyexchange.PoWResponseUnion(), pow_response=Keyexchange.PoWResponseUnion(),
crypto_response=Keyexchange.CryptoResponseUnion()) crypto_response=Keyexchange.CryptoResponseUnion(),
)
client_response_plaintext_bytes = client_response_plaintext.SerializeToString( client_response_plaintext_bytes = client_response_plaintext.SerializeToString(
) )
@ -216,8 +472,10 @@ class Session(Closeable, SubListener, DealerClient.MessageListener):
self._conn.set_timeout(1) self._conn.set_timeout(1)
scrap = self._conn.read(4) scrap = self._conn.read(4)
if 4 == len(scrap): if 4 == len(scrap):
length = (scrap[0] << 24) | (scrap[1] << 16) | ( length = ((scrap[0] << 24)
scrap[2] << 8) | (scrap[3] & 0xff) | (scrap[1] << 16)
| (scrap[2] << 8)
| (scrap[3] & 0xFF))
payload = self._conn.read(length - 4) payload = self._conn.read(length - 4)
failed = Keyexchange.APResponseMessage() failed = Keyexchange.APResponseMessage()
failed.ParseFromString(payload) failed.ParseFromString(payload)
@ -245,7 +503,8 @@ class Session(Closeable, SubListener, DealerClient.MessageListener):
self._channelManager = ChannelManager(self) self._channelManager = ChannelManager(self)
self._api = ApiClient.ApiClient(self) self._api = ApiClient.ApiClient(self)
self._cdnManager = CdnManager(self) self._cdnManager = CdnManager(self)
self._contentFeeder = PlayableContentFeeder.PlayableContentFeeder(self) self._contentFeeder = PlayableContentFeeder.PlayableContentFeeder(
self)
self._cacheManager = CacheManager(self) self._cacheManager = CacheManager(self)
self._dealer = DealerClient(self) self._dealer = DealerClient(self)
self._search = SearchManager.SearchManager(self) self._search = SearchManager.SearchManager(self)
@ -276,8 +535,10 @@ class Session(Closeable, SubListener, DealerClient.MessageListener):
os=Authentication.Os.OS_UNKNOWN, os=Authentication.Os.OS_UNKNOWN,
cpu_family=Authentication.CpuFamily.CPU_UNKNOWN, cpu_family=Authentication.CpuFamily.CPU_UNKNOWN,
system_information_string=Version.system_info_string(), system_information_string=Version.system_info_string(),
device_id=self._inner.device_id), device_id=self._inner.device_id,
version_string=Version.version_string()) ),
version_string=Version.version_string(),
)
self._send_unchecked(Packet.Type.login, self._send_unchecked(Packet.Type.login,
client_response_encrypted.SerializeToString()) client_response_encrypted.SerializeToString())
@ -317,8 +578,10 @@ class Session(Closeable, SubListener, DealerClient.MessageListener):
{ {
"username": self._apWelcome.canonical_username, "username": self._apWelcome.canonical_username,
"credentials": base64.b64encode(reusable).decode(), "credentials": base64.b64encode(reusable).decode(),
"type": reusable_type "type": reusable_type,
}, f) },
f,
)
elif packet.is_cmd(Packet.Type.auth_failure): elif packet.is_cmd(Packet.Type.auth_failure):
ap_login_failed = Keyexchange.APLoginFailed() ap_login_failed = Keyexchange.APLoginFailed()
@ -535,7 +798,10 @@ class Session(Closeable, SubListener, DealerClient.MessageListener):
Authentication.LoginCredentials( Authentication.LoginCredentials(
typ=self._apWelcome.reusable_auth_credentials_type, typ=self._apWelcome.reusable_auth_credentials_type,
username=self._apWelcome.canonical_username, username=self._apWelcome.canonical_username,
auth_data=self._apWelcome.reusable_auth_credentials), True) auth_data=self._apWelcome.reusable_auth_credentials,
),
True,
)
self._LOGGER.info("Re-authenticated as {}!".format( self._LOGGER.info("Re-authenticated as {}!".format(
self._apWelcome.canonical_username)) self._apWelcome.canonical_username))
@ -575,8 +841,8 @@ class Session(Closeable, SubListener, DealerClient.MessageListener):
self._userAttributes)) self._userAttributes))
def get_user_attribute(self, key: str, fallback: str = None) -> str: def get_user_attribute(self, key: str, fallback: str = None) -> str:
return self._userAttributes.get(key) if self._userAttributes.get( return (self._userAttributes.get(key)
key) is not None else fallback if self._userAttributes.get(key) is not None else fallback)
def event(self, resp: MercuryClient.Response) -> None: def event(self, resp: MercuryClient.Response) -> None:
if resp.uri == "spotify:user:attributes:update": if resp.uri == "spotify:user:attributes:update":
@ -611,18 +877,20 @@ class Session(Closeable, SubListener, DealerClient.MessageListener):
conf = None conf = None
preferred_locale: str = None preferred_locale: str = None
def __init__(self, def __init__(
self,
device_type: Connect.DeviceType, device_type: Connect.DeviceType,
device_name: str, device_name: str,
preferred_locale: str, preferred_locale: str,
conf: Session.Configuration, conf: Session.Configuration,
device_id: str = None): device_id: str = None,
):
self.preferred_locale = preferred_locale self.preferred_locale = preferred_locale
self.conf = conf self.conf = conf
self.device_type = device_type self.device_type = device_type
self.device_name = device_name self.device_name = device_name
self.device_id = device_id if device_id is not None else Utils.random_hex_string( self.device_id = (device_id if device_id is not None else
40) Utils.random_hex_string(40))
class AbsBuilder: class AbsBuilder:
conf = None conf = None
@ -682,7 +950,8 @@ class Session(Closeable, SubListener, DealerClient.MessageListener):
typ=Authentication.AuthenticationType.Value( typ=Authentication.AuthenticationType.Value(
obj["type"]), obj["type"]),
username=obj["username"], username=obj["username"],
auth_data=base64.b64decode(obj["credentials"])) auth_data=base64.b64decode(obj["credentials"]),
)
except KeyError: except KeyError:
pass pass
@ -692,7 +961,8 @@ class Session(Closeable, SubListener, DealerClient.MessageListener):
self.login_credentials = Authentication.LoginCredentials( self.login_credentials = Authentication.LoginCredentials(
username=username, username=username,
typ=Authentication.AuthenticationType.AUTHENTICATION_USER_PASS, typ=Authentication.AuthenticationType.AUTHENTICATION_USER_PASS,
auth_data=password.encode()) auth_data=password.encode(),
)
return self return self
def create(self) -> Session: def create(self) -> Session:
@ -700,10 +970,15 @@ class Session(Closeable, SubListener, DealerClient.MessageListener):
raise RuntimeError("You must select an authentication method.") raise RuntimeError("You must select an authentication method.")
session = Session( session = Session(
Session.Inner(self.device_type, self.device_name, Session.Inner(
self.preferred_locale, self.conf, self.device_type,
self.device_id), self.device_name,
ApResolver.get_random_accesspoint()) self.preferred_locale,
self.conf,
self.device_id,
),
ApResolver.get_random_accesspoint(),
)
session._connect() session._connect()
session._authenticate(self.login_credentials) session._authenticate(self.login_credentials)
return session return session
@ -730,12 +1005,22 @@ class Session(Closeable, SubListener, DealerClient.MessageListener):
# Fetching # Fetching
retry_on_chunk_error: bool retry_on_chunk_error: bool
def __init__(self, proxy_enabled: bool, proxy_type: Proxy.Type, def __init__(
proxy_address: str, proxy_port: int, proxy_auth: bool, self,
proxy_username: str, proxy_password: str, proxy_enabled: bool,
cache_enabled: bool, cache_dir: str, proxy_type: Proxy.Type,
do_cache_clean_up: bool, store_credentials: bool, proxy_address: str,
stored_credentials_file: str, retry_on_chunk_error: bool): proxy_port: int,
proxy_auth: bool,
proxy_username: str,
proxy_password: str,
cache_enabled: bool,
cache_dir: str,
do_cache_clean_up: bool,
store_credentials: bool,
stored_credentials_file: str,
retry_on_chunk_error: bool,
):
self.proxyEnabled = proxy_enabled self.proxyEnabled = proxy_enabled
self.proxyType = proxy_type self.proxyType = proxy_type
self.proxyAddress = proxy_address self.proxyAddress = proxy_address
@ -844,11 +1129,20 @@ class Session(Closeable, SubListener, DealerClient.MessageListener):
def build(self) -> Session.Configuration: def build(self) -> Session.Configuration:
return Session.Configuration( return Session.Configuration(
self.proxyEnabled, self.proxyType, self.proxyAddress, self.proxyEnabled,
self.proxyPort, self.proxyAuth, self.proxyUsername, self.proxyType,
self.proxyPassword, self.cache_enabled, self.cache_dir, self.proxyAddress,
self.do_cache_clean_up, self.store_credentials, self.proxyPort,
self.stored_credentials_file, self.retry_on_chunk_error) self.proxyAuth,
self.proxyUsername,
self.proxyPassword,
self.cache_enabled,
self.cache_dir,
self.do_cache_clean_up,
self.store_credentials,
self.stored_credentials_file,
self.retry_on_chunk_error,
)
class SpotifyAuthenticationException(Exception): class SpotifyAuthenticationException(Exception):
def __init__(self, login_failed: Keyexchange.APLoginFailed): def __init__(self, login_failed: Keyexchange.APLoginFailed):
@ -1021,18 +1315,17 @@ class Session(Closeable, SubListener, DealerClient.MessageListener):
self.session._LOGGER.debug("Received 0x10: {}".format( self.session._LOGGER.debug("Received 0x10: {}".format(
Utils.bytes_to_hex(packet.payload))) Utils.bytes_to_hex(packet.payload)))
continue continue
if cmd == Packet.Type.mercury_sub or \ if (cmd == Packet.Type.mercury_sub
cmd == Packet.Type.mercury_unsub or \ or cmd == Packet.Type.mercury_unsub
cmd == Packet.Type.mercury_event or \ or cmd == Packet.Type.mercury_event
cmd == Packet.Type.mercury_req: or cmd == Packet.Type.mercury_req):
self.session.mercury().dispatch(packet) self.session.mercury().dispatch(packet)
continue continue
if cmd == Packet.Type.aes_key or \ if cmd == Packet.Type.aes_key or cmd == Packet.Type.aes_key_error:
cmd == Packet.Type.aes_key_error:
self.session.audio_key().dispatch(packet) self.session.audio_key().dispatch(packet)
continue continue
if cmd == Packet.Type.channel_error or \ if (cmd == Packet.Type.channel_error
cmd == Packet.Type.stream_chunk_res: or cmd == Packet.Type.stream_chunk_res):
self.session.channel().dispatch(packet) self.session.channel().dispatch(packet)
continue continue
if cmd == Packet.Type.product_info: if cmd == Packet.Type.product_info:

View File

@ -1,9 +1,12 @@
from __future__ import annotations from __future__ import annotations
from librespot.core import Session, TimeProvider
from librespot.mercury import MercuryRequests
import logging import logging
import typing import typing
from librespot.core import Session
from librespot.core import TimeProvider
from librespot.mercury import MercuryRequests
class TokenProvider: class TokenProvider:
_LOGGER: logging = logging.getLogger(__name__) _LOGGER: logging = logging.getLogger(__name__)
@ -66,9 +69,9 @@ class TokenProvider:
self.scopes = obj["scope"] self.scopes = obj["scope"]
def expired(self) -> bool: def expired(self) -> bool:
return self.timestamp + ( return (self.timestamp +
self.expires_in - TokenProvider._TOKEN_EXPIRE_THRESHOLD (self.expires_in - TokenProvider._TOKEN_EXPIRE_THRESHOLD) *
) * 1000 < TimeProvider.TimeProvider().current_time_millis() 1000 < TimeProvider.TimeProvider().current_time_millis())
def has_scope(self, scope: str) -> bool: def has_scope(self, scope: str) -> bool:
for s in self.scopes: for s in self.scopes:

View File

@ -1,11 +1,18 @@
from librespot.core.ApResolver import ApResolver
from librespot.metadata import AlbumId, ArtistId, EpisodeId, TrackId, ShowId
from librespot.proto import Connect, Metadata
from librespot.standard import Closeable
import logging import logging
import requests
import typing import typing
import requests
from librespot.core.ApResolver import ApResolver
from librespot.metadata import AlbumId
from librespot.metadata import ArtistId
from librespot.metadata import EpisodeId
from librespot.metadata import ShowId
from librespot.metadata import TrackId
from librespot.proto import Connect
from librespot.proto import Metadata
from librespot.standard import Closeable
class ApiClient(Closeable): class ApiClient(Closeable):
_LOGGER: logging = logging.getLogger(__name__) _LOGGER: logging = logging.getLogger(__name__)
@ -17,9 +24,12 @@ class ApiClient(Closeable):
self._baseUrl = "https://{}".format(ApResolver.get_random_spclient()) self._baseUrl = "https://{}".format(ApResolver.get_random_spclient())
def build_request( def build_request(
self, method: str, suffix: str, self,
method: str,
suffix: str,
headers: typing.Union[None, typing.Dict[str, str]], headers: typing.Union[None, typing.Dict[str, str]],
body: typing.Union[None, bytes]) -> requests.PreparedRequest: body: typing.Union[None, bytes],
) -> requests.PreparedRequest:
request = requests.PreparedRequest() request = requests.PreparedRequest()
request.method = method request.method = method
request.data = body request.data = body
@ -31,9 +41,13 @@ class ApiClient(Closeable):
request.url = self._baseUrl + suffix request.url = self._baseUrl + suffix
return request return request
def send(self, method: str, suffix: str, def send(
self,
method: str,
suffix: str,
headers: typing.Union[None, typing.Dict[str, str]], headers: typing.Union[None, typing.Dict[str, str]],
body: typing.Union[None, bytes]) -> requests.Response: body: typing.Union[None, bytes],
) -> requests.Response:
resp = self._session.client().send( resp = self._session.client().send(
self.build_request(method, suffix, headers, body)) self.build_request(method, suffix, headers, body))
return resp return resp
@ -42,10 +56,13 @@ class ApiClient(Closeable):
proto: Connect.PutStateRequest) -> None: proto: Connect.PutStateRequest) -> None:
resp = self.send( resp = self.send(
"PUT", "PUT",
"/connect-state/v1/devices/{}".format(self._session.device_id()), { "/connect-state/v1/devices/{}".format(self._session.device_id()),
{
"Content-Type": "application/protobuf", "Content-Type": "application/protobuf",
"X-Spotify-Connection-Id": connection_id "X-Spotify-Connection-Id": connection_id,
}, proto.SerializeToString()) },
proto.SerializeToString(),
)
if resp.status_code == 413: if resp.status_code == 413:
self._LOGGER.warning( self._LOGGER.warning(

View File

@ -1,7 +1,9 @@
from __future__ import annotations from __future__ import annotations
from librespot.standard.Closeable import Closeable
import typing import typing
from librespot.standard.Closeable import Closeable
class DealerClient(Closeable): class DealerClient(Closeable):
def __init__(self, session): def __init__(self, session):

View File

@ -1,16 +1,24 @@
from __future__ import annotations from __future__ import annotations
from librespot.common import Utils
from librespot.core import Session, PacketsReceiver
from librespot.crypto import Packet
from librespot.mercury import JsonMercuryRequest, RawMercuryRequest, SubListener
from librespot.standard import BytesInputStream, BytesOutputStream, Closeable
from librespot.proto import Mercury, Pubsub
import json import json
import logging import logging
import queue import queue
import threading import threading
import typing import typing
from librespot.common import Utils
from librespot.core import PacketsReceiver
from librespot.core import Session
from librespot.crypto import Packet
from librespot.mercury import JsonMercuryRequest
from librespot.mercury import RawMercuryRequest
from librespot.mercury import SubListener
from librespot.proto import Mercury
from librespot.proto import Pubsub
from librespot.standard import BytesInputStream
from librespot.standard import BytesOutputStream
from librespot.standard import Closeable
class MercuryClient(PacketsReceiver.PacketsReceiver, Closeable): class MercuryClient(PacketsReceiver.PacketsReceiver, Closeable):
_LOGGER: logging = logging.getLogger(__name__) _LOGGER: logging = logging.getLogger(__name__)
@ -159,9 +167,9 @@ class MercuryClient(PacketsReceiver.PacketsReceiver, Closeable):
self._LOGGER.debug( self._LOGGER.debug(
"Couldn't dispatch Mercury event seq: {}, uri: {}, code: {}, payload: {}" "Couldn't dispatch Mercury event seq: {}, uri: {}, code: {}, payload: {}"
.format(seq, header.uri, header.status_code, resp.payload)) .format(seq, header.uri, header.status_code, resp.payload))
elif packet.is_cmd(Packet.Type.mercury_req) or \ elif (packet.is_cmd(Packet.Type.mercury_req)
packet.is_cmd(Packet.Type.mercury_sub) or \ or packet.is_cmd(Packet.Type.mercury_sub)
packet.is_cmd(Packet.Type.mercury_sub): or packet.is_cmd(Packet.Type.mercury_sub)):
callback = self._callbacks.get(seq) callback = self._callbacks.get(seq)
self._callbacks.pop(seq) self._callbacks.pop(seq)
if callback is not None: if callback is not None:

View File

@ -1,6 +1,7 @@
from librespot.proto import Mercury
import typing import typing
from librespot.proto import Mercury
class RawMercuryRequest: class RawMercuryRequest:
header: Mercury.Header header: Mercury.Header
@ -27,13 +28,13 @@ class RawMercuryRequest:
@staticmethod @staticmethod
def send(uri: str, part: bytes): def send(uri: str, part: bytes):
return RawMercuryRequest.new_builder().set_uri(uri).add_payload_part( return (RawMercuryRequest.new_builder().set_uri(uri).add_payload_part(
part).set_method("SEND").build() part).set_method("SEND").build())
@staticmethod @staticmethod
def post(uri: str, part: bytes): def post(uri: str, part: bytes):
return RawMercuryRequest.new_builder().set_uri(uri).set_method( return (RawMercuryRequest.new_builder().set_uri(uri).set_method(
"POST").add_payload_part(part).build() "POST").add_payload_part(part).build())
@staticmethod @staticmethod
def new_builder(): def new_builder():

View File

@ -1,4 +1,5 @@
from __future__ import annotations from __future__ import annotations
from librespot.audio.decoders import AudioQuality from librespot.audio.decoders import AudioQuality
@ -15,11 +16,17 @@ class PlayerConfiguration:
initial_volume: int initial_volume: int
volume_steps: int volume_steps: int
def __init__(self, preferred_quality: AudioQuality, def __init__(
enable_normalisation: bool, normalisation_pregain: float, self,
autoplay_enabled: bool, crossfade_duration: int, preferred_quality: AudioQuality,
preload_enabled: bool, initial_volume: int, enable_normalisation: bool,
volume_steps: int): normalisation_pregain: float,
autoplay_enabled: bool,
crossfade_duration: int,
preload_enabled: bool,
initial_volume: int,
volume_steps: int,
):
self.preferred_quality = preferred_quality self.preferred_quality = preferred_quality
self.enable_normalisation = enable_normalisation self.enable_normalisation = enable_normalisation
self.normalisation_pregain = normalisation_pregain self.normalisation_pregain = normalisation_pregain
@ -73,7 +80,12 @@ class PlayerConfiguration:
def build(self) -> PlayerConfiguration: def build(self) -> PlayerConfiguration:
return PlayerConfiguration( return PlayerConfiguration(
self.preferred_quality, self.enable_normalisation, self.preferred_quality,
self.normalisation_pregain, self.autoplay_enabled, self.enable_normalisation,
self.crossfade_duration, self.preload_enabled, self.normalisation_pregain,
self.initial_volume, self.volume_steps) self.autoplay_enabled,
self.crossfade_duration,
self.preload_enabled,
self.initial_volume,
self.volume_steps,
)

View File

@ -3,9 +3,9 @@ from __future__ import annotations
import logging import logging
import typing import typing
from librespot.audio.decoders.AudioQuality import AudioQuality
from librespot.audio.format.AudioQualityPicker import AudioQualityPicker from librespot.audio.format.AudioQualityPicker import AudioQualityPicker
from librespot.audio.format.SuperAudioFormat import SuperAudioFormat from librespot.audio.format.SuperAudioFormat import SuperAudioFormat
from librespot.audio.decoders.AudioQuality import AudioQuality
from librespot.proto import Metadata from librespot.proto import Metadata
@ -19,8 +19,8 @@ class VorbisOnlyAudioQuality(AudioQualityPicker):
@staticmethod @staticmethod
def get_vorbis_file(files: typing.List[Metadata.AudioFile]): def get_vorbis_file(files: typing.List[Metadata.AudioFile]):
for file in files: for file in files:
if hasattr(file, "format") and SuperAudioFormat.get( if (hasattr(file, "format") and SuperAudioFormat.get(file.format)
file.format) == SuperAudioFormat.VORBIS: == SuperAudioFormat.VORBIS):
return file return file
return None return None

View File

@ -1 +1,2 @@
from librespot.player.codecs.VorbisOnlyAudioQuality import VorbisOnlyAudioQuality from librespot.player.codecs.VorbisOnlyAudioQuality import \
VorbisOnlyAudioQuality

View File

@ -2,46 +2,47 @@
# Generated by the protocol buffer compiler. DO NOT EDIT! # Generated by the protocol buffer compiler. DO NOT EDIT!
# source: canvaz.proto # source: canvaz.proto
"""Generated protocol buffer code.""" """Generated protocol buffer code."""
import CanvazMeta as canvaz__meta__pb2
from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
import CanvazMeta as canvaz__meta__pb2
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='canvaz.proto', name="canvaz.proto",
package='com.spotify.canvazcache', package="com.spotify.canvazcache",
syntax='proto3', syntax="proto3",
serialized_options=b'\n\022com.spotify.canvazH\002', serialized_options=b"\n\022com.spotify.canvazH\002",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n\x0c\x63\x61nvaz.proto\x12\x17\x63om.spotify.canvazcache\x1a\x11\x63\x61nvaz-meta.proto\"3\n\x06\x41rtist\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06\x61vatar\x18\x03 \x01(\t\"\xe1\x02\n\x14\x45ntityCanvazResponse\x12\x46\n\x08\x63\x61nvases\x18\x01 \x03(\x0b\x32\x34.com.spotify.canvazcache.EntityCanvazResponse.Canvaz\x12\x16\n\x0ettl_in_seconds\x18\x02 \x01(\x03\x1a\xe8\x01\n\x06\x43\x61nvaz\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x0f\n\x07\x66ile_id\x18\x03 \x01(\t\x12&\n\x04type\x18\x04 \x01(\x0e\x32\x18.com.spotify.canvaz.Type\x12\x12\n\nentity_uri\x18\x05 \x01(\t\x12/\n\x06\x61rtist\x18\x06 \x01(\x0b\x32\x1f.com.spotify.canvazcache.Artist\x12\x10\n\x08\x65xplicit\x18\x07 \x01(\x08\x12\x13\n\x0buploaded_by\x18\x08 \x01(\t\x12\x0c\n\x04\x65tag\x18\t \x01(\t\x12\x12\n\ncanvas_uri\x18\x0b \x01(\t\"\x88\x01\n\x13\x45ntityCanvazRequest\x12\x45\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\x33.com.spotify.canvazcache.EntityCanvazRequest.Entity\x1a*\n\x06\x45ntity\x12\x12\n\nentity_uri\x18\x01 \x01(\t\x12\x0c\n\x04\x65tag\x18\x02 \x01(\tB\x16\n\x12\x63om.spotify.canvazH\x02\x62\x06proto3', b'\n\x0c\x63\x61nvaz.proto\x12\x17\x63om.spotify.canvazcache\x1a\x11\x63\x61nvaz-meta.proto"3\n\x06\x41rtist\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x0c\n\x04name\x18\x02 \x01(\t\x12\x0e\n\x06\x61vatar\x18\x03 \x01(\t"\xe1\x02\n\x14\x45ntityCanvazResponse\x12\x46\n\x08\x63\x61nvases\x18\x01 \x03(\x0b\x32\x34.com.spotify.canvazcache.EntityCanvazResponse.Canvaz\x12\x16\n\x0ettl_in_seconds\x18\x02 \x01(\x03\x1a\xe8\x01\n\x06\x43\x61nvaz\x12\n\n\x02id\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12\x0f\n\x07\x66ile_id\x18\x03 \x01(\t\x12&\n\x04type\x18\x04 \x01(\x0e\x32\x18.com.spotify.canvaz.Type\x12\x12\n\nentity_uri\x18\x05 \x01(\t\x12/\n\x06\x61rtist\x18\x06 \x01(\x0b\x32\x1f.com.spotify.canvazcache.Artist\x12\x10\n\x08\x65xplicit\x18\x07 \x01(\x08\x12\x13\n\x0buploaded_by\x18\x08 \x01(\t\x12\x0c\n\x04\x65tag\x18\t \x01(\t\x12\x12\n\ncanvas_uri\x18\x0b \x01(\t"\x88\x01\n\x13\x45ntityCanvazRequest\x12\x45\n\x08\x65ntities\x18\x01 \x03(\x0b\x32\x33.com.spotify.canvazcache.EntityCanvazRequest.Entity\x1a*\n\x06\x45ntity\x12\x12\n\nentity_uri\x18\x01 \x01(\t\x12\x0c\n\x04\x65tag\x18\x02 \x01(\tB\x16\n\x12\x63om.spotify.canvazH\x02\x62\x06proto3',
dependencies=[ dependencies=[
canvaz__meta__pb2.DESCRIPTOR, canvaz__meta__pb2.DESCRIPTOR,
]) ],
)
_ARTIST = _descriptor.Descriptor( _ARTIST = _descriptor.Descriptor(
name='Artist', name="Artist",
full_name='com.spotify.canvazcache.Artist', full_name="com.spotify.canvazcache.Artist",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='uri', name="uri",
full_name='com.spotify.canvazcache.Artist.uri', full_name="com.spotify.canvazcache.Artist.uri",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -49,17 +50,18 @@ _ARTIST = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='name', name="name",
full_name='com.spotify.canvazcache.Artist.name', full_name="com.spotify.canvazcache.Artist.name",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -67,17 +69,18 @@ _ARTIST = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='avatar', name="avatar",
full_name='com.spotify.canvazcache.Artist.avatar', full_name="com.spotify.canvazcache.Artist.avatar",
index=2, index=2,
number=3, number=3,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -85,14 +88,15 @@ _ARTIST = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=60, serialized_start=60,
@ -100,23 +104,23 @@ _ARTIST = _descriptor.Descriptor(
) )
_ENTITYCANVAZRESPONSE_CANVAZ = _descriptor.Descriptor( _ENTITYCANVAZRESPONSE_CANVAZ = _descriptor.Descriptor(
name='Canvaz', name="Canvaz",
full_name='com.spotify.canvazcache.EntityCanvazResponse.Canvaz', full_name="com.spotify.canvazcache.EntityCanvazResponse.Canvaz",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='id', name="id",
full_name='com.spotify.canvazcache.EntityCanvazResponse.Canvaz.id', full_name="com.spotify.canvazcache.EntityCanvazResponse.Canvaz.id",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -124,17 +128,18 @@ _ENTITYCANVAZRESPONSE_CANVAZ = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='url', name="url",
full_name='com.spotify.canvazcache.EntityCanvazResponse.Canvaz.url', full_name="com.spotify.canvazcache.EntityCanvazResponse.Canvaz.url",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -142,18 +147,19 @@ _ENTITYCANVAZRESPONSE_CANVAZ = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='file_id', name="file_id",
full_name= full_name=
'com.spotify.canvazcache.EntityCanvazResponse.Canvaz.file_id', "com.spotify.canvazcache.EntityCanvazResponse.Canvaz.file_id",
index=2, index=2,
number=3, number=3,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -161,11 +167,12 @@ _ENTITYCANVAZRESPONSE_CANVAZ = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='type', name="type",
full_name= full_name=
'com.spotify.canvazcache.EntityCanvazResponse.Canvaz.type', "com.spotify.canvazcache.EntityCanvazResponse.Canvaz.type",
index=3, index=3,
number=4, number=4,
type=14, type=14,
@ -180,18 +187,19 @@ _ENTITYCANVAZRESPONSE_CANVAZ = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='entity_uri', name="entity_uri",
full_name= full_name=
'com.spotify.canvazcache.EntityCanvazResponse.Canvaz.entity_uri', "com.spotify.canvazcache.EntityCanvazResponse.Canvaz.entity_uri",
index=4, index=4,
number=5, number=5,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -199,11 +207,12 @@ _ENTITYCANVAZRESPONSE_CANVAZ = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='artist', name="artist",
full_name= full_name=
'com.spotify.canvazcache.EntityCanvazResponse.Canvaz.artist', "com.spotify.canvazcache.EntityCanvazResponse.Canvaz.artist",
index=5, index=5,
number=6, number=6,
type=11, type=11,
@ -218,11 +227,12 @@ _ENTITYCANVAZRESPONSE_CANVAZ = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='explicit', name="explicit",
full_name= full_name=
'com.spotify.canvazcache.EntityCanvazResponse.Canvaz.explicit', "com.spotify.canvazcache.EntityCanvazResponse.Canvaz.explicit",
index=6, index=6,
number=7, number=7,
type=8, type=8,
@ -237,18 +247,19 @@ _ENTITYCANVAZRESPONSE_CANVAZ = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='uploaded_by', name="uploaded_by",
full_name= full_name=
'com.spotify.canvazcache.EntityCanvazResponse.Canvaz.uploaded_by', "com.spotify.canvazcache.EntityCanvazResponse.Canvaz.uploaded_by",
index=7, index=7,
number=8, number=8,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -256,18 +267,19 @@ _ENTITYCANVAZRESPONSE_CANVAZ = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='etag', name="etag",
full_name= full_name=
'com.spotify.canvazcache.EntityCanvazResponse.Canvaz.etag', "com.spotify.canvazcache.EntityCanvazResponse.Canvaz.etag",
index=8, index=8,
number=9, number=9,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -275,18 +287,19 @@ _ENTITYCANVAZRESPONSE_CANVAZ = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='canvas_uri', name="canvas_uri",
full_name= full_name=
'com.spotify.canvazcache.EntityCanvazResponse.Canvaz.canvas_uri', "com.spotify.canvazcache.EntityCanvazResponse.Canvaz.canvas_uri",
index=9, index=9,
number=11, number=11,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -294,14 +307,15 @@ _ENTITYCANVAZRESPONSE_CANVAZ = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=235, serialized_start=235,
@ -309,16 +323,16 @@ _ENTITYCANVAZRESPONSE_CANVAZ = _descriptor.Descriptor(
) )
_ENTITYCANVAZRESPONSE = _descriptor.Descriptor( _ENTITYCANVAZRESPONSE = _descriptor.Descriptor(
name='EntityCanvazResponse', name="EntityCanvazResponse",
full_name='com.spotify.canvazcache.EntityCanvazResponse', full_name="com.spotify.canvazcache.EntityCanvazResponse",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='canvases', name="canvases",
full_name='com.spotify.canvazcache.EntityCanvazResponse.canvases', full_name="com.spotify.canvazcache.EntityCanvazResponse.canvases",
index=0, index=0,
number=1, number=1,
type=11, type=11,
@ -333,11 +347,12 @@ _ENTITYCANVAZRESPONSE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='ttl_in_seconds', name="ttl_in_seconds",
full_name= full_name=
'com.spotify.canvazcache.EntityCanvazResponse.ttl_in_seconds', "com.spotify.canvazcache.EntityCanvazResponse.ttl_in_seconds",
index=1, index=1,
number=2, number=2,
type=3, type=3,
@ -352,7 +367,8 @@ _ENTITYCANVAZRESPONSE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[ nested_types=[
@ -361,7 +377,7 @@ _ENTITYCANVAZRESPONSE = _descriptor.Descriptor(
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=114, serialized_start=114,
@ -369,24 +385,24 @@ _ENTITYCANVAZRESPONSE = _descriptor.Descriptor(
) )
_ENTITYCANVAZREQUEST_ENTITY = _descriptor.Descriptor( _ENTITYCANVAZREQUEST_ENTITY = _descriptor.Descriptor(
name='Entity', name="Entity",
full_name='com.spotify.canvazcache.EntityCanvazRequest.Entity', full_name="com.spotify.canvazcache.EntityCanvazRequest.Entity",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='entity_uri', name="entity_uri",
full_name= full_name=
'com.spotify.canvazcache.EntityCanvazRequest.Entity.entity_uri', "com.spotify.canvazcache.EntityCanvazRequest.Entity.entity_uri",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -394,17 +410,18 @@ _ENTITYCANVAZREQUEST_ENTITY = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='etag', name="etag",
full_name='com.spotify.canvazcache.EntityCanvazRequest.Entity.etag', full_name="com.spotify.canvazcache.EntityCanvazRequest.Entity.etag",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -412,14 +429,15 @@ _ENTITYCANVAZREQUEST_ENTITY = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=564, serialized_start=564,
@ -427,16 +445,16 @@ _ENTITYCANVAZREQUEST_ENTITY = _descriptor.Descriptor(
) )
_ENTITYCANVAZREQUEST = _descriptor.Descriptor( _ENTITYCANVAZREQUEST = _descriptor.Descriptor(
name='EntityCanvazRequest', name="EntityCanvazRequest",
full_name='com.spotify.canvazcache.EntityCanvazRequest', full_name="com.spotify.canvazcache.EntityCanvazRequest",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='entities', name="entities",
full_name='com.spotify.canvazcache.EntityCanvazRequest.entities', full_name="com.spotify.canvazcache.EntityCanvazRequest.entities",
index=0, index=0,
number=1, number=1,
type=11, type=11,
@ -451,7 +469,8 @@ _ENTITYCANVAZREQUEST = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[ nested_types=[
@ -460,7 +479,7 @@ _ENTITYCANVAZREQUEST = _descriptor.Descriptor(
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=470, serialized_start=470,
@ -468,71 +487,76 @@ _ENTITYCANVAZREQUEST = _descriptor.Descriptor(
) )
_ENTITYCANVAZRESPONSE_CANVAZ.fields_by_name[ _ENTITYCANVAZRESPONSE_CANVAZ.fields_by_name[
'type'].enum_type = canvaz__meta__pb2._TYPE "type"].enum_type = canvaz__meta__pb2._TYPE
_ENTITYCANVAZRESPONSE_CANVAZ.fields_by_name['artist'].message_type = _ARTIST _ENTITYCANVAZRESPONSE_CANVAZ.fields_by_name["artist"].message_type = _ARTIST
_ENTITYCANVAZRESPONSE_CANVAZ.containing_type = _ENTITYCANVAZRESPONSE _ENTITYCANVAZRESPONSE_CANVAZ.containing_type = _ENTITYCANVAZRESPONSE
_ENTITYCANVAZRESPONSE.fields_by_name[ _ENTITYCANVAZRESPONSE.fields_by_name[
'canvases'].message_type = _ENTITYCANVAZRESPONSE_CANVAZ "canvases"].message_type = _ENTITYCANVAZRESPONSE_CANVAZ
_ENTITYCANVAZREQUEST_ENTITY.containing_type = _ENTITYCANVAZREQUEST _ENTITYCANVAZREQUEST_ENTITY.containing_type = _ENTITYCANVAZREQUEST
_ENTITYCANVAZREQUEST.fields_by_name[ _ENTITYCANVAZREQUEST.fields_by_name[
'entities'].message_type = _ENTITYCANVAZREQUEST_ENTITY "entities"].message_type = _ENTITYCANVAZREQUEST_ENTITY
DESCRIPTOR.message_types_by_name['Artist'] = _ARTIST DESCRIPTOR.message_types_by_name["Artist"] = _ARTIST
DESCRIPTOR.message_types_by_name[ DESCRIPTOR.message_types_by_name[
'EntityCanvazResponse'] = _ENTITYCANVAZRESPONSE "EntityCanvazResponse"] = _ENTITYCANVAZRESPONSE
DESCRIPTOR.message_types_by_name['EntityCanvazRequest'] = _ENTITYCANVAZREQUEST DESCRIPTOR.message_types_by_name["EntityCanvazRequest"] = _ENTITYCANVAZREQUEST
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
Artist = _reflection.GeneratedProtocolMessageType( Artist = _reflection.GeneratedProtocolMessageType(
'Artist', "Artist",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _ARTIST, "DESCRIPTOR": _ARTIST,
'__module__': 'canvaz_pb2' "__module__": "canvaz_pb2"
# @@protoc_insertion_point(class_scope:com.spotify.canvazcache.Artist) # @@protoc_insertion_point(class_scope:com.spotify.canvazcache.Artist)
}) },
)
_sym_db.RegisterMessage(Artist) _sym_db.RegisterMessage(Artist)
EntityCanvazResponse = _reflection.GeneratedProtocolMessageType( EntityCanvazResponse = _reflection.GeneratedProtocolMessageType(
'EntityCanvazResponse', "EntityCanvazResponse",
(_message.Message, ), (_message.Message, ),
{ {
'Canvaz': "Canvaz":
_reflection.GeneratedProtocolMessageType( _reflection.GeneratedProtocolMessageType(
'Canvaz', "Canvaz",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _ENTITYCANVAZRESPONSE_CANVAZ, "DESCRIPTOR": _ENTITYCANVAZRESPONSE_CANVAZ,
'__module__': 'canvaz_pb2' "__module__": "canvaz_pb2"
# @@protoc_insertion_point(class_scope:com.spotify.canvazcache.EntityCanvazResponse.Canvaz) # @@protoc_insertion_point(class_scope:com.spotify.canvazcache.EntityCanvazResponse.Canvaz)
}), },
'DESCRIPTOR': ),
"DESCRIPTOR":
_ENTITYCANVAZRESPONSE, _ENTITYCANVAZRESPONSE,
'__module__': "__module__":
'canvaz_pb2' "canvaz_pb2"
# @@protoc_insertion_point(class_scope:com.spotify.canvazcache.EntityCanvazResponse) # @@protoc_insertion_point(class_scope:com.spotify.canvazcache.EntityCanvazResponse)
}) },
)
_sym_db.RegisterMessage(EntityCanvazResponse) _sym_db.RegisterMessage(EntityCanvazResponse)
_sym_db.RegisterMessage(EntityCanvazResponse.Canvaz) _sym_db.RegisterMessage(EntityCanvazResponse.Canvaz)
EntityCanvazRequest = _reflection.GeneratedProtocolMessageType( EntityCanvazRequest = _reflection.GeneratedProtocolMessageType(
'EntityCanvazRequest', "EntityCanvazRequest",
(_message.Message, ), (_message.Message, ),
{ {
'Entity': "Entity":
_reflection.GeneratedProtocolMessageType( _reflection.GeneratedProtocolMessageType(
'Entity', "Entity",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _ENTITYCANVAZREQUEST_ENTITY, "DESCRIPTOR": _ENTITYCANVAZREQUEST_ENTITY,
'__module__': 'canvaz_pb2' "__module__": "canvaz_pb2"
# @@protoc_insertion_point(class_scope:com.spotify.canvazcache.EntityCanvazRequest.Entity) # @@protoc_insertion_point(class_scope:com.spotify.canvazcache.EntityCanvazRequest.Entity)
}), },
'DESCRIPTOR': ),
"DESCRIPTOR":
_ENTITYCANVAZREQUEST, _ENTITYCANVAZREQUEST,
'__module__': "__module__":
'canvaz_pb2' "canvaz_pb2"
# @@protoc_insertion_point(class_scope:com.spotify.canvazcache.EntityCanvazRequest) # @@protoc_insertion_point(class_scope:com.spotify.canvazcache.EntityCanvazRequest)
}) },
)
_sym_db.RegisterMessage(EntityCanvazRequest) _sym_db.RegisterMessage(EntityCanvazRequest)
_sym_db.RegisterMessage(EntityCanvazRequest.Entity) _sym_db.RegisterMessage(EntityCanvazRequest.Entity)

View File

@ -2,67 +2,73 @@
# Generated by the protocol buffer compiler. DO NOT EDIT! # Generated by the protocol buffer compiler. DO NOT EDIT!
# source: canvaz-meta.proto # source: canvaz-meta.proto
"""Generated protocol buffer code.""" """Generated protocol buffer code."""
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import enum_type_wrapper
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='canvaz-meta.proto', name="canvaz-meta.proto",
package='com.spotify.canvaz', package="com.spotify.canvaz",
syntax='proto3', syntax="proto3",
serialized_options=b'\n\022com.spotify.canvazH\002', serialized_options=b"\n\022com.spotify.canvazH\002",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n\x11\x63\x61nvaz-meta.proto\x12\x12\x63om.spotify.canvaz*R\n\x04Type\x12\t\n\x05IMAGE\x10\x00\x12\t\n\x05VIDEO\x10\x01\x12\x11\n\rVIDEO_LOOPING\x10\x02\x12\x18\n\x14VIDEO_LOOPING_RANDOM\x10\x03\x12\x07\n\x03GIF\x10\x04\x42\x16\n\x12\x63om.spotify.canvazH\x02\x62\x06proto3' b"\n\x11\x63\x61nvaz-meta.proto\x12\x12\x63om.spotify.canvaz*R\n\x04Type\x12\t\n\x05IMAGE\x10\x00\x12\t\n\x05VIDEO\x10\x01\x12\x11\n\rVIDEO_LOOPING\x10\x02\x12\x18\n\x14VIDEO_LOOPING_RANDOM\x10\x03\x12\x07\n\x03GIF\x10\x04\x42\x16\n\x12\x63om.spotify.canvazH\x02\x62\x06proto3",
) )
_TYPE = _descriptor.EnumDescriptor( _TYPE = _descriptor.EnumDescriptor(
name='Type', name="Type",
full_name='com.spotify.canvaz.Type', full_name="com.spotify.canvaz.Type",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
values=[ values=[
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='IMAGE', name="IMAGE",
index=0, index=0,
number=0, number=0,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='VIDEO', name="VIDEO",
index=1, index=1,
number=1, number=1,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='VIDEO_LOOPING', name="VIDEO_LOOPING",
index=2, index=2,
number=2, number=2,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='VIDEO_LOOPING_RANDOM', name="VIDEO_LOOPING_RANDOM",
index=3, index=3,
number=3, number=3,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='GIF', name="GIF",
index=4, index=4,
number=4, number=4,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
containing_type=None, containing_type=None,
serialized_options=None, serialized_options=None,
@ -78,7 +84,7 @@ VIDEO_LOOPING = 2
VIDEO_LOOPING_RANDOM = 3 VIDEO_LOOPING_RANDOM = 3
GIF = 4 GIF = 4
DESCRIPTOR.enum_types_by_name['Type'] = _TYPE DESCRIPTOR.enum_types_by_name["Type"] = _TYPE
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
DESCRIPTOR._options = None DESCRIPTOR._options = None

View File

@ -2,48 +2,49 @@
# Generated by the protocol buffer compiler. DO NOT EDIT! # Generated by the protocol buffer compiler. DO NOT EDIT!
# source: context.proto # source: context.proto
"""Generated protocol buffer code.""" """Generated protocol buffer code."""
import ContextPage as context__page__pb2
import Restrictions as restrictions__pb2
from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
import ContextPage as context__page__pb2
import Restrictions as restrictions__pb2
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='context.proto', name="context.proto",
package='spotify.player.proto', package="spotify.player.proto",
syntax='proto2', syntax="proto2",
serialized_options=b'\n\023com.spotify.contextH\002', serialized_options=b"\n\023com.spotify.contextH\002",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n\rcontext.proto\x12\x14spotify.player.proto\x1a\x12\x63ontext_page.proto\x1a\x12restrictions.proto\"\x90\x02\n\x07\x43ontext\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12=\n\x08metadata\x18\x03 \x03(\x0b\x32+.spotify.player.proto.Context.MetadataEntry\x12\x38\n\x0crestrictions\x18\x04 \x01(\x0b\x32\".spotify.player.proto.Restrictions\x12\x30\n\x05pages\x18\x05 \x03(\x0b\x32!.spotify.player.proto.ContextPage\x12\x0f\n\x07loading\x18\x06 \x01(\x08\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x17\n\x13\x63om.spotify.contextH\x02', b'\n\rcontext.proto\x12\x14spotify.player.proto\x1a\x12\x63ontext_page.proto\x1a\x12restrictions.proto"\x90\x02\n\x07\x43ontext\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x0b\n\x03url\x18\x02 \x01(\t\x12=\n\x08metadata\x18\x03 \x03(\x0b\x32+.spotify.player.proto.Context.MetadataEntry\x12\x38\n\x0crestrictions\x18\x04 \x01(\x0b\x32".spotify.player.proto.Restrictions\x12\x30\n\x05pages\x18\x05 \x03(\x0b\x32!.spotify.player.proto.ContextPage\x12\x0f\n\x07loading\x18\x06 \x01(\x08\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x17\n\x13\x63om.spotify.contextH\x02',
dependencies=[ dependencies=[
context__page__pb2.DESCRIPTOR, context__page__pb2.DESCRIPTOR,
restrictions__pb2.DESCRIPTOR, restrictions__pb2.DESCRIPTOR,
]) ],
)
_CONTEXT_METADATAENTRY = _descriptor.Descriptor( _CONTEXT_METADATAENTRY = _descriptor.Descriptor(
name='MetadataEntry', name="MetadataEntry",
full_name='spotify.player.proto.Context.MetadataEntry', full_name="spotify.player.proto.Context.MetadataEntry",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='key', name="key",
full_name='spotify.player.proto.Context.MetadataEntry.key', full_name="spotify.player.proto.Context.MetadataEntry.key",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -51,17 +52,18 @@ _CONTEXT_METADATAENTRY = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='value', name="value",
full_name='spotify.player.proto.Context.MetadataEntry.value', full_name="spotify.player.proto.Context.MetadataEntry.value",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -69,14 +71,15 @@ _CONTEXT_METADATAENTRY = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=b'8\001', serialized_options=b"8\001",
is_extendable=False, is_extendable=False,
syntax='proto2', syntax="proto2",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=305, serialized_start=305,
@ -84,23 +87,23 @@ _CONTEXT_METADATAENTRY = _descriptor.Descriptor(
) )
_CONTEXT = _descriptor.Descriptor( _CONTEXT = _descriptor.Descriptor(
name='Context', name="Context",
full_name='spotify.player.proto.Context', full_name="spotify.player.proto.Context",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='uri', name="uri",
full_name='spotify.player.proto.Context.uri', full_name="spotify.player.proto.Context.uri",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -108,17 +111,18 @@ _CONTEXT = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='url', name="url",
full_name='spotify.player.proto.Context.url', full_name="spotify.player.proto.Context.url",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -126,10 +130,11 @@ _CONTEXT = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='metadata', name="metadata",
full_name='spotify.player.proto.Context.metadata', full_name="spotify.player.proto.Context.metadata",
index=2, index=2,
number=3, number=3,
type=11, type=11,
@ -144,10 +149,11 @@ _CONTEXT = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='restrictions', name="restrictions",
full_name='spotify.player.proto.Context.restrictions', full_name="spotify.player.proto.Context.restrictions",
index=3, index=3,
number=4, number=4,
type=11, type=11,
@ -162,10 +168,11 @@ _CONTEXT = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='pages', name="pages",
full_name='spotify.player.proto.Context.pages', full_name="spotify.player.proto.Context.pages",
index=4, index=4,
number=5, number=5,
type=11, type=11,
@ -180,10 +187,11 @@ _CONTEXT = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='loading', name="loading",
full_name='spotify.player.proto.Context.loading', full_name="spotify.player.proto.Context.loading",
index=5, index=5,
number=6, number=6,
type=8, type=8,
@ -198,7 +206,8 @@ _CONTEXT = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[ nested_types=[
@ -207,7 +216,7 @@ _CONTEXT = _descriptor.Descriptor(
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto2', syntax="proto2",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=80, serialized_start=80,
@ -215,32 +224,34 @@ _CONTEXT = _descriptor.Descriptor(
) )
_CONTEXT_METADATAENTRY.containing_type = _CONTEXT _CONTEXT_METADATAENTRY.containing_type = _CONTEXT
_CONTEXT.fields_by_name['metadata'].message_type = _CONTEXT_METADATAENTRY _CONTEXT.fields_by_name["metadata"].message_type = _CONTEXT_METADATAENTRY
_CONTEXT.fields_by_name[ _CONTEXT.fields_by_name[
'restrictions'].message_type = restrictions__pb2._RESTRICTIONS "restrictions"].message_type = restrictions__pb2._RESTRICTIONS
_CONTEXT.fields_by_name['pages'].message_type = context__page__pb2._CONTEXTPAGE _CONTEXT.fields_by_name["pages"].message_type = context__page__pb2._CONTEXTPAGE
DESCRIPTOR.message_types_by_name['Context'] = _CONTEXT DESCRIPTOR.message_types_by_name["Context"] = _CONTEXT
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
Context = _reflection.GeneratedProtocolMessageType( Context = _reflection.GeneratedProtocolMessageType(
'Context', "Context",
(_message.Message, ), (_message.Message, ),
{ {
'MetadataEntry': "MetadataEntry":
_reflection.GeneratedProtocolMessageType( _reflection.GeneratedProtocolMessageType(
'MetadataEntry', "MetadataEntry",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _CONTEXT_METADATAENTRY, "DESCRIPTOR": _CONTEXT_METADATAENTRY,
'__module__': 'context_pb2' "__module__": "context_pb2"
# @@protoc_insertion_point(class_scope:spotify.player.proto.Context.MetadataEntry) # @@protoc_insertion_point(class_scope:spotify.player.proto.Context.MetadataEntry)
}), },
'DESCRIPTOR': ),
"DESCRIPTOR":
_CONTEXT, _CONTEXT,
'__module__': "__module__":
'context_pb2' "context_pb2"
# @@protoc_insertion_point(class_scope:spotify.player.proto.Context) # @@protoc_insertion_point(class_scope:spotify.player.proto.Context)
}) },
)
_sym_db.RegisterMessage(Context) _sym_db.RegisterMessage(Context)
_sym_db.RegisterMessage(Context.MetadataEntry) _sym_db.RegisterMessage(Context.MetadataEntry)

View File

@ -2,46 +2,47 @@
# Generated by the protocol buffer compiler. DO NOT EDIT! # Generated by the protocol buffer compiler. DO NOT EDIT!
# source: context_page.proto # source: context_page.proto
"""Generated protocol buffer code.""" """Generated protocol buffer code."""
import ContextTrack as context__track__pb2
from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
import ContextTrack as context__track__pb2
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='context_page.proto', name="context_page.proto",
package='spotify.player.proto', package="spotify.player.proto",
syntax='proto2', syntax="proto2",
serialized_options=b'\n\023com.spotify.contextH\002', serialized_options=b"\n\023com.spotify.contextH\002",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n\x12\x63ontext_page.proto\x12\x14spotify.player.proto\x1a\x13\x63ontext_track.proto\"\xef\x01\n\x0b\x43ontextPage\x12\x10\n\x08page_url\x18\x01 \x01(\t\x12\x15\n\rnext_page_url\x18\x02 \x01(\t\x12\x41\n\x08metadata\x18\x03 \x03(\x0b\x32/.spotify.player.proto.ContextPage.MetadataEntry\x12\x32\n\x06tracks\x18\x04 \x03(\x0b\x32\".spotify.player.proto.ContextTrack\x12\x0f\n\x07loading\x18\x05 \x01(\x08\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x17\n\x13\x63om.spotify.contextH\x02', b'\n\x12\x63ontext_page.proto\x12\x14spotify.player.proto\x1a\x13\x63ontext_track.proto"\xef\x01\n\x0b\x43ontextPage\x12\x10\n\x08page_url\x18\x01 \x01(\t\x12\x15\n\rnext_page_url\x18\x02 \x01(\t\x12\x41\n\x08metadata\x18\x03 \x03(\x0b\x32/.spotify.player.proto.ContextPage.MetadataEntry\x12\x32\n\x06tracks\x18\x04 \x03(\x0b\x32".spotify.player.proto.ContextTrack\x12\x0f\n\x07loading\x18\x05 \x01(\x08\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x17\n\x13\x63om.spotify.contextH\x02',
dependencies=[ dependencies=[
context__track__pb2.DESCRIPTOR, context__track__pb2.DESCRIPTOR,
]) ],
)
_CONTEXTPAGE_METADATAENTRY = _descriptor.Descriptor( _CONTEXTPAGE_METADATAENTRY = _descriptor.Descriptor(
name='MetadataEntry', name="MetadataEntry",
full_name='spotify.player.proto.ContextPage.MetadataEntry', full_name="spotify.player.proto.ContextPage.MetadataEntry",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='key', name="key",
full_name='spotify.player.proto.ContextPage.MetadataEntry.key', full_name="spotify.player.proto.ContextPage.MetadataEntry.key",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -49,17 +50,18 @@ _CONTEXTPAGE_METADATAENTRY = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='value', name="value",
full_name='spotify.player.proto.ContextPage.MetadataEntry.value', full_name="spotify.player.proto.ContextPage.MetadataEntry.value",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -67,14 +69,15 @@ _CONTEXTPAGE_METADATAENTRY = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=b'8\001', serialized_options=b"8\001",
is_extendable=False, is_extendable=False,
syntax='proto2', syntax="proto2",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=258, serialized_start=258,
@ -82,23 +85,23 @@ _CONTEXTPAGE_METADATAENTRY = _descriptor.Descriptor(
) )
_CONTEXTPAGE = _descriptor.Descriptor( _CONTEXTPAGE = _descriptor.Descriptor(
name='ContextPage', name="ContextPage",
full_name='spotify.player.proto.ContextPage', full_name="spotify.player.proto.ContextPage",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='page_url', name="page_url",
full_name='spotify.player.proto.ContextPage.page_url', full_name="spotify.player.proto.ContextPage.page_url",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -106,17 +109,18 @@ _CONTEXTPAGE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='next_page_url', name="next_page_url",
full_name='spotify.player.proto.ContextPage.next_page_url', full_name="spotify.player.proto.ContextPage.next_page_url",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -124,10 +128,11 @@ _CONTEXTPAGE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='metadata', name="metadata",
full_name='spotify.player.proto.ContextPage.metadata', full_name="spotify.player.proto.ContextPage.metadata",
index=2, index=2,
number=3, number=3,
type=11, type=11,
@ -142,10 +147,11 @@ _CONTEXTPAGE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='tracks', name="tracks",
full_name='spotify.player.proto.ContextPage.tracks', full_name="spotify.player.proto.ContextPage.tracks",
index=3, index=3,
number=4, number=4,
type=11, type=11,
@ -160,10 +166,11 @@ _CONTEXTPAGE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='loading', name="loading",
full_name='spotify.player.proto.ContextPage.loading', full_name="spotify.player.proto.ContextPage.loading",
index=4, index=4,
number=5, number=5,
type=8, type=8,
@ -178,7 +185,8 @@ _CONTEXTPAGE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[ nested_types=[
@ -187,7 +195,7 @@ _CONTEXTPAGE = _descriptor.Descriptor(
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto2', syntax="proto2",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=66, serialized_start=66,
@ -196,31 +204,33 @@ _CONTEXTPAGE = _descriptor.Descriptor(
_CONTEXTPAGE_METADATAENTRY.containing_type = _CONTEXTPAGE _CONTEXTPAGE_METADATAENTRY.containing_type = _CONTEXTPAGE
_CONTEXTPAGE.fields_by_name[ _CONTEXTPAGE.fields_by_name[
'metadata'].message_type = _CONTEXTPAGE_METADATAENTRY "metadata"].message_type = _CONTEXTPAGE_METADATAENTRY
_CONTEXTPAGE.fields_by_name[ _CONTEXTPAGE.fields_by_name[
'tracks'].message_type = context__track__pb2._CONTEXTTRACK "tracks"].message_type = context__track__pb2._CONTEXTTRACK
DESCRIPTOR.message_types_by_name['ContextPage'] = _CONTEXTPAGE DESCRIPTOR.message_types_by_name["ContextPage"] = _CONTEXTPAGE
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
ContextPage = _reflection.GeneratedProtocolMessageType( ContextPage = _reflection.GeneratedProtocolMessageType(
'ContextPage', "ContextPage",
(_message.Message, ), (_message.Message, ),
{ {
'MetadataEntry': "MetadataEntry":
_reflection.GeneratedProtocolMessageType( _reflection.GeneratedProtocolMessageType(
'MetadataEntry', "MetadataEntry",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _CONTEXTPAGE_METADATAENTRY, "DESCRIPTOR": _CONTEXTPAGE_METADATAENTRY,
'__module__': 'context_page_pb2' "__module__": "context_page_pb2"
# @@protoc_insertion_point(class_scope:spotify.player.proto.ContextPage.MetadataEntry) # @@protoc_insertion_point(class_scope:spotify.player.proto.ContextPage.MetadataEntry)
}), },
'DESCRIPTOR': ),
"DESCRIPTOR":
_CONTEXTPAGE, _CONTEXTPAGE,
'__module__': "__module__":
'context_page_pb2' "context_page_pb2"
# @@protoc_insertion_point(class_scope:spotify.player.proto.ContextPage) # @@protoc_insertion_point(class_scope:spotify.player.proto.ContextPage)
}) },
)
_sym_db.RegisterMessage(ContextPage) _sym_db.RegisterMessage(ContextPage)
_sym_db.RegisterMessage(ContextPage.MetadataEntry) _sym_db.RegisterMessage(ContextPage.MetadataEntry)

View File

@ -6,32 +6,33 @@ from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='context_player_options.proto', name="context_player_options.proto",
package='spotify.player.proto', package="spotify.player.proto",
syntax='proto2', syntax="proto2",
serialized_options=b'\n\023com.spotify.contextH\002', serialized_options=b"\n\023com.spotify.contextH\002",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n\x1c\x63ontext_player_options.proto\x12\x14spotify.player.proto\"e\n\x14\x43ontextPlayerOptions\x12\x19\n\x11shuffling_context\x18\x01 \x01(\x08\x12\x19\n\x11repeating_context\x18\x02 \x01(\x08\x12\x17\n\x0frepeating_track\x18\x03 \x01(\x08\"m\n\x1c\x43ontextPlayerOptionOverrides\x12\x19\n\x11shuffling_context\x18\x01 \x01(\x08\x12\x19\n\x11repeating_context\x18\x02 \x01(\x08\x12\x17\n\x0frepeating_track\x18\x03 \x01(\x08\x42\x17\n\x13\x63om.spotify.contextH\x02' b'\n\x1c\x63ontext_player_options.proto\x12\x14spotify.player.proto"e\n\x14\x43ontextPlayerOptions\x12\x19\n\x11shuffling_context\x18\x01 \x01(\x08\x12\x19\n\x11repeating_context\x18\x02 \x01(\x08\x12\x17\n\x0frepeating_track\x18\x03 \x01(\x08"m\n\x1c\x43ontextPlayerOptionOverrides\x12\x19\n\x11shuffling_context\x18\x01 \x01(\x08\x12\x19\n\x11repeating_context\x18\x02 \x01(\x08\x12\x17\n\x0frepeating_track\x18\x03 \x01(\x08\x42\x17\n\x13\x63om.spotify.contextH\x02',
) )
_CONTEXTPLAYEROPTIONS = _descriptor.Descriptor( _CONTEXTPLAYEROPTIONS = _descriptor.Descriptor(
name='ContextPlayerOptions', name="ContextPlayerOptions",
full_name='spotify.player.proto.ContextPlayerOptions', full_name="spotify.player.proto.ContextPlayerOptions",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='shuffling_context', name="shuffling_context",
full_name= full_name=
'spotify.player.proto.ContextPlayerOptions.shuffling_context', "spotify.player.proto.ContextPlayerOptions.shuffling_context",
index=0, index=0,
number=1, number=1,
type=8, type=8,
@ -46,11 +47,12 @@ _CONTEXTPLAYEROPTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='repeating_context', name="repeating_context",
full_name= full_name=
'spotify.player.proto.ContextPlayerOptions.repeating_context', "spotify.player.proto.ContextPlayerOptions.repeating_context",
index=1, index=1,
number=2, number=2,
type=8, type=8,
@ -65,11 +67,12 @@ _CONTEXTPLAYEROPTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='repeating_track', name="repeating_track",
full_name= full_name=
'spotify.player.proto.ContextPlayerOptions.repeating_track', "spotify.player.proto.ContextPlayerOptions.repeating_track",
index=2, index=2,
number=3, number=3,
type=8, type=8,
@ -84,14 +87,15 @@ _CONTEXTPLAYEROPTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto2', syntax="proto2",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=54, serialized_start=54,
@ -99,17 +103,17 @@ _CONTEXTPLAYEROPTIONS = _descriptor.Descriptor(
) )
_CONTEXTPLAYEROPTIONOVERRIDES = _descriptor.Descriptor( _CONTEXTPLAYEROPTIONOVERRIDES = _descriptor.Descriptor(
name='ContextPlayerOptionOverrides', name="ContextPlayerOptionOverrides",
full_name='spotify.player.proto.ContextPlayerOptionOverrides', full_name="spotify.player.proto.ContextPlayerOptionOverrides",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='shuffling_context', name="shuffling_context",
full_name= full_name=
'spotify.player.proto.ContextPlayerOptionOverrides.shuffling_context', "spotify.player.proto.ContextPlayerOptionOverrides.shuffling_context",
index=0, index=0,
number=1, number=1,
type=8, type=8,
@ -124,11 +128,12 @@ _CONTEXTPLAYEROPTIONOVERRIDES = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='repeating_context', name="repeating_context",
full_name= full_name=
'spotify.player.proto.ContextPlayerOptionOverrides.repeating_context', "spotify.player.proto.ContextPlayerOptionOverrides.repeating_context",
index=1, index=1,
number=2, number=2,
type=8, type=8,
@ -143,11 +148,12 @@ _CONTEXTPLAYEROPTIONOVERRIDES = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='repeating_track', name="repeating_track",
full_name= full_name=
'spotify.player.proto.ContextPlayerOptionOverrides.repeating_track', "spotify.player.proto.ContextPlayerOptionOverrides.repeating_track",
index=2, index=2,
number=3, number=3,
type=8, type=8,
@ -162,14 +168,15 @@ _CONTEXTPLAYEROPTIONOVERRIDES = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto2', syntax="proto2",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=157, serialized_start=157,
@ -177,29 +184,31 @@ _CONTEXTPLAYEROPTIONOVERRIDES = _descriptor.Descriptor(
) )
DESCRIPTOR.message_types_by_name[ DESCRIPTOR.message_types_by_name[
'ContextPlayerOptions'] = _CONTEXTPLAYEROPTIONS "ContextPlayerOptions"] = _CONTEXTPLAYEROPTIONS
DESCRIPTOR.message_types_by_name[ DESCRIPTOR.message_types_by_name[
'ContextPlayerOptionOverrides'] = _CONTEXTPLAYEROPTIONOVERRIDES "ContextPlayerOptionOverrides"] = _CONTEXTPLAYEROPTIONOVERRIDES
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
ContextPlayerOptions = _reflection.GeneratedProtocolMessageType( ContextPlayerOptions = _reflection.GeneratedProtocolMessageType(
'ContextPlayerOptions', "ContextPlayerOptions",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _CONTEXTPLAYEROPTIONS, "DESCRIPTOR": _CONTEXTPLAYEROPTIONS,
'__module__': 'context_player_options_pb2' "__module__": "context_player_options_pb2"
# @@protoc_insertion_point(class_scope:spotify.player.proto.ContextPlayerOptions) # @@protoc_insertion_point(class_scope:spotify.player.proto.ContextPlayerOptions)
}) },
)
_sym_db.RegisterMessage(ContextPlayerOptions) _sym_db.RegisterMessage(ContextPlayerOptions)
ContextPlayerOptionOverrides = _reflection.GeneratedProtocolMessageType( ContextPlayerOptionOverrides = _reflection.GeneratedProtocolMessageType(
'ContextPlayerOptionOverrides', "ContextPlayerOptionOverrides",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _CONTEXTPLAYEROPTIONOVERRIDES, "DESCRIPTOR": _CONTEXTPLAYEROPTIONOVERRIDES,
'__module__': 'context_player_options_pb2' "__module__": "context_player_options_pb2"
# @@protoc_insertion_point(class_scope:spotify.player.proto.ContextPlayerOptionOverrides) # @@protoc_insertion_point(class_scope:spotify.player.proto.ContextPlayerOptionOverrides)
}) },
)
_sym_db.RegisterMessage(ContextPlayerOptionOverrides) _sym_db.RegisterMessage(ContextPlayerOptionOverrides)
DESCRIPTOR._options = None DESCRIPTOR._options = None

View File

@ -6,38 +6,39 @@ from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='context_track.proto', name="context_track.proto",
package='spotify.player.proto', package="spotify.player.proto",
syntax='proto2', syntax="proto2",
serialized_options=b'\n\023com.spotify.contextH\002', serialized_options=b"\n\023com.spotify.contextH\002",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n\x13\x63ontext_track.proto\x12\x14spotify.player.proto\"\xaa\x01\n\x0c\x43ontextTrack\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x0b\n\x03uid\x18\x02 \x01(\t\x12\x0b\n\x03gid\x18\x03 \x01(\x0c\x12\x42\n\x08metadata\x18\x04 \x03(\x0b\x32\x30.spotify.player.proto.ContextTrack.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x17\n\x13\x63om.spotify.contextH\x02' b'\n\x13\x63ontext_track.proto\x12\x14spotify.player.proto"\xaa\x01\n\x0c\x43ontextTrack\x12\x0b\n\x03uri\x18\x01 \x01(\t\x12\x0b\n\x03uid\x18\x02 \x01(\t\x12\x0b\n\x03gid\x18\x03 \x01(\x0c\x12\x42\n\x08metadata\x18\x04 \x03(\x0b\x32\x30.spotify.player.proto.ContextTrack.MetadataEntry\x1a/\n\rMetadataEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12\r\n\x05value\x18\x02 \x01(\t:\x02\x38\x01\x42\x17\n\x13\x63om.spotify.contextH\x02',
) )
_CONTEXTTRACK_METADATAENTRY = _descriptor.Descriptor( _CONTEXTTRACK_METADATAENTRY = _descriptor.Descriptor(
name='MetadataEntry', name="MetadataEntry",
full_name='spotify.player.proto.ContextTrack.MetadataEntry', full_name="spotify.player.proto.ContextTrack.MetadataEntry",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='key', name="key",
full_name='spotify.player.proto.ContextTrack.MetadataEntry.key', full_name="spotify.player.proto.ContextTrack.MetadataEntry.key",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -45,17 +46,18 @@ _CONTEXTTRACK_METADATAENTRY = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='value', name="value",
full_name='spotify.player.proto.ContextTrack.MetadataEntry.value', full_name="spotify.player.proto.ContextTrack.MetadataEntry.value",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -63,14 +65,15 @@ _CONTEXTTRACK_METADATAENTRY = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=b'8\001', serialized_options=b"8\001",
is_extendable=False, is_extendable=False,
syntax='proto2', syntax="proto2",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=169, serialized_start=169,
@ -78,23 +81,23 @@ _CONTEXTTRACK_METADATAENTRY = _descriptor.Descriptor(
) )
_CONTEXTTRACK = _descriptor.Descriptor( _CONTEXTTRACK = _descriptor.Descriptor(
name='ContextTrack', name="ContextTrack",
full_name='spotify.player.proto.ContextTrack', full_name="spotify.player.proto.ContextTrack",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='uri', name="uri",
full_name='spotify.player.proto.ContextTrack.uri', full_name="spotify.player.proto.ContextTrack.uri",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -102,17 +105,18 @@ _CONTEXTTRACK = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='uid', name="uid",
full_name='spotify.player.proto.ContextTrack.uid', full_name="spotify.player.proto.ContextTrack.uid",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -120,10 +124,11 @@ _CONTEXTTRACK = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='gid', name="gid",
full_name='spotify.player.proto.ContextTrack.gid', full_name="spotify.player.proto.ContextTrack.gid",
index=2, index=2,
number=3, number=3,
type=12, type=12,
@ -138,10 +143,11 @@ _CONTEXTTRACK = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='metadata', name="metadata",
full_name='spotify.player.proto.ContextTrack.metadata', full_name="spotify.player.proto.ContextTrack.metadata",
index=3, index=3,
number=4, number=4,
type=11, type=11,
@ -156,7 +162,8 @@ _CONTEXTTRACK = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[ nested_types=[
@ -165,7 +172,7 @@ _CONTEXTTRACK = _descriptor.Descriptor(
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto2', syntax="proto2",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=46, serialized_start=46,
@ -174,29 +181,31 @@ _CONTEXTTRACK = _descriptor.Descriptor(
_CONTEXTTRACK_METADATAENTRY.containing_type = _CONTEXTTRACK _CONTEXTTRACK_METADATAENTRY.containing_type = _CONTEXTTRACK
_CONTEXTTRACK.fields_by_name[ _CONTEXTTRACK.fields_by_name[
'metadata'].message_type = _CONTEXTTRACK_METADATAENTRY "metadata"].message_type = _CONTEXTTRACK_METADATAENTRY
DESCRIPTOR.message_types_by_name['ContextTrack'] = _CONTEXTTRACK DESCRIPTOR.message_types_by_name["ContextTrack"] = _CONTEXTTRACK
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
ContextTrack = _reflection.GeneratedProtocolMessageType( ContextTrack = _reflection.GeneratedProtocolMessageType(
'ContextTrack', "ContextTrack",
(_message.Message, ), (_message.Message, ),
{ {
'MetadataEntry': "MetadataEntry":
_reflection.GeneratedProtocolMessageType( _reflection.GeneratedProtocolMessageType(
'MetadataEntry', "MetadataEntry",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _CONTEXTTRACK_METADATAENTRY, "DESCRIPTOR": _CONTEXTTRACK_METADATAENTRY,
'__module__': 'context_track_pb2' "__module__": "context_track_pb2"
# @@protoc_insertion_point(class_scope:spotify.player.proto.ContextTrack.MetadataEntry) # @@protoc_insertion_point(class_scope:spotify.player.proto.ContextTrack.MetadataEntry)
}), },
'DESCRIPTOR': ),
"DESCRIPTOR":
_CONTEXTTRACK, _CONTEXTTRACK,
'__module__': "__module__":
'context_track_pb2' "context_track_pb2"
# @@protoc_insertion_point(class_scope:spotify.player.proto.ContextTrack) # @@protoc_insertion_point(class_scope:spotify.player.proto.ContextTrack)
}) },
)
_sym_db.RegisterMessage(ContextTrack) _sym_db.RegisterMessage(ContextTrack)
_sym_db.RegisterMessage(ContextTrack.MetadataEntry) _sym_db.RegisterMessage(ContextTrack.MetadataEntry)

View File

@ -6,38 +6,39 @@ from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='play_origin.proto', name="play_origin.proto",
package='spotify.player.proto', package="spotify.player.proto",
syntax='proto2', syntax="proto2",
serialized_options=b'\n\023com.spotify.contextH\002', serialized_options=b"\n\023com.spotify.contextH\002",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n\x11play_origin.proto\x12\x14spotify.player.proto\"\xbf\x01\n\nPlayOrigin\x12\x1a\n\x12\x66\x65\x61ture_identifier\x18\x01 \x01(\t\x12\x17\n\x0f\x66\x65\x61ture_version\x18\x02 \x01(\t\x12\x10\n\x08view_uri\x18\x03 \x01(\t\x12\x19\n\x11\x65xternal_referrer\x18\x04 \x01(\t\x12\x1b\n\x13referrer_identifier\x18\x05 \x01(\t\x12\x19\n\x11\x64\x65vice_identifier\x18\x06 \x01(\t\x12\x17\n\x0f\x66\x65\x61ture_classes\x18\x07 \x03(\tB\x17\n\x13\x63om.spotify.contextH\x02' b'\n\x11play_origin.proto\x12\x14spotify.player.proto"\xbf\x01\n\nPlayOrigin\x12\x1a\n\x12\x66\x65\x61ture_identifier\x18\x01 \x01(\t\x12\x17\n\x0f\x66\x65\x61ture_version\x18\x02 \x01(\t\x12\x10\n\x08view_uri\x18\x03 \x01(\t\x12\x19\n\x11\x65xternal_referrer\x18\x04 \x01(\t\x12\x1b\n\x13referrer_identifier\x18\x05 \x01(\t\x12\x19\n\x11\x64\x65vice_identifier\x18\x06 \x01(\t\x12\x17\n\x0f\x66\x65\x61ture_classes\x18\x07 \x03(\tB\x17\n\x13\x63om.spotify.contextH\x02',
) )
_PLAYORIGIN = _descriptor.Descriptor( _PLAYORIGIN = _descriptor.Descriptor(
name='PlayOrigin', name="PlayOrigin",
full_name='spotify.player.proto.PlayOrigin', full_name="spotify.player.proto.PlayOrigin",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='feature_identifier', name="feature_identifier",
full_name='spotify.player.proto.PlayOrigin.feature_identifier', full_name="spotify.player.proto.PlayOrigin.feature_identifier",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -45,17 +46,18 @@ _PLAYORIGIN = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='feature_version', name="feature_version",
full_name='spotify.player.proto.PlayOrigin.feature_version', full_name="spotify.player.proto.PlayOrigin.feature_version",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -63,17 +65,18 @@ _PLAYORIGIN = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='view_uri', name="view_uri",
full_name='spotify.player.proto.PlayOrigin.view_uri', full_name="spotify.player.proto.PlayOrigin.view_uri",
index=2, index=2,
number=3, number=3,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -81,17 +84,18 @@ _PLAYORIGIN = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='external_referrer', name="external_referrer",
full_name='spotify.player.proto.PlayOrigin.external_referrer', full_name="spotify.player.proto.PlayOrigin.external_referrer",
index=3, index=3,
number=4, number=4,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -99,17 +103,18 @@ _PLAYORIGIN = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='referrer_identifier', name="referrer_identifier",
full_name='spotify.player.proto.PlayOrigin.referrer_identifier', full_name="spotify.player.proto.PlayOrigin.referrer_identifier",
index=4, index=4,
number=5, number=5,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -117,17 +122,18 @@ _PLAYORIGIN = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='device_identifier', name="device_identifier",
full_name='spotify.player.proto.PlayOrigin.device_identifier', full_name="spotify.player.proto.PlayOrigin.device_identifier",
index=5, index=5,
number=6, number=6,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -135,10 +141,11 @@ _PLAYORIGIN = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='feature_classes', name="feature_classes",
full_name='spotify.player.proto.PlayOrigin.feature_classes', full_name="spotify.player.proto.PlayOrigin.feature_classes",
index=6, index=6,
number=7, number=7,
type=9, type=9,
@ -153,31 +160,33 @@ _PLAYORIGIN = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto2', syntax="proto2",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=44, serialized_start=44,
serialized_end=235, serialized_end=235,
) )
DESCRIPTOR.message_types_by_name['PlayOrigin'] = _PLAYORIGIN DESCRIPTOR.message_types_by_name["PlayOrigin"] = _PLAYORIGIN
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
PlayOrigin = _reflection.GeneratedProtocolMessageType( PlayOrigin = _reflection.GeneratedProtocolMessageType(
'PlayOrigin', "PlayOrigin",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _PLAYORIGIN, "DESCRIPTOR": _PLAYORIGIN,
'__module__': 'play_origin_pb2' "__module__": "play_origin_pb2"
# @@protoc_insertion_point(class_scope:spotify.player.proto.PlayOrigin) # @@protoc_insertion_point(class_scope:spotify.player.proto.PlayOrigin)
}) },
)
_sym_db.RegisterMessage(PlayOrigin) _sym_db.RegisterMessage(PlayOrigin)
DESCRIPTOR._options = None DESCRIPTOR._options = None

View File

@ -2,39 +2,40 @@
# Generated by the protocol buffer compiler. DO NOT EDIT! # Generated by the protocol buffer compiler. DO NOT EDIT!
# source: playback.proto # source: playback.proto
"""Generated protocol buffer code.""" """Generated protocol buffer code."""
import ContextTrack as context__track__pb2
from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
import ContextTrack as context__track__pb2
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='playback.proto', name="playback.proto",
package='spotify.player.proto.transfer', package="spotify.player.proto.transfer",
syntax='proto2', syntax="proto2",
serialized_options=b'\n\024com.spotify.transferH\002', serialized_options=b"\n\024com.spotify.transferH\002",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n\x0eplayback.proto\x12\x1dspotify.player.proto.transfer\x1a\x13\x63ontext_track.proto\"\xa5\x01\n\x08Playback\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\x12 \n\x18position_as_of_timestamp\x18\x02 \x01(\x05\x12\x16\n\x0eplayback_speed\x18\x03 \x01(\x01\x12\x11\n\tis_paused\x18\x04 \x01(\x08\x12\x39\n\rcurrent_track\x18\x05 \x01(\x0b\x32\".spotify.player.proto.ContextTrackB\x18\n\x14\x63om.spotify.transferH\x02', b'\n\x0eplayback.proto\x12\x1dspotify.player.proto.transfer\x1a\x13\x63ontext_track.proto"\xa5\x01\n\x08Playback\x12\x11\n\ttimestamp\x18\x01 \x01(\x03\x12 \n\x18position_as_of_timestamp\x18\x02 \x01(\x05\x12\x16\n\x0eplayback_speed\x18\x03 \x01(\x01\x12\x11\n\tis_paused\x18\x04 \x01(\x08\x12\x39\n\rcurrent_track\x18\x05 \x01(\x0b\x32".spotify.player.proto.ContextTrackB\x18\n\x14\x63om.spotify.transferH\x02',
dependencies=[ dependencies=[
context__track__pb2.DESCRIPTOR, context__track__pb2.DESCRIPTOR,
]) ],
)
_PLAYBACK = _descriptor.Descriptor( _PLAYBACK = _descriptor.Descriptor(
name='Playback', name="Playback",
full_name='spotify.player.proto.transfer.Playback', full_name="spotify.player.proto.transfer.Playback",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='timestamp', name="timestamp",
full_name='spotify.player.proto.transfer.Playback.timestamp', full_name="spotify.player.proto.transfer.Playback.timestamp",
index=0, index=0,
number=1, number=1,
type=3, type=3,
@ -49,11 +50,12 @@ _PLAYBACK = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='position_as_of_timestamp', name="position_as_of_timestamp",
full_name= full_name=
'spotify.player.proto.transfer.Playback.position_as_of_timestamp', "spotify.player.proto.transfer.Playback.position_as_of_timestamp",
index=1, index=1,
number=2, number=2,
type=5, type=5,
@ -68,10 +70,11 @@ _PLAYBACK = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='playback_speed', name="playback_speed",
full_name='spotify.player.proto.transfer.Playback.playback_speed', full_name="spotify.player.proto.transfer.Playback.playback_speed",
index=2, index=2,
number=3, number=3,
type=1, type=1,
@ -86,10 +89,11 @@ _PLAYBACK = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='is_paused', name="is_paused",
full_name='spotify.player.proto.transfer.Playback.is_paused', full_name="spotify.player.proto.transfer.Playback.is_paused",
index=3, index=3,
number=4, number=4,
type=8, type=8,
@ -104,10 +108,11 @@ _PLAYBACK = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='current_track', name="current_track",
full_name='spotify.player.proto.transfer.Playback.current_track', full_name="spotify.player.proto.transfer.Playback.current_track",
index=4, index=4,
number=5, number=5,
type=11, type=11,
@ -122,14 +127,15 @@ _PLAYBACK = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto2', syntax="proto2",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=71, serialized_start=71,
@ -137,18 +143,19 @@ _PLAYBACK = _descriptor.Descriptor(
) )
_PLAYBACK.fields_by_name[ _PLAYBACK.fields_by_name[
'current_track'].message_type = context__track__pb2._CONTEXTTRACK "current_track"].message_type = context__track__pb2._CONTEXTTRACK
DESCRIPTOR.message_types_by_name['Playback'] = _PLAYBACK DESCRIPTOR.message_types_by_name["Playback"] = _PLAYBACK
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
Playback = _reflection.GeneratedProtocolMessageType( Playback = _reflection.GeneratedProtocolMessageType(
'Playback', "Playback",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _PLAYBACK, "DESCRIPTOR": _PLAYBACK,
'__module__': 'playback_pb2' "__module__": "playback_pb2"
# @@protoc_insertion_point(class_scope:spotify.player.proto.transfer.Playback) # @@protoc_insertion_point(class_scope:spotify.player.proto.transfer.Playback)
}) },
)
_sym_db.RegisterMessage(Playback) _sym_db.RegisterMessage(Playback)
DESCRIPTOR._options = None DESCRIPTOR._options = None

File diff suppressed because one or more lines are too long

View File

@ -2,46 +2,49 @@
# Generated by the protocol buffer compiler. DO NOT EDIT! # Generated by the protocol buffer compiler. DO NOT EDIT!
# source: playlist_annotate3.proto # source: playlist_annotate3.proto
"""Generated protocol buffer code.""" """Generated protocol buffer code."""
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import enum_type_wrapper
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='playlist_annotate3.proto', name="playlist_annotate3.proto",
package='spotify_playlist_annotate3.proto', package="spotify_playlist_annotate3.proto",
syntax='proto2', syntax="proto2",
serialized_options=b'\n\036com.spotify.playlist_annotate3H\002', serialized_options=b"\n\036com.spotify.playlist_annotate3H\002",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n\x18playlist_annotate3.proto\x12 spotify_playlist_annotate3.proto\"a\n\x0fTakedownRequest\x12N\n\x12\x61\x62use_report_state\x18\x01 \x01(\x0e\x32\x32.spotify_playlist_annotate3.proto.AbuseReportState\"9\n\x0f\x41nnotateRequest\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12\x11\n\timage_uri\x18\x02 \x01(\t\"5\n\x11TranscodedPicture\x12\x13\n\x0btarget_name\x18\x01 \x01(\t\x12\x0b\n\x03uri\x18\x02 \x01(\t\"\xf4\x02\n\x12PlaylistAnnotation\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12\x0f\n\x07picture\x18\x02 \x01(\t\x12i\n\x1a\x64\x65precated_render_features\x18\x03 \x01(\x0e\x32\x30.spotify_playlist_annotate3.proto.RenderFeatures:\x0fNORMAL_FEATURESB\x02\x18\x01\x12O\n\x12transcoded_picture\x18\x04 \x03(\x0b\x32\x33.spotify_playlist_annotate3.proto.TranscodedPicture\x12(\n\x1ais_abuse_reporting_enabled\x18\x06 \x01(\x08:\x04true\x12R\n\x12\x61\x62use_report_state\x18\x07 \x01(\x0e\x32\x32.spotify_playlist_annotate3.proto.AbuseReportState:\x02OK*<\n\x0eRenderFeatures\x12\x13\n\x0fNORMAL_FEATURES\x10\x01\x12\x15\n\x11\x45XTENDED_FEATURES\x10\x02**\n\x10\x41\x62useReportState\x12\x06\n\x02OK\x10\x00\x12\x0e\n\nTAKEN_DOWN\x10\x01\x42\"\n\x1e\x63om.spotify.playlist_annotate3H\x02' b'\n\x18playlist_annotate3.proto\x12 spotify_playlist_annotate3.proto"a\n\x0fTakedownRequest\x12N\n\x12\x61\x62use_report_state\x18\x01 \x01(\x0e\x32\x32.spotify_playlist_annotate3.proto.AbuseReportState"9\n\x0f\x41nnotateRequest\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12\x11\n\timage_uri\x18\x02 \x01(\t"5\n\x11TranscodedPicture\x12\x13\n\x0btarget_name\x18\x01 \x01(\t\x12\x0b\n\x03uri\x18\x02 \x01(\t"\xf4\x02\n\x12PlaylistAnnotation\x12\x13\n\x0b\x64\x65scription\x18\x01 \x01(\t\x12\x0f\n\x07picture\x18\x02 \x01(\t\x12i\n\x1a\x64\x65precated_render_features\x18\x03 \x01(\x0e\x32\x30.spotify_playlist_annotate3.proto.RenderFeatures:\x0fNORMAL_FEATURESB\x02\x18\x01\x12O\n\x12transcoded_picture\x18\x04 \x03(\x0b\x32\x33.spotify_playlist_annotate3.proto.TranscodedPicture\x12(\n\x1ais_abuse_reporting_enabled\x18\x06 \x01(\x08:\x04true\x12R\n\x12\x61\x62use_report_state\x18\x07 \x01(\x0e\x32\x32.spotify_playlist_annotate3.proto.AbuseReportState:\x02OK*<\n\x0eRenderFeatures\x12\x13\n\x0fNORMAL_FEATURES\x10\x01\x12\x15\n\x11\x45XTENDED_FEATURES\x10\x02**\n\x10\x41\x62useReportState\x12\x06\n\x02OK\x10\x00\x12\x0e\n\nTAKEN_DOWN\x10\x01\x42"\n\x1e\x63om.spotify.playlist_annotate3H\x02',
) )
_RENDERFEATURES = _descriptor.EnumDescriptor( _RENDERFEATURES = _descriptor.EnumDescriptor(
name='RenderFeatures', name="RenderFeatures",
full_name='spotify_playlist_annotate3.proto.RenderFeatures', full_name="spotify_playlist_annotate3.proto.RenderFeatures",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
values=[ values=[
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='NORMAL_FEATURES', name="NORMAL_FEATURES",
index=0, index=0,
number=1, number=1,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='EXTENDED_FEATURES', name="EXTENDED_FEATURES",
index=1, index=1,
number=2, number=2,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
containing_type=None, containing_type=None,
serialized_options=None, serialized_options=None,
@ -52,26 +55,28 @@ _sym_db.RegisterEnumDescriptor(_RENDERFEATURES)
RenderFeatures = enum_type_wrapper.EnumTypeWrapper(_RENDERFEATURES) RenderFeatures = enum_type_wrapper.EnumTypeWrapper(_RENDERFEATURES)
_ABUSEREPORTSTATE = _descriptor.EnumDescriptor( _ABUSEREPORTSTATE = _descriptor.EnumDescriptor(
name='AbuseReportState', name="AbuseReportState",
full_name='spotify_playlist_annotate3.proto.AbuseReportState', full_name="spotify_playlist_annotate3.proto.AbuseReportState",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
values=[ values=[
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='OK', name="OK",
index=0, index=0,
number=0, number=0,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='TAKEN_DOWN', name="TAKEN_DOWN",
index=1, index=1,
number=1, number=1,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
containing_type=None, containing_type=None,
serialized_options=None, serialized_options=None,
@ -87,17 +92,17 @@ OK = 0
TAKEN_DOWN = 1 TAKEN_DOWN = 1
_TAKEDOWNREQUEST = _descriptor.Descriptor( _TAKEDOWNREQUEST = _descriptor.Descriptor(
name='TakedownRequest', name="TakedownRequest",
full_name='spotify_playlist_annotate3.proto.TakedownRequest', full_name="spotify_playlist_annotate3.proto.TakedownRequest",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='abuse_report_state', name="abuse_report_state",
full_name= full_name=
'spotify_playlist_annotate3.proto.TakedownRequest.abuse_report_state', "spotify_playlist_annotate3.proto.TakedownRequest.abuse_report_state",
index=0, index=0,
number=1, number=1,
type=14, type=14,
@ -112,14 +117,15 @@ _TAKEDOWNREQUEST = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto2', syntax="proto2",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=62, serialized_start=62,
@ -127,24 +133,24 @@ _TAKEDOWNREQUEST = _descriptor.Descriptor(
) )
_ANNOTATEREQUEST = _descriptor.Descriptor( _ANNOTATEREQUEST = _descriptor.Descriptor(
name='AnnotateRequest', name="AnnotateRequest",
full_name='spotify_playlist_annotate3.proto.AnnotateRequest', full_name="spotify_playlist_annotate3.proto.AnnotateRequest",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='description', name="description",
full_name= full_name=
'spotify_playlist_annotate3.proto.AnnotateRequest.description', "spotify_playlist_annotate3.proto.AnnotateRequest.description",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -152,18 +158,19 @@ _ANNOTATEREQUEST = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='image_uri', name="image_uri",
full_name= full_name=
'spotify_playlist_annotate3.proto.AnnotateRequest.image_uri', "spotify_playlist_annotate3.proto.AnnotateRequest.image_uri",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -171,14 +178,15 @@ _ANNOTATEREQUEST = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto2', syntax="proto2",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=161, serialized_start=161,
@ -186,24 +194,24 @@ _ANNOTATEREQUEST = _descriptor.Descriptor(
) )
_TRANSCODEDPICTURE = _descriptor.Descriptor( _TRANSCODEDPICTURE = _descriptor.Descriptor(
name='TranscodedPicture', name="TranscodedPicture",
full_name='spotify_playlist_annotate3.proto.TranscodedPicture', full_name="spotify_playlist_annotate3.proto.TranscodedPicture",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='target_name', name="target_name",
full_name= full_name=
'spotify_playlist_annotate3.proto.TranscodedPicture.target_name', "spotify_playlist_annotate3.proto.TranscodedPicture.target_name",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -211,17 +219,18 @@ _TRANSCODEDPICTURE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='uri', name="uri",
full_name='spotify_playlist_annotate3.proto.TranscodedPicture.uri', full_name="spotify_playlist_annotate3.proto.TranscodedPicture.uri",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -229,14 +238,15 @@ _TRANSCODEDPICTURE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto2', syntax="proto2",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=220, serialized_start=220,
@ -244,24 +254,24 @@ _TRANSCODEDPICTURE = _descriptor.Descriptor(
) )
_PLAYLISTANNOTATION = _descriptor.Descriptor( _PLAYLISTANNOTATION = _descriptor.Descriptor(
name='PlaylistAnnotation', name="PlaylistAnnotation",
full_name='spotify_playlist_annotate3.proto.PlaylistAnnotation', full_name="spotify_playlist_annotate3.proto.PlaylistAnnotation",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='description', name="description",
full_name= full_name=
'spotify_playlist_annotate3.proto.PlaylistAnnotation.description', "spotify_playlist_annotate3.proto.PlaylistAnnotation.description",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -269,18 +279,19 @@ _PLAYLISTANNOTATION = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='picture', name="picture",
full_name= full_name=
'spotify_playlist_annotate3.proto.PlaylistAnnotation.picture', "spotify_playlist_annotate3.proto.PlaylistAnnotation.picture",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -288,11 +299,12 @@ _PLAYLISTANNOTATION = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='deprecated_render_features', name="deprecated_render_features",
full_name= full_name=
'spotify_playlist_annotate3.proto.PlaylistAnnotation.deprecated_render_features', "spotify_playlist_annotate3.proto.PlaylistAnnotation.deprecated_render_features",
index=2, index=2,
number=3, number=3,
type=14, type=14,
@ -305,13 +317,14 @@ _PLAYLISTANNOTATION = _descriptor.Descriptor(
containing_type=None, containing_type=None,
is_extension=False, is_extension=False,
extension_scope=None, extension_scope=None,
serialized_options=b'\030\001', serialized_options=b"\030\001",
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='transcoded_picture', name="transcoded_picture",
full_name= full_name=
'spotify_playlist_annotate3.proto.PlaylistAnnotation.transcoded_picture', "spotify_playlist_annotate3.proto.PlaylistAnnotation.transcoded_picture",
index=3, index=3,
number=4, number=4,
type=11, type=11,
@ -326,11 +339,12 @@ _PLAYLISTANNOTATION = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='is_abuse_reporting_enabled', name="is_abuse_reporting_enabled",
full_name= full_name=
'spotify_playlist_annotate3.proto.PlaylistAnnotation.is_abuse_reporting_enabled', "spotify_playlist_annotate3.proto.PlaylistAnnotation.is_abuse_reporting_enabled",
index=4, index=4,
number=6, number=6,
type=8, type=8,
@ -345,11 +359,12 @@ _PLAYLISTANNOTATION = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='abuse_report_state', name="abuse_report_state",
full_name= full_name=
'spotify_playlist_annotate3.proto.PlaylistAnnotation.abuse_report_state', "spotify_playlist_annotate3.proto.PlaylistAnnotation.abuse_report_state",
index=5, index=5,
number=7, number=7,
type=14, type=14,
@ -364,14 +379,15 @@ _PLAYLISTANNOTATION = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto2', syntax="proto2",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=276, serialized_start=276,
@ -379,62 +395,66 @@ _PLAYLISTANNOTATION = _descriptor.Descriptor(
) )
_TAKEDOWNREQUEST.fields_by_name[ _TAKEDOWNREQUEST.fields_by_name[
'abuse_report_state'].enum_type = _ABUSEREPORTSTATE "abuse_report_state"].enum_type = _ABUSEREPORTSTATE
_PLAYLISTANNOTATION.fields_by_name[ _PLAYLISTANNOTATION.fields_by_name[
'deprecated_render_features'].enum_type = _RENDERFEATURES "deprecated_render_features"].enum_type = _RENDERFEATURES
_PLAYLISTANNOTATION.fields_by_name[ _PLAYLISTANNOTATION.fields_by_name[
'transcoded_picture'].message_type = _TRANSCODEDPICTURE "transcoded_picture"].message_type = _TRANSCODEDPICTURE
_PLAYLISTANNOTATION.fields_by_name[ _PLAYLISTANNOTATION.fields_by_name[
'abuse_report_state'].enum_type = _ABUSEREPORTSTATE "abuse_report_state"].enum_type = _ABUSEREPORTSTATE
DESCRIPTOR.message_types_by_name['TakedownRequest'] = _TAKEDOWNREQUEST DESCRIPTOR.message_types_by_name["TakedownRequest"] = _TAKEDOWNREQUEST
DESCRIPTOR.message_types_by_name['AnnotateRequest'] = _ANNOTATEREQUEST DESCRIPTOR.message_types_by_name["AnnotateRequest"] = _ANNOTATEREQUEST
DESCRIPTOR.message_types_by_name['TranscodedPicture'] = _TRANSCODEDPICTURE DESCRIPTOR.message_types_by_name["TranscodedPicture"] = _TRANSCODEDPICTURE
DESCRIPTOR.message_types_by_name['PlaylistAnnotation'] = _PLAYLISTANNOTATION DESCRIPTOR.message_types_by_name["PlaylistAnnotation"] = _PLAYLISTANNOTATION
DESCRIPTOR.enum_types_by_name['RenderFeatures'] = _RENDERFEATURES DESCRIPTOR.enum_types_by_name["RenderFeatures"] = _RENDERFEATURES
DESCRIPTOR.enum_types_by_name['AbuseReportState'] = _ABUSEREPORTSTATE DESCRIPTOR.enum_types_by_name["AbuseReportState"] = _ABUSEREPORTSTATE
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
TakedownRequest = _reflection.GeneratedProtocolMessageType( TakedownRequest = _reflection.GeneratedProtocolMessageType(
'TakedownRequest', "TakedownRequest",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _TAKEDOWNREQUEST, "DESCRIPTOR": _TAKEDOWNREQUEST,
'__module__': 'playlist_annotate3_pb2' "__module__": "playlist_annotate3_pb2"
# @@protoc_insertion_point(class_scope:spotify_playlist_annotate3.proto.TakedownRequest) # @@protoc_insertion_point(class_scope:spotify_playlist_annotate3.proto.TakedownRequest)
}) },
)
_sym_db.RegisterMessage(TakedownRequest) _sym_db.RegisterMessage(TakedownRequest)
AnnotateRequest = _reflection.GeneratedProtocolMessageType( AnnotateRequest = _reflection.GeneratedProtocolMessageType(
'AnnotateRequest', "AnnotateRequest",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _ANNOTATEREQUEST, "DESCRIPTOR": _ANNOTATEREQUEST,
'__module__': 'playlist_annotate3_pb2' "__module__": "playlist_annotate3_pb2"
# @@protoc_insertion_point(class_scope:spotify_playlist_annotate3.proto.AnnotateRequest) # @@protoc_insertion_point(class_scope:spotify_playlist_annotate3.proto.AnnotateRequest)
}) },
)
_sym_db.RegisterMessage(AnnotateRequest) _sym_db.RegisterMessage(AnnotateRequest)
TranscodedPicture = _reflection.GeneratedProtocolMessageType( TranscodedPicture = _reflection.GeneratedProtocolMessageType(
'TranscodedPicture', "TranscodedPicture",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _TRANSCODEDPICTURE, "DESCRIPTOR": _TRANSCODEDPICTURE,
'__module__': 'playlist_annotate3_pb2' "__module__": "playlist_annotate3_pb2"
# @@protoc_insertion_point(class_scope:spotify_playlist_annotate3.proto.TranscodedPicture) # @@protoc_insertion_point(class_scope:spotify_playlist_annotate3.proto.TranscodedPicture)
}) },
)
_sym_db.RegisterMessage(TranscodedPicture) _sym_db.RegisterMessage(TranscodedPicture)
PlaylistAnnotation = _reflection.GeneratedProtocolMessageType( PlaylistAnnotation = _reflection.GeneratedProtocolMessageType(
'PlaylistAnnotation', "PlaylistAnnotation",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _PLAYLISTANNOTATION, "DESCRIPTOR": _PLAYLISTANNOTATION,
'__module__': 'playlist_annotate3_pb2' "__module__": "playlist_annotate3_pb2"
# @@protoc_insertion_point(class_scope:spotify_playlist_annotate3.proto.PlaylistAnnotation) # @@protoc_insertion_point(class_scope:spotify_playlist_annotate3.proto.PlaylistAnnotation)
}) },
)
_sym_db.RegisterMessage(PlaylistAnnotation) _sym_db.RegisterMessage(PlaylistAnnotation)
DESCRIPTOR._options = None DESCRIPTOR._options = None
_PLAYLISTANNOTATION.fields_by_name[ _PLAYLISTANNOTATION.fields_by_name[
'deprecated_render_features']._options = None "deprecated_render_features"]._options = None
# @@protoc_insertion_point(module_scope) # @@protoc_insertion_point(module_scope)

View File

@ -2,39 +2,40 @@
# Generated by the protocol buffer compiler. DO NOT EDIT! # Generated by the protocol buffer compiler. DO NOT EDIT!
# source: queue.proto # source: queue.proto
"""Generated protocol buffer code.""" """Generated protocol buffer code."""
import ContextTrack as context__track__pb2
from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
import ContextTrack as context__track__pb2
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='queue.proto', name="queue.proto",
package='spotify.player.proto.transfer', package="spotify.player.proto.transfer",
syntax='proto2', syntax="proto2",
serialized_options=b'\n\024com.spotify.transferH\002', serialized_options=b"\n\024com.spotify.transferH\002",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n\x0bqueue.proto\x12\x1dspotify.player.proto.transfer\x1a\x13\x63ontext_track.proto\"U\n\x05Queue\x12\x32\n\x06tracks\x18\x01 \x03(\x0b\x32\".spotify.player.proto.ContextTrack\x12\x18\n\x10is_playing_queue\x18\x02 \x01(\x08\x42\x18\n\x14\x63om.spotify.transferH\x02', b'\n\x0bqueue.proto\x12\x1dspotify.player.proto.transfer\x1a\x13\x63ontext_track.proto"U\n\x05Queue\x12\x32\n\x06tracks\x18\x01 \x03(\x0b\x32".spotify.player.proto.ContextTrack\x12\x18\n\x10is_playing_queue\x18\x02 \x01(\x08\x42\x18\n\x14\x63om.spotify.transferH\x02',
dependencies=[ dependencies=[
context__track__pb2.DESCRIPTOR, context__track__pb2.DESCRIPTOR,
]) ],
)
_QUEUE = _descriptor.Descriptor( _QUEUE = _descriptor.Descriptor(
name='Queue', name="Queue",
full_name='spotify.player.proto.transfer.Queue', full_name="spotify.player.proto.transfer.Queue",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='tracks', name="tracks",
full_name='spotify.player.proto.transfer.Queue.tracks', full_name="spotify.player.proto.transfer.Queue.tracks",
index=0, index=0,
number=1, number=1,
type=11, type=11,
@ -49,10 +50,11 @@ _QUEUE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='is_playing_queue', name="is_playing_queue",
full_name='spotify.player.proto.transfer.Queue.is_playing_queue', full_name="spotify.player.proto.transfer.Queue.is_playing_queue",
index=1, index=1,
number=2, number=2,
type=8, type=8,
@ -67,14 +69,15 @@ _QUEUE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto2', syntax="proto2",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=67, serialized_start=67,
@ -82,18 +85,19 @@ _QUEUE = _descriptor.Descriptor(
) )
_QUEUE.fields_by_name[ _QUEUE.fields_by_name[
'tracks'].message_type = context__track__pb2._CONTEXTTRACK "tracks"].message_type = context__track__pb2._CONTEXTTRACK
DESCRIPTOR.message_types_by_name['Queue'] = _QUEUE DESCRIPTOR.message_types_by_name["Queue"] = _QUEUE
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
Queue = _reflection.GeneratedProtocolMessageType( Queue = _reflection.GeneratedProtocolMessageType(
'Queue', "Queue",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _QUEUE, "DESCRIPTOR": _QUEUE,
'__module__': 'queue_pb2' "__module__": "queue_pb2"
# @@protoc_insertion_point(class_scope:spotify.player.proto.transfer.Queue) # @@protoc_insertion_point(class_scope:spotify.player.proto.transfer.Queue)
}) },
)
_sym_db.RegisterMessage(Queue) _sym_db.RegisterMessage(Queue)
DESCRIPTOR._options = None DESCRIPTOR._options = None

View File

@ -6,32 +6,33 @@ from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='restrictions.proto', name="restrictions.proto",
package='spotify.player.proto', package="spotify.player.proto",
syntax='proto2', syntax="proto2",
serialized_options=b'\n\023com.spotify.contextH\002', serialized_options=b"\n\023com.spotify.contextH\002",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n\x12restrictions.proto\x12\x14spotify.player.proto\"\xbb\x07\n\x0cRestrictions\x12 \n\x18\x64isallow_pausing_reasons\x18\x01 \x03(\t\x12!\n\x19\x64isallow_resuming_reasons\x18\x02 \x03(\t\x12 \n\x18\x64isallow_seeking_reasons\x18\x03 \x03(\t\x12%\n\x1d\x64isallow_peeking_prev_reasons\x18\x04 \x03(\t\x12%\n\x1d\x64isallow_peeking_next_reasons\x18\x05 \x03(\t\x12&\n\x1e\x64isallow_skipping_prev_reasons\x18\x06 \x03(\t\x12&\n\x1e\x64isallow_skipping_next_reasons\x18\x07 \x03(\t\x12\x30\n(disallow_toggling_repeat_context_reasons\x18\x08 \x03(\t\x12.\n&disallow_toggling_repeat_track_reasons\x18\t \x03(\t\x12)\n!disallow_toggling_shuffle_reasons\x18\n \x03(\t\x12\"\n\x1a\x64isallow_set_queue_reasons\x18\x0b \x03(\t\x12.\n&disallow_interrupting_playback_reasons\x18\x0c \x03(\t\x12.\n&disallow_transferring_playback_reasons\x18\r \x03(\t\x12\'\n\x1f\x64isallow_remote_control_reasons\x18\x0e \x03(\t\x12\x33\n+disallow_inserting_into_next_tracks_reasons\x18\x0f \x03(\t\x12\x36\n.disallow_inserting_into_context_tracks_reasons\x18\x10 \x03(\t\x12\x32\n*disallow_reordering_in_next_tracks_reasons\x18\x11 \x03(\t\x12\x35\n-disallow_reordering_in_context_tracks_reasons\x18\x12 \x03(\t\x12\x32\n*disallow_removing_from_next_tracks_reasons\x18\x13 \x03(\t\x12\x35\n-disallow_removing_from_context_tracks_reasons\x18\x14 \x03(\t\x12)\n!disallow_updating_context_reasons\x18\x15 \x03(\tB\x17\n\x13\x63om.spotify.contextH\x02' b'\n\x12restrictions.proto\x12\x14spotify.player.proto"\xbb\x07\n\x0cRestrictions\x12 \n\x18\x64isallow_pausing_reasons\x18\x01 \x03(\t\x12!\n\x19\x64isallow_resuming_reasons\x18\x02 \x03(\t\x12 \n\x18\x64isallow_seeking_reasons\x18\x03 \x03(\t\x12%\n\x1d\x64isallow_peeking_prev_reasons\x18\x04 \x03(\t\x12%\n\x1d\x64isallow_peeking_next_reasons\x18\x05 \x03(\t\x12&\n\x1e\x64isallow_skipping_prev_reasons\x18\x06 \x03(\t\x12&\n\x1e\x64isallow_skipping_next_reasons\x18\x07 \x03(\t\x12\x30\n(disallow_toggling_repeat_context_reasons\x18\x08 \x03(\t\x12.\n&disallow_toggling_repeat_track_reasons\x18\t \x03(\t\x12)\n!disallow_toggling_shuffle_reasons\x18\n \x03(\t\x12"\n\x1a\x64isallow_set_queue_reasons\x18\x0b \x03(\t\x12.\n&disallow_interrupting_playback_reasons\x18\x0c \x03(\t\x12.\n&disallow_transferring_playback_reasons\x18\r \x03(\t\x12\'\n\x1f\x64isallow_remote_control_reasons\x18\x0e \x03(\t\x12\x33\n+disallow_inserting_into_next_tracks_reasons\x18\x0f \x03(\t\x12\x36\n.disallow_inserting_into_context_tracks_reasons\x18\x10 \x03(\t\x12\x32\n*disallow_reordering_in_next_tracks_reasons\x18\x11 \x03(\t\x12\x35\n-disallow_reordering_in_context_tracks_reasons\x18\x12 \x03(\t\x12\x32\n*disallow_removing_from_next_tracks_reasons\x18\x13 \x03(\t\x12\x35\n-disallow_removing_from_context_tracks_reasons\x18\x14 \x03(\t\x12)\n!disallow_updating_context_reasons\x18\x15 \x03(\tB\x17\n\x13\x63om.spotify.contextH\x02',
) )
_RESTRICTIONS = _descriptor.Descriptor( _RESTRICTIONS = _descriptor.Descriptor(
name='Restrictions', name="Restrictions",
full_name='spotify.player.proto.Restrictions', full_name="spotify.player.proto.Restrictions",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_pausing_reasons', name="disallow_pausing_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_pausing_reasons', "spotify.player.proto.Restrictions.disallow_pausing_reasons",
index=0, index=0,
number=1, number=1,
type=9, type=9,
@ -46,11 +47,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_resuming_reasons', name="disallow_resuming_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_resuming_reasons', "spotify.player.proto.Restrictions.disallow_resuming_reasons",
index=1, index=1,
number=2, number=2,
type=9, type=9,
@ -65,11 +67,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_seeking_reasons', name="disallow_seeking_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_seeking_reasons', "spotify.player.proto.Restrictions.disallow_seeking_reasons",
index=2, index=2,
number=3, number=3,
type=9, type=9,
@ -84,11 +87,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_peeking_prev_reasons', name="disallow_peeking_prev_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_peeking_prev_reasons', "spotify.player.proto.Restrictions.disallow_peeking_prev_reasons",
index=3, index=3,
number=4, number=4,
type=9, type=9,
@ -103,11 +107,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_peeking_next_reasons', name="disallow_peeking_next_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_peeking_next_reasons', "spotify.player.proto.Restrictions.disallow_peeking_next_reasons",
index=4, index=4,
number=5, number=5,
type=9, type=9,
@ -122,11 +127,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_skipping_prev_reasons', name="disallow_skipping_prev_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_skipping_prev_reasons', "spotify.player.proto.Restrictions.disallow_skipping_prev_reasons",
index=5, index=5,
number=6, number=6,
type=9, type=9,
@ -141,11 +147,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_skipping_next_reasons', name="disallow_skipping_next_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_skipping_next_reasons', "spotify.player.proto.Restrictions.disallow_skipping_next_reasons",
index=6, index=6,
number=7, number=7,
type=9, type=9,
@ -160,11 +167,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_toggling_repeat_context_reasons', name="disallow_toggling_repeat_context_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_toggling_repeat_context_reasons', "spotify.player.proto.Restrictions.disallow_toggling_repeat_context_reasons",
index=7, index=7,
number=8, number=8,
type=9, type=9,
@ -179,11 +187,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_toggling_repeat_track_reasons', name="disallow_toggling_repeat_track_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_toggling_repeat_track_reasons', "spotify.player.proto.Restrictions.disallow_toggling_repeat_track_reasons",
index=8, index=8,
number=9, number=9,
type=9, type=9,
@ -198,11 +207,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_toggling_shuffle_reasons', name="disallow_toggling_shuffle_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_toggling_shuffle_reasons', "spotify.player.proto.Restrictions.disallow_toggling_shuffle_reasons",
index=9, index=9,
number=10, number=10,
type=9, type=9,
@ -217,11 +227,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_set_queue_reasons', name="disallow_set_queue_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_set_queue_reasons', "spotify.player.proto.Restrictions.disallow_set_queue_reasons",
index=10, index=10,
number=11, number=11,
type=9, type=9,
@ -236,11 +247,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_interrupting_playback_reasons', name="disallow_interrupting_playback_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_interrupting_playback_reasons', "spotify.player.proto.Restrictions.disallow_interrupting_playback_reasons",
index=11, index=11,
number=12, number=12,
type=9, type=9,
@ -255,11 +267,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_transferring_playback_reasons', name="disallow_transferring_playback_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_transferring_playback_reasons', "spotify.player.proto.Restrictions.disallow_transferring_playback_reasons",
index=12, index=12,
number=13, number=13,
type=9, type=9,
@ -274,11 +287,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_remote_control_reasons', name="disallow_remote_control_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_remote_control_reasons', "spotify.player.proto.Restrictions.disallow_remote_control_reasons",
index=13, index=13,
number=14, number=14,
type=9, type=9,
@ -293,11 +307,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_inserting_into_next_tracks_reasons', name="disallow_inserting_into_next_tracks_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_inserting_into_next_tracks_reasons', "spotify.player.proto.Restrictions.disallow_inserting_into_next_tracks_reasons",
index=14, index=14,
number=15, number=15,
type=9, type=9,
@ -312,11 +327,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_inserting_into_context_tracks_reasons', name="disallow_inserting_into_context_tracks_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_inserting_into_context_tracks_reasons', "spotify.player.proto.Restrictions.disallow_inserting_into_context_tracks_reasons",
index=15, index=15,
number=16, number=16,
type=9, type=9,
@ -331,11 +347,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_reordering_in_next_tracks_reasons', name="disallow_reordering_in_next_tracks_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_reordering_in_next_tracks_reasons', "spotify.player.proto.Restrictions.disallow_reordering_in_next_tracks_reasons",
index=16, index=16,
number=17, number=17,
type=9, type=9,
@ -350,11 +367,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_reordering_in_context_tracks_reasons', name="disallow_reordering_in_context_tracks_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_reordering_in_context_tracks_reasons', "spotify.player.proto.Restrictions.disallow_reordering_in_context_tracks_reasons",
index=17, index=17,
number=18, number=18,
type=9, type=9,
@ -369,11 +387,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_removing_from_next_tracks_reasons', name="disallow_removing_from_next_tracks_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_removing_from_next_tracks_reasons', "spotify.player.proto.Restrictions.disallow_removing_from_next_tracks_reasons",
index=18, index=18,
number=19, number=19,
type=9, type=9,
@ -388,11 +407,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_removing_from_context_tracks_reasons', name="disallow_removing_from_context_tracks_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_removing_from_context_tracks_reasons', "spotify.player.proto.Restrictions.disallow_removing_from_context_tracks_reasons",
index=19, index=19,
number=20, number=20,
type=9, type=9,
@ -407,11 +427,12 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='disallow_updating_context_reasons', name="disallow_updating_context_reasons",
full_name= full_name=
'spotify.player.proto.Restrictions.disallow_updating_context_reasons', "spotify.player.proto.Restrictions.disallow_updating_context_reasons",
index=20, index=20,
number=21, number=21,
type=9, type=9,
@ -426,31 +447,33 @@ _RESTRICTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto2', syntax="proto2",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=45, serialized_start=45,
serialized_end=1000, serialized_end=1000,
) )
DESCRIPTOR.message_types_by_name['Restrictions'] = _RESTRICTIONS DESCRIPTOR.message_types_by_name["Restrictions"] = _RESTRICTIONS
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
Restrictions = _reflection.GeneratedProtocolMessageType( Restrictions = _reflection.GeneratedProtocolMessageType(
'Restrictions', "Restrictions",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _RESTRICTIONS, "DESCRIPTOR": _RESTRICTIONS,
'__module__': 'restrictions_pb2' "__module__": "restrictions_pb2"
# @@protoc_insertion_point(class_scope:spotify.player.proto.Restrictions) # @@protoc_insertion_point(class_scope:spotify.player.proto.Restrictions)
}) },
)
_sym_db.RegisterMessage(Restrictions) _sym_db.RegisterMessage(Restrictions)
DESCRIPTOR._options = None DESCRIPTOR._options = None

View File

@ -2,43 +2,44 @@
# Generated by the protocol buffer compiler. DO NOT EDIT! # Generated by the protocol buffer compiler. DO NOT EDIT!
# source: session.proto # source: session.proto
"""Generated protocol buffer code.""" """Generated protocol buffer code."""
import Context as context__pb2
import ContextPlayerOptions as context__player__options__pb2
import PlayOrigin as play__origin__pb2
from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
import Context as context__pb2
import ContextPlayerOptions as context__player__options__pb2
import PlayOrigin as play__origin__pb2
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='session.proto', name="session.proto",
package='spotify.player.proto.transfer', package="spotify.player.proto.transfer",
syntax='proto2', syntax="proto2",
serialized_options=b'\n\024com.spotify.transferH\002', serialized_options=b"\n\024com.spotify.transferH\002",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n\rsession.proto\x12\x1dspotify.player.proto.transfer\x1a\rcontext.proto\x1a\x1c\x63ontext_player_options.proto\x1a\x11play_origin.proto\"\xd3\x01\n\x07Session\x12\x35\n\x0bplay_origin\x18\x01 \x01(\x0b\x32 .spotify.player.proto.PlayOrigin\x12.\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x1d.spotify.player.proto.Context\x12\x13\n\x0b\x63urrent_uid\x18\x03 \x01(\t\x12L\n\x10option_overrides\x18\x04 \x01(\x0b\x32\x32.spotify.player.proto.ContextPlayerOptionOverridesB\x18\n\x14\x63om.spotify.transferH\x02', b'\n\rsession.proto\x12\x1dspotify.player.proto.transfer\x1a\rcontext.proto\x1a\x1c\x63ontext_player_options.proto\x1a\x11play_origin.proto"\xd3\x01\n\x07Session\x12\x35\n\x0bplay_origin\x18\x01 \x01(\x0b\x32 .spotify.player.proto.PlayOrigin\x12.\n\x07\x63ontext\x18\x02 \x01(\x0b\x32\x1d.spotify.player.proto.Context\x12\x13\n\x0b\x63urrent_uid\x18\x03 \x01(\t\x12L\n\x10option_overrides\x18\x04 \x01(\x0b\x32\x32.spotify.player.proto.ContextPlayerOptionOverridesB\x18\n\x14\x63om.spotify.transferH\x02',
dependencies=[ dependencies=[
context__pb2.DESCRIPTOR, context__pb2.DESCRIPTOR,
context__player__options__pb2.DESCRIPTOR, context__player__options__pb2.DESCRIPTOR,
play__origin__pb2.DESCRIPTOR, play__origin__pb2.DESCRIPTOR,
]) ],
)
_SESSION = _descriptor.Descriptor( _SESSION = _descriptor.Descriptor(
name='Session', name="Session",
full_name='spotify.player.proto.transfer.Session', full_name="spotify.player.proto.transfer.Session",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='play_origin', name="play_origin",
full_name='spotify.player.proto.transfer.Session.play_origin', full_name="spotify.player.proto.transfer.Session.play_origin",
index=0, index=0,
number=1, number=1,
type=11, type=11,
@ -53,10 +54,11 @@ _SESSION = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='context', name="context",
full_name='spotify.player.proto.transfer.Session.context', full_name="spotify.player.proto.transfer.Session.context",
index=1, index=1,
number=2, number=2,
type=11, type=11,
@ -71,17 +73,18 @@ _SESSION = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='current_uid', name="current_uid",
full_name='spotify.player.proto.transfer.Session.current_uid', full_name="spotify.player.proto.transfer.Session.current_uid",
index=2, index=2,
number=3, number=3,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -89,10 +92,11 @@ _SESSION = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='option_overrides', name="option_overrides",
full_name='spotify.player.proto.transfer.Session.option_overrides', full_name="spotify.player.proto.transfer.Session.option_overrides",
index=3, index=3,
number=4, number=4,
type=11, type=11,
@ -107,14 +111,15 @@ _SESSION = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto2', syntax="proto2",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=113, serialized_start=113,
@ -122,21 +127,22 @@ _SESSION = _descriptor.Descriptor(
) )
_SESSION.fields_by_name[ _SESSION.fields_by_name[
'play_origin'].message_type = play__origin__pb2._PLAYORIGIN "play_origin"].message_type = play__origin__pb2._PLAYORIGIN
_SESSION.fields_by_name['context'].message_type = context__pb2._CONTEXT _SESSION.fields_by_name["context"].message_type = context__pb2._CONTEXT
_SESSION.fields_by_name[ _SESSION.fields_by_name[
'option_overrides'].message_type = context__player__options__pb2._CONTEXTPLAYEROPTIONOVERRIDES "option_overrides"].message_type = context__player__options__pb2._CONTEXTPLAYEROPTIONOVERRIDES
DESCRIPTOR.message_types_by_name['Session'] = _SESSION DESCRIPTOR.message_types_by_name["Session"] = _SESSION
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
Session = _reflection.GeneratedProtocolMessageType( Session = _reflection.GeneratedProtocolMessageType(
'Session', "Session",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _SESSION, "DESCRIPTOR": _SESSION,
'__module__': 'session_pb2' "__module__": "session_pb2"
# @@protoc_insertion_point(class_scope:spotify.player.proto.transfer.Session) # @@protoc_insertion_point(class_scope:spotify.player.proto.transfer.Session)
}) },
)
_sym_db.RegisterMessage(Session) _sym_db.RegisterMessage(Session)
DESCRIPTOR._options = None DESCRIPTOR._options = None

View File

@ -2,45 +2,46 @@
# Generated by the protocol buffer compiler. DO NOT EDIT! # Generated by the protocol buffer compiler. DO NOT EDIT!
# source: transfer_state.proto # source: transfer_state.proto
"""Generated protocol buffer code.""" """Generated protocol buffer code."""
import ContextPlayerOptions as context__player__options__pb2
import Playback as playback__pb2
import Queue as queue__pb2
import Session as session__pb2
from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
import ContextPlayerOptions as context__player__options__pb2
import Playback as playback__pb2
import Session as session__pb2
import Queue as queue__pb2
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='transfer_state.proto', name="transfer_state.proto",
package='spotify.player.proto.transfer', package="spotify.player.proto.transfer",
syntax='proto2', syntax="proto2",
serialized_options=b'\n\024com.spotify.transferH\002', serialized_options=b"\n\024com.spotify.transferH\002",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n\x14transfer_state.proto\x12\x1dspotify.player.proto.transfer\x1a\x1c\x63ontext_player_options.proto\x1a\x0eplayback.proto\x1a\rsession.proto\x1a\x0bqueue.proto\"\x99\x02\n\rTransferState\x12;\n\x07options\x18\x01 \x01(\x0b\x32*.spotify.player.proto.ContextPlayerOptions\x12\x39\n\x08playback\x18\x02 \x01(\x0b\x32\'.spotify.player.proto.transfer.Playback\x12?\n\x0f\x63urrent_session\x18\x03 \x01(\x0b\x32&.spotify.player.proto.transfer.Session\x12\x33\n\x05queue\x18\x04 \x01(\x0b\x32$.spotify.player.proto.transfer.Queue\x12\x1a\n\x12\x63reation_timestamp\x18\x05 \x01(\x03\x42\x18\n\x14\x63om.spotify.transferH\x02', b"\n\x14transfer_state.proto\x12\x1dspotify.player.proto.transfer\x1a\x1c\x63ontext_player_options.proto\x1a\x0eplayback.proto\x1a\rsession.proto\x1a\x0bqueue.proto\"\x99\x02\n\rTransferState\x12;\n\x07options\x18\x01 \x01(\x0b\x32*.spotify.player.proto.ContextPlayerOptions\x12\x39\n\x08playback\x18\x02 \x01(\x0b\x32'.spotify.player.proto.transfer.Playback\x12?\n\x0f\x63urrent_session\x18\x03 \x01(\x0b\x32&.spotify.player.proto.transfer.Session\x12\x33\n\x05queue\x18\x04 \x01(\x0b\x32$.spotify.player.proto.transfer.Queue\x12\x1a\n\x12\x63reation_timestamp\x18\x05 \x01(\x03\x42\x18\n\x14\x63om.spotify.transferH\x02",
dependencies=[ dependencies=[
context__player__options__pb2.DESCRIPTOR, context__player__options__pb2.DESCRIPTOR,
playback__pb2.DESCRIPTOR, playback__pb2.DESCRIPTOR,
session__pb2.DESCRIPTOR, session__pb2.DESCRIPTOR,
queue__pb2.DESCRIPTOR, queue__pb2.DESCRIPTOR,
]) ],
)
_TRANSFERSTATE = _descriptor.Descriptor( _TRANSFERSTATE = _descriptor.Descriptor(
name='TransferState', name="TransferState",
full_name='spotify.player.proto.transfer.TransferState', full_name="spotify.player.proto.transfer.TransferState",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='options', name="options",
full_name='spotify.player.proto.transfer.TransferState.options', full_name="spotify.player.proto.transfer.TransferState.options",
index=0, index=0,
number=1, number=1,
type=11, type=11,
@ -55,10 +56,11 @@ _TRANSFERSTATE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='playback', name="playback",
full_name='spotify.player.proto.transfer.TransferState.playback', full_name="spotify.player.proto.transfer.TransferState.playback",
index=1, index=1,
number=2, number=2,
type=11, type=11,
@ -73,11 +75,12 @@ _TRANSFERSTATE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='current_session', name="current_session",
full_name= full_name=
'spotify.player.proto.transfer.TransferState.current_session', "spotify.player.proto.transfer.TransferState.current_session",
index=2, index=2,
number=3, number=3,
type=11, type=11,
@ -92,10 +95,11 @@ _TRANSFERSTATE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='queue', name="queue",
full_name='spotify.player.proto.transfer.TransferState.queue', full_name="spotify.player.proto.transfer.TransferState.queue",
index=3, index=3,
number=4, number=4,
type=11, type=11,
@ -110,11 +114,12 @@ _TRANSFERSTATE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='creation_timestamp', name="creation_timestamp",
full_name= full_name=
'spotify.player.proto.transfer.TransferState.creation_timestamp', "spotify.player.proto.transfer.TransferState.creation_timestamp",
index=4, index=4,
number=5, number=5,
type=3, type=3,
@ -129,14 +134,15 @@ _TRANSFERSTATE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto2', syntax="proto2",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=130, serialized_start=130,
@ -144,23 +150,24 @@ _TRANSFERSTATE = _descriptor.Descriptor(
) )
_TRANSFERSTATE.fields_by_name[ _TRANSFERSTATE.fields_by_name[
'options'].message_type = context__player__options__pb2._CONTEXTPLAYEROPTIONS "options"].message_type = context__player__options__pb2._CONTEXTPLAYEROPTIONS
_TRANSFERSTATE.fields_by_name[ _TRANSFERSTATE.fields_by_name[
'playback'].message_type = playback__pb2._PLAYBACK "playback"].message_type = playback__pb2._PLAYBACK
_TRANSFERSTATE.fields_by_name[ _TRANSFERSTATE.fields_by_name[
'current_session'].message_type = session__pb2._SESSION "current_session"].message_type = session__pb2._SESSION
_TRANSFERSTATE.fields_by_name['queue'].message_type = queue__pb2._QUEUE _TRANSFERSTATE.fields_by_name["queue"].message_type = queue__pb2._QUEUE
DESCRIPTOR.message_types_by_name['TransferState'] = _TRANSFERSTATE DESCRIPTOR.message_types_by_name["TransferState"] = _TRANSFERSTATE
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
TransferState = _reflection.GeneratedProtocolMessageType( TransferState = _reflection.GeneratedProtocolMessageType(
'TransferState', "TransferState",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _TRANSFERSTATE, "DESCRIPTOR": _TRANSFERSTATE,
'__module__': 'transfer_state_pb2' "__module__": "transfer_state_pb2"
# @@protoc_insertion_point(class_scope:spotify.player.proto.transfer.TransferState) # @@protoc_insertion_point(class_scope:spotify.player.proto.transfer.TransferState)
}) },
)
_sym_db.RegisterMessage(TransferState) _sym_db.RegisterMessage(TransferState)
DESCRIPTOR._options = None DESCRIPTOR._options = None

View File

@ -6,38 +6,39 @@ from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='spotify/login5/v3/client_info.proto', name="spotify/login5/v3/client_info.proto",
package='spotify.login5.v3', package="spotify.login5.v3",
syntax='proto3', syntax="proto3",
serialized_options=b'\n\024com.spotify.login5v3', serialized_options=b"\n\024com.spotify.login5v3",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n#spotify/login5/v3/client_info.proto\x12\x11spotify.login5.v3\"2\n\nClientInfo\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x11\n\tdevice_id\x18\x02 \x01(\tB\x16\n\x14\x63om.spotify.login5v3b\x06proto3' b'\n#spotify/login5/v3/client_info.proto\x12\x11spotify.login5.v3"2\n\nClientInfo\x12\x11\n\tclient_id\x18\x01 \x01(\t\x12\x11\n\tdevice_id\x18\x02 \x01(\tB\x16\n\x14\x63om.spotify.login5v3b\x06proto3',
) )
_CLIENTINFO = _descriptor.Descriptor( _CLIENTINFO = _descriptor.Descriptor(
name='ClientInfo', name="ClientInfo",
full_name='spotify.login5.v3.ClientInfo', full_name="spotify.login5.v3.ClientInfo",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='client_id', name="client_id",
full_name='spotify.login5.v3.ClientInfo.client_id', full_name="spotify.login5.v3.ClientInfo.client_id",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -45,17 +46,18 @@ _CLIENTINFO = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='device_id', name="device_id",
full_name='spotify.login5.v3.ClientInfo.device_id', full_name="spotify.login5.v3.ClientInfo.device_id",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -63,31 +65,33 @@ _CLIENTINFO = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=58, serialized_start=58,
serialized_end=108, serialized_end=108,
) )
DESCRIPTOR.message_types_by_name['ClientInfo'] = _CLIENTINFO DESCRIPTOR.message_types_by_name["ClientInfo"] = _CLIENTINFO
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
ClientInfo = _reflection.GeneratedProtocolMessageType( ClientInfo = _reflection.GeneratedProtocolMessageType(
'ClientInfo', "ClientInfo",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _CLIENTINFO, "DESCRIPTOR": _CLIENTINFO,
'__module__': 'spotify.login5.v3.client_info_pb2' "__module__": "spotify.login5.v3.client_info_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.ClientInfo) # @@protoc_insertion_point(class_scope:spotify.login5.v3.ClientInfo)
}) },
)
_sym_db.RegisterMessage(ClientInfo) _sym_db.RegisterMessage(ClientInfo)
DESCRIPTOR._options = None DESCRIPTOR._options = None

View File

@ -2,30 +2,38 @@
# Generated by the protocol buffer compiler. DO NOT EDIT! # Generated by the protocol buffer compiler. DO NOT EDIT!
# source: spotify/login5/v3/login5.proto # source: spotify/login5/v3/login5.proto
"""Generated protocol buffer code.""" """Generated protocol buffer code."""
from google.protobuf.internal import enum_type_wrapper
from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
from google.protobuf.internal import enum_type_wrapper
from spotify.login5.v3 import \
client_info_pb2 as spotify_dot_login5_dot_v3_dot_client__info__pb2
from spotify.login5.v3 import \
user_info_pb2 as spotify_dot_login5_dot_v3_dot_user__info__pb2
from spotify.login5.v3.challenges import \
code_pb2 as spotify_dot_login5_dot_v3_dot_challenges_dot_code__pb2
from spotify.login5.v3.challenges import \
hashcash_pb2 as spotify_dot_login5_dot_v3_dot_challenges_dot_hashcash__pb2
from spotify.login5.v3.credentials import \
credentials_pb2 as \
spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2
from spotify.login5.v3.identifiers import \
identifiers_pb2 as \
spotify_dot_login5_dot_v3_dot_identifiers_dot_identifiers__pb2
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
from spotify.login5.v3 import client_info_pb2 as spotify_dot_login5_dot_v3_dot_client__info__pb2
from spotify.login5.v3 import user_info_pb2 as spotify_dot_login5_dot_v3_dot_user__info__pb2
from spotify.login5.v3.challenges import code_pb2 as spotify_dot_login5_dot_v3_dot_challenges_dot_code__pb2
from spotify.login5.v3.challenges import hashcash_pb2 as spotify_dot_login5_dot_v3_dot_challenges_dot_hashcash__pb2
from spotify.login5.v3.credentials import credentials_pb2 as spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2
from spotify.login5.v3.identifiers import identifiers_pb2 as spotify_dot_login5_dot_v3_dot_identifiers_dot_identifiers__pb2
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='spotify/login5/v3/login5.proto', name="spotify/login5/v3/login5.proto",
package='spotify.login5.v3', package="spotify.login5.v3",
syntax='proto3', syntax="proto3",
serialized_options=b'\n\024com.spotify.login5v3', serialized_options=b"\n\024com.spotify.login5v3",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n\x1espotify/login5/v3/login5.proto\x12\x11spotify.login5.v3\x1a#spotify/login5/v3/client_info.proto\x1a!spotify/login5/v3/user_info.proto\x1a\'spotify/login5/v3/challenges/code.proto\x1a+spotify/login5/v3/challenges/hashcash.proto\x1a/spotify/login5/v3/credentials/credentials.proto\x1a/spotify/login5/v3/identifiers/identifiers.proto\">\n\nChallenges\x12\x30\n\nchallenges\x18\x01 \x03(\x0b\x32\x1c.spotify.login5.v3.Challenge\"\x89\x01\n\tChallenge\x12\x41\n\x08hashcash\x18\x01 \x01(\x0b\x32/.spotify.login5.v3.challenges.HashcashChallenge\x12\x39\n\x04\x63ode\x18\x02 \x01(\x0b\x32+.spotify.login5.v3.challenges.CodeChallenge\"M\n\x12\x43hallengeSolutions\x12\x37\n\tsolutions\x18\x01 \x03(\x0b\x32$.spotify.login5.v3.ChallengeSolution\"\x8f\x01\n\x11\x43hallengeSolution\x12@\n\x08hashcash\x18\x01 \x01(\x0b\x32..spotify.login5.v3.challenges.HashcashSolution\x12\x38\n\x04\x63ode\x18\x02 \x01(\x0b\x32*.spotify.login5.v3.challenges.CodeSolution\"\xad\x05\n\x0cLoginRequest\x12\x32\n\x0b\x63lient_info\x18\x01 \x01(\x0b\x32\x1d.spotify.login5.v3.ClientInfo\x12\x15\n\rlogin_context\x18\x02 \x01(\x0c\x12\x42\n\x13\x63hallenge_solutions\x18\x03 \x01(\x0b\x32%.spotify.login5.v3.ChallengeSolutions\x12J\n\x11stored_credential\x18\x64 \x01(\x0b\x32/.spotify.login5.v3.credentials.StoredCredential\x12\x39\n\x08password\x18\x65 \x01(\x0b\x32\'.spotify.login5.v3.credentials.Password\x12Q\n\x15\x66\x61\x63\x65\x62ook_access_token\x18\x66 \x01(\x0b\x32\x32.spotify.login5.v3.credentials.FacebookAccessToken\x12@\n\x0cphone_number\x18g \x01(\x0b\x32*.spotify.login5.v3.identifiers.PhoneNumber\x12\x43\n\x0eone_time_token\x18h \x01(\x0b\x32+.spotify.login5.v3.credentials.OneTimeToken\x12U\n\x17parent_child_credential\x18i \x01(\x0b\x32\x34.spotify.login5.v3.credentials.ParentChildCredential\x12V\n\x18\x61pple_sign_in_credential\x18j \x01(\x0b\x32\x34.spotify.login5.v3.credentials.AppleSignInCredential\"m\n\x07LoginOk\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x02 \x01(\t\x12\x19\n\x11stored_credential\x18\x03 \x01(\x0c\x12\x1f\n\x17\x61\x63\x63\x65ss_token_expires_in\x18\x04 \x01(\x05\"\xf8\x02\n\rLoginResponse\x12&\n\x02ok\x18\x01 \x01(\x0b\x32\x1a.spotify.login5.v3.LoginOk\x12,\n\x05\x65rror\x18\x02 \x01(\x0e\x32\x1d.spotify.login5.v3.LoginError\x12\x31\n\nchallenges\x18\x03 \x01(\x0b\x32\x1d.spotify.login5.v3.Challenges\x12;\n\x08warnings\x18\x04 \x03(\x0e\x32).spotify.login5.v3.LoginResponse.Warnings\x12\x15\n\rlogin_context\x18\x05 \x01(\x0c\x12\x18\n\x10identifier_token\x18\x06 \x01(\t\x12.\n\tuser_info\x18\x07 \x01(\x0b\x32\x1b.spotify.login5.v3.UserInfo\"@\n\x08Warnings\x12\x13\n\x0fUNKNOWN_WARNING\x10\x00\x12\x1f\n\x1b\x44\x45PRECATED_PROTOCOL_VERSION\x10\x01*\xd3\x01\n\nLoginError\x12\x11\n\rUNKNOWN_ERROR\x10\x00\x12\x17\n\x13INVALID_CREDENTIALS\x10\x01\x12\x0f\n\x0b\x42\x41\x44_REQUEST\x10\x02\x12\x1e\n\x1aUNSUPPORTED_LOGIN_PROTOCOL\x10\x03\x12\x0b\n\x07TIMEOUT\x10\x04\x12\x16\n\x12UNKNOWN_IDENTIFIER\x10\x05\x12\x15\n\x11TOO_MANY_ATTEMPTS\x10\x06\x12\x17\n\x13INVALID_PHONENUMBER\x10\x07\x12\x13\n\x0fTRY_AGAIN_LATER\x10\x08\x42\x16\n\x14\x63om.spotify.login5v3b\x06proto3', b'\n\x1espotify/login5/v3/login5.proto\x12\x11spotify.login5.v3\x1a#spotify/login5/v3/client_info.proto\x1a!spotify/login5/v3/user_info.proto\x1a\'spotify/login5/v3/challenges/code.proto\x1a+spotify/login5/v3/challenges/hashcash.proto\x1a/spotify/login5/v3/credentials/credentials.proto\x1a/spotify/login5/v3/identifiers/identifiers.proto">\n\nChallenges\x12\x30\n\nchallenges\x18\x01 \x03(\x0b\x32\x1c.spotify.login5.v3.Challenge"\x89\x01\n\tChallenge\x12\x41\n\x08hashcash\x18\x01 \x01(\x0b\x32/.spotify.login5.v3.challenges.HashcashChallenge\x12\x39\n\x04\x63ode\x18\x02 \x01(\x0b\x32+.spotify.login5.v3.challenges.CodeChallenge"M\n\x12\x43hallengeSolutions\x12\x37\n\tsolutions\x18\x01 \x03(\x0b\x32$.spotify.login5.v3.ChallengeSolution"\x8f\x01\n\x11\x43hallengeSolution\x12@\n\x08hashcash\x18\x01 \x01(\x0b\x32..spotify.login5.v3.challenges.HashcashSolution\x12\x38\n\x04\x63ode\x18\x02 \x01(\x0b\x32*.spotify.login5.v3.challenges.CodeSolution"\xad\x05\n\x0cLoginRequest\x12\x32\n\x0b\x63lient_info\x18\x01 \x01(\x0b\x32\x1d.spotify.login5.v3.ClientInfo\x12\x15\n\rlogin_context\x18\x02 \x01(\x0c\x12\x42\n\x13\x63hallenge_solutions\x18\x03 \x01(\x0b\x32%.spotify.login5.v3.ChallengeSolutions\x12J\n\x11stored_credential\x18\x64 \x01(\x0b\x32/.spotify.login5.v3.credentials.StoredCredential\x12\x39\n\x08password\x18\x65 \x01(\x0b\x32\'.spotify.login5.v3.credentials.Password\x12Q\n\x15\x66\x61\x63\x65\x62ook_access_token\x18\x66 \x01(\x0b\x32\x32.spotify.login5.v3.credentials.FacebookAccessToken\x12@\n\x0cphone_number\x18g \x01(\x0b\x32*.spotify.login5.v3.identifiers.PhoneNumber\x12\x43\n\x0eone_time_token\x18h \x01(\x0b\x32+.spotify.login5.v3.credentials.OneTimeToken\x12U\n\x17parent_child_credential\x18i \x01(\x0b\x32\x34.spotify.login5.v3.credentials.ParentChildCredential\x12V\n\x18\x61pple_sign_in_credential\x18j \x01(\x0b\x32\x34.spotify.login5.v3.credentials.AppleSignInCredential"m\n\x07LoginOk\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x02 \x01(\t\x12\x19\n\x11stored_credential\x18\x03 \x01(\x0c\x12\x1f\n\x17\x61\x63\x63\x65ss_token_expires_in\x18\x04 \x01(\x05"\xf8\x02\n\rLoginResponse\x12&\n\x02ok\x18\x01 \x01(\x0b\x32\x1a.spotify.login5.v3.LoginOk\x12,\n\x05\x65rror\x18\x02 \x01(\x0e\x32\x1d.spotify.login5.v3.LoginError\x12\x31\n\nchallenges\x18\x03 \x01(\x0b\x32\x1d.spotify.login5.v3.Challenges\x12;\n\x08warnings\x18\x04 \x03(\x0e\x32).spotify.login5.v3.LoginResponse.Warnings\x12\x15\n\rlogin_context\x18\x05 \x01(\x0c\x12\x18\n\x10identifier_token\x18\x06 \x01(\t\x12.\n\tuser_info\x18\x07 \x01(\x0b\x32\x1b.spotify.login5.v3.UserInfo"@\n\x08Warnings\x12\x13\n\x0fUNKNOWN_WARNING\x10\x00\x12\x1f\n\x1b\x44\x45PRECATED_PROTOCOL_VERSION\x10\x01*\xd3\x01\n\nLoginError\x12\x11\n\rUNKNOWN_ERROR\x10\x00\x12\x17\n\x13INVALID_CREDENTIALS\x10\x01\x12\x0f\n\x0b\x42\x41\x44_REQUEST\x10\x02\x12\x1e\n\x1aUNSUPPORTED_LOGIN_PROTOCOL\x10\x03\x12\x0b\n\x07TIMEOUT\x10\x04\x12\x16\n\x12UNKNOWN_IDENTIFIER\x10\x05\x12\x15\n\x11TOO_MANY_ATTEMPTS\x10\x06\x12\x17\n\x13INVALID_PHONENUMBER\x10\x07\x12\x13\n\x0fTRY_AGAIN_LATER\x10\x08\x42\x16\n\x14\x63om.spotify.login5v3b\x06proto3',
dependencies=[ dependencies=[
spotify_dot_login5_dot_v3_dot_client__info__pb2.DESCRIPTOR, spotify_dot_login5_dot_v3_dot_client__info__pb2.DESCRIPTOR,
spotify_dot_login5_dot_v3_dot_user__info__pb2.DESCRIPTOR, spotify_dot_login5_dot_v3_dot_user__info__pb2.DESCRIPTOR,
@ -35,78 +43,88 @@ DESCRIPTOR = _descriptor.FileDescriptor(
DESCRIPTOR, DESCRIPTOR,
spotify_dot_login5_dot_v3_dot_identifiers_dot_identifiers__pb2. spotify_dot_login5_dot_v3_dot_identifiers_dot_identifiers__pb2.
DESCRIPTOR, DESCRIPTOR,
]) ],
)
_LOGINERROR = _descriptor.EnumDescriptor( _LOGINERROR = _descriptor.EnumDescriptor(
name='LoginError', name="LoginError",
full_name='spotify.login5.v3.LoginError', full_name="spotify.login5.v3.LoginError",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
values=[ values=[
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='UNKNOWN_ERROR', name="UNKNOWN_ERROR",
index=0, index=0,
number=0, number=0,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='INVALID_CREDENTIALS', name="INVALID_CREDENTIALS",
index=1, index=1,
number=1, number=1,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='BAD_REQUEST', name="BAD_REQUEST",
index=2, index=2,
number=2, number=2,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='UNSUPPORTED_LOGIN_PROTOCOL', name="UNSUPPORTED_LOGIN_PROTOCOL",
index=3, index=3,
number=3, number=3,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='TIMEOUT', name="TIMEOUT",
index=4, index=4,
number=4, number=4,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='UNKNOWN_IDENTIFIER', name="UNKNOWN_IDENTIFIER",
index=5, index=5,
number=5, number=5,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='TOO_MANY_ATTEMPTS', name="TOO_MANY_ATTEMPTS",
index=6, index=6,
number=6, number=6,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='INVALID_PHONENUMBER', name="INVALID_PHONENUMBER",
index=7, index=7,
number=7, number=7,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='TRY_AGAIN_LATER', name="TRY_AGAIN_LATER",
index=8, index=8,
number=8, number=8,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
containing_type=None, containing_type=None,
serialized_options=None, serialized_options=None,
@ -127,26 +145,28 @@ INVALID_PHONENUMBER = 7
TRY_AGAIN_LATER = 8 TRY_AGAIN_LATER = 8
_LOGINRESPONSE_WARNINGS = _descriptor.EnumDescriptor( _LOGINRESPONSE_WARNINGS = _descriptor.EnumDescriptor(
name='Warnings', name="Warnings",
full_name='spotify.login5.v3.LoginResponse.Warnings', full_name="spotify.login5.v3.LoginResponse.Warnings",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
values=[ values=[
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='UNKNOWN_WARNING', name="UNKNOWN_WARNING",
index=0, index=0,
number=0, number=0,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='DEPRECATED_PROTOCOL_VERSION', name="DEPRECATED_PROTOCOL_VERSION",
index=1, index=1,
number=1, number=1,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
containing_type=None, containing_type=None,
serialized_options=None, serialized_options=None,
@ -156,16 +176,16 @@ _LOGINRESPONSE_WARNINGS = _descriptor.EnumDescriptor(
_sym_db.RegisterEnumDescriptor(_LOGINRESPONSE_WARNINGS) _sym_db.RegisterEnumDescriptor(_LOGINRESPONSE_WARNINGS)
_CHALLENGES = _descriptor.Descriptor( _CHALLENGES = _descriptor.Descriptor(
name='Challenges', name="Challenges",
full_name='spotify.login5.v3.Challenges', full_name="spotify.login5.v3.Challenges",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='challenges', name="challenges",
full_name='spotify.login5.v3.Challenges.challenges', full_name="spotify.login5.v3.Challenges.challenges",
index=0, index=0,
number=1, number=1,
type=11, type=11,
@ -180,14 +200,15 @@ _CHALLENGES = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=309, serialized_start=309,
@ -195,16 +216,16 @@ _CHALLENGES = _descriptor.Descriptor(
) )
_CHALLENGE = _descriptor.Descriptor( _CHALLENGE = _descriptor.Descriptor(
name='Challenge', name="Challenge",
full_name='spotify.login5.v3.Challenge', full_name="spotify.login5.v3.Challenge",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='hashcash', name="hashcash",
full_name='spotify.login5.v3.Challenge.hashcash', full_name="spotify.login5.v3.Challenge.hashcash",
index=0, index=0,
number=1, number=1,
type=11, type=11,
@ -219,10 +240,11 @@ _CHALLENGE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='code', name="code",
full_name='spotify.login5.v3.Challenge.code', full_name="spotify.login5.v3.Challenge.code",
index=1, index=1,
number=2, number=2,
type=11, type=11,
@ -237,14 +259,15 @@ _CHALLENGE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=374, serialized_start=374,
@ -252,16 +275,16 @@ _CHALLENGE = _descriptor.Descriptor(
) )
_CHALLENGESOLUTIONS = _descriptor.Descriptor( _CHALLENGESOLUTIONS = _descriptor.Descriptor(
name='ChallengeSolutions', name="ChallengeSolutions",
full_name='spotify.login5.v3.ChallengeSolutions', full_name="spotify.login5.v3.ChallengeSolutions",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='solutions', name="solutions",
full_name='spotify.login5.v3.ChallengeSolutions.solutions', full_name="spotify.login5.v3.ChallengeSolutions.solutions",
index=0, index=0,
number=1, number=1,
type=11, type=11,
@ -276,14 +299,15 @@ _CHALLENGESOLUTIONS = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=513, serialized_start=513,
@ -291,16 +315,16 @@ _CHALLENGESOLUTIONS = _descriptor.Descriptor(
) )
_CHALLENGESOLUTION = _descriptor.Descriptor( _CHALLENGESOLUTION = _descriptor.Descriptor(
name='ChallengeSolution', name="ChallengeSolution",
full_name='spotify.login5.v3.ChallengeSolution', full_name="spotify.login5.v3.ChallengeSolution",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='hashcash', name="hashcash",
full_name='spotify.login5.v3.ChallengeSolution.hashcash', full_name="spotify.login5.v3.ChallengeSolution.hashcash",
index=0, index=0,
number=1, number=1,
type=11, type=11,
@ -315,10 +339,11 @@ _CHALLENGESOLUTION = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='code', name="code",
full_name='spotify.login5.v3.ChallengeSolution.code', full_name="spotify.login5.v3.ChallengeSolution.code",
index=1, index=1,
number=2, number=2,
type=11, type=11,
@ -333,14 +358,15 @@ _CHALLENGESOLUTION = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=593, serialized_start=593,
@ -348,16 +374,16 @@ _CHALLENGESOLUTION = _descriptor.Descriptor(
) )
_LOGINREQUEST = _descriptor.Descriptor( _LOGINREQUEST = _descriptor.Descriptor(
name='LoginRequest', name="LoginRequest",
full_name='spotify.login5.v3.LoginRequest', full_name="spotify.login5.v3.LoginRequest",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='client_info', name="client_info",
full_name='spotify.login5.v3.LoginRequest.client_info', full_name="spotify.login5.v3.LoginRequest.client_info",
index=0, index=0,
number=1, number=1,
type=11, type=11,
@ -372,10 +398,11 @@ _LOGINREQUEST = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='login_context', name="login_context",
full_name='spotify.login5.v3.LoginRequest.login_context', full_name="spotify.login5.v3.LoginRequest.login_context",
index=1, index=1,
number=2, number=2,
type=12, type=12,
@ -390,10 +417,11 @@ _LOGINREQUEST = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='challenge_solutions', name="challenge_solutions",
full_name='spotify.login5.v3.LoginRequest.challenge_solutions', full_name="spotify.login5.v3.LoginRequest.challenge_solutions",
index=2, index=2,
number=3, number=3,
type=11, type=11,
@ -408,10 +436,11 @@ _LOGINREQUEST = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='stored_credential', name="stored_credential",
full_name='spotify.login5.v3.LoginRequest.stored_credential', full_name="spotify.login5.v3.LoginRequest.stored_credential",
index=3, index=3,
number=100, number=100,
type=11, type=11,
@ -426,10 +455,11 @@ _LOGINREQUEST = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='password', name="password",
full_name='spotify.login5.v3.LoginRequest.password', full_name="spotify.login5.v3.LoginRequest.password",
index=4, index=4,
number=101, number=101,
type=11, type=11,
@ -444,10 +474,11 @@ _LOGINREQUEST = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='facebook_access_token', name="facebook_access_token",
full_name='spotify.login5.v3.LoginRequest.facebook_access_token', full_name="spotify.login5.v3.LoginRequest.facebook_access_token",
index=5, index=5,
number=102, number=102,
type=11, type=11,
@ -462,10 +493,11 @@ _LOGINREQUEST = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='phone_number', name="phone_number",
full_name='spotify.login5.v3.LoginRequest.phone_number', full_name="spotify.login5.v3.LoginRequest.phone_number",
index=6, index=6,
number=103, number=103,
type=11, type=11,
@ -480,10 +512,11 @@ _LOGINREQUEST = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='one_time_token', name="one_time_token",
full_name='spotify.login5.v3.LoginRequest.one_time_token', full_name="spotify.login5.v3.LoginRequest.one_time_token",
index=7, index=7,
number=104, number=104,
type=11, type=11,
@ -498,10 +531,11 @@ _LOGINREQUEST = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='parent_child_credential', name="parent_child_credential",
full_name='spotify.login5.v3.LoginRequest.parent_child_credential', full_name="spotify.login5.v3.LoginRequest.parent_child_credential",
index=8, index=8,
number=105, number=105,
type=11, type=11,
@ -516,10 +550,11 @@ _LOGINREQUEST = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='apple_sign_in_credential', name="apple_sign_in_credential",
full_name='spotify.login5.v3.LoginRequest.apple_sign_in_credential', full_name="spotify.login5.v3.LoginRequest.apple_sign_in_credential",
index=9, index=9,
number=106, number=106,
type=11, type=11,
@ -534,14 +569,15 @@ _LOGINREQUEST = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=739, serialized_start=739,
@ -549,23 +585,23 @@ _LOGINREQUEST = _descriptor.Descriptor(
) )
_LOGINOK = _descriptor.Descriptor( _LOGINOK = _descriptor.Descriptor(
name='LoginOk', name="LoginOk",
full_name='spotify.login5.v3.LoginOk', full_name="spotify.login5.v3.LoginOk",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='username', name="username",
full_name='spotify.login5.v3.LoginOk.username', full_name="spotify.login5.v3.LoginOk.username",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -573,17 +609,18 @@ _LOGINOK = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='access_token', name="access_token",
full_name='spotify.login5.v3.LoginOk.access_token', full_name="spotify.login5.v3.LoginOk.access_token",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -591,10 +628,11 @@ _LOGINOK = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='stored_credential', name="stored_credential",
full_name='spotify.login5.v3.LoginOk.stored_credential', full_name="spotify.login5.v3.LoginOk.stored_credential",
index=2, index=2,
number=3, number=3,
type=12, type=12,
@ -609,10 +647,11 @@ _LOGINOK = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='access_token_expires_in', name="access_token_expires_in",
full_name='spotify.login5.v3.LoginOk.access_token_expires_in', full_name="spotify.login5.v3.LoginOk.access_token_expires_in",
index=3, index=3,
number=4, number=4,
type=5, type=5,
@ -627,14 +666,15 @@ _LOGINOK = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=1426, serialized_start=1426,
@ -642,16 +682,16 @@ _LOGINOK = _descriptor.Descriptor(
) )
_LOGINRESPONSE = _descriptor.Descriptor( _LOGINRESPONSE = _descriptor.Descriptor(
name='LoginResponse', name="LoginResponse",
full_name='spotify.login5.v3.LoginResponse', full_name="spotify.login5.v3.LoginResponse",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='ok', name="ok",
full_name='spotify.login5.v3.LoginResponse.ok', full_name="spotify.login5.v3.LoginResponse.ok",
index=0, index=0,
number=1, number=1,
type=11, type=11,
@ -666,10 +706,11 @@ _LOGINRESPONSE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='error', name="error",
full_name='spotify.login5.v3.LoginResponse.error', full_name="spotify.login5.v3.LoginResponse.error",
index=1, index=1,
number=2, number=2,
type=14, type=14,
@ -684,10 +725,11 @@ _LOGINRESPONSE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='challenges', name="challenges",
full_name='spotify.login5.v3.LoginResponse.challenges', full_name="spotify.login5.v3.LoginResponse.challenges",
index=2, index=2,
number=3, number=3,
type=11, type=11,
@ -702,10 +744,11 @@ _LOGINRESPONSE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='warnings', name="warnings",
full_name='spotify.login5.v3.LoginResponse.warnings', full_name="spotify.login5.v3.LoginResponse.warnings",
index=3, index=3,
number=4, number=4,
type=14, type=14,
@ -720,10 +763,11 @@ _LOGINRESPONSE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='login_context', name="login_context",
full_name='spotify.login5.v3.LoginResponse.login_context', full_name="spotify.login5.v3.LoginResponse.login_context",
index=4, index=4,
number=5, number=5,
type=12, type=12,
@ -738,17 +782,18 @@ _LOGINRESPONSE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='identifier_token', name="identifier_token",
full_name='spotify.login5.v3.LoginResponse.identifier_token', full_name="spotify.login5.v3.LoginResponse.identifier_token",
index=5, index=5,
number=6, number=6,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -756,10 +801,11 @@ _LOGINRESPONSE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='user_info', name="user_info",
full_name='spotify.login5.v3.LoginResponse.user_info', full_name="spotify.login5.v3.LoginResponse.user_info",
index=6, index=6,
number=7, number=7,
type=11, type=11,
@ -774,7 +820,8 @@ _LOGINRESPONSE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
@ -783,127 +830,142 @@ _LOGINRESPONSE = _descriptor.Descriptor(
], ],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=1538, serialized_start=1538,
serialized_end=1914, serialized_end=1914,
) )
_CHALLENGES.fields_by_name['challenges'].message_type = _CHALLENGE _CHALLENGES.fields_by_name["challenges"].message_type = _CHALLENGE
_CHALLENGE.fields_by_name["hashcash"].message_type = (
spotify_dot_login5_dot_v3_dot_challenges_dot_hashcash__pb2.
_HASHCASHCHALLENGE)
_CHALLENGE.fields_by_name[ _CHALLENGE.fields_by_name[
'hashcash'].message_type = spotify_dot_login5_dot_v3_dot_challenges_dot_hashcash__pb2._HASHCASHCHALLENGE "code"].message_type = spotify_dot_login5_dot_v3_dot_challenges_dot_code__pb2._CODECHALLENGE
_CHALLENGE.fields_by_name[
'code'].message_type = spotify_dot_login5_dot_v3_dot_challenges_dot_code__pb2._CODECHALLENGE
_CHALLENGESOLUTIONS.fields_by_name[ _CHALLENGESOLUTIONS.fields_by_name[
'solutions'].message_type = _CHALLENGESOLUTION "solutions"].message_type = _CHALLENGESOLUTION
_CHALLENGESOLUTION.fields_by_name["hashcash"].message_type = (
spotify_dot_login5_dot_v3_dot_challenges_dot_hashcash__pb2.
_HASHCASHSOLUTION)
_CHALLENGESOLUTION.fields_by_name[ _CHALLENGESOLUTION.fields_by_name[
'hashcash'].message_type = spotify_dot_login5_dot_v3_dot_challenges_dot_hashcash__pb2._HASHCASHSOLUTION "code"].message_type = spotify_dot_login5_dot_v3_dot_challenges_dot_code__pb2._CODESOLUTION
_CHALLENGESOLUTION.fields_by_name[
'code'].message_type = spotify_dot_login5_dot_v3_dot_challenges_dot_code__pb2._CODESOLUTION
_LOGINREQUEST.fields_by_name[ _LOGINREQUEST.fields_by_name[
'client_info'].message_type = spotify_dot_login5_dot_v3_dot_client__info__pb2._CLIENTINFO "client_info"].message_type = spotify_dot_login5_dot_v3_dot_client__info__pb2._CLIENTINFO
_LOGINREQUEST.fields_by_name[ _LOGINREQUEST.fields_by_name[
'challenge_solutions'].message_type = _CHALLENGESOLUTIONS "challenge_solutions"].message_type = _CHALLENGESOLUTIONS
_LOGINREQUEST.fields_by_name[ _LOGINREQUEST.fields_by_name["stored_credential"].message_type = (
'stored_credential'].message_type = spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2._STOREDCREDENTIAL spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2.
_LOGINREQUEST.fields_by_name[ _STOREDCREDENTIAL)
'password'].message_type = spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2._PASSWORD _LOGINREQUEST.fields_by_name["password"].message_type = (
_LOGINREQUEST.fields_by_name[ spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2._PASSWORD)
'facebook_access_token'].message_type = spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2._FACEBOOKACCESSTOKEN _LOGINREQUEST.fields_by_name["facebook_access_token"].message_type = (
_LOGINREQUEST.fields_by_name[ spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2.
'phone_number'].message_type = spotify_dot_login5_dot_v3_dot_identifiers_dot_identifiers__pb2._PHONENUMBER _FACEBOOKACCESSTOKEN)
_LOGINREQUEST.fields_by_name[ _LOGINREQUEST.fields_by_name["phone_number"].message_type = (
'one_time_token'].message_type = spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2._ONETIMETOKEN spotify_dot_login5_dot_v3_dot_identifiers_dot_identifiers__pb2._PHONENUMBER
_LOGINREQUEST.fields_by_name[ )
'parent_child_credential'].message_type = spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2._PARENTCHILDCREDENTIAL _LOGINREQUEST.fields_by_name["one_time_token"].message_type = (
_LOGINREQUEST.fields_by_name[ spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2.
'apple_sign_in_credential'].message_type = spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2._APPLESIGNINCREDENTIAL _ONETIMETOKEN)
_LOGINRESPONSE.fields_by_name['ok'].message_type = _LOGINOK _LOGINREQUEST.fields_by_name["parent_child_credential"].message_type = (
_LOGINRESPONSE.fields_by_name['error'].enum_type = _LOGINERROR spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2.
_LOGINRESPONSE.fields_by_name['challenges'].message_type = _CHALLENGES _PARENTCHILDCREDENTIAL)
_LOGINRESPONSE.fields_by_name['warnings'].enum_type = _LOGINRESPONSE_WARNINGS _LOGINREQUEST.fields_by_name["apple_sign_in_credential"].message_type = (
spotify_dot_login5_dot_v3_dot_credentials_dot_credentials__pb2.
_APPLESIGNINCREDENTIAL)
_LOGINRESPONSE.fields_by_name["ok"].message_type = _LOGINOK
_LOGINRESPONSE.fields_by_name["error"].enum_type = _LOGINERROR
_LOGINRESPONSE.fields_by_name["challenges"].message_type = _CHALLENGES
_LOGINRESPONSE.fields_by_name["warnings"].enum_type = _LOGINRESPONSE_WARNINGS
_LOGINRESPONSE.fields_by_name[ _LOGINRESPONSE.fields_by_name[
'user_info'].message_type = spotify_dot_login5_dot_v3_dot_user__info__pb2._USERINFO "user_info"].message_type = spotify_dot_login5_dot_v3_dot_user__info__pb2._USERINFO
_LOGINRESPONSE_WARNINGS.containing_type = _LOGINRESPONSE _LOGINRESPONSE_WARNINGS.containing_type = _LOGINRESPONSE
DESCRIPTOR.message_types_by_name['Challenges'] = _CHALLENGES DESCRIPTOR.message_types_by_name["Challenges"] = _CHALLENGES
DESCRIPTOR.message_types_by_name['Challenge'] = _CHALLENGE DESCRIPTOR.message_types_by_name["Challenge"] = _CHALLENGE
DESCRIPTOR.message_types_by_name['ChallengeSolutions'] = _CHALLENGESOLUTIONS DESCRIPTOR.message_types_by_name["ChallengeSolutions"] = _CHALLENGESOLUTIONS
DESCRIPTOR.message_types_by_name['ChallengeSolution'] = _CHALLENGESOLUTION DESCRIPTOR.message_types_by_name["ChallengeSolution"] = _CHALLENGESOLUTION
DESCRIPTOR.message_types_by_name['LoginRequest'] = _LOGINREQUEST DESCRIPTOR.message_types_by_name["LoginRequest"] = _LOGINREQUEST
DESCRIPTOR.message_types_by_name['LoginOk'] = _LOGINOK DESCRIPTOR.message_types_by_name["LoginOk"] = _LOGINOK
DESCRIPTOR.message_types_by_name['LoginResponse'] = _LOGINRESPONSE DESCRIPTOR.message_types_by_name["LoginResponse"] = _LOGINRESPONSE
DESCRIPTOR.enum_types_by_name['LoginError'] = _LOGINERROR DESCRIPTOR.enum_types_by_name["LoginError"] = _LOGINERROR
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
Challenges = _reflection.GeneratedProtocolMessageType( Challenges = _reflection.GeneratedProtocolMessageType(
'Challenges', "Challenges",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _CHALLENGES, "DESCRIPTOR": _CHALLENGES,
'__module__': 'spotify.login5.v3.login5_pb2' "__module__": "spotify.login5.v3.login5_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.Challenges) # @@protoc_insertion_point(class_scope:spotify.login5.v3.Challenges)
}) },
)
_sym_db.RegisterMessage(Challenges) _sym_db.RegisterMessage(Challenges)
Challenge = _reflection.GeneratedProtocolMessageType( Challenge = _reflection.GeneratedProtocolMessageType(
'Challenge', "Challenge",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _CHALLENGE, "DESCRIPTOR": _CHALLENGE,
'__module__': 'spotify.login5.v3.login5_pb2' "__module__": "spotify.login5.v3.login5_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.Challenge) # @@protoc_insertion_point(class_scope:spotify.login5.v3.Challenge)
}) },
)
_sym_db.RegisterMessage(Challenge) _sym_db.RegisterMessage(Challenge)
ChallengeSolutions = _reflection.GeneratedProtocolMessageType( ChallengeSolutions = _reflection.GeneratedProtocolMessageType(
'ChallengeSolutions', "ChallengeSolutions",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _CHALLENGESOLUTIONS, "DESCRIPTOR": _CHALLENGESOLUTIONS,
'__module__': 'spotify.login5.v3.login5_pb2' "__module__": "spotify.login5.v3.login5_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.ChallengeSolutions) # @@protoc_insertion_point(class_scope:spotify.login5.v3.ChallengeSolutions)
}) },
)
_sym_db.RegisterMessage(ChallengeSolutions) _sym_db.RegisterMessage(ChallengeSolutions)
ChallengeSolution = _reflection.GeneratedProtocolMessageType( ChallengeSolution = _reflection.GeneratedProtocolMessageType(
'ChallengeSolution', "ChallengeSolution",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _CHALLENGESOLUTION, "DESCRIPTOR": _CHALLENGESOLUTION,
'__module__': 'spotify.login5.v3.login5_pb2' "__module__": "spotify.login5.v3.login5_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.ChallengeSolution) # @@protoc_insertion_point(class_scope:spotify.login5.v3.ChallengeSolution)
}) },
)
_sym_db.RegisterMessage(ChallengeSolution) _sym_db.RegisterMessage(ChallengeSolution)
LoginRequest = _reflection.GeneratedProtocolMessageType( LoginRequest = _reflection.GeneratedProtocolMessageType(
'LoginRequest', "LoginRequest",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _LOGINREQUEST, "DESCRIPTOR": _LOGINREQUEST,
'__module__': 'spotify.login5.v3.login5_pb2' "__module__": "spotify.login5.v3.login5_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.LoginRequest) # @@protoc_insertion_point(class_scope:spotify.login5.v3.LoginRequest)
}) },
)
_sym_db.RegisterMessage(LoginRequest) _sym_db.RegisterMessage(LoginRequest)
LoginOk = _reflection.GeneratedProtocolMessageType( LoginOk = _reflection.GeneratedProtocolMessageType(
'LoginOk', "LoginOk",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _LOGINOK, "DESCRIPTOR": _LOGINOK,
'__module__': 'spotify.login5.v3.login5_pb2' "__module__": "spotify.login5.v3.login5_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.LoginOk) # @@protoc_insertion_point(class_scope:spotify.login5.v3.LoginOk)
}) },
)
_sym_db.RegisterMessage(LoginOk) _sym_db.RegisterMessage(LoginOk)
LoginResponse = _reflection.GeneratedProtocolMessageType( LoginResponse = _reflection.GeneratedProtocolMessageType(
'LoginResponse', "LoginResponse",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _LOGINRESPONSE, "DESCRIPTOR": _LOGINRESPONSE,
'__module__': 'spotify.login5.v3.login5_pb2' "__module__": "spotify.login5.v3.login5_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.LoginResponse) # @@protoc_insertion_point(class_scope:spotify.login5.v3.LoginResponse)
}) },
)
_sym_db.RegisterMessage(LoginResponse) _sym_db.RegisterMessage(LoginResponse)
DESCRIPTOR._options = None DESCRIPTOR._options = None

View File

@ -6,55 +6,60 @@ from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='spotify/login5/v3/user_info.proto', name="spotify/login5/v3/user_info.proto",
package='spotify.login5.v3', package="spotify.login5.v3",
syntax='proto3', syntax="proto3",
serialized_options=b'\n\024com.spotify.login5v3', serialized_options=b"\n\024com.spotify.login5v3",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n!spotify/login5/v3/user_info.proto\x12\x11spotify.login5.v3\"\x97\x02\n\x08UserInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x16\n\x0e\x65mail_verified\x18\x03 \x01(\x08\x12\x11\n\tbirthdate\x18\x04 \x01(\t\x12\x32\n\x06gender\x18\x05 \x01(\x0e\x32\".spotify.login5.v3.UserInfo.Gender\x12\x14\n\x0cphone_number\x18\x06 \x01(\t\x12\x1d\n\x15phone_number_verified\x18\x07 \x01(\x08\x12 \n\x18\x65mail_already_registered\x18\x08 \x01(\x08\"8\n\x06Gender\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04MALE\x10\x01\x12\n\n\x06\x46\x45MALE\x10\x02\x12\x0b\n\x07NEUTRAL\x10\x03\x42\x16\n\x14\x63om.spotify.login5v3b\x06proto3' b'\n!spotify/login5/v3/user_info.proto\x12\x11spotify.login5.v3"\x97\x02\n\x08UserInfo\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\r\n\x05\x65mail\x18\x02 \x01(\t\x12\x16\n\x0e\x65mail_verified\x18\x03 \x01(\x08\x12\x11\n\tbirthdate\x18\x04 \x01(\t\x12\x32\n\x06gender\x18\x05 \x01(\x0e\x32".spotify.login5.v3.UserInfo.Gender\x12\x14\n\x0cphone_number\x18\x06 \x01(\t\x12\x1d\n\x15phone_number_verified\x18\x07 \x01(\x08\x12 \n\x18\x65mail_already_registered\x18\x08 \x01(\x08"8\n\x06Gender\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x08\n\x04MALE\x10\x01\x12\n\n\x06\x46\x45MALE\x10\x02\x12\x0b\n\x07NEUTRAL\x10\x03\x42\x16\n\x14\x63om.spotify.login5v3b\x06proto3',
) )
_USERINFO_GENDER = _descriptor.EnumDescriptor( _USERINFO_GENDER = _descriptor.EnumDescriptor(
name='Gender', name="Gender",
full_name='spotify.login5.v3.UserInfo.Gender', full_name="spotify.login5.v3.UserInfo.Gender",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
values=[ values=[
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='UNKNOWN', name="UNKNOWN",
index=0, index=0,
number=0, number=0,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='MALE', name="MALE",
index=1, index=1,
number=1, number=1,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='FEMALE', name="FEMALE",
index=2, index=2,
number=2, number=2,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='NEUTRAL', name="NEUTRAL",
index=3, index=3,
number=3, number=3,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
containing_type=None, containing_type=None,
serialized_options=None, serialized_options=None,
@ -64,23 +69,23 @@ _USERINFO_GENDER = _descriptor.EnumDescriptor(
_sym_db.RegisterEnumDescriptor(_USERINFO_GENDER) _sym_db.RegisterEnumDescriptor(_USERINFO_GENDER)
_USERINFO = _descriptor.Descriptor( _USERINFO = _descriptor.Descriptor(
name='UserInfo', name="UserInfo",
full_name='spotify.login5.v3.UserInfo', full_name="spotify.login5.v3.UserInfo",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='name', name="name",
full_name='spotify.login5.v3.UserInfo.name', full_name="spotify.login5.v3.UserInfo.name",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -88,17 +93,18 @@ _USERINFO = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='email', name="email",
full_name='spotify.login5.v3.UserInfo.email', full_name="spotify.login5.v3.UserInfo.email",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -106,10 +112,11 @@ _USERINFO = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='email_verified', name="email_verified",
full_name='spotify.login5.v3.UserInfo.email_verified', full_name="spotify.login5.v3.UserInfo.email_verified",
index=2, index=2,
number=3, number=3,
type=8, type=8,
@ -124,17 +131,18 @@ _USERINFO = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='birthdate', name="birthdate",
full_name='spotify.login5.v3.UserInfo.birthdate', full_name="spotify.login5.v3.UserInfo.birthdate",
index=3, index=3,
number=4, number=4,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -142,10 +150,11 @@ _USERINFO = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='gender', name="gender",
full_name='spotify.login5.v3.UserInfo.gender', full_name="spotify.login5.v3.UserInfo.gender",
index=4, index=4,
number=5, number=5,
type=14, type=14,
@ -160,17 +169,18 @@ _USERINFO = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='phone_number', name="phone_number",
full_name='spotify.login5.v3.UserInfo.phone_number', full_name="spotify.login5.v3.UserInfo.phone_number",
index=5, index=5,
number=6, number=6,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -178,10 +188,11 @@ _USERINFO = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='phone_number_verified', name="phone_number_verified",
full_name='spotify.login5.v3.UserInfo.phone_number_verified', full_name="spotify.login5.v3.UserInfo.phone_number_verified",
index=6, index=6,
number=7, number=7,
type=8, type=8,
@ -196,10 +207,11 @@ _USERINFO = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='email_already_registered', name="email_already_registered",
full_name='spotify.login5.v3.UserInfo.email_already_registered', full_name="spotify.login5.v3.UserInfo.email_already_registered",
index=7, index=7,
number=8, number=8,
type=8, type=8,
@ -214,7 +226,8 @@ _USERINFO = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
@ -223,26 +236,27 @@ _USERINFO = _descriptor.Descriptor(
], ],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=57, serialized_start=57,
serialized_end=336, serialized_end=336,
) )
_USERINFO.fields_by_name['gender'].enum_type = _USERINFO_GENDER _USERINFO.fields_by_name["gender"].enum_type = _USERINFO_GENDER
_USERINFO_GENDER.containing_type = _USERINFO _USERINFO_GENDER.containing_type = _USERINFO
DESCRIPTOR.message_types_by_name['UserInfo'] = _USERINFO DESCRIPTOR.message_types_by_name["UserInfo"] = _USERINFO
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
UserInfo = _reflection.GeneratedProtocolMessageType( UserInfo = _reflection.GeneratedProtocolMessageType(
'UserInfo', "UserInfo",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _USERINFO, "DESCRIPTOR": _USERINFO,
'__module__': 'spotify.login5.v3.user_info_pb2' "__module__": "spotify.login5.v3.user_info_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.UserInfo) # @@protoc_insertion_point(class_scope:spotify.login5.v3.UserInfo)
}) },
)
_sym_db.RegisterMessage(UserInfo) _sym_db.RegisterMessage(UserInfo)
DESCRIPTOR._options = None DESCRIPTOR._options = None

View File

@ -6,41 +6,44 @@ from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='spotify/login5/v3/challenges/code.proto', name="spotify/login5/v3/challenges/code.proto",
package='spotify.login5.v3.challenges', package="spotify.login5.v3.challenges",
syntax='proto3', syntax="proto3",
serialized_options=b'\n\024com.spotify.login5v3', serialized_options=b"\n\024com.spotify.login5v3",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n\'spotify/login5/v3/challenges/code.proto\x12\x1cspotify.login5.v3.challenges\"\xbc\x01\n\rCodeChallenge\x12\x42\n\x06method\x18\x01 \x01(\x0e\x32\x32.spotify.login5.v3.challenges.CodeChallenge.Method\x12\x13\n\x0b\x63ode_length\x18\x02 \x01(\x05\x12\x12\n\nexpires_in\x18\x03 \x01(\x05\x12\x1e\n\x16\x63\x61nonical_phone_number\x18\x04 \x01(\t\"\x1e\n\x06Method\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03SMS\x10\x01\"\x1c\n\x0c\x43odeSolution\x12\x0c\n\x04\x63ode\x18\x01 \x01(\tB\x16\n\x14\x63om.spotify.login5v3b\x06proto3' b'\n\'spotify/login5/v3/challenges/code.proto\x12\x1cspotify.login5.v3.challenges"\xbc\x01\n\rCodeChallenge\x12\x42\n\x06method\x18\x01 \x01(\x0e\x32\x32.spotify.login5.v3.challenges.CodeChallenge.Method\x12\x13\n\x0b\x63ode_length\x18\x02 \x01(\x05\x12\x12\n\nexpires_in\x18\x03 \x01(\x05\x12\x1e\n\x16\x63\x61nonical_phone_number\x18\x04 \x01(\t"\x1e\n\x06Method\x12\x0b\n\x07UNKNOWN\x10\x00\x12\x07\n\x03SMS\x10\x01"\x1c\n\x0c\x43odeSolution\x12\x0c\n\x04\x63ode\x18\x01 \x01(\tB\x16\n\x14\x63om.spotify.login5v3b\x06proto3',
) )
_CODECHALLENGE_METHOD = _descriptor.EnumDescriptor( _CODECHALLENGE_METHOD = _descriptor.EnumDescriptor(
name='Method', name="Method",
full_name='spotify.login5.v3.challenges.CodeChallenge.Method', full_name="spotify.login5.v3.challenges.CodeChallenge.Method",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
values=[ values=[
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='UNKNOWN', name="UNKNOWN",
index=0, index=0,
number=0, number=0,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.EnumValueDescriptor( _descriptor.EnumValueDescriptor(
name='SMS', name="SMS",
index=1, index=1,
number=1, number=1,
serialized_options=None, serialized_options=None,
type=None, type=None,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
containing_type=None, containing_type=None,
serialized_options=None, serialized_options=None,
@ -50,16 +53,16 @@ _CODECHALLENGE_METHOD = _descriptor.EnumDescriptor(
_sym_db.RegisterEnumDescriptor(_CODECHALLENGE_METHOD) _sym_db.RegisterEnumDescriptor(_CODECHALLENGE_METHOD)
_CODECHALLENGE = _descriptor.Descriptor( _CODECHALLENGE = _descriptor.Descriptor(
name='CodeChallenge', name="CodeChallenge",
full_name='spotify.login5.v3.challenges.CodeChallenge', full_name="spotify.login5.v3.challenges.CodeChallenge",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='method', name="method",
full_name='spotify.login5.v3.challenges.CodeChallenge.method', full_name="spotify.login5.v3.challenges.CodeChallenge.method",
index=0, index=0,
number=1, number=1,
type=14, type=14,
@ -74,10 +77,11 @@ _CODECHALLENGE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='code_length', name="code_length",
full_name='spotify.login5.v3.challenges.CodeChallenge.code_length', full_name="spotify.login5.v3.challenges.CodeChallenge.code_length",
index=1, index=1,
number=2, number=2,
type=5, type=5,
@ -92,10 +96,11 @@ _CODECHALLENGE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='expires_in', name="expires_in",
full_name='spotify.login5.v3.challenges.CodeChallenge.expires_in', full_name="spotify.login5.v3.challenges.CodeChallenge.expires_in",
index=2, index=2,
number=3, number=3,
type=5, type=5,
@ -110,18 +115,19 @@ _CODECHALLENGE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='canonical_phone_number', name="canonical_phone_number",
full_name= full_name=
'spotify.login5.v3.challenges.CodeChallenge.canonical_phone_number', "spotify.login5.v3.challenges.CodeChallenge.canonical_phone_number",
index=3, index=3,
number=4, number=4,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -129,7 +135,8 @@ _CODECHALLENGE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
@ -138,7 +145,7 @@ _CODECHALLENGE = _descriptor.Descriptor(
], ],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=74, serialized_start=74,
@ -146,23 +153,23 @@ _CODECHALLENGE = _descriptor.Descriptor(
) )
_CODESOLUTION = _descriptor.Descriptor( _CODESOLUTION = _descriptor.Descriptor(
name='CodeSolution', name="CodeSolution",
full_name='spotify.login5.v3.challenges.CodeSolution', full_name="spotify.login5.v3.challenges.CodeSolution",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='code', name="code",
full_name='spotify.login5.v3.challenges.CodeSolution.code', full_name="spotify.login5.v3.challenges.CodeSolution.code",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -170,44 +177,47 @@ _CODESOLUTION = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=264, serialized_start=264,
serialized_end=292, serialized_end=292,
) )
_CODECHALLENGE.fields_by_name['method'].enum_type = _CODECHALLENGE_METHOD _CODECHALLENGE.fields_by_name["method"].enum_type = _CODECHALLENGE_METHOD
_CODECHALLENGE_METHOD.containing_type = _CODECHALLENGE _CODECHALLENGE_METHOD.containing_type = _CODECHALLENGE
DESCRIPTOR.message_types_by_name['CodeChallenge'] = _CODECHALLENGE DESCRIPTOR.message_types_by_name["CodeChallenge"] = _CODECHALLENGE
DESCRIPTOR.message_types_by_name['CodeSolution'] = _CODESOLUTION DESCRIPTOR.message_types_by_name["CodeSolution"] = _CODESOLUTION
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
CodeChallenge = _reflection.GeneratedProtocolMessageType( CodeChallenge = _reflection.GeneratedProtocolMessageType(
'CodeChallenge', "CodeChallenge",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _CODECHALLENGE, "DESCRIPTOR": _CODECHALLENGE,
'__module__': 'spotify.login5.v3.challenges.code_pb2' "__module__": "spotify.login5.v3.challenges.code_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.challenges.CodeChallenge) # @@protoc_insertion_point(class_scope:spotify.login5.v3.challenges.CodeChallenge)
}) },
)
_sym_db.RegisterMessage(CodeChallenge) _sym_db.RegisterMessage(CodeChallenge)
CodeSolution = _reflection.GeneratedProtocolMessageType( CodeSolution = _reflection.GeneratedProtocolMessageType(
'CodeSolution', "CodeSolution",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _CODESOLUTION, "DESCRIPTOR": _CODESOLUTION,
'__module__': 'spotify.login5.v3.challenges.code_pb2' "__module__": "spotify.login5.v3.challenges.code_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.challenges.CodeSolution) # @@protoc_insertion_point(class_scope:spotify.login5.v3.challenges.CodeSolution)
}) },
)
_sym_db.RegisterMessage(CodeSolution) _sym_db.RegisterMessage(CodeSolution)
DESCRIPTOR._options = None DESCRIPTOR._options = None

View File

@ -3,38 +3,40 @@
# source: spotify/login5/v3/challenges/hashcash.proto # source: spotify/login5/v3/challenges/hashcash.proto
"""Generated protocol buffer code.""" """Generated protocol buffer code."""
from google.protobuf import descriptor as _descriptor from google.protobuf import descriptor as _descriptor
from google.protobuf import \
duration_pb2 as google_dot_protobuf_dot_duration__pb2
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
from google.protobuf import duration_pb2 as google_dot_protobuf_dot_duration__pb2
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='spotify/login5/v3/challenges/hashcash.proto', name="spotify/login5/v3/challenges/hashcash.proto",
package='spotify.login5.v3.challenges', package="spotify.login5.v3.challenges",
syntax='proto3', syntax="proto3",
serialized_options=b'\n\024com.spotify.login5v3', serialized_options=b"\n\024com.spotify.login5v3",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n+spotify/login5/v3/challenges/hashcash.proto\x12\x1cspotify.login5.v3.challenges\x1a\x1egoogle/protobuf/duration.proto\"3\n\x11HashcashChallenge\x12\x0e\n\x06prefix\x18\x01 \x01(\x0c\x12\x0e\n\x06length\x18\x02 \x01(\x05\"O\n\x10HashcashSolution\x12\x0e\n\x06suffix\x18\x01 \x01(\x0c\x12+\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x16\n\x14\x63om.spotify.login5v3b\x06proto3', b'\n+spotify/login5/v3/challenges/hashcash.proto\x12\x1cspotify.login5.v3.challenges\x1a\x1egoogle/protobuf/duration.proto"3\n\x11HashcashChallenge\x12\x0e\n\x06prefix\x18\x01 \x01(\x0c\x12\x0e\n\x06length\x18\x02 \x01(\x05"O\n\x10HashcashSolution\x12\x0e\n\x06suffix\x18\x01 \x01(\x0c\x12+\n\x08\x64uration\x18\x02 \x01(\x0b\x32\x19.google.protobuf.DurationB\x16\n\x14\x63om.spotify.login5v3b\x06proto3',
dependencies=[ dependencies=[
google_dot_protobuf_dot_duration__pb2.DESCRIPTOR, google_dot_protobuf_dot_duration__pb2.DESCRIPTOR,
]) ],
)
_HASHCASHCHALLENGE = _descriptor.Descriptor( _HASHCASHCHALLENGE = _descriptor.Descriptor(
name='HashcashChallenge', name="HashcashChallenge",
full_name='spotify.login5.v3.challenges.HashcashChallenge', full_name="spotify.login5.v3.challenges.HashcashChallenge",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='prefix', name="prefix",
full_name='spotify.login5.v3.challenges.HashcashChallenge.prefix', full_name="spotify.login5.v3.challenges.HashcashChallenge.prefix",
index=0, index=0,
number=1, number=1,
type=12, type=12,
@ -49,10 +51,11 @@ _HASHCASHCHALLENGE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='length', name="length",
full_name='spotify.login5.v3.challenges.HashcashChallenge.length', full_name="spotify.login5.v3.challenges.HashcashChallenge.length",
index=1, index=1,
number=2, number=2,
type=5, type=5,
@ -67,14 +70,15 @@ _HASHCASHCHALLENGE = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=109, serialized_start=109,
@ -82,16 +86,16 @@ _HASHCASHCHALLENGE = _descriptor.Descriptor(
) )
_HASHCASHSOLUTION = _descriptor.Descriptor( _HASHCASHSOLUTION = _descriptor.Descriptor(
name='HashcashSolution', name="HashcashSolution",
full_name='spotify.login5.v3.challenges.HashcashSolution', full_name="spotify.login5.v3.challenges.HashcashSolution",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='suffix', name="suffix",
full_name='spotify.login5.v3.challenges.HashcashSolution.suffix', full_name="spotify.login5.v3.challenges.HashcashSolution.suffix",
index=0, index=0,
number=1, number=1,
type=12, type=12,
@ -106,10 +110,11 @@ _HASHCASHSOLUTION = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='duration', name="duration",
full_name='spotify.login5.v3.challenges.HashcashSolution.duration', full_name="spotify.login5.v3.challenges.HashcashSolution.duration",
index=1, index=1,
number=2, number=2,
type=11, type=11,
@ -124,14 +129,15 @@ _HASHCASHSOLUTION = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=162, serialized_start=162,
@ -139,29 +145,31 @@ _HASHCASHSOLUTION = _descriptor.Descriptor(
) )
_HASHCASHSOLUTION.fields_by_name[ _HASHCASHSOLUTION.fields_by_name[
'duration'].message_type = google_dot_protobuf_dot_duration__pb2._DURATION "duration"].message_type = google_dot_protobuf_dot_duration__pb2._DURATION
DESCRIPTOR.message_types_by_name['HashcashChallenge'] = _HASHCASHCHALLENGE DESCRIPTOR.message_types_by_name["HashcashChallenge"] = _HASHCASHCHALLENGE
DESCRIPTOR.message_types_by_name['HashcashSolution'] = _HASHCASHSOLUTION DESCRIPTOR.message_types_by_name["HashcashSolution"] = _HASHCASHSOLUTION
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
HashcashChallenge = _reflection.GeneratedProtocolMessageType( HashcashChallenge = _reflection.GeneratedProtocolMessageType(
'HashcashChallenge', "HashcashChallenge",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _HASHCASHCHALLENGE, "DESCRIPTOR": _HASHCASHCHALLENGE,
'__module__': 'spotify.login5.v3.challenges.hashcash_pb2' "__module__": "spotify.login5.v3.challenges.hashcash_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.challenges.HashcashChallenge) # @@protoc_insertion_point(class_scope:spotify.login5.v3.challenges.HashcashChallenge)
}) },
)
_sym_db.RegisterMessage(HashcashChallenge) _sym_db.RegisterMessage(HashcashChallenge)
HashcashSolution = _reflection.GeneratedProtocolMessageType( HashcashSolution = _reflection.GeneratedProtocolMessageType(
'HashcashSolution', "HashcashSolution",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _HASHCASHSOLUTION, "DESCRIPTOR": _HASHCASHSOLUTION,
'__module__': 'spotify.login5.v3.challenges.hashcash_pb2' "__module__": "spotify.login5.v3.challenges.hashcash_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.challenges.HashcashSolution) # @@protoc_insertion_point(class_scope:spotify.login5.v3.challenges.HashcashSolution)
}) },
)
_sym_db.RegisterMessage(HashcashSolution) _sym_db.RegisterMessage(HashcashSolution)
DESCRIPTOR._options = None DESCRIPTOR._options = None

View File

@ -6,38 +6,39 @@ from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='spotify/login5/v3/credentials/credentials.proto', name="spotify/login5/v3/credentials/credentials.proto",
package='spotify.login5.v3.credentials', package="spotify.login5.v3.credentials",
syntax='proto3', syntax="proto3",
serialized_options=b'\n\024com.spotify.login5v3', serialized_options=b"\n\024com.spotify.login5v3",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n/spotify/login5/v3/credentials/credentials.proto\x12\x1dspotify.login5.v3.credentials\"2\n\x10StoredCredential\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c\"9\n\x08Password\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08password\x18\x02 \x01(\t\x12\x0f\n\x07padding\x18\x03 \x01(\x0c\";\n\x13\x46\x61\x63\x65\x62ookAccessToken\x12\x0e\n\x06\x66\x62_uid\x18\x01 \x01(\t\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x02 \x01(\t\"\x1d\n\x0cOneTimeToken\x12\r\n\x05token\x18\x01 \x01(\t\"|\n\x15ParentChildCredential\x12\x10\n\x08\x63hild_id\x18\x01 \x01(\t\x12Q\n\x18parent_stored_credential\x18\x02 \x01(\x0b\x32/.spotify.login5.v3.credentials.StoredCredential\"S\n\x15\x41ppleSignInCredential\x12\x11\n\tauth_code\x18\x01 \x01(\t\x12\x14\n\x0credirect_uri\x18\x02 \x01(\t\x12\x11\n\tbundle_id\x18\x03 \x01(\tB\x16\n\x14\x63om.spotify.login5v3b\x06proto3' b'\n/spotify/login5/v3/credentials/credentials.proto\x12\x1dspotify.login5.v3.credentials"2\n\x10StoredCredential\x12\x10\n\x08username\x18\x01 \x01(\t\x12\x0c\n\x04\x64\x61ta\x18\x02 \x01(\x0c"9\n\x08Password\x12\n\n\x02id\x18\x01 \x01(\t\x12\x10\n\x08password\x18\x02 \x01(\t\x12\x0f\n\x07padding\x18\x03 \x01(\x0c";\n\x13\x46\x61\x63\x65\x62ookAccessToken\x12\x0e\n\x06\x66\x62_uid\x18\x01 \x01(\t\x12\x14\n\x0c\x61\x63\x63\x65ss_token\x18\x02 \x01(\t"\x1d\n\x0cOneTimeToken\x12\r\n\x05token\x18\x01 \x01(\t"|\n\x15ParentChildCredential\x12\x10\n\x08\x63hild_id\x18\x01 \x01(\t\x12Q\n\x18parent_stored_credential\x18\x02 \x01(\x0b\x32/.spotify.login5.v3.credentials.StoredCredential"S\n\x15\x41ppleSignInCredential\x12\x11\n\tauth_code\x18\x01 \x01(\t\x12\x14\n\x0credirect_uri\x18\x02 \x01(\t\x12\x11\n\tbundle_id\x18\x03 \x01(\tB\x16\n\x14\x63om.spotify.login5v3b\x06proto3',
) )
_STOREDCREDENTIAL = _descriptor.Descriptor( _STOREDCREDENTIAL = _descriptor.Descriptor(
name='StoredCredential', name="StoredCredential",
full_name='spotify.login5.v3.credentials.StoredCredential', full_name="spotify.login5.v3.credentials.StoredCredential",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='username', name="username",
full_name='spotify.login5.v3.credentials.StoredCredential.username', full_name="spotify.login5.v3.credentials.StoredCredential.username",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -45,10 +46,11 @@ _STOREDCREDENTIAL = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='data', name="data",
full_name='spotify.login5.v3.credentials.StoredCredential.data', full_name="spotify.login5.v3.credentials.StoredCredential.data",
index=1, index=1,
number=2, number=2,
type=12, type=12,
@ -63,14 +65,15 @@ _STOREDCREDENTIAL = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=82, serialized_start=82,
@ -78,23 +81,23 @@ _STOREDCREDENTIAL = _descriptor.Descriptor(
) )
_PASSWORD = _descriptor.Descriptor( _PASSWORD = _descriptor.Descriptor(
name='Password', name="Password",
full_name='spotify.login5.v3.credentials.Password', full_name="spotify.login5.v3.credentials.Password",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='id', name="id",
full_name='spotify.login5.v3.credentials.Password.id', full_name="spotify.login5.v3.credentials.Password.id",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -102,17 +105,18 @@ _PASSWORD = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='password', name="password",
full_name='spotify.login5.v3.credentials.Password.password', full_name="spotify.login5.v3.credentials.Password.password",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -120,10 +124,11 @@ _PASSWORD = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='padding', name="padding",
full_name='spotify.login5.v3.credentials.Password.padding', full_name="spotify.login5.v3.credentials.Password.padding",
index=2, index=2,
number=3, number=3,
type=12, type=12,
@ -138,14 +143,15 @@ _PASSWORD = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=134, serialized_start=134,
@ -153,24 +159,24 @@ _PASSWORD = _descriptor.Descriptor(
) )
_FACEBOOKACCESSTOKEN = _descriptor.Descriptor( _FACEBOOKACCESSTOKEN = _descriptor.Descriptor(
name='FacebookAccessToken', name="FacebookAccessToken",
full_name='spotify.login5.v3.credentials.FacebookAccessToken', full_name="spotify.login5.v3.credentials.FacebookAccessToken",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='fb_uid', name="fb_uid",
full_name= full_name=
'spotify.login5.v3.credentials.FacebookAccessToken.fb_uid', "spotify.login5.v3.credentials.FacebookAccessToken.fb_uid",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -178,18 +184,19 @@ _FACEBOOKACCESSTOKEN = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='access_token', name="access_token",
full_name= full_name=
'spotify.login5.v3.credentials.FacebookAccessToken.access_token', "spotify.login5.v3.credentials.FacebookAccessToken.access_token",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -197,14 +204,15 @@ _FACEBOOKACCESSTOKEN = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=193, serialized_start=193,
@ -212,23 +220,23 @@ _FACEBOOKACCESSTOKEN = _descriptor.Descriptor(
) )
_ONETIMETOKEN = _descriptor.Descriptor( _ONETIMETOKEN = _descriptor.Descriptor(
name='OneTimeToken', name="OneTimeToken",
full_name='spotify.login5.v3.credentials.OneTimeToken', full_name="spotify.login5.v3.credentials.OneTimeToken",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='token', name="token",
full_name='spotify.login5.v3.credentials.OneTimeToken.token', full_name="spotify.login5.v3.credentials.OneTimeToken.token",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -236,14 +244,15 @@ _ONETIMETOKEN = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=254, serialized_start=254,
@ -251,24 +260,24 @@ _ONETIMETOKEN = _descriptor.Descriptor(
) )
_PARENTCHILDCREDENTIAL = _descriptor.Descriptor( _PARENTCHILDCREDENTIAL = _descriptor.Descriptor(
name='ParentChildCredential', name="ParentChildCredential",
full_name='spotify.login5.v3.credentials.ParentChildCredential', full_name="spotify.login5.v3.credentials.ParentChildCredential",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='child_id', name="child_id",
full_name= full_name=
'spotify.login5.v3.credentials.ParentChildCredential.child_id', "spotify.login5.v3.credentials.ParentChildCredential.child_id",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -276,11 +285,12 @@ _PARENTCHILDCREDENTIAL = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='parent_stored_credential', name="parent_stored_credential",
full_name= full_name=
'spotify.login5.v3.credentials.ParentChildCredential.parent_stored_credential', "spotify.login5.v3.credentials.ParentChildCredential.parent_stored_credential",
index=1, index=1,
number=2, number=2,
type=11, type=11,
@ -295,14 +305,15 @@ _PARENTCHILDCREDENTIAL = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=285, serialized_start=285,
@ -310,24 +321,24 @@ _PARENTCHILDCREDENTIAL = _descriptor.Descriptor(
) )
_APPLESIGNINCREDENTIAL = _descriptor.Descriptor( _APPLESIGNINCREDENTIAL = _descriptor.Descriptor(
name='AppleSignInCredential', name="AppleSignInCredential",
full_name='spotify.login5.v3.credentials.AppleSignInCredential', full_name="spotify.login5.v3.credentials.AppleSignInCredential",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='auth_code', name="auth_code",
full_name= full_name=
'spotify.login5.v3.credentials.AppleSignInCredential.auth_code', "spotify.login5.v3.credentials.AppleSignInCredential.auth_code",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -335,18 +346,19 @@ _APPLESIGNINCREDENTIAL = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='redirect_uri', name="redirect_uri",
full_name= full_name=
'spotify.login5.v3.credentials.AppleSignInCredential.redirect_uri', "spotify.login5.v3.credentials.AppleSignInCredential.redirect_uri",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -354,18 +366,19 @@ _APPLESIGNINCREDENTIAL = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='bundle_id', name="bundle_id",
full_name= full_name=
'spotify.login5.v3.credentials.AppleSignInCredential.bundle_id', "spotify.login5.v3.credentials.AppleSignInCredential.bundle_id",
index=2, index=2,
number=3, number=3,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -373,14 +386,15 @@ _APPLESIGNINCREDENTIAL = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=411, serialized_start=411,
@ -388,75 +402,81 @@ _APPLESIGNINCREDENTIAL = _descriptor.Descriptor(
) )
_PARENTCHILDCREDENTIAL.fields_by_name[ _PARENTCHILDCREDENTIAL.fields_by_name[
'parent_stored_credential'].message_type = _STOREDCREDENTIAL "parent_stored_credential"].message_type = _STOREDCREDENTIAL
DESCRIPTOR.message_types_by_name['StoredCredential'] = _STOREDCREDENTIAL DESCRIPTOR.message_types_by_name["StoredCredential"] = _STOREDCREDENTIAL
DESCRIPTOR.message_types_by_name['Password'] = _PASSWORD DESCRIPTOR.message_types_by_name["Password"] = _PASSWORD
DESCRIPTOR.message_types_by_name['FacebookAccessToken'] = _FACEBOOKACCESSTOKEN DESCRIPTOR.message_types_by_name["FacebookAccessToken"] = _FACEBOOKACCESSTOKEN
DESCRIPTOR.message_types_by_name['OneTimeToken'] = _ONETIMETOKEN DESCRIPTOR.message_types_by_name["OneTimeToken"] = _ONETIMETOKEN
DESCRIPTOR.message_types_by_name[ DESCRIPTOR.message_types_by_name[
'ParentChildCredential'] = _PARENTCHILDCREDENTIAL "ParentChildCredential"] = _PARENTCHILDCREDENTIAL
DESCRIPTOR.message_types_by_name[ DESCRIPTOR.message_types_by_name[
'AppleSignInCredential'] = _APPLESIGNINCREDENTIAL "AppleSignInCredential"] = _APPLESIGNINCREDENTIAL
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
StoredCredential = _reflection.GeneratedProtocolMessageType( StoredCredential = _reflection.GeneratedProtocolMessageType(
'StoredCredential', "StoredCredential",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _STOREDCREDENTIAL, "DESCRIPTOR": _STOREDCREDENTIAL,
'__module__': 'spotify.login5.v3.credentials.credentials_pb2' "__module__": "spotify.login5.v3.credentials.credentials_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.credentials.StoredCredential) # @@protoc_insertion_point(class_scope:spotify.login5.v3.credentials.StoredCredential)
}) },
)
_sym_db.RegisterMessage(StoredCredential) _sym_db.RegisterMessage(StoredCredential)
Password = _reflection.GeneratedProtocolMessageType( Password = _reflection.GeneratedProtocolMessageType(
'Password', "Password",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _PASSWORD, "DESCRIPTOR": _PASSWORD,
'__module__': 'spotify.login5.v3.credentials.credentials_pb2' "__module__": "spotify.login5.v3.credentials.credentials_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.credentials.Password) # @@protoc_insertion_point(class_scope:spotify.login5.v3.credentials.Password)
}) },
)
_sym_db.RegisterMessage(Password) _sym_db.RegisterMessage(Password)
FacebookAccessToken = _reflection.GeneratedProtocolMessageType( FacebookAccessToken = _reflection.GeneratedProtocolMessageType(
'FacebookAccessToken', "FacebookAccessToken",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _FACEBOOKACCESSTOKEN, "DESCRIPTOR": _FACEBOOKACCESSTOKEN,
'__module__': 'spotify.login5.v3.credentials.credentials_pb2' "__module__": "spotify.login5.v3.credentials.credentials_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.credentials.FacebookAccessToken) # @@protoc_insertion_point(class_scope:spotify.login5.v3.credentials.FacebookAccessToken)
}) },
)
_sym_db.RegisterMessage(FacebookAccessToken) _sym_db.RegisterMessage(FacebookAccessToken)
OneTimeToken = _reflection.GeneratedProtocolMessageType( OneTimeToken = _reflection.GeneratedProtocolMessageType(
'OneTimeToken', "OneTimeToken",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _ONETIMETOKEN, "DESCRIPTOR": _ONETIMETOKEN,
'__module__': 'spotify.login5.v3.credentials.credentials_pb2' "__module__": "spotify.login5.v3.credentials.credentials_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.credentials.OneTimeToken) # @@protoc_insertion_point(class_scope:spotify.login5.v3.credentials.OneTimeToken)
}) },
)
_sym_db.RegisterMessage(OneTimeToken) _sym_db.RegisterMessage(OneTimeToken)
ParentChildCredential = _reflection.GeneratedProtocolMessageType( ParentChildCredential = _reflection.GeneratedProtocolMessageType(
'ParentChildCredential', "ParentChildCredential",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _PARENTCHILDCREDENTIAL, "DESCRIPTOR": _PARENTCHILDCREDENTIAL,
'__module__': 'spotify.login5.v3.credentials.credentials_pb2' "__module__": "spotify.login5.v3.credentials.credentials_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.credentials.ParentChildCredential) # @@protoc_insertion_point(class_scope:spotify.login5.v3.credentials.ParentChildCredential)
}) },
)
_sym_db.RegisterMessage(ParentChildCredential) _sym_db.RegisterMessage(ParentChildCredential)
AppleSignInCredential = _reflection.GeneratedProtocolMessageType( AppleSignInCredential = _reflection.GeneratedProtocolMessageType(
'AppleSignInCredential', "AppleSignInCredential",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _APPLESIGNINCREDENTIAL, "DESCRIPTOR": _APPLESIGNINCREDENTIAL,
'__module__': 'spotify.login5.v3.credentials.credentials_pb2' "__module__": "spotify.login5.v3.credentials.credentials_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.credentials.AppleSignInCredential) # @@protoc_insertion_point(class_scope:spotify.login5.v3.credentials.AppleSignInCredential)
}) },
)
_sym_db.RegisterMessage(AppleSignInCredential) _sym_db.RegisterMessage(AppleSignInCredential)
DESCRIPTOR._options = None DESCRIPTOR._options = None

View File

@ -6,38 +6,39 @@ from google.protobuf import descriptor as _descriptor
from google.protobuf import message as _message from google.protobuf import message as _message
from google.protobuf import reflection as _reflection from google.protobuf import reflection as _reflection
from google.protobuf import symbol_database as _symbol_database from google.protobuf import symbol_database as _symbol_database
# @@protoc_insertion_point(imports) # @@protoc_insertion_point(imports)
_sym_db = _symbol_database.Default() _sym_db = _symbol_database.Default()
DESCRIPTOR = _descriptor.FileDescriptor( DESCRIPTOR = _descriptor.FileDescriptor(
name='spotify/login5/v3/identifiers/identifiers.proto', name="spotify/login5/v3/identifiers/identifiers.proto",
package='spotify.login5.v3.identifiers', package="spotify.login5.v3.identifiers",
syntax='proto3', syntax="proto3",
serialized_options=b'\n\024com.spotify.login5v3', serialized_options=b"\n\024com.spotify.login5v3",
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
serialized_pb= serialized_pb=
b'\n/spotify/login5/v3/identifiers/identifiers.proto\x12\x1dspotify.login5.v3.identifiers\"U\n\x0bPhoneNumber\x12\x0e\n\x06number\x18\x01 \x01(\t\x12\x18\n\x10iso_country_code\x18\x02 \x01(\t\x12\x1c\n\x14\x63ountry_calling_code\x18\x03 \x01(\tB\x16\n\x14\x63om.spotify.login5v3b\x06proto3' b'\n/spotify/login5/v3/identifiers/identifiers.proto\x12\x1dspotify.login5.v3.identifiers"U\n\x0bPhoneNumber\x12\x0e\n\x06number\x18\x01 \x01(\t\x12\x18\n\x10iso_country_code\x18\x02 \x01(\t\x12\x1c\n\x14\x63ountry_calling_code\x18\x03 \x01(\tB\x16\n\x14\x63om.spotify.login5v3b\x06proto3',
) )
_PHONENUMBER = _descriptor.Descriptor( _PHONENUMBER = _descriptor.Descriptor(
name='PhoneNumber', name="PhoneNumber",
full_name='spotify.login5.v3.identifiers.PhoneNumber', full_name="spotify.login5.v3.identifiers.PhoneNumber",
filename=None, filename=None,
file=DESCRIPTOR, file=DESCRIPTOR,
containing_type=None, containing_type=None,
create_key=_descriptor._internal_create_key, create_key=_descriptor._internal_create_key,
fields=[ fields=[
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='number', name="number",
full_name='spotify.login5.v3.identifiers.PhoneNumber.number', full_name="spotify.login5.v3.identifiers.PhoneNumber.number",
index=0, index=0,
number=1, number=1,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -45,18 +46,19 @@ _PHONENUMBER = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='iso_country_code', name="iso_country_code",
full_name= full_name=
'spotify.login5.v3.identifiers.PhoneNumber.iso_country_code', "spotify.login5.v3.identifiers.PhoneNumber.iso_country_code",
index=1, index=1,
number=2, number=2,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -64,18 +66,19 @@ _PHONENUMBER = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
_descriptor.FieldDescriptor( _descriptor.FieldDescriptor(
name='country_calling_code', name="country_calling_code",
full_name= full_name=
'spotify.login5.v3.identifiers.PhoneNumber.country_calling_code', "spotify.login5.v3.identifiers.PhoneNumber.country_calling_code",
index=2, index=2,
number=3, number=3,
type=9, type=9,
cpp_type=9, cpp_type=9,
label=1, label=1,
has_default_value=False, has_default_value=False,
default_value=b"".decode('utf-8'), default_value=b"".decode("utf-8"),
message_type=None, message_type=None,
enum_type=None, enum_type=None,
containing_type=None, containing_type=None,
@ -83,31 +86,33 @@ _PHONENUMBER = _descriptor.Descriptor(
extension_scope=None, extension_scope=None,
serialized_options=None, serialized_options=None,
file=DESCRIPTOR, file=DESCRIPTOR,
create_key=_descriptor._internal_create_key), create_key=_descriptor._internal_create_key,
),
], ],
extensions=[], extensions=[],
nested_types=[], nested_types=[],
enum_types=[], enum_types=[],
serialized_options=None, serialized_options=None,
is_extendable=False, is_extendable=False,
syntax='proto3', syntax="proto3",
extension_ranges=[], extension_ranges=[],
oneofs=[], oneofs=[],
serialized_start=82, serialized_start=82,
serialized_end=167, serialized_end=167,
) )
DESCRIPTOR.message_types_by_name['PhoneNumber'] = _PHONENUMBER DESCRIPTOR.message_types_by_name["PhoneNumber"] = _PHONENUMBER
_sym_db.RegisterFileDescriptor(DESCRIPTOR) _sym_db.RegisterFileDescriptor(DESCRIPTOR)
PhoneNumber = _reflection.GeneratedProtocolMessageType( PhoneNumber = _reflection.GeneratedProtocolMessageType(
'PhoneNumber', "PhoneNumber",
(_message.Message, ), (_message.Message, ),
{ {
'DESCRIPTOR': _PHONENUMBER, "DESCRIPTOR": _PHONENUMBER,
'__module__': 'spotify.login5.v3.identifiers.identifiers_pb2' "__module__": "spotify.login5.v3.identifiers.identifiers_pb2"
# @@protoc_insertion_point(class_scope:spotify.login5.v3.identifiers.PhoneNumber) # @@protoc_insertion_point(class_scope:spotify.login5.v3.identifiers.PhoneNumber)
}) },
)
_sym_db.RegisterMessage(PhoneNumber) _sym_db.RegisterMessage(PhoneNumber)
DESCRIPTOR._options = None DESCRIPTOR._options = None

View File

@ -45,7 +45,7 @@ class Packet:
def __set_flag(self, flag: int, on: bool): def __set_flag(self, flag: int, on: bool):
if on: if on:
self.__flags |= (1 << flag) self.__flags |= 1 << flag
else: else:
self.__flags &= ~(1 << flag) self.__flags &= ~(1 << flag)

View File

@ -3,13 +3,13 @@ from librespot.zeroconf import Packet
class Record: class Record:
TYPE_A: int = 0x01 TYPE_A: int = 0x01
TYPE_PTR: int = 0x0c TYPE_PTR: int = 0x0C
TYPE_CNAME: int = 0x05 TYPE_CNAME: int = 0x05
TYPE_TXT: int = 0x10 TYPE_TXT: int = 0x10
TYPE_AAAA: int = 0x1c TYPE_AAAA: int = 0x1C
TYPE_SRV: int = 0x21 TYPE_SRV: int = 0x21
TYPE_NSEC: int = 0x2f TYPE_NSEC: int = 0x2F
TYPE_ANY: int = 0xff TYPE_ANY: int = 0xFF
__type: int __type: int
_ttl: int _ttl: int
__name: str __name: str

View File

@ -1,4 +1,5 @@
from __future__ import annotations from __future__ import annotations
from librespot.zeroconf import Packet from librespot.zeroconf import Packet
@ -15,7 +16,7 @@ class Service:
self.__alias = alias self.__alias = alias
for s in alias: for s in alias:
c = ord(s) c = ord(s)
if c < 0x20 or c == 0x7f: if c < 0x20 or c == 0x7F:
raise TypeError() raise TypeError()
self.__service = service self.__service = service
@ -27,7 +28,7 @@ class Service:
ns = "" ns = ""
for s in text: for s in text:
c = ord(s) c = ord(s)
if c == 0x2e or c == 0x5c: if c == 0x2E or c == 0x5C:
ns += "\\" ns += "\\"
ns += s ns += s
return ns return ns

View File

@ -1,9 +1,11 @@
from __future__ import annotations from __future__ import annotations
from librespot.standard import Closeable
import base64 import base64
import random import random
import socket import socket
from librespot.standard import Closeable
class Zeroconf(Closeable): class Zeroconf(Closeable):
__DISCOVERY = "_services._dns-sd._udp.local" __DISCOVERY = "_services._dns-sd._udp.local"
@ -31,9 +33,9 @@ class Zeroconf(Closeable):
def get_or_create_local_host_name() -> str: def get_or_create_local_host_name() -> str:
host = socket.gethostname() host = socket.gethostname()
if host == "localhost": if host == "localhost":
host = base64.b64encode( host = (base64.b64encode(
random.randint(-9223372036854775808, random.randint(-9223372036854775808,
9223372036854775807)).decode() + ".local" 9223372036854775807)).decode() + ".local")
return host return host
def set_use_ipv4(self, ipv4: bool) -> Zeroconf: def set_use_ipv4(self, ipv4: bool) -> Zeroconf: