temp fix for local lyric

This commit is contained in:
aynakeya
2024-04-11 22:59:39 -07:00
parent bfd646d48e
commit 555bd39144
2 changed files with 20 additions and 6 deletions

View File

@@ -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.

View File

@@ -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
} }