Skip to main content

PlayOn 设施,主要访问下载 API。包括一个不错的命令行工具。

项目描述

PlayOn 设施,主要访问下载 API。包括一个不错的命令行工具。

最新版本 20220311:刷新 PlayOn 状态的错误修正标准。

功能main(argv=None)

Playon 命令行模式;请参阅PlayOnCommand下面的课程。

班级PlayOnAPI(cs.resources.MultiOpenMixin, cs.context.ContextManagerMixin)

访问 PlayOn API。

方法PlayOnAPI.__getitem__(self, download_id: int):返回与录音TagSet关联的录音download_id

方法PlayOnAPI.account(self, *a, **kw):返回账户信息。

属性PlayOnAPI.auth_token:从登录状态获得的身份验证令牌。

方法PlayOnAPI.cdsurl_data(self, suburl, _method='GET', headers=None, **kw):用作基本 URL 的包装器suburl_dataCDS_BASE

方法PlayOnAPI.download(self, *a, **kw)download_id:用to下载文件filename_basis。返回TagSet录音。

默认值filename是下载文件名的基本名称。如果文件名带有一个尾随点 ( '.'),则文件扩展名将取自下载 URL 的文件名。

方法PlayOnAPI.from_playon_date(date_s):PlayOn API 似乎使用 UTC 日期字符串。

属性PlayOnAPI.jwt:JWT 令牌。

属性PlayOnAPI.login_state:登录状态,a dict。必要时执行登录。

方法PlayOnAPI.queue(self, *a, **kw):返回TagSet排队录音的实例。

方法PlayOnAPI.recordings(self, *a, **kw):返回TagSet可用记录的实例。

方法PlayOnAPI.service(self, service_id):返回服务SQLTags实例service_id

方法PlayOnAPI.services(self, *a, **kw):获取服务列表。

方法PlayOnAPI.startup_shutdown(self): 启动:打开并初始化SQLTags,打开FSTags.

方法PlayOnAPI.suburl_data(self, suburl, _base_url=None, _method='GET', headers=None, raw=False, **kw):成功时调用suburl并返回'data'组件。

参数:

  • suburl:指定端点的 API 子 URL。
  • _method: 可选的 HTTP 方法,默认'GET'.
  • headers: 读者陪同请求;默认{'Authorization':self.jwt}. 其他关键字参数被传递给requests用于执行 HTTP 调用的方法。

方法PlayOnAPI.suburl_request(base_url, method, suburl):返回一个 curriedrequests方法来获取API_BASE/suburl

班级PlayOnCommand(cs.cmdutils.BaseCommand)

Playon 命令行实现。

命令行用法:

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: {playon.Series}--{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.
    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}
    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.

方法PlayOnCommand.cmd_account(self, argv):用法:{cmd} 报告帐户状态。

方法PlayOnCommand.cmd_dl(self, argv):用法:{cmd} [-j jobs] [-n] [recordings...] 下载指定的录音,默认“pending”。-j jobs 并行运行这么多下载。默认值为 {DEFAULT_DL_PARALLELISM}。-n 不下载。列出指定的录音。

方法PlayOnCommand.cmd_ls(self, argv):用法:{cmd} [-l] [recordings...] 列出可用下载。-l 长列表:在每个条目下方列出标签。-o format 每个条目的格式字符串。默认格式:{LS_FORMAT}

方法PlayOnCommand.cmd_q(self, argv):用法:{cmd} [-l] [recordings...] 列出排队的录音。-l 长列表:在每个条目下方列出标签。-o format 每个条目的格式字符串。默认格式:{QUEUE_FORMAT}

方法PlayOnCommand.cmd_queue(self, argv):用法:{cmd} [-l] [recordings...] 列出排队的录音。-l 长列表:在每个条目下方列出标签。-o format 每个条目的格式字符串。默认格式:{QUEUE_FORMAT}

方法PlayOnCommand.cmd_refresh(self, argv):用法:{cmd} [queue] [recordings] 从 PlayOn 服务更新数据库状态。

方法PlayOnCommand.cmd_service(self, argv, locale='en_US'):用法:{cmd} [service_id] 列出服务。

方法PlayOnCommand.run_context(self):准备PlayOnAPI每个命令调用。

班级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)

SQLTags具有 PlayOn 相关方法的子类。

方法PlayOnSQLTags.__iter__(self):产量记录TagSet,那些命名的"recording.*"

请注意,这包括记录和排队的项目。

方法PlayOnSQLTags.infer_db_url(envvar=None, default_path=None):推断数据库 URL。

参数:

  • envvar: 用于指定默认值的环境变量,默认值来自DBURL_ENVVAR( PLAYON_TAGS_DBURL)。

方法PlayOnSQLTags.recording_ids_from_str(self, *a, **kw):将字符串转换为记录 ID 列表。

方法PlayOnSQLTags.recordings(self):产量记录TagSet,那些命名的"recording.*"

请注意,这包括记录和排队的项目。

班级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)

SQLTagSet具有有关 PlayOn 录音的知识。

方法Recording.is_available(self):有录音可供下载吗?

方法Recording.is_downloaded(self):根据是否存在download_path Tag.

方法Recording.is_expired(self):测试这个录音是否过期,这意味着它不再可供下载。

方法Recording.is_pending(self):待下载:可用且尚未下载。

方法Recording.is_queued(self): 录音还在队列中吗?

方法Recording.is_stale(self, max_age=None):测试此条目是否过时,即自self.last_updated超过max_age秒的时间(默认从self.STALE_AGE)。请注意,过期的录音永远不会过时,因为无法再从 API 中查询它们。

方法Recording.ls(self, ls_format=None, long_mode=False, print_func=None):列出录音。

方法Recording.nice_name(self):录音的好名字:PlayOn 系列和名称,省略系列 if None

方法Recording.recording_id(self):录音 id 或None.

方法Recording.resolution(self)Recording.RECORDING_QUALITY:通过映射从质量得出的记录分辨率。

方法Recording.status(self):返回一个简短的状态字符串。

发布日志

发布 20220311:刷新 PlayOn 状态的错误修正标准。

版本 20211212:初始版本。

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

cs.app.playon-20220311.tar.gz (14.9 kB 查看哈希

已上传 source