跳转到主要内容

Radio Browser API的异步Python客户端

项目描述

Python: Radio Browser API客户端

GitHub Release Python Versions Project Stage Project Maintenance License

Build Status Code Coverage Quality Gate Status Open in Dev Containers

Sponsor Frenck via GitHub Sponsors

Support Frenck on Patreon

Radio Browser API的异步Python客户端。

关于

Radio Browser 社区驱动项目(类似于维基百科),旨在收集尽可能多的互联网广播和电视频道。

这个Python库是为该API开发的异步API客户端,最初是为与Home Assistant项目一起使用而开发的。

安装

pip install radios

使用

# pylint: disable=W0621
"""Asynchronous Python client for the Radio Browser API."""

import asyncio

from radios import FilterBy, Order, RadioBrowser


async def main() -> None:
    """Show example on how to query the Radio Browser API."""
    async with RadioBrowser(user_agent="MyAwesomeApp/1.0.0") as radios:
        # Print top 10 stations
        stations = await radios.stations(
            limit=10, order=Order.CLICK_COUNT, reverse=True
        )
        for station in stations:
            print(f"{station.name} ({station.click_count})")

        # Get a specific station
        print(await radios.station(uuid="9608b51d-0601-11e8-ae97-52543be04c81"))

        # Print top 10 stations in a country
        stations = await radios.stations(
            limit=10,
            order=Order.CLICK_COUNT,
            reverse=True,
            filter_by=FilterBy.COUNTRY_CODE_EXACT,
            filter_term="NL",
        )
        for station in stations:
            print(f"{station.name} ({station.click_count})")

        # Register a station "click"
        await radios.station_click(uuid="9608b51d-0601-11e8-ae97-52543be04c81")

        # Tags, countries and codes.
        print(await radios.tags(limit=10, order=Order.STATION_COUNT, reverse=True))
        print(await radios.countries(limit=10, order=Order.NAME))
        print(await radios.languages(limit=10, order=Order.NAME))


if __name__ == "__main__":
    asyncio.run(main())

变更日志 & 发布

此仓库使用GitHub的发布功能保留变更日志。

发布基于语义版本控制,并使用格式MAJOR.MINOR.PATCH。简而言之,版本将根据以下情况递增

  • 主要:不兼容或重大更改。
  • 次要:向后兼容的新功能和增强。
  • 修补程序:向后兼容的错误修复和软件包更新。

贡献

这是一个活跃的开源项目。我们始终欢迎希望使用代码或为其做出贡献的人。

我们已为我们的贡献指南设立了一份单独的文档。

感谢您的参与!:heart_eyes

设置开发环境

此Python项目完全使用Poetry依赖关系管理器进行管理。但也依赖于在开发过程中使用NodeJS进行某些检查。

您需要至少

  • Python 3.9+
  • Poetry
  • NodeJS 14+(包括NPM)

安装所有包,包括所有开发需求

npm install
poetry install

由于此存储库使用pre-commit框架,所有更改都在每次提交时进行代码检查和测试。您可以使用以下命令手动运行所有检查和测试

poetry run pre-commit run --all-files

仅运行Python测试

poetry run pytest

作者和贡献者

此存储库的原始设置由Franck Nijhof完成。

要查看所有作者和贡献者的完整列表,请查看贡献者页面

许可证

MIT许可

版权所有 © 2022-2024 Franck Nijhof

特此授予任何获得此软件及其相关文档文件(“软件”)副本的人免费使用软件的权利,不受任何限制,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权利,并允许向软件提供副本的人这样做,但受以下条件约束

上述版权声明和本许可声明应包含在软件的所有副本或实质性部分中。

软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于适销性、适用于特定用途和侵权保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论此类责任是基于合同、侵权或其他方式,以及与软件或其使用或其他交易有关。

项目详情


下载文件

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

源代码分发

radios-0.3.1.tar.gz (12.5 kB 查看散列

上传时间: 源代码

构建分发

radios-0.3.1-py3-none-any.whl (10.9 kB 查看散列

上传时间: Python 3

由以下支持

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF 赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面