Skip to content

dataModule 調理指南

gnehs edited this page Sep 7, 2018 · 3 revisions

回傳格式

基本定義

須先以一個 {} 包起所有項目,並每個項目以複數單字取名,將其子項目放至其中,如底下回傳範例

{
    songs: [
        {
            name:'',
            artist:'',
            album:'',
            cover:'',
            url:'',
            bitrate: 320000,
            lrc:'',
            source:'',
            id:'',
        },
        {}...
    ]
}

name

名稱

artist

演出者

album

專輯

url

提供歌曲連結,您亦可以 /pokaapi/song/?moduleName=DSM&songRes=original&songId=music_941 格式回傳,當音樂被讀取到時您將會在 getSong(req, songRes, songId) 處理後續之請求

cover

提供封面圖片,在回傳格式裡,您必須在 Cover 中回傳如以下格式的網址 /pokaapi/cover/?moduleName=DSM&data=恐龍,當圖片被讀取到時您將會在 getCover(data) 處理後續之請求

bitrate

bitrate

lrc

lrc 的 ID,若不提供或是拿到的歌詞格式不符等情況下,會自行搜尋歌詞

source

來源,請和 module.exports 中填寫的 name 一致,不建議填寫[a-z] [A-Z] [0-9]以外的文字

id

會回傳給模組的資料,想塞啥都行

lyric

歌詞,目前僅支援 LRC 格式


song

{
    name:'',
    artist:'',
    album:'',
    cover:'',
    url:'',
    bitrate: 320000,
    lrc:'',
    source:'',
    id:'',
}

album

{
    name:'',
    artist:'',
    year:'',
    cover:'',
    source:'',
    id:''
}

artist

{
    name:'',
    source:'',
    cover:'',
    id:''
}

composer

{
    name:'',
    source:'',
    cover:'',
    id:''
}

folder

{
    name:'',
    source:'',
    id:''
}

playlist

{
    name: '',
    source:'',
    id: ''
}

lyrics

{
    name:''
    artist:''
    source:''
    id:'',
    lyric:''
}

可串接之 API

名稱

name

  • 來源名稱,請和 module.exports 中填寫的 name 一致,不建議填寫[a-z] [A-Z] [0-9]以外的文字
  • 回傳 string 名稱

載入

onLoaded()

  • 在模組載入時可執行寫好的程式碼(ex:登入)

首頁

getHome()

  • 回傳釘選在首頁的項目,或是推薦的歌單啥的
  • 支援的回傳格式:albums,artists,composers,playlists,folders,songs

釘選

isPinned(type, id, name)

  • 確認項目是否釘選,API 會提供類型、ID 和名稱
  • 回傳 false 或是 項目 ID

addPin(type, id, name)

  • 加入釘選項目,API 會提供類型、ID 和名稱
  • 回傳 true 或是 錯誤原因

unPin(type, id, name)

  • 移除釘選項目,API 會提供類型、ID 和名稱
  • 回傳 true 或是 錯誤原因

歌曲

getSong(req, songRes, songId)

  • 取得並反代歌曲,API 會提供原始請求、歌曲音質和 ID,您必須處理來自原始請求的 Range header 並提供相對應部分的音樂
  • songRes: low,medium,high,original
  • 回傳一個 request,為避免雞掰 Chrome 無法跳時間,API 將以 HTTP 206 來 pipe 您回傳的 request

封面

getCover(data)

  • 提供封面圖片,在上頭的回傳格式裡,您必須在 Cover 中回傳如以下格式的網址 /pokaapi/cover/?moduleName=DSM&data=恐龍,當圖片被讀取到時會將請求轉到這邊,您必須以拿到的 data 回傳圖片的 request
  • 回傳一個 request

專輯

getAlbums()

  • 取得所有專輯
  • 回傳格式:albums

getAlbumSongs(id)

  • 回傳專輯裡的音樂
  • 回傳格式:songs

資料夾

getFolders()

  • 取得所有資料夾
  • 回傳格式:folders

getFolderFiles(id)

  • 取得資料夾內的資料夾及音樂
  • 回傳格式:folders,songs

演出者

getArtists()

  • 取得所有演出者
  • 回傳格式:artists

getArtistAlbums(id)

  • 取得該演出者的專輯
  • 回傳格式:albums

作曲者

getComposers()

  • 取得所有作曲者
  • 回傳格式:composers

getComposerAlbums(id)

  • 取得該作曲者的專輯
  • 回傳格式:albums

播放清單

getPlaylists()

  • 取得所有播放清單
  • 回傳格式:playlists

getPlaylistSongs(id)

  • 透過 ID 取得播放清單歌曲
  • playlists[0] 回傳該播放清單
  • 回傳格式:playlists,songs

getRandomSongs(id)

  • 隨便回傳點音樂
  • 回傳格式:songs

歌詞

getLyric(id)

  • 透過歌曲 ID 回傳歌詞,您必須回傳 lyrics 格式,若無歌詞則在 lyric 填寫 false
  • 回傳格式:lyrics

searchLyrics(keyword)

  • 透過關鍵字取得歌詞,您必須回傳 lyrics 格式
  • 回傳格式:lyrics