| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
| |
* Adds support for additionalAudioUrl for station.getPlaylist
* Fixes broken tests
* Reworks use of iterables for additional audio urls and adds associated tests
* Moves parsing additional url response into a syntethic field
* Adds tests for additional urls field
|
| |
|
| |
|
| |
|
|
|
|
| |
related: #57
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
Stations contain feedback and seeds that can be manipulated later
through the API. Construct these model classes when building a Station
object.
|
| |
|
|
|
|
|
| |
The SyntheticField already has an instance of itself when the formatter
runs so no longer passes attributes from the value into the field.
|
|
|
|
|
|
|
| |
These used to be done with formatters but that was somewhat an abuse of
the formatter model in the first place. This changeset adds a model
attribute that will cause the underlying model builder to dynamically
construct a model or list of models depending on the incoming data type.
|
|
|
|
|
|
| |
This is an internal implementation detail that exists purely for python2
backwards compatibility. Put it with all the other python 2
compatibility stuff.
|
|
|
|
|
| |
The complex models don't make sense without a data sample and I always
end up looking at the tests. Instead add some docs and a data sample.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
This generalizes the audio URL extraction logic into a synthesized field
that can be extracted from the PlaylistModel class. It also removes a
few transmogrifiers that are no longer needed in the general case.
Technically this breaks a publicly exposed API within playlists models
but it was always considered an implementation detail so nobody should
be relying on it.
|
|
|
|
|
|
| |
This doesn't make any sense. If the dict list key isn't defined it falls
through to the loop which would iterate the keys of a dict and not the
dicts in a list which will likely fail anyhow.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Importing from the base of a module is deprecated and will be removed in
a future major version. Nothing internally should be doing this.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Also adds -v argument to the pydora player to enable debug logging. May
add more logging later as it becomes useful.
|
| |
|
|
|
|
|
|
| |
This makes the previously stateless Screen class stateful because it now
needs to construct and hold a reference to the platform specific echo
driver.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
PyCrypto is no longer supported nor recommended. Cryptography is the
replacement package which is actively maintained by the Python core
committers. Also Cryptography is bundled as binary wheels for all the
platforms we support which removes the install-tiem compiler
requirement, making it easier to distribute Pydora. This commit replaces
all usages of PyCrypto with Cryptography but is completely API
compatible with the previous version.
|
|
|
|
|
|
|
|
|
|
| |
termios is POSIX specific which doesn't work for Windows users using the
CLI. Check for the presence of termios and disable the set_echo function
if it's not present.
The only reason echo is disabled during polling is to prevent control
characters entered by a user from displaying in the playlist so
it's more cosmetic than anything.
|
| |
|