pbxg33k/music-info

结合多个音乐相关API服务的功能,获取您音乐的完整信息


README

Build Status Latest Stable Version Total Downloads Latest Unstable Version License Scrutinizer Code Quality Coverage Status

MusicInfo 库

这个PHP库允许您将多个音乐相关API服务结合起来,查找音乐信息。请参阅支持的服务,查看哪些服务受到支持。

要求

为了使用此库,您的环境必须满足以下标准

  • PHP 5.6(或更高版本)
    • curl 扩展

安装

使用Composer(推荐)

将music-info包添加到您的composer.json文件中。

{
    "require": {
        "pbxg33k/music-info": "dev-master"
    }
}

或者在项目安装根目录下的命令行中。

$ composer require "pbxg33k/music-info"

这将安装最新稳定版本。

要尝试最新功能,请将版本添加为master-dev。但请注意,此分支不稳定,不适用于生产使用。 在此开发阶段,master-dev将包含直到1.0.0发布前的最新稳定开发版本

不使用composer

  1. 将此存储库作为zip文件下载。
  2. 将zip文件内容提取到您的应用程序目录中。
  3. 将文件添加到您的项目中
    • 如果您的自动加载器兼容PSR-4,将pbxg33k/music-info映射到此目录
    • 如果您的项目启动中没有自动加载器或您的自动加载器不兼容PSR-4,请将autoloader.php包含到项目中

配置

music_info:
    init_services: false ## Automatically initialize services on load
    services:
        - VocaDB
        - Spotify
        # - Discogs
        # - MusicBrainz
    preferred_order:
        - Spotify
        - VocaDB
        # - MusicBrainz
    # Give a weight per service
    # This will be used to *guess* the correct
    # value if multiple services return different values
    service_weight:
        - { service: VocaDB, weigth: 10 }
        - { service: Spotify, weight: 20 }
    guzzle:
        proxy: null
    # General config shared across services
    # Mainly Guzzle
    defaults:
        guzzle:
            http:
                user_agent: 'your-app-name/0.0.1 +https://www.myawsomesite.com'
    service_configuration:
        # Service Specific config
        vocadb:
            language: Default # default, japanese, romaji, english
            start: 0
            max_entries: 10
            get_total_count: false
            name_match_mode: partials # auto, partial, exact, starts_with, words
        spotify:
            client_id: null # required for Spotify
            client_secret: null # required for Spotify
            redirect_uri: null
            scopes:
              - playlist-read-private
              - user-read-private
        discogs:
            throttle: true
        musicbrainz:
            application_name: PHPMusicInfo
            application_version: 0.0.1
            application_url: https://www.github.com/PBXg33k/php-music-info

服务

添加自定义服务

当添加自定义服务时,请确保服务文件实现了IMusicService接口,或者更好的是,扩展了Pbxg33k\MusicInfo\Service\BaseService抽象类。抽象类提供了一些基本逻辑,并与该库提供了更好的兼容性。

当您的服务代码符合规范时,您可以简单地通过调用MusicInfo->addService(IMusicService $service, string $key)来注册它。在注册时,请确保键未被使用,使用已注册的键将覆盖并替换它。

变更日志

请参阅CHANGELOG.md

待办事项

请参阅TODO.md

许可证

版权所有 (c) 2016-2017 Oguzhan Uysal。本程序是自由软件:您可以自由分发和/或修改它,前提是您必须遵守自由软件基金会发布的GNU通用公共许可证的条款,无论是许可证的第3版,还是(根据您的选择)任何较新版本的许可证。

本程序分发时附带“按原样”保证,没有任何形式的保证,既无明示保证也无暗示保证,包括但不限于适销性、适用于特定用途和版权无侵犯的保证。有关详细信息,请参阅GNU通用公共许可证。

您应该已经收到了与该程序一起提供的GNU通用公共许可证副本。如果没有,请参阅https://gnu.ac.cn/licenses/

本软件按“原样”提供,没有任何形式的保证,既无明示保证也无暗示保证,包括但不限于适销性、适用于特定用途和版权无侵犯的保证。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任负责,无论是因合同、侵权或其他方式引起的,无论这些索赔、损害或其他责任是否与软件或其使用或其他方式有关。