Merge remote-tracking branch 'origin/main'
This commit is contained in:
commit
319bde1639
66
README.md
66
README.md
|
@ -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
|
||||||
|
|
|
@ -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.
|
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
# API Reference
|
# API Reference
|
||||||
|
|
||||||
Coming soon :)
|
Coming soon :)
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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.
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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),
|
||||||
|
)
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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))
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
from __future__ import annotations
|
from __future__ import annotations
|
||||||
|
|
||||||
import typing
|
import typing
|
||||||
|
|
||||||
if typing.TYPE_CHECKING:
|
if typing.TYPE_CHECKING:
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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(
|
||||||
|
|
|
@ -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):
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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():
|
||||||
|
|
|
@ -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,
|
||||||
|
)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -1 +1,2 @@
|
||||||
from librespot.player.codecs.VorbisOnlyAudioQuality import VorbisOnlyAudioQuality
|
from librespot.player.codecs.VorbisOnlyAudioQuality import \
|
||||||
|
VorbisOnlyAudioQuality
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
|
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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:
|
||||||
|
|
Loading…
Reference in New Issue