go-common/app/job/main/reply/dao/notice/audio.go
2019-04-22 18:49:16 +08:00

43 lines
838 B
Go

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
}