Exemplo n.º 1
0
    protected void OnTopSetlistsMenuChanged(object sender, EventArgs e)
    {
        clear();
        ArtistInfoObjectsOn();
        var         id    = TopSetlistsMenu.Active;
        SetlistInfo check = ParseSetlistPage(Globals.TopSetlists[id].link, Globals.TopSetlists[id].bandName);

        Globals.CurrentArtist           = ParseArtistPage(check.artistLink, check.bandName);
        Globals.CurrentArtistToursLinks = Globals.CurrentArtist.tours.Keys.ToList();
        label1.Text = Globals.CurrentArtist.bandName;
        foreach (var song in Globals.CurrentArtist.songs)
        {
            AllArtistSongsMenu.AppendText(song);
        }
        foreach (var tour in Globals.CurrentArtist.tours.Values)
        {
            ArtistToursMenu.AppendText(tour);
        }
        foreach (var album in Globals.CurrentArtist.albums)
        {
            ArtistAlbumsMenu.AppendText(album);
        }
        foreach (var song in check.songs)
        {
            SongsInSetlistMenu.AppendText(song);
        }
    }
Exemplo n.º 2
0
    public static SetlistInfo ParseSetlistPage(MainInfo parent)
    {
        // Get all name of songs in the page
        List <string>      songs      = new List <string>();
        string             artistLink = "";
        HtmlWeb            webDoc     = new HtmlWeb();
        HtmlDocument       doc        = webDoc.Load("https://www.setlist.fm/" + parent.link);
        HtmlNodeCollection nodes      = doc.DocumentNode.SelectNodes("//a");

        foreach (var tag in nodes)
        {
            if (tag.Attributes.Contains("class") &&
                tag.Attributes["class"].Value == "songLabel" &&
                !songs.Contains(tag.InnerText))
            {
                var name = clean(tag.InnerText.Trim());
                songs.Add(name);
            }
            if (tag.Attributes.Contains("title") &&
                tag.Attributes["title"].Value == "View song statistics of all setlists")
            {
                artistLink = tag.Attributes["href"].Value.Replace("../", "");
            }
        }
        if (songs.Count == 0)
        {
            songs.Add("Nothing");
        }
        SetlistInfo obj = new SetlistInfo(parent.GetFields(), artistLink, songs);

        return(obj);
    }
Exemplo n.º 3
0
    public static SetlistInfo ParseSetlistPage(string link, string bandName)
    {
        /* Get main info from setlist page
         * of one artist.
         *
         * Input: link on setlist and name of
         * setlist artist.
         *
         * Output: SetlistInfo object
         * (see info in SetlistInfo.cs)
         */
        List <string>      songs      = new List <string>();
        string             artistLink = "";
        HtmlWeb            webDoc     = new HtmlWeb();
        HtmlDocument       doc        = webDoc.Load("https://www.setlist.fm/" + link);
        HtmlNodeCollection nodes      = doc.DocumentNode.SelectNodes("//a");

        foreach (var tag in nodes)
        {
            if ((tag.Attributes.Contains("class") &&
                 tag.Attributes["class"].Value == "summary url") ||
                (tag.Attributes.Contains("title") &&
                 tag.Attributes["title"].Value.StartsWith("Statistics for", StringComparison.Ordinal)) &&
                !songs.Contains(tag.InnerText))
            {
                var name = clean(tag.InnerText.Trim());
                songs.Add(name);
            }
            if (tag.Attributes.Contains("title") &&
                tag.Attributes["title"].Value == "View song statistics of all setlists")
            {
                artistLink = tag.Attributes["href"].Value.Replace("../", "");
            }
        }
        if (songs.Count == 0)
        {
            songs.Add("Nothing");
        }
        SetlistInfo obj = new SetlistInfo(bandName, artistLink, songs);

        return(obj);
    }
Exemplo n.º 4
0
    protected void OnArtistTopSetlistsChanged(object sender, EventArgs e)
    {
        ArtistInfoObjectsOn();
        var id = ArtistTopSetlists.Active;

        for (int i = 0; i < 100; i++)
        {
            SongsInSetlistMenu.RemoveText(0);
        }
        try
        {
            SetlistInfo check = ParseSetlistPage(Globals.SearchingPageInfo.Setlists.Keys.ElementAt(id), Globals.SearchingPageInfo.bandName);
            foreach (var song in check.songs)
            {
                SongsInSetlistMenu.AppendText(song);
            }
        }
        catch (Exception ex)
        {
            label1.Text = ex.ToString();
        }
    }