Exemplo n.º 1
0
        /// <summary>
        /// Execute the Deezer Search Query
        /// </summary>
        /// <param name="query">Prepared StandardTitel Object</param>
        /// <returns></returns>
        protected async Task <List <StandardTitle> > ExecuteQuery(StandardTitle query)
        {
            try
            {
                /*
                 * Deezer Private API
                 *
                 * DeezerAPI.Private api = new DeezerAPI.Private();
                 * if (query.isRemix)
                 * {
                 *  return await api.SearchQuery(query.username + " " + query.title + " " + query.labelname);
                 * }
                 * return await api.SearchQuery(query.username + " " + query.title);
                 */

                // Deezer Public API
                DeezerAPI.Official  api = new DeezerAPI.Official(query);
                ResultSearch.Search res = await api.Search();

                log.Info("Found " + res.Data.Count + " Tracks");
                if (res.Data.Count > 0)
                {
                    List <StandardTitle> tracks = new List <StandardTitle>();
                    Prepare p = new Prepare();
                    foreach (var i in res.Data)
                    {
                        tracks.Add(await p.PrepareDeezerQuery(new StandardTitle {
                            description = string.Empty, duration = (int)i.Duration, genre = string.Empty, id = i.Id.Value, labelname = string.Empty, search_stage = 0, title = i.Title, username = i.Artist.Name, artist = i.Artist.Name, url = i.Link.AbsoluteUri
                        }));
                    }
                    return(tracks);
                }
                return(new List <StandardTitle>());
            }
            catch (Exception e)
            {
                log.Warning("Search Query Exception: " + e.Message, e);
                return(new List <StandardTitle>());
            }
        }