123456789101112131415161718192021222324252627282930313233343536373839404142 |
- package notice
- import (
- "context"
- "fmt"
- "net/url"
- "strconv"
- "go-common/library/log"
- )
- const (
- _urlAudio = "https://m.bilibili.com/audio/au%d"
- )
- type audio struct {
- Title string `json:"title"`
- }
- // Audio is Audio
- func (d *Dao) Audio(c context.Context, oid int64) (title, link string, err error) {
- params := url.Values{}
- uri := d.urlAudio
- params.Set("ids", strconv.FormatInt(oid, 10))
- var res struct {
- Code int `json:"code"`
- Data map[int64]*audio `json:"data"`
- }
- if err = d.httpClient.Get(c, uri, "", params, &res); err != nil {
- log.Error("d.httpClient.Get(%s?%s) error(%v)", uri, params.Encode(), err)
- return
- }
- if res.Data == nil {
- err = fmt.Errorf("url:%s code:%d", uri, res.Code)
- return
- }
- if r := res.Data[oid]; r != nil {
- title = r.Title
- }
- link = fmt.Sprintf(_urlAudio, oid)
- return
- }
|