PlayOn facilities, primarily access to the download API. Includes a nice command line tool.
Project description
PlayOn facilities, primarily access to the download API. Includes a nice command line tool.
Latest release 20230217:
- Move some core stuff off into cs.service_api.HTTPServiceAPI.
- Move core Recording.is_stale() method to TagSet.is_stale(), leave override method behind.
- Persist login tokens in a db for reuse while still fresh.
- "playon dl": allow interrupting downloads.
- Cleaner handling of playon.Name having a leading SNNeNN prefix.
Function main(argv=None)
Playon command line mode;
see the PlayOnCommand
class below.
Class PlayOnAPI(cs.service_api.HTTPServiceAPI, cs.service_api.ServiceAPI, cs.resources.MultiOpenMixin, cs.context.ContextManagerMixin)
Access to the PlayOn API.
Class PlayOnCommand(cs.cmdutils.BaseCommand)
Playon command line implementation.
Command line usage:
Usage: playon subcommand [args...]
Environment:
PLAYON_USER PlayOn login name, default from $EMAIL.
PLAYON_PASSWORD PlayOn password.
This is obtained from .netrc if omitted.
PLAYON_FILENAME_FORMAT Format string for downloaded filenames.
Default: {series_prefix}{playon.Name}--{resolution}--{playon.ProviderID}--playon--{playon.ID}
PLAYON_TAGS_DBURL Location of state tags database.
Default: ~/var/playon.sqlite
Recording specification:
an int The specific recording id.
all All known recordings.
downloaded Recordings already downloaded.
expired Recording which are no longer available.
pending Recordings not already downloaded.
/regexp Recordings whose Series or Name match the regexp,
case insensitive.
Subcommands:
account
Report account state.
api suburl
GET suburl via the API, print result.
cds suburl
GET suburl via the content delivery API, print result.
Example subpaths:
content
content/provider-name
dl [-j jobs] [-n] [recordings...]
Download the specified recordings, default "pending".
-j jobs Run this many downloads in parallel.
The default is 2.
-n No download. List the specified recordings.
help [-l] [subcommand-names...]
Print the full help for the named subcommands,
or for all subcommands if no names are specified.
-l Long help even if no subcommand-names provided.
ls [-l] [recordings...]
List available downloads.
-l Long listing: list tags below each entry.
-o format Format string for each entry.
Default format: {playon.ID} {playon.HumanSize} {resolution} {playon.Series} {playon.Name} {playon.ProviderID} {status:upper}
poll ...
q [-l] [recordings...]
List queued recordings.
-l Long listing: list tags below each entry.
-o format Format string for each entry.
Default format: {playon.ID} {playon.Series} {playon.Name} {playon.ProviderID}
queue [-l] [recordings...]
List queued recordings.
-l Long listing: list tags below each entry.
-o format Format string for each entry.
Default format: {playon.ID} {playon.Series} {playon.Name} {playon.ProviderID}
refresh [queue] [recordings]
Update the db state from the PlayOn service.
service [service_id]
List services.
Class PlayOnSQLTags(cs.sqltags.SQLTags, cs.tagset.BaseTagSets, cs.resources.MultiOpenMixin, cs.context.ContextManagerMixin, collections.abc.MutableMapping, collections.abc.Mapping, collections.abc.Collection, collections.abc.Sized, collections.abc.Iterable, collections.abc.Container, cs.deco.Promotable)
SQLTags
subclass with PlayOn related methods.
Class Recording(cs.sqltags.SQLTagSet, cs.obj.SingletonMixin, cs.tagset.TagSet, builtins.dict, cs.dateutils.UNIXTimeMixin, cs.lex.FormatableMixin, cs.lex.FormatableFormatter, string.Formatter, cs.mappings.AttrableMappingMixin)
An SQLTagSet
with knowledge about PlayOn recordings.
Release Log
Release 20230217:
- Move some core stuff off into cs.service_api.HTTPServiceAPI.
- Move core Recording.is_stale() method to TagSet.is_stale(), leave override method behind.
- Persist login tokens in a db for reuse while still fresh.
- "playon dl": allow interrupting downloads.
- Cleaner handling of playon.Name having a leading SNNeNN prefix.
Release 20221228:
- PlayOnAPI.suburl_data: progress reporting, raise on bad response, upgrade JSON error warning.
- PlayOnAPI: use a common cookie jar across API calls.
- PlayOnCommand: new "api" and "cds" API access subcommands.
- PlayOnCommand._refresh_sqltags_data: bugfix "expired cache" logic.
- PlayOnCommand: new "poll" subcommand reporting the API notifications response.
Release 20220311: Bugfix criteria for refreshing the PlayOn state.
Release 20211212: Initial release.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cs.app.playon-20230217.tar.gz
(15.0 kB
view hashes)
Built Distribution
Close
Hashes for cs.app.playon-20230217-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 338cd0dfd7dff85a312165af819cce5a127b7764ea298c8a898b26ea300d9727 |
|
MD5 | 17b074d55c265b240895c187f697d0da |
|
BLAKE2b-256 | ba8517c232597268cb9e1ad78870d4c81f30d09b9eff26e87356753f4a5c807d |