本文整理汇总了Golang中dna/http.Get函数的典型用法代码示例。如果您正苦于以下问题:Golang Get函数的具体用法?Golang Get怎么用?Golang Get使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了Get函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Golang代码示例。
示例1: getPlaylistM3u8
func getPlaylistM3u8(episode *Episode) <-chan bool {
channel := make(chan bool, 1)
go func() {
result, err := http.Get(episode.Link)
if err == nil {
episode.PlaylistM3u8 = result.Data
m3u8Filenames := episode.PlaylistM3u8.FindAllString(`.+m3u8`, -1)
// Get file with highest resolution
if m3u8Filenames.Length() > 0 {
lastM3u8Filename := m3u8Filenames[m3u8Filenames.Length()-1]
baseM3u8Url := episode.Link.ReplaceWithRegexp(`[^/]+m3u8$`, "")
lastM3u8FilePath := baseM3u8Url + lastM3u8Filename
resultm3u8, errm3u8 := http.Get(lastM3u8FilePath)
if errm3u8 == nil {
episode.EpisodeM3u8 = resultm3u8.Data.ReplaceWithRegexp(`(.+\.ts)`, baseM3u8Url+"${1}")
// ioutil.WriteFile("./dump/test.m3u8", episode.EpisodeM3u8.ToBytes(), 0644)
}
}
}
channel <- true
}()
return channel
}
开发者ID:olragon,项目名称:dna,代码行数:25,代码来源:episode.go
示例2: getSrtContent
func getSrtContent(episode *Episode, isEn dna.Bool) <-chan bool {
channel := make(chan bool, 1)
go func() {
var result *http.Result
var err error
if isEn == true {
result, err = http.Get(episode.SubtitleExt[1])
} else {
result, err = http.Get(episode.SubtitleExt[0])
}
if err == nil {
if isEn == true {
// It is hard to detect an encoding of a string.
// Therefore we convert them to BASE64
episode.EnSrt = dna.String(base64.StdEncoding.EncodeToString(result.Data.ToBytes()))
// episode.EnSrt = ISO8859_1ToUTF8String(result.Data.ToBytes())
// ioutil.WriteFile("./dump/test_en_srt.srt", result.Data.ToBytes(), 0644)
} else {
// Vietnamese Subtitle encoded in UTF-16 Little Ending
// It has to be converted to UTF-8
if result.Data.Match(`^[0-9a-fA-F]+$`) == false {
// episode.ViSrt = UTF16ToUTF8String(result.Data.ToBytes(), binary.LittleEndian)
episode.ViSrt = dna.String(base64.StdEncoding.EncodeToString(result.Data.ToBytes()))
}
// dna.Log(result.Data.Substring(0, 100))
}
}
channel <- true
}()
return channel
}
开发者ID:olragon,项目名称:dna,代码行数:35,代码来源:episode.go
示例3: getSongFromXML
// getSongFromXML returns values from url: http://nhacso.net/flash/song/xnl/1/id/
func getSongFromXML(song *Song) <-chan bool {
channel := make(chan bool, 1)
go func() {
link := "http://nhacso.net/flash/song/xnl/1/id/" + GetKey(song.Id)
result, err := http.Get(link)
if err == nil {
song.Title = getValueXML(&result.Data, "name", 1).Trim()
song.Artists = getValueXML(&result.Data, "artist", 0).ToStringArray().SplitWithRegexp("\\|\\|").SplitWithRegexp(" / ").SplitWithRegexp(" - ")
song.Artistid = getValueXML(&result.Data, "artistlink", 0).ReplaceWithRegexp("\\.html", "").ReplaceWithRegexp(`^.+-`, "").ToInt()
authors := getValueXML(&result.Data, "author", 0)
if !authors.IsBlank() {
song.Authors = authors.ToStringArray().SplitWithRegexp("\\|\\|").SplitWithRegexp(" / ").SplitWithRegexp(" - ")
song.Authorid = getValueXML(&result.Data, "authorlink", 0).ReplaceWithRegexp(`\.html`, "").ReplaceWithRegexp(`^.+-`, "").ToInt()
}
duration := result.Data.FindAllString("<totalTime.+totalTime>", 1)
if duration.Length() > 0 {
song.Duration = duration[0].RemoveHtmlTags("").Trim().ToInt()
}
song.Link = getValueXML(&result.Data, "mp3link", 0)
if song.Title != "" && song.Link != "/" {
ts := song.Link.FindAllString(`\/[0-9]+_`, 1)[0].ReplaceWithRegexp(`\/`, "").ReplaceWithRegexp(`_`, "")
unix := ts.ToInt().ToFloat() * dna.Float(math.Pow10(13-len(ts)))
song.DateCreated = dna.Int(int64(unix) / 1000).ToTime()
song.DateUpdated = time.Now()
}
}
channel <- true
}()
return channel
}
开发者ID:olragon,项目名称:dna,代码行数:35,代码来源:song.go
示例4: getAPIAlbumSimilars
// getAPIAlbumSimilars fetches album's similars
// with the following url format:
// http://www.allmusic.com/album/google-bot-mw0002585207/similar/mobile
func getAPIAlbumSimilars(album *APIAlbum) <-chan bool {
channel := make(chan bool, 1)
go func() {
link := "http://www.allmusic.com/album/google-bot-mw" + album.Id.ToFormattedString(10, true) + "/similar/mobile"
result, err := http.Get(link)
if err == nil {
data := &result.Data
idsArr := data.FindAllString(`<a href=".+`, -1)
ids := dna.IntArray(idsArr.Map(func(val dna.String, idx dna.Int) dna.Int {
idArr := val.FindAllStringSubmatch(`mw([0-9]+)`, -1)
if len(idArr) > 0 {
return idArr[0][1].ToInt()
} else {
return 0
}
}).([]dna.Int)).Filter(func(val dna.Int, idx dna.Int) dna.Bool {
if val > 0 {
return true
} else {
return false
}
})
if ids.Length() > 0 {
album.Similars = ids
}
}
channel <- true
}()
return channel
}
开发者ID:olragon,项目名称:dna,代码行数:36,代码来源:apialbum.go
示例5: getAlbumCategory
func getAlbumCategory(albums *[]*Album, genre Genre, page dna.Int) <-chan bool {
channel := make(chan bool, 1)
go func() {
link := "http://nhacso.net/album-theo-the-loai-" + genre.Id.ToString() + "/joke-link-2-" + page.ToString() + ".html"
// dna.Log(link)
result, err := http.Get(link)
if err == nil {
data := &result.Data
temp := data.FindAllStringSubmatch(`getTotalSongInAlbum\('(.+)', 'album_new_totalsong_'`, -1)
tmpalbums := &[]*Album{}
if len(temp) > 0 {
albumList := temp[0][1].Split(",").ToIntArray()
for _, albumid := range albumList {
album := NewAlbum()
album.Id = albumid
cats := dna.StringArray{genre.Name}
album.Category = transformCats(cats)
*tmpalbums = append(*tmpalbums, album)
}
}
*albums = *tmpalbums
}
channel <- true
}()
return channel
}
开发者ID:olragon,项目名称:dna,代码行数:28,代码来源:category_album.go
示例6: getAPIAlbumAwards
// getAPIAlbumAwards fetches album's awards
// with the following url format:
// http://www.allmusic.com/album/google-bot-mw0002585207/similar/mobile
func getAPIAlbumAwards(album *APIAlbum) <-chan bool {
channel := make(chan bool, 1)
go func() {
link := "http://www.allmusic.com/album/google-bot-mw" + album.Id.ToFormattedString(10, true) + "/awards/mobile"
result, err := http.Get(link)
if err == nil {
data := &result.Data
var awardSections = []APIAwardSection{}
sectionsArr := data.FindAllString(`(?mis)<section class=.+?</section>`, -1)
sectionsArr.ForEach(func(section dna.String, idx dna.Int) {
awardSections = append(awardSections, getSection(section))
})
if len(awardSections) > 0 {
bAwards, derr := json.Marshal(awardSections)
if derr == nil {
album.Awards = dna.String(string(bAwards))
}
}
}
channel <- true
}()
return channel
}
开发者ID:olragon,项目名称:dna,代码行数:30,代码来源:apialbum.go
示例7: getSongPlays
// getSongPlays returns song plays
func getSongPlays(song *Song, body dna.String) {
// POST METHOD
// link := "http://www.nhaccuatui.com/interaction/api/hit-counter?jsoncallback=nct"
// http.DefaulHeader.Set("Content-Type", "application/x-www-form-urlencoded ")
// result, err := http.Post(dna.String(link), body)
// // Log(link)
// if err == nil {
// data := &result.Data
// tpl := dna.String(`{"counter":([0-9]+)}`)
// playsArr := data.FindAllStringSubmatch(tpl, -1)
// if len(playsArr) > 0 {
// song.Plays = playsArr[0][1].ToInt()
// }
// }
// GET METHOD
link := "http://www.nhaccuatui.com/interaction/api/counter?jsoncallback=nct&listSongIds=" + song.Id.ToString()
result, err := http.Get(link)
if err == nil {
data := &result.Data
tpl := dna.Sprintf(`{"%v":([0-9]+)}`, song.Id)
// dna.Log(data)
playsArr := data.FindAllStringSubmatch(tpl, -1)
if len(playsArr) > 0 {
song.Plays = playsArr[0][1].ToInt()
}
}
}
开发者ID:olragon,项目名称:dna,代码行数:28,代码来源:song.go
示例8: getExercises
func getExercises(cat Category) <-chan Exercises {
channel := make(chan Exercises)
exercises := Exercises{}
go func() {
link := "http://www.indiabix.com" + cat.Url
// dna.Log(link)
result, err := http.Get(link)
if err == nil {
data := &result.Data
exercisesArr := data.FindAllStringSubmatch(`(?mis)ib-lefttbar-container.+Exercise(.+?)id="ib-main-bar"`, 1)
// dna.Log(exercisesArr)
if len(exercisesArr) > 0 {
sectionArr := exercisesArr[0][1].FindAllString(`<a href=.+?</a>`, -1)
for _, section := range sectionArr {
exc := NewExercise()
exc.Cat = cat
exc.Cat.Url = section.GetTagAttributes("href")
exc.No = exc.Cat.Url.ReplaceWithRegexp(`/$`, "").ReplaceWithRegexp(`^.+/`, "").ToInt()
exercises = append(exercises, *exc)
// dna.Log(exc.Cat.Url.ReplaceWithRegexp(`/$`, "").Replace(`^.+/`, ""))
}
}
}
channel <- exercises
}()
return channel
}
开发者ID:olragon,项目名称:dna,代码行数:28,代码来源:exercise.go
示例9: getGracenoteSongLyric
func getGracenoteSongLyric(artist, title dna.String, song *Song) {
link := "http://lyrics.wikia.com/Gracenote:" + artist.Replace(" ", "_") + ":" + title.Replace(" ", "_")
result, err := http.Get(link)
if err == nil {
data := &result.Data
writersArr := data.FindAllString(`Songwriters.+`, 1)
if writersArr.Length() > 0 {
song.GracenoteSongwriters = writersArr[0].GetTags("em")[0].RemoveHtmlTags("").DecodeHTML()
}
publisheraArr := data.FindAllString(`Publishers.+`, 1)
if publisheraArr.Length() > 0 {
song.GracenotePublishers = publisheraArr[0].GetTags("em")[0].RemoveHtmlTags("").DecodeHTML()
}
lyricArr := data.FindAllStringSubmatch(`(?mis)<div class='lyricbox'>(.+?)<\!--`, 1)
if len(lyricArr) > 0 {
song.GracenoteLyric = lyricArr[0][1].Trim().DecodeHTML().ReplaceWithRegexp(`(?mis)^<div.+?</span></div>`, "").Trim().Replace("<br />", "\n")
}
if song.GracenoteLyric != "" {
song.DownloadGracenoteDone = 1
} else {
song.DownloadGracenoteDone = 0
}
}
}
开发者ID:olragon,项目名称:dna,代码行数:29,代码来源:song.go
示例10: getSongXML
// getSongXML returns song from main page
func getSongXML(song *Song) <-chan bool {
channel := make(chan bool, 1)
go func() {
link := "http://www.chacha.vn/player/songXml/" + song.Id.ToString()
result, err := http.Get(link)
// dna.Log(link)
if err == nil && !result.Data.Match(`Không tìm thấy bài hát`) {
data := &result.Data
if data.Match(`<enclosure.+label="320K"`) {
song.Bitrate = 320
link := data.FindAllString(`<enclosure.+label="320K".+/>`, -1)
if link.Length() > 0 {
song.Link = link[0].GetTagAttributes("url")
}
} else {
if data.Match(`<enclosure.+label="128K"`) {
song.Bitrate = 128
link := data.FindAllString(`<enclosure.+label="128K".+?`, -1)
if link.Length() > 0 {
song.Link = link[0].GetTagAttributes("url")
}
}
}
}
channel <- true
}()
return channel
}
开发者ID:olragon,项目名称:dna,代码行数:32,代码来源:song.go
示例11: getVideoFromXML
// getVideoFromXML returns video from main page
func getVideoFromXML(video *Video) <-chan bool {
channel := make(chan bool, 1)
go func() {
link := "http://hcm.nhac.vui.vn/asx2.php?type=1&id=" + video.Id.ToString()
result, err := http.Get(link)
// dna.Log(link)
if err == nil {
data := &result.Data
linkArr := data.FindAllStringSubmatch(`<jwplayer:file><\!\[CDATA\[(.+)\]\]></jwplayer:file>`, 1)
if len(linkArr) > 0 {
video.Link = linkArr[0][1].Trim()
switch {
case video.Link.Match("mp3") == true:
video.Type = "song"
case video.Link.Match("(?mis)mp4") == true:
video.Type = "video"
case video.Link.Match("flv") == true:
video.Type = "video"
}
}
}
channel <- true
}()
return channel
}
开发者ID:olragon,项目名称:dna,代码行数:29,代码来源:video.go
示例12: GetAPIMovie
func GetAPIMovie(movieid, ep dna.Int) (*APIMovie, error) {
urlb := NewURLBuilder()
var link dna.String = ""
if ep == 0 {
link = urlb.GetMovie(movieid)
} else {
link = urlb.GetEpisole(movieid, ep)
}
// dna.Log(link)
result, err := http.Get(link)
if err == nil {
if result.Data.Match(`"r":"acesstokenkey invalid or expired"`) == true {
return nil, errors.New("ACCESS_TOKEN_KEY invalid or expired")
}
var apiMoveiJSON = &APIMovieJSON{}
errd := json.Unmarshal(result.Data.ToBytes(), apiMoveiJSON)
if errd == nil {
apiMoveiJSON.Movie.MovieId = movieid
apiMoveiJSON.Movie.EpId = ep
return &apiMoveiJSON.Movie, nil
} else {
return nil, errd
}
} else {
return nil, err
}
}
开发者ID:olragon,项目名称:dna,代码行数:27,代码来源:apis.go
示例13: getSongFormats
func getSongFormats(subject *Subject) <-chan bool {
channel := make(chan bool, 1)
go func() {
link := "http://www.indiabix.com/" + subject.Name.ToDashCase().ToLowerCase()
// dna.Log(link)
result, err := http.Get(link)
if err == nil {
data := &result.Data
tables := data.FindAllString(`(?mis)<table width="100%" id="ib-tbl-topics">.+?</table>`, -1)
for _, table := range tables {
cells := table.FindAllString(`<td>.+?</td>`, -1)
if cells.Length() > 0 {
for _, cell := range cells {
cat := &Category{subject.Name, cell.RemoveHtmlTags(""), cell.GetTagAttributes("href")}
subject.Cats = append(subject.Cats, cat)
// dna.Log(cat)
}
}
}
}
channel <- true
}()
return channel
}
开发者ID:olragon,项目名称:dna,代码行数:25,代码来源:category.go
示例14: getSongFromMainPage
// getSongFromMainPage returns song from main page
func getSongFromMainPage(song *Song) <-chan bool {
channel := make(chan bool, 1)
go func() {
link := "http://nhacso.net/nghe-nhac/google-bot." + GetKey(song.Id) + "==.html"
result, err := http.Get(link)
// Log(link)
// Log(result.Data)
if err == nil && !result.Data.Match("Rất tiếc, chúng tôi không tìm thấy thông tin bạn yêu cầu!") {
data := &result.Data
if data.Match("official") {
song.Official = 1
}
bitrate := data.FindAllString(`\d+kb\/s`, 1)[0]
if !bitrate.IsBlank() {
song.Bitrate = bitrate.FindAllString(`\d+`, 1)[0].ToInt()
}
plays := data.FindAllString("total_listen_song_detail_\\d+.+", 1)[0]
if !plays.IsBlank() {
song.Plays = plays.ReplaceWithRegexp("<\\/span>.+$", "").ReplaceWithRegexp("^.+>", "").ReplaceWithRegexp("\\.", "").ToInt()
}
topics := data.FindAllString("<li><a\\shref\\=\\\"http\\:\\/\\/nhacso\\.net\\/the-loai.+", 1)[0]
if !topics.IsBlank() {
topics = topics.ReplaceWithRegexp("^.+\\\">|<\\/a><\\/li>", "")
song.Topics = topics.ToStringArray().SplitWithRegexp(" - ").SplitWithRegexp("/")
temp := data.FindAllString("<a.+class=\"casi\".+>(.+?)<\\/a>", 1)
var singer dna.String
if temp.Length() > 0 {
singer = temp[0]
} else {
singer = ""
}
if topics.Match("Nhạc Hoa") && singer.Match(` / `) {
song.SameArtist = 1
}
}
lyric := data.FindAllString(`(?mis)txtlyric.+Bạn chưa nhập nội bài hát`, 1)[0]
if !lyric.IsBlank() {
song.Islyric = 1
song.Lyric = lyric.ReplaceWithRegexp("(?mis)<\\/textarea>.+$", "").ReplaceWithRegexp("^.+>", "")
if song.Lyric.Match("Hãy đóng góp lời bài hát chính xác cho Nhacso nhé") {
song.Lyric = ``
song.Islyric = 0
}
}
}
channel <- true
}()
return channel
}
开发者ID:olragon,项目名称:dna,代码行数:56,代码来源:song.go
示例15: getSongLrc
func getSongLrc(song *Song) {
result, err := http.Get(song.LrcUrl)
if err == nil {
lrc, derr := DecryptLRC(result.Data)
if derr == nil {
song.Lrc = lrc
} else {
dna.Log("ERR WHILE DECRYPT SONG ", song.Id)
dna.Log("-----\n")
}
}
}
开发者ID:olragon,项目名称:dna,代码行数:12,代码来源:song.go
示例16: GetAPISongLyric
//GetAPISongLyric fetchs a song lyric from API url. An url pattern is:
// http://api.mp3.zing.vn/api/mobile/song/getlyrics?keycode=fafd463e2131914934b73310aa34a23f&requestdata={"id":"ZW67FWWF"}
//
// The following result:
// {
// "id": 1188945,
// "content": "Chuyện hai chúng ta bây giờ khác rồi\nThật lòng anh không muốn ai phải bối rối\nSợ em nhìn thấy nên anh đành phải lẳng lặng đứng xa\nChuyện tình thay đổi nên bây giờ trở thành người thứ ba\nTrách ai bây giờ, trách mình thôi.....\n\nĐK:\nNhìn em hạnh phúc bên ai càng làm anh tan nát lòng\nMới hiểu tại sao tình yêu người ta sợ khi cách xa\nĐiều anh lo lắng cứ vẫn luôn xảy ra\nNếu không đổi thay chẳng có ai sống được vì thiếu mất yêu thương.\n\nThời gian giết chết cuộc tình còn đau hơn giết chính mình\nTại sao mọi thứ xung quanh vẫn thế chỉ lòng người thay đổi\nGiờ em chỉ là tất cả quá khứ anh phải cố xoá trong nước mắt\n\n[ Trong tình yêu, thuộc về ai không quan trọng\nMột giây mơ màng là đã mất nhau....]\n\nCàng nghĩ đến em, anh càng hối hận\nVì xa em nên mất em thật ngu ngốc\nGiờ tình anh như bức tranh bằng nước mắt không màu sắc\nNhẹ nhàng và trong suốt cho dù đau đớn vẫn lặng yên\nTrách ai bây giờ, trách mình thôi....\n\nĐK:\nNhìn em hạnh phúc bên ai càng làm anh tan nát lòng\nMới hiểu tại sao tình yêu người ta sợ khi cách xa\nĐiều anh lo lắng cứ vẫn luôn xảy ra\nNếu không đổi thay chẳng có ai sống được vì thiếu mất yêu thương.\n\nThời gian giết chết cuộc tình còn đau hơn giết chính mình\nTại sao mọi thứ xung quanh vẫn thế chỉ lòng người thay đổi\nGiờ em chỉ là tất cả quá khứ anh phải cố xoá trong nước mắt.\n\nNụ cười em vẫn như xưa mà lòng em sao khác rồi\nNỗi đau này chỉ mình anh nhận lấy vì anh đã sai\nGiờ anh phải cố giữ nước mắt đừng rơi\nBức tranh tình yêu của em từ lâu đã không hề có anh......\n\nTrong tình yêu, thuộc về ai không quan trọng, rồi cũng mất nhau…",
// "mark": 4664,
// "author": "o0cobemuaxuan0o",
// "response": {
// "msgCode": 1
// }
// }
func GetAPISongLyric(id Int) (*APISongLyric, error) {
var apisongLyric = new(APISongLyric)
baseURL := "http://api.mp3.zing.vn/api/mobile/song/getlyrics?"
link := Sprintf(`%vkeycode=%v&requestdata={"id":"%v"}`, baseURL, API_KEYCODE, GetKey(id))
result, err := http.Get(link)
if err == nil {
data := &result.Data
json.Unmarshal([]byte(*data), apisongLyric)
return apisongLyric, nil
} else {
return nil, err
}
}
开发者ID:olragon,项目名称:dna,代码行数:26,代码来源:apifuncs.go
示例17: getSongLrcUrl
func getSongLrcUrl(song *Song) {
link := "http://www.nhaccuatui.com/flash/xml?key1=" + song.LinkKey
result, err := http.Get(link)
if err == nil {
data := &result.Data
lrcArr := data.FindAllStringSubmatch(`<lyric><\!\[CDATA\[(.+)\]\]></lyric>`, 1)
if len(lrcArr) > 0 {
song.LrcUrl = lrcArr[0][1].Trim()
getSongLrc(song)
}
}
}
开发者ID:olragon,项目名称:dna,代码行数:14,代码来源:song.go
示例18: GetAPIVideo
//GetAPIVideo fetchs a video from API url. An url pattern is:
//http://api.mp3.zing.vn/api/mobile/video/getvideoinfo?keycode=fafd463e2131914934b73310aa34a23f&requestdata={"id":1074729245}
//
//The following result:
// {
// "video_id": 1074729245,
// "title": "Xin Anh Đừng Đến",
// "artist_id": "465",
// "artist": "Bảo Thy",
// "genre_id": "1,8,66",
// "thumbnail": "thumb_video/d/c/dcacff355635deedf62fd80de34f2346_1380622208.jpg",
// "duration": 307,
// "status_id": 1,
// "link": "/video-clip/Xin-Anh-Dung-Den-Bao-Thy/ZW686I9D.html",
// "source": {
// "240": "http://api.mp3.zing.vn/api/mobile/source/video/LncGtLGazaDuFAQyFlHTFGLn",
// "360": "http://api.mp3.zing.vn/api/mobile/source/video/LHJmTkHaAaFiDlQtdCnyDnLG",
// "480": "http://api.mp3.zing.vn/api/mobile/source/video/LHcHTknNlNFuFzpylJnyFHZm",
// "720": "http://api.mp3.zing.vn/api/mobile/source/video/ZHJHyLHNSNFRDzWyNbmTDmLm",
// "1080": "http://api.mp3.zing.vn/api/mobile/source/video/ZnxmTkGalNvuvzQtkGcntvHLn"
// },
// "total_play": 1684238,
// "likes": 7663,
// "like_this": false,
// "favourites": 0,
// "favourite_this": false,
// "comments": 246,
// "genre_name": "Việt Nam, Nhạc Trẻ, Nhạc Dance",
// "response": {
// "msgCode": 1
// }
// }
func GetAPIVideo(id Int) (*APIVideo, error) {
var apivideo = new(APIVideo)
apivideo.Id = id
baseURL := "http://api.mp3.zing.vn/api/mobile/video/getvideoinfo?"
link := Sprintf(`%vkeycode=%v&requestdata={"id":"%v"}`, baseURL, API_KEYCODE, apivideo.Id-ID_DIFFERENCE)
result, err := http.Get(link)
if err == nil {
data := &result.Data
json.Unmarshal([]byte(*data), apivideo)
return apivideo, nil
} else {
return nil, err
}
}
开发者ID:olragon,项目名称:dna,代码行数:46,代码来源:apifuncs.go
示例19: GetAPIArtist
//GetAPIArtist fetchs an artist from API url. An url pattern is:
//http://api.mp3.zing.vn/api/mobile/artist/getartistinfo?key=fafd463e2131914934b73310aa34a23f&requestdata={"id":828}
//
//The following result:
// {
// "artist_id": 828,
// "name": "Quang Lê",
// "alias": "",
// "birthname": "Leon Quang Lê",
// "birthday": "24/01/1981",
// "sex": 1,
// "genre_id": "1,11,13",
// "avatar": "avatars/9/6/96c7f8568cdc943997aace39708bf7b6_1376539870.jpg",
// "cover": "cover_artist/9/9/9920ce8b6c7eb43328383041acb58e76_1376539928.jpg",
// "cover2": "",
// "zme_acc": "",
// "role": "1",
// "website": "",
// "biography": "Quang Lê sinh ra tại Huế, trong gia đình gồm 6 anh em và một người chị nuôi, Quang Lê là con thứ 3 trong gia đình.\r\nĐầu những năm 1990, Quang Lê theo gia đình sang định cư tại bang Missouri, Mỹ.\r\nHiện nay Quang Lê sống cùng gia đình ở Los Angeles, nhưng vẫn thường xuyên về Việt Nam biểu diễn.\r\n\r\nSự nghiệp:\r\n\r\nSay mê ca hát từ nhỏ và niềm say mê đó đã cho Quang Lê những cơ hội để đi đến con đường ca hát ngày hôm nay. Có sẵn chất giọng Huế ngọt ngào, Quang Lê lại được cha mẹ cho theo học nhạc từ năm lớp 9 đến năm thứ 2 của đại học khi gia đình chuyển sang sống ở California . Anh từng đoạt huy chương bạc trong một cuộc thi tài năng trẻ tổ chức tại California. Thời gian đầu, Quang Lê chỉ xuất hiện trong những sinh hoạt của cộng đồng địa phương, mãi đến năm 2000 mới chính thức theo nghiệp ca hát. Nhưng cũng phải gần 2 năm sau, Quang Lê mới tạo được chỗ đứng trên sân khấu ca nhạc của cộng đồng người Việt ở Mỹ. Và từ đó, Quang Lê liên tục nhận được những lời mời biểu diễn ở Mỹ, cũng như ở Canada, Úc...\r\nLà một ca sĩ trẻ, cùng gia đình định cư ở Mỹ từ năm 10 tuổi, Quang Lê đã chọn và biểu diễn thành công dòng nhạc quê hương. Nhạc sĩ lão thành Châu Kỳ cũng từng khen Quang Lê là ca sĩ trẻ diễn đạt thành công nhất những tác phẩm của ông…\r\nQuang Lê rất hạnh phúc và anh xem lời khen tặng đó là sự khích lệ rất lớn để anh cố gắng nhiều hơn nữa trong việc diễn đạt những bài hát của nhạc sĩ Châu Kỳ cũng như những bài hát về tình yêu quê hương đất nước. 25 tuổi, được xếp vào số những ca sĩ trẻ thành công, nhưng Quang Lê luôn khiêm tốn cho rằng thành công thường đi chung với sự may mắn, và điều may mắn của anh là được lớn lên trong tiếng đàn của cha, giọng hát của mẹ.\r\nTiếng hát, tiếng đàn của cha mẹ anh quyện lấy nhau, như một sợi dây vô hình kết nối mọi người trong gia đình lại với nhau. Những âm thanh ngọt ngào đó chính là dòng nhạc quê hương mà Quang Lê trình diễn ngày hôm nay. Quang Lê cho biết: \"Mặc dù sống ở Mỹ đã lâu nhưng hình ảnh quê hương không bao giờ phai mờ trong tâm trí Quang Lê, nên mỗi khi hát những nhạc phẩm quê hương, những hình ảnh đó lại như hiện ra trước mắt\". Có lẽ vì thế mà giọng hát của Quang Lê như phảng phất cái không khí êm đềm của thành phố Huế.\r\nQuang Lê là con thứ 3 trong gia đình gồm 6 anh em và một người chị nuôi. Từ nhỏ, Quang Lê thường được người chung quanh khen là có triển vọng. Cậu bé chẳng hiểu \"có triển vọng\" là gì, chỉ biết là mình rất thích hát, và thích được cất tiếng hát trước người thân, để được khen ngợi và cổ vũ.\r\nĐầu những năm 1990, Quang Lê theo gia đình sang định cư tại bang Missouri, Mỹ. Một hôm, nhân có buổi lễ được tổ chức ở ngôi chùa gần nhà, một người quen của gia đình đã đưa Quang Lê đến để giúp vui cho chương trình sinh hoạt của chùa, và anh đã nhận được sự đón nhận nhiệt tình của khán giả. Quang Lê nhớ lại, \"người nghe không chỉ vỗ tay hoan hô mà còn thưởng tiền nữa\". Đối với một đứa trẻ 10 tuổi, thì đó quả là một niềm hạnh phúc lớn lao, khi nghĩ rằng niềm đam mê của mình lại còn có thể kiếm tiền giúp đỡ gia đình.\r\nQuan điểm của Quang Lê là khi dự định làm một việc gì thì hãy cố gắng hết mình để đạt được những điều mà mình mơ ước. Quang Lê cho biết anh toàn tâm toàn ý với dòng nhạc quê hương trữ tình mà anh đã chọn lựa và được đón nhận, nhưng anh tiết lộ là những lúc đi hát vũ trường, vì muốn thay đổi và để hòa đồng với các bạn trẻ, anh cũng trình bày những ca khúc \"Techno\" và cũng nhảy nhuyễn không kém gì vũ đoàn minh họa.\r\n\r\nAlbum:\r\n\r\nSương trắng miền quê ngoại (2003)\r\nXin gọi nhau là cố nhân (2004)\r\nHuế đêm trăng (2004)\r\nKẻ ở miền xa (2004)\r\n7000 đêm góp Lại (2005)\r\nĐập vỡ cây đàn (2007)\r\nHai quê (2008)\r\nTương tư nàng ca sĩ (2009)\r\nĐôi mắt người xưa (2010)\r\nPhải lòng con gái bến tre (2011)\r\nKhông phải tại chúng mình (2012)",
// "agency_name": "Ca sĩ Tự Do",
// "national_name": "Việt Nam",
// "is_official": 1,
// "year_active": "2000",
// "status_id": 1,
// "created_date": 0,
// "link": "/nghe-si/Quang-Le",
// "genre_name": "Việt Nam, Nhạc Trữ Tình",
// "response": {
// "msgCode": 1
// }
// }
func GetAPIArtist(id Int) (*APIArtist, error) {
var apiArtist = new(APIArtist)
apiArtist.Id = id
baseURL := "http://api.mp3.zing.vn/api/mobile/artist/getartistinfo?"
link := Sprintf(`%vkeycode=%v&requestdata={"id":"%v"}`, baseURL, API_KEYCODE, apiArtist.Id)
result, err := http.Get(link)
if err == nil {
data := &result.Data
json.Unmarshal([]byte(*data), apiArtist)
return apiArtist, nil
} else {
return nil, err
}
}
开发者ID:olragon,项目名称:dna,代码行数:45,代码来源:apifuncs.go
示例20: getVideoFromMainPage
// getVideoFromMainPage returns video from main page
func getVideoFromMainPage(video *Video) <-chan bool {
channel := make(chan bool, 1)
go func() {
link := "http://www.chacha.vn/video/google-bot," + video.Id.ToString() + ".html"
result, err := http.Get(link)
// dna.Log(link)
if err == nil && !result.Data.Match(`Không tìm thấy trang`) {
data := &result.Data
titleArr := data.FindAllStringSubmatch(`<h1 class="name">(.+)</h1>`, 1)
if len(titleArr) > 0 {
video.Title = titleArr[0][1].Trim()
}
artistArr := data.FindAllStringSubmatch(`(?mis)<li>Nghệ sĩ:(.+?)</li>`, 1)
if len(artistArr) > 0 {
video.Artists = refineAuthorsOrArtists(artistArr[0][1].RemoveHtmlTags("").Trim())
}
topicArr := data.FindAllStringSubmatch(`(?mis)<li>Thể loại:(.+?)</li>`, 1)
if len(topicArr) > 0 {
video.Topics = topicArr[0][1].RemoveHtmlTags("").Trim().ToStringArray()
}
yearReleasedArr := data.FindAllStringSubmatch(`Năm phát hành: <span>(.+?)</span>`, 1)
if len(yearReleasedArr) > 0 {
video.YearReleased = yearReleasedArr[0][1].Trim().ToInt()
}
playsArr := data.FindAllStringSubmatch(`([0-9]+) lượt xem`, 1)
if len(playsArr) > 0 {
video.Plays = playsArr[0][1].ToInt()
}
coverartArr := data.FindAllString(`<meta property="og:image".+`, 1)
if coverartArr.Length() > 0 {
video.Thumbnail = coverartArr[0].GetTagAttributes("content")
}
lyricArr := data.FindAllStringSubmatch(`(?mis)<p class="lyric" id="lyric_box">(.+?)<a class="fs11 more" id="lyric_more".+?</a>`, 1)
if len(lyricArr) > 0 {
video.Lyric = lyricArr[0][1].Replace(`<br /> `, "\n").Replace(`<br />`, "\n").RemoveHtmlTags("").Trim()
}
}
channel <- true
}()
return channel
}
开发者ID:olragon,项目名称:dna,代码行数:51,代码来源:video.go
注:本文中的dna/http.Get函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论