mirror of
https://github.com/AynaLivePlayer/miaosic.git
synced 2026-03-15 13:33:17 +08:00
temp fix for local lyric
This commit is contained in:
@@ -6,4 +6,5 @@ Media Provider Repository
|
|||||||
## Todo
|
## Todo
|
||||||
|
|
||||||
- netease music
|
- netease music
|
||||||
- loginable implementation
|
- loginable implementation
|
||||||
|
- local music optimization, load media when call api.
|
||||||
@@ -1,6 +1,7 @@
|
|||||||
package local
|
package local
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"fmt"
|
||||||
"github.com/AynaLivePlayer/miaosic"
|
"github.com/AynaLivePlayer/miaosic"
|
||||||
"os"
|
"os"
|
||||||
"path"
|
"path"
|
||||||
@@ -81,7 +82,16 @@ func (l *Local) GetMediaUrl(meta miaosic.MetaData, quality miaosic.Quality) ([]m
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (l *Local) GetMediaLyric(meta miaosic.MetaData) ([]miaosic.Lyrics, error) {
|
func (l *Local) GetMediaLyric(meta miaosic.MetaData) ([]miaosic.Lyrics, error) {
|
||||||
return []miaosic.Lyrics{}, miaosic.ErrNotImplemented
|
playlist, ok := l.playlists[l.metaToId(meta)]
|
||||||
|
if !ok {
|
||||||
|
return []miaosic.Lyrics{}, miaosic.ErrorInvalidMediaMeta
|
||||||
|
}
|
||||||
|
for _, m := range playlist.medias {
|
||||||
|
if m.info.Meta.Identifier == meta.Identifier {
|
||||||
|
return m.lyrics, nil
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return []miaosic.Lyrics{}, miaosic.ErrorExternalApi
|
||||||
}
|
}
|
||||||
|
|
||||||
func (l *Local) Search(keyword string, page, size int) ([]miaosic.MediaInfo, error) {
|
func (l *Local) Search(keyword string, page, size int) ([]miaosic.MediaInfo, error) {
|
||||||
@@ -89,15 +99,18 @@ func (l *Local) Search(keyword string, page, size int) ([]miaosic.MediaInfo, err
|
|||||||
for _, p := range l.playlists {
|
for _, p := range l.playlists {
|
||||||
for _, m := range p.medias {
|
for _, m := range p.medias {
|
||||||
allMedias = append(allMedias, m.info)
|
allMedias = append(allMedias, m.info)
|
||||||
|
fmt.Println(m.info.Title)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
rankedMedias := rankMedia(keyword, &allMedias)
|
rankedMedias := rankMedia(keyword, &allMedias)
|
||||||
total := len(rankedMedias)
|
total := len(rankedMedias)
|
||||||
if total < page*size {
|
startIdx := (page - 1) * size
|
||||||
|
endIdx := page * size
|
||||||
|
if startIdx >= total {
|
||||||
return []miaosic.MediaInfo{}, nil
|
return []miaosic.MediaInfo{}, nil
|
||||||
}
|
}
|
||||||
if total >= page*size {
|
if endIdx >= total {
|
||||||
total = page * size
|
endIdx = total
|
||||||
}
|
}
|
||||||
return rankedMedias[(page-1)*size : total], nil
|
return rankedMedias[startIdx:endIdx], nil
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user