public GenericListItemCollections GetList(SiteItemEntry entry)
 {
     GenericListItemCollections res = new GenericListItemCollections();
       res.Title = entry.Title;
       res.Add(VevoFavorite());
       res.Add(VevoUploads());
       List<ArtistItem> artists = ArtistManager.Instance.GetVevoArtists();
       foreach (ArtistItem artistItem in artists)
       {
     UserVideos userVideos = new UserVideos();
     SiteItemEntry itemEntry = new SiteItemEntry();
     itemEntry.Provider = userVideos.Name;
     itemEntry.SetValue("id", artistItem.User);
     string title = artistItem.Name;
     GenericListItem listItem = new GenericListItem()
     {
       Title = title,
       IsFolder = false,
       LogoUrl = artistItem.Img_url,
       DefaultImage = "defaultArtistBig.png",
       Tag = itemEntry
     };
     res.Add(listItem);
       }
       res.ItemType = ItemType.Artist;
       return res;
 }
        public GenericListItemCollections GetList(SiteItemEntry entry)
        {
            GenericListItemCollections res = new GenericListItemCollections();
              res.Title = entry.Title;
              int count = 0;
              int ii = 0;
              int.TryParse(entry.GetValue("items"), out ii);

              for (int i = Youtube2MP._settings.SearchHistory.Count; i > 0; i--)
              {
            count++;
            SiteItemEntry newentry = new SiteItemEntry();
            SearchVideo searchVideo = new SearchVideo();
            newentry.Provider = searchVideo.Name;
            newentry.SetValue("term", Youtube2MP._settings.SearchHistory[i - 1]);
            GenericListItem listItem = new GenericListItem()
                                     {
                                       Title = "Search result for :" + Youtube2MP._settings.SearchHistory[i - 1],
                                       IsFolder = true,
                                       //LogoUrl = YoutubeGUIBase.GetBestUrl(youTubeEntry.Media.Thumbnails),
                                       Tag = newentry
                                     };
            res.Items.Add(listItem);
            if (count > ii)
              break;
              }
              return res;
        }
        public GenericListItemCollections HomeGetList(SiteItemEntry itemEntry)
        {
            GenericListItemCollections res = new GenericListItemCollections();

              GenericListItem listItem = new GenericListItem()
              {
            Title = itemEntry.Title,
            IsFolder = true,
            //LogoUrl = YoutubeGUIBase.GetBestUrl(youTubeEntry.Media.Thumbnails),
            Tag = itemEntry
              };
              res.Items.Add(listItem);
              return res;
        }
 public static GenericListItem GetPager(SiteItemEntry entry, YouTubeFeed videos)
 {
     if (videos.TotalResults > videos.StartIndex + ITEM_IN_LIST)
     {
         SiteItemEntry newEntry = entry.Copy();
         newEntry.StartItem += ITEM_IN_LIST;
         GenericListItem listItem = new GenericListItem()
         {
             Title        = Translation.NextPage,
             IsFolder     = true,
             DefaultImage = "NextPage.png",
             Tag          = newEntry
         };
         return(listItem);
     }
     return(null);
 }
        public GenericListItemCollections HomeGetList(SiteItemEntry entry)
        {
            GenericListItemCollections res = new GenericListItemCollections();

            if (entry.GetValue("flat") == "true")
            {
                int count = 0;
                int ii    = 0;
                int.TryParse(entry.GetValue("items"), out ii);

                for (int i = Youtube2MP._settings.SearchHistory.Count; i > 0; i--)
                {
                    count++;
                    SiteItemEntry newentry    = new SiteItemEntry();
                    SearchVideo   searchVideo = new SearchVideo();
                    newentry.Provider = searchVideo.Name;
                    newentry.SetValue("term", Youtube2MP._settings.SearchHistory[i - 1]);
                    GenericListItem listItem = new GenericListItem()
                    {
                        Title    = "Search result for :" + Youtube2MP._settings.SearchHistory[i - 1],
                        IsFolder = true,
                        //LogoUrl = YoutubeGUIBase.GetBestUrl(youTubeEntry.Media.Thumbnails),
                        Tag = newentry
                    };
                    res.Items.Add(listItem);
                    if (count > ii)
                    {
                        break;
                    }
                }
            }
            else
            {
                GenericListItem listItem = new GenericListItem()
                {
                    Title    = entry.Title,
                    IsFolder = true,
                    //LogoUrl = YoutubeGUIBase.GetBestUrl(youTubeEntry.Media.Thumbnails),
                    Tag = entry
                };
                res.Items.Add(listItem);
            }
            return(res);
        }
        public GenericListItemCollections GetRecentlyPlayed()
        {
            GenericListItemCollections res = new GenericListItemCollections();

            try
            {
                string lsSQL =
                    string.Format(
                        "SELECT VIDEOS.VIDEO_ID AS VIDEO_ID, ARTIST_ID, TITLE, IMG_URL FROM VIDEOS, PLAY_HISTORY WHERE VIDEOS.VIDEO_ID=PLAY_HISTORY.VIDEO_ID order by datePlayed DESC");
                SQLiteResultSet loResultSet = m_db.Execute(lsSQL);
                string          lastid      = "";
                for (int iRow = 0; iRow < loResultSet.Rows.Count; iRow++)
                {
                    YouTubeEntry youTubeEntry = new YouTubeEntry();
                    if (lastid == DatabaseUtility.Get(loResultSet, iRow, "VIDEO_ID"))
                    {
                        continue;
                    }
                    lastid = DatabaseUtility.Get(loResultSet, iRow, "VIDEO_ID");
                    youTubeEntry.AlternateUri =
                        new AtomUri("http://www.youtube.com/watch?v=" + DatabaseUtility.Get(loResultSet, iRow, "VIDEO_ID"));
                    youTubeEntry.Title             = new AtomTextConstruct();
                    youTubeEntry.Title.Text        = DatabaseUtility.Get(loResultSet, iRow, "TITLE");
                    youTubeEntry.Media             = new MediaGroup();
                    youTubeEntry.Media.Description = new MediaDescription("");
                    youTubeEntry.Id = new AtomId(youTubeEntry.AlternateUri.Content);
                    GenericListItem listItem = new GenericListItem()
                    {
                        Title    = youTubeEntry.Title.Text,
                        IsFolder = false,
                        LogoUrl  = DatabaseUtility.Get(loResultSet, iRow, "IMG_URL"),
                        Tag      = youTubeEntry,
                        //ParentTag = artistItem
                    };
                    res.Items.Add(listItem);
                }
                ;
            }
            catch (Exception exception)
            {
                Log.Error(exception);
            }
            return(res);
        }
        public GenericListItemCollections GetList(SiteItemEntry entry)
        {
            GenericListItemCollections res = new GenericListItemCollections();

            res.Title = entry.Title;
            YouTubeQuery  query         = new YouTubeQuery(YouTubeQuery.CreatePlaylistsUri(entry.GetValue("id")));
            PlaylistsFeed userPlaylists = Youtube2MP.service.GetPlaylists(query);

            res.Title = userPlaylists.Title.Text;
            foreach (PlaylistsEntry playlistsEntry in userPlaylists.Entries)
            {
                Google.GData.Extensions.XmlExtension e = playlistsEntry.FindExtension("group", "http://search.yahoo.com/mrss/") as Google.GData.Extensions.XmlExtension;

                string img = "http://i2.ytimg.com/vi/hqdefault.jpg";
                try
                {
                    img = e.Node.FirstChild.Attributes["url"].Value;
                }
                catch
                {
                }

                PlayList playList = new PlayList();

                SiteItemEntry itemEntry = new SiteItemEntry();
                itemEntry.Provider = playList.Name;
                itemEntry.SetValue("url", playlistsEntry.Content.AbsoluteUri);
                string          title    = playlistsEntry.Title.Text;
                GenericListItem listItem = new GenericListItem()
                {
                    Title    = title,
                    IsFolder = false,
                    LogoUrl  = img.Replace("default", "hqdefault"),
                    //DefaultImage = "defaultArtistBig.png",
                    Tag = itemEntry
                };
                res.Add(listItem);
            }
            res.ItemType = ItemType.Item;
            return(res);
        }
Exemple #8
0
        protected void rptSubjectAreas_OnItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            GenericListItem gl          = null;
            Literal         subjectarea = null;


            if (e.Item.DataItem != null)
            {
                gl = (GenericListItem)e.Item.DataItem;
            }

            if (e.Item.FindControl("litAbout") != null)
            {
                subjectarea = (Literal)e.Item.FindControl("litAbout");
            }

            if (gl != null && subjectarea != null)
            {
                subjectarea.Text = "<a href='" + gl.Value + "'>" + gl.Text + "</a>";
            }
        }
Exemple #9
0
        protected void rptAuthors_OnItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            GenericListItem gl      = null;
            Literal         authors = null;


            if (e.Item.DataItem != null)
            {
                gl = (GenericListItem)e.Item.DataItem;
            }

            if (e.Item.FindControl("litAuthor") != null)
            {
                authors = (Literal)e.Item.FindControl("litAuthor");
            }

            if (gl != null && authors != null)
            {
                authors.Text = "<a href='" + gl.Value + "'>" + gl.Text + "</a>";
            }
        }
        public GenericListItemCollections GetTopPlayed(int numPlay)
        {
            GenericListItemCollections res = new GenericListItemCollections();

            try
            {
                string lsSQL =
                    string.Format(
                        "select * from (SELECT VIDEOS.VIDEO_ID AS VIDEO_ID, ARTIST_ID, TITLE, IMG_URL, count(PLAY_HISTORY.VIDEO_ID) as num_play FROM VIDEOS, PLAY_HISTORY WHERE VIDEOS.VIDEO_ID=PLAY_HISTORY.VIDEO_ID group by VIDEOS.VIDEO_ID, ARTIST_ID, TITLE, IMG_URL order by count(PLAY_HISTORY.VIDEO_ID) desc)where num_play>" +
                        numPlay.ToString());
                SQLiteResultSet loResultSet = m_db.Execute(lsSQL);
                for (int iRow = 0; iRow < loResultSet.Rows.Count; iRow++)
                {
                    YouTubeEntry youTubeEntry = new YouTubeEntry();

                    youTubeEntry.AlternateUri      = new AtomUri("http://www.youtube.com/watch?v=" + DatabaseUtility.Get(loResultSet, iRow, "VIDEO_ID"));
                    youTubeEntry.Title             = new AtomTextConstruct();
                    youTubeEntry.Title.Text        = DatabaseUtility.Get(loResultSet, iRow, "TITLE");
                    youTubeEntry.Media             = new MediaGroup();
                    youTubeEntry.Media.Description = new MediaDescription("");
                    youTubeEntry.Id = new AtomId(youTubeEntry.AlternateUri.Content);
                    GenericListItem listItem = new GenericListItem()
                    {
                        Title    = youTubeEntry.Title.Text,
                        IsFolder = false,
                        LogoUrl  = DatabaseUtility.Get(loResultSet, iRow, "IMG_URL"),
                        Tag      = youTubeEntry,
                        Title2   = DatabaseUtility.Get(loResultSet, iRow, "num_play"),
                        //ParentTag = artistItem
                    };
                    res.Items.Add(listItem);
                }
                ;
            }
            catch (Exception exception)
            {
                Log.Error(exception);
            }
            return(res);
        }
Exemple #11
0
        public GenericListItemCollections GetList(SiteItemEntry entry)
        {
            GenericListItemCollections res = new GenericListItemCollections();

            res.Title = entry.Title;
            {
                SiteItemEntry itemEntry = new SiteItemEntry();
                itemEntry.Provider = new UserPlaylists().Name;
                itemEntry.SetValue("id", entry.GetValue("id"));
                string          title    = "Playlist";
                GenericListItem listItem = new GenericListItem()
                {
                    Title    = title,
                    IsFolder = false,
                    LogoUrl  = entry.GetValue("imgurl"),
                    //DefaultImage = "defaultArtistBig.png",
                    Tag = itemEntry
                };
                res.Add(listItem);
            }
            {
                SiteItemEntry itemEntry = new SiteItemEntry();
                itemEntry.Provider = new UserVideos().Name;
                itemEntry.SetValue("id", entry.GetValue("id"));
                string          title    = "Uploads";
                GenericListItem listItem = new GenericListItem()
                {
                    Title    = title,
                    IsFolder = false,
                    LogoUrl  = entry.GetValue("imgurl"),
                    //DefaultImage = "defaultArtistBig.png",
                    Tag = itemEntry
                };
                res.Add(listItem);
            }
            res.ItemType = ItemType.Item;
            return(res);
        }
 public GenericListItemCollections GetList(SiteItemEntry entry)
 {
     GenericListItemCollections res = new GenericListItemCollections();
       res.Title = entry.Title;
       {
     SiteItemEntry itemEntry = new SiteItemEntry();
     itemEntry.Provider = new UserPlaylists().Name;
     itemEntry.SetValue("id", entry.GetValue("id"));
     string title = "Playlist";
     GenericListItem listItem = new GenericListItem()
     {
       Title = title,
       IsFolder = false,
       LogoUrl = entry.GetValue("imgurl"),
       //DefaultImage = "defaultArtistBig.png",
       Tag = itemEntry
     };
     res.Add(listItem);
       }
       {
     SiteItemEntry itemEntry = new SiteItemEntry();
     itemEntry.Provider = new UserVideos().Name;
     itemEntry.SetValue("id", entry.GetValue("id"));
     string title = "Uploads";
     GenericListItem listItem = new GenericListItem()
     {
       Title = title,
       IsFolder = false,
       LogoUrl = entry.GetValue("imgurl"),
       //DefaultImage = "defaultArtistBig.png",
       Tag = itemEntry
     };
     res.Add(listItem);
       }
       res.ItemType = ItemType.Item;
       return res;
 }
        public GenericListItemCollections GetList(SiteItemEntry entry)
        {
            GenericListItemCollections res = new GenericListItemCollections();
              res.Title = entry.Title;
              if (string.IsNullOrEmpty(entry.GetValue("level")))
              {
            foreach (KeyValuePair<string, string> keyValuePair in _settings.Regions)
            {
              SiteItemEntry newentry = new SiteItemEntry();
              newentry.Provider = this.Name;
              newentry.SetValue("region", keyValuePair.Key);
              newentry.SetValue("level", "1");
              newentry.Title = keyValuePair.Key;
              GenericListItem listItem = new GenericListItem()
                                       {
                                         Title = keyValuePair.Key,
                                         IsFolder = true,
                                         Tag = newentry
                                       };
              res.Items.Add(listItem);
            }
              }
              else if (entry.GetValue("level") == "1")
              {
            {
              SiteItemEntry newentry = new SiteItemEntry();
              newentry.Provider =this.Name;
              newentry.SetValue("region", entry.GetValue("region"));
              newentry.SetValue("level", "2");
              newentry.SetValue("hd", "false");
              newentry.Title = entry.Title + "/" + "All";
              GenericListItem listItem = new GenericListItem()
              {
            Title = "All",
            IsFolder = true,
            Tag = newentry
              };
              res.Items.Add(listItem);
            }
            {
              SiteItemEntry newentry = new SiteItemEntry();
              newentry.Provider = this.Name;
              newentry.SetValue("region", entry.GetValue("region"));
              newentry.SetValue("level", "2");
              newentry.SetValue("hd", "true");
              newentry.Title = entry.Title + "/" + "HD";
              GenericListItem listItem = new GenericListItem()
              {
            Title = "HD",
            IsFolder = true,
            Tag = newentry
              };
              res.Items.Add(listItem);
            }

              }
              else if (entry.GetValue("level") == "2")
              {
            for (int i = 0; i < _settings.Cats.Count; i++)
            {
              SiteItemEntry newentry = new SiteItemEntry();
              newentry.Provider = i > 4 ? "Standard feed" : this.Name;
              newentry.SetValue("region", entry.GetValue("region"));
              newentry.SetValue("hd", entry.GetValue("hd"));
              newentry.SetValue("level", "3");
              newentry.SetValue("feedint", i.ToString());
              newentry.Title = entry.Title + "/" + _settings.Cats[i];
              GenericListItem listItem = new GenericListItem()
              {
            Title = _settings.Cats[i],
            IsFolder = true,
            Tag = newentry
              };
              res.Items.Add(listItem);
            }
              }
              else if (entry.GetValue("level") == "3")
              {
            for (int i = 0; i < _settings.TimeList.Count; i++)
            {
              SiteItemEntry newentry = new SiteItemEntry();
              newentry.Provider = "Standard feed";
              newentry.SetValue("region", entry.GetValue("region"));
              newentry.SetValue("hd", entry.GetValue("hd"));
              newentry.SetValue("level", "4");
              newentry.SetValue("feedint", entry.GetValue("feedint"));
              newentry.SetValue("time", _settings.TimeList[i]);
              newentry.Title = entry.Title + "/" + _settings.TimeList[i];
              GenericListItem listItem = new GenericListItem()
              {
            Title = _settings.TimeList[i],
            IsFolder = true,
            Tag = newentry
              };
              res.Items.Add(listItem);
            }
              }
              return res;
        }
        public GenericListItemCollections GetList(SiteItemEntry entry)
        {
            GenericListItemCollections res = new GenericListItemCollections();

            res.Title = entry.Title;
            if (string.IsNullOrEmpty(entry.GetValue("level")))
            {
                foreach (KeyValuePair <string, string> keyValuePair in _settings.Regions)
                {
                    SiteItemEntry newentry = new SiteItemEntry();
                    newentry.Provider = this.Name;
                    newentry.SetValue("region", keyValuePair.Key);
                    newentry.SetValue("level", "1");
                    newentry.Title = keyValuePair.Key;
                    GenericListItem listItem = new GenericListItem()
                    {
                        Title    = keyValuePair.Key,
                        IsFolder = true,
                        Tag      = newentry
                    };
                    res.Items.Add(listItem);
                }
            }
            else if (entry.GetValue("level") == "1")
            {
                {
                    SiteItemEntry newentry = new SiteItemEntry();
                    newentry.Provider = this.Name;
                    newentry.SetValue("region", entry.GetValue("region"));
                    newentry.SetValue("level", "2");
                    newentry.SetValue("hd", "false");
                    newentry.Title = entry.Title + "/" + "All";
                    GenericListItem listItem = new GenericListItem()
                    {
                        Title    = "All",
                        IsFolder = true,
                        Tag      = newentry
                    };
                    res.Items.Add(listItem);
                }
                {
                    SiteItemEntry newentry = new SiteItemEntry();
                    newentry.Provider = this.Name;
                    newentry.SetValue("region", entry.GetValue("region"));
                    newentry.SetValue("level", "2");
                    newentry.SetValue("hd", "true");
                    newentry.Title = entry.Title + "/" + "HD";
                    GenericListItem listItem = new GenericListItem()
                    {
                        Title    = "HD",
                        IsFolder = true,
                        Tag      = newentry
                    };
                    res.Items.Add(listItem);
                }
            }
            else if (entry.GetValue("level") == "2")
            {
                for (int i = 0; i < _settings.Cats.Count; i++)
                {
                    SiteItemEntry newentry = new SiteItemEntry();
                    newentry.Provider = i > 4 ? "Standard feed" : this.Name;
                    newentry.SetValue("region", entry.GetValue("region"));
                    newentry.SetValue("hd", entry.GetValue("hd"));
                    newentry.SetValue("level", "3");
                    newentry.SetValue("feedint", i.ToString());
                    newentry.Title = entry.Title + "/" + _settings.Cats[i];
                    GenericListItem listItem = new GenericListItem()
                    {
                        Title    = _settings.Cats[i],
                        IsFolder = true,
                        Tag      = newentry
                    };
                    res.Items.Add(listItem);
                }
            }
            else if (entry.GetValue("level") == "3")
            {
                for (int i = 0; i < _settings.TimeList.Count; i++)
                {
                    SiteItemEntry newentry = new SiteItemEntry();
                    newentry.Provider = "Standard feed";
                    newentry.SetValue("region", entry.GetValue("region"));
                    newentry.SetValue("hd", entry.GetValue("hd"));
                    newentry.SetValue("level", "4");
                    newentry.SetValue("feedint", entry.GetValue("feedint"));
                    newentry.SetValue("time", _settings.TimeList[i]);
                    newentry.Title = entry.Title + "/" + _settings.TimeList[i];
                    GenericListItem listItem = new GenericListItem()
                    {
                        Title    = _settings.TimeList[i],
                        IsFolder = true,
                        Tag      = newentry
                    };
                    res.Items.Add(listItem);
                }
            }
            return(res);
        }
Exemple #15
0
        public GenericListItemCollections GetArtistVideosIds(string artist_name)
        {
            string site = DownloadArtistInfo(artist_name);

            GetSimilarArtistsSite(site);
            string playlist_id = null;

            try
            {
                Regex regexObj = new Regex("data-list_id=\"(?<name>.*?)\"", RegexOptions.Singleline);
                playlist_id = regexObj.Match(site).Groups["name"].Value;
            }
            catch (ArgumentException ex)
            {
                // Syntax error in the regular expression
            }
            site = DownloadString(string.Format("http://www.youtube.com/playlist?list={0}", playlist_id));

            GenericListItemCollections res = new GenericListItemCollections();

            try
            {
                //------------------------------
                //string img = Regex.Match(site, "<img class=\"artist-image\" src=\"(?<url>.*?)\" />", RegexOptions.Singleline).Groups["url"].Value;
                //ArtistItem artistItem = ArtistManager.Instance.GetArtistsById(artist_id);
                //artistItem.Img_url = img;
                //ArtistManager.Instance.Save(artistItem);
                //----------------------------
                //@"<li class=""playlist-video-item.*?<a href=""/watch\?v=(?<vid_id>.*?)&.*?data-thumb=""(?<thumb>.*?)"".*?<span class=""video-time"">(?<duration>.*?)</span>"

                //Regex regexObj = new Regex("album-row.*?data-video-ids=\"(?<vid_id>.*?)\".*?<span class=\"clip\"><img src=\"(?<thumb>.*?)\".*?album-track-name\">(?<title>.*?)</span>", RegexOptions.Singleline);
                Regex regexObj    = new Regex(@"playlist-video-item.*?<a href=""/watch\?v=(?<vid_id>.*?)&.*?data-thumb=""(?<thumb>.*?)"".*?<span class=""video-time"">(?<duration>.*?)</span>.*?video-title ""  dir=""ltr"">(?<title>.*?)</span>", RegexOptions.Singleline);
                Match matchResult = regexObj.Match(site);
                while (matchResult.Success)
                {
                    YouTubeEntry youTubeEntry = new YouTubeEntry();

                    youTubeEntry.AlternateUri      = new AtomUri("http://www.youtube.com/watch?v=" + matchResult.Groups["vid_id"].Value);
                    youTubeEntry.Title             = new AtomTextConstruct();
                    youTubeEntry.Title.Text        = HttpUtility.HtmlDecode(matchResult.Groups["title"].Value);
                    youTubeEntry.Media             = new MediaGroup();
                    youTubeEntry.Media.Description = new MediaDescription("");
                    youTubeEntry.Id = new AtomId(youTubeEntry.AlternateUri.Content);
                    GenericListItem listItem = new GenericListItem()
                    {
                        Title    = youTubeEntry.Title.Text,
                        IsFolder = false,
                        LogoUrl  = "http:" + matchResult.Groups["thumb"].Value.Replace("default.jpg", "hqdefault.jpg"),
                        Tag      = youTubeEntry,
                        Title2   = matchResult.Groups["duration"].Value,
                        //ParentTag = artistItem
                    };
                    res.Items.Add(listItem);
                    //resultList.Add(matchResult.Groups["groupname"].Value);
                    matchResult = matchResult.NextMatch();
                }
            }
            catch (Exception ex)
            {
                // Syntax error in the regular expression
            }
            res.ItemType = ItemType.Video;
            return(res);
        }
        public GenericListItemCollections GetList(SiteItemEntry entry)
        {
            GenericListItemCollections res = new GenericListItemCollections();
              if (entry.GetValue("letter") == "")
              {
            {
              res.Title = "Artists";
              SiteItemEntry newentry1 = new SiteItemEntry();
              newentry1.Provider = this.Name;
              newentry1.SetValue("letter", "true");
              newentry1.SetValue("special", "1");
              newentry1.Title = Translation.PlayedArtists;
              GenericListItem listItem1 = new GenericListItem()
                                        {
                                          Title = Translation.PlayedArtists,
                                          IsFolder = true,
                                          Tag = newentry1
                                        };
              res.Items.Add(listItem1);
            }

            {
              res.Title = "Artists";
              SiteItemEntry newentry1 = new SiteItemEntry();
              newentry1.Provider = this.Name;
              newentry1.SetValue("letter", "true");
              newentry1.SetValue("special", "2");
              newentry1.Title = Translation.ByTags;
              GenericListItem listItem1 = new GenericListItem()
              {
            Title = Translation.ByTags,
            IsFolder = true,
            Tag = newentry1
              };
              res.Items.Add(listItem1);
            }

            foreach (string letter in ArtistManager.Instance.GetArtistsLetters())
            {
              SiteItemEntry newentry = new SiteItemEntry();
              newentry.Provider = this.Name;
              newentry.SetValue("letter", "true");
              newentry.SetValue("special", "false");
              newentry.Title = letter;
              GenericListItem listItem = new GenericListItem()
                                       {
                                         Title = letter,
                                         IsFolder = true,
                                         Tag = newentry
                                       };
              res.Items.Add(listItem);
            }
              }
              if (entry.GetValue("letter") == "true" && entry.GetValue("special") == "false")
              {
            res.Title = "Artists/Letter/" + entry.Title;
            List<ArtistItem> list = ArtistManager.Instance.GetArtists(entry.Title);
            if (list.Count > 500)
            {
              foreach (string letter in ArtistManager.Instance.GetArtistsLetters(entry.Title))
              {
            SiteItemEntry newentry = new SiteItemEntry();
            newentry.Provider = this.Name;
            newentry.SetValue("letter", "true");
            newentry.SetValue("special", "false");
            newentry.Title = letter;
            GenericListItem listItem = new GenericListItem()
            {
              Title = letter,
              IsFolder = true,
              Tag = newentry
            };
            res.Items.Add(listItem);
              }
            }
            else
            {
              foreach (ArtistItem artistItem in list)
              {
            SiteItemEntry newentry = new SiteItemEntry();
            newentry.Provider = this.Name;
            newentry.SetValue("letter", "false");
            newentry.SetValue("id", artistItem.Id);
            newentry.SetValue("name", artistItem.Name);
            res.ItemType = ItemType.Artist;
            GenericListItem listItem = new GenericListItem()
                                         {
                                           Title = artistItem.Name,
                                           LogoUrl =
                                             string.IsNullOrEmpty(artistItem.Img_url.Trim()) ? "@" : artistItem.Img_url,
                                           IsFolder = true,
                                           DefaultImage = "defaultArtistBig.png",
                                           Tag = newentry
                                         };
            res.Items.Add(listItem);
              }
            }
              }
              if (entry.GetValue("special") == "1")
              {
            res.Title = "Artists/" + Translation.PlayedArtists;
            foreach (
              ArtistItem artistItem in
            ArtistManager.Instance.GetArtistsByIds(DatabaseProvider.InstanInstance.GetPlayedArtistIds(1)))
            {
              SiteItemEntry newentry = new SiteItemEntry();
              newentry.Provider = this.Name;
              newentry.SetValue("letter", "false");
              newentry.SetValue("id", artistItem.Id);
              newentry.SetValue("name", artistItem.Name);
              res.ItemType = ItemType.Artist;
              GenericListItem listItem = new GenericListItem()
                                       {
                                         Title = artistItem.Name,
                                         LogoUrl =
                                           string.IsNullOrEmpty(artistItem.Img_url.Trim()) ? "@" : artistItem.Img_url,
                                         IsFolder = true,
                                         DefaultImage = "defaultArtistBig.png",
                                         Tag = newentry
                                       };
              res.Items.Add(listItem);
            }
              }

              if (entry.GetValue("special") == "2")
              {
            res.Title = "Artists/" + Translation.ByTags;
            foreach (string[] strings in ArtistManager.Instance.GetTags())
            {
              SiteItemEntry newentry = new SiteItemEntry();
              newentry.Provider = this.Name;
              newentry.SetValue("letter", "true");
              newentry.SetValue("special", "3");
              newentry.SetValue("tag",strings[0]);
              res.ItemType = ItemType.Item;
              GenericListItem listItem = new GenericListItem()
              {
            Title = strings[0],
            IsFolder = true,
            Title2 = strings[1],
            Tag = newentry
              };
              res.Items.Add(listItem);
            }
              }

              if (entry.GetValue("special") == "3")
              {
            res.Title = "Artists/" + Translation.ByTags + "/" + entry.Title;
            foreach (ArtistItem artistItem in ArtistManager.Instance.GetArtistsByTag(entry.GetValue("tag")))
            {
              SiteItemEntry newentry = new SiteItemEntry();
              newentry.Provider = this.Name;
              newentry.SetValue("letter", "false");
              newentry.SetValue("id", artistItem.Id);
              newentry.SetValue("name", artistItem.Name);
              res.ItemType = ItemType.Artist;
              GenericListItem listItem = new GenericListItem()
              {
            Title = artistItem.Name,
            LogoUrl =
              string.IsNullOrEmpty(artistItem.Img_url.Trim()) ? "@" : artistItem.Img_url,
            IsFolder = true,
            DefaultImage = "defaultArtistBig.png",
            Tag = newentry
              };
              res.Items.Add(listItem);
            }
              }

              if (entry.GetValue("letter") == "false")
              {
            //res = ArtistManager.Instance.Grabber.GetArtistVideosIds(entry.GetValue("id"));
            res.ItemType = ItemType.Video;
            string user = ArtistManager.Instance.Grabber.GetArtistUser(entry.GetValue("id"));
            GenericListItemCollections resart = ArtistManager.Instance.Grabber.GetArtistVideosIds(entry.GetValue("name"));
            YouTubeFeed videos = null;
            try
            {
              if (!string.IsNullOrEmpty(user))
              {
            YouTubeQuery query =
              new YouTubeQuery(string.Format("http://gdata.youtube.com/feeds/api/users/{0}/uploads", user));
            query.NumberToRetrieve = 50;
            videos = Youtube2MP.service.Query(query);
              }
            }
            catch (Exception exception)
            {
              Log.Error(exception);
            }
            foreach (GenericListItem genericListItem in resart.Items)
            {
              YouTubeEntry tubeEntry = genericListItem.Tag as YouTubeEntry;
              YouTubeEntry searchEntry = GetVideFromFeed(Youtube2MP.GetVideoId(tubeEntry), videos);
              if (searchEntry != null)
              {
            searchEntry.Title.Text = tubeEntry.Title.Text;
            res.Items.Add(Youtube2MP.YouTubeEntry2ListItem(searchEntry));
              }
              else
              {
            res.Items.Add(genericListItem);
              }
            }
            res.FolderType = 1;
            res.Title = "Artists/" + ArtistManager.Instance.GetArtistsById(entry.GetValue("id")).Name;
              }
              return res;
        }
        public GenericListItemCollections GetArtistVideosIds(string artist_name)
        {
            string site = DownloadArtistInfo(artist_name);
              GetSimilarArtistsSite(site);
              string playlist_id = null;
              try
              {
            Regex regexObj = new Regex("data-list_id=\"(?<name>.*?)\"", RegexOptions.Singleline);
            playlist_id = regexObj.Match(site).Groups["name"].Value;
              }
              catch (ArgumentException ex)
              {
            // Syntax error in the regular expression
              }
              site = DownloadString(string.Format("http://www.youtube.com/playlist?list={0}", playlist_id));

              GenericListItemCollections res = new GenericListItemCollections();
              try
              {
            //------------------------------
            //string img = Regex.Match(site, "<img class=\"artist-image\" src=\"(?<url>.*?)\" />", RegexOptions.Singleline).Groups["url"].Value;
            //ArtistItem artistItem = ArtistManager.Instance.GetArtistsById(artist_id);
            //artistItem.Img_url = img;
            //ArtistManager.Instance.Save(artistItem);
            //----------------------------
            //@"<li class=""playlist-video-item.*?<a href=""/watch\?v=(?<vid_id>.*?)&.*?data-thumb=""(?<thumb>.*?)"".*?<span class=""video-time"">(?<duration>.*?)</span>"

            //Regex regexObj = new Regex("album-row.*?data-video-ids=\"(?<vid_id>.*?)\".*?<span class=\"clip\"><img src=\"(?<thumb>.*?)\".*?album-track-name\">(?<title>.*?)</span>", RegexOptions.Singleline);
            Regex regexObj = new Regex(@"playlist-video-item.*?<a href=""/watch\?v=(?<vid_id>.*?)&.*?data-thumb=""(?<thumb>.*?)"".*?<span class=""video-time"">(?<duration>.*?)</span>.*?video-title ""  dir=""ltr"">(?<title>.*?)</span>", RegexOptions.Singleline);
            Match matchResult = regexObj.Match(site);
            while (matchResult.Success)
            {
              YouTubeEntry youTubeEntry=new YouTubeEntry();

              youTubeEntry.AlternateUri = new AtomUri("http://www.youtube.com/watch?v=" + matchResult.Groups["vid_id"].Value);
              youTubeEntry.Title = new AtomTextConstruct();
              youTubeEntry.Title.Text =HttpUtility.HtmlDecode(matchResult.Groups["title"].Value);
              youTubeEntry.Media = new MediaGroup();
              youTubeEntry.Media.Description = new MediaDescription("");
              youTubeEntry.Id = new AtomId(youTubeEntry.AlternateUri.Content);
              GenericListItem listItem = new GenericListItem()
                                       {
                                         Title = youTubeEntry.Title.Text,
                                         IsFolder = false,
                                         LogoUrl = "http:" + matchResult.Groups["thumb"].Value.Replace("default.jpg", "hqdefault.jpg"),
                                         Tag = youTubeEntry,
                                         Title2 = matchResult.Groups["duration"].Value,
                                         //ParentTag = artistItem
                                       };
              res.Items.Add(listItem);
              //resultList.Add(matchResult.Groups["groupname"].Value);
              matchResult = matchResult.NextMatch();
            }
              }
              catch (Exception ex)
              {
            // Syntax error in the regular expression
              }
              res.ItemType = ItemType.Video;
              return res;
        }
        public GenericListItemCollections GetTopPlayed(int numPlay)
        {
            GenericListItemCollections res = new GenericListItemCollections();
              try
              {
            string lsSQL =
              string.Format(
            "select * from (SELECT VIDEOS.VIDEO_ID AS VIDEO_ID, ARTIST_ID, TITLE, IMG_URL, count(PLAY_HISTORY.VIDEO_ID) as num_play FROM VIDEOS, PLAY_HISTORY WHERE VIDEOS.VIDEO_ID=PLAY_HISTORY.VIDEO_ID group by VIDEOS.VIDEO_ID, ARTIST_ID, TITLE, IMG_URL order by count(PLAY_HISTORY.VIDEO_ID) desc)where num_play>" +
            numPlay.ToString());
            SQLiteResultSet loResultSet = m_db.Execute(lsSQL);
            for (int iRow = 0; iRow < loResultSet.Rows.Count; iRow++)
            {
              YouTubeEntry youTubeEntry = new YouTubeEntry();

              youTubeEntry.AlternateUri = new AtomUri("http://www.youtube.com/watch?v=" + DatabaseUtility.Get(loResultSet, iRow, "VIDEO_ID"));
              youTubeEntry.Title = new AtomTextConstruct();
              youTubeEntry.Title.Text = DatabaseUtility.Get(loResultSet, iRow, "TITLE");
              youTubeEntry.Media = new MediaGroup();
              youTubeEntry.Media.Description = new MediaDescription("");
              youTubeEntry.Id = new AtomId(youTubeEntry.AlternateUri.Content);
              GenericListItem listItem = new GenericListItem()
              {
            Title = youTubeEntry.Title.Text,
            IsFolder = false,
            LogoUrl = DatabaseUtility.Get(loResultSet, iRow, "IMG_URL"),
            Tag = youTubeEntry,
            Title2 = DatabaseUtility.Get(loResultSet, iRow, "num_play"),
            //ParentTag = artistItem
              };
              res.Items.Add(listItem);
            };

              }
              catch (Exception exception)
              {
            Log.Error(exception);
              }
              return res;
        }
        public GenericListItemCollections GetRecentlyPlayed()
        {
            GenericListItemCollections res = new GenericListItemCollections();
              try
              {
            string lsSQL =
              string.Format(
            "SELECT VIDEOS.VIDEO_ID AS VIDEO_ID, ARTIST_ID, TITLE, IMG_URL FROM VIDEOS, PLAY_HISTORY WHERE VIDEOS.VIDEO_ID=PLAY_HISTORY.VIDEO_ID order by datePlayed DESC");
            SQLiteResultSet loResultSet = m_db.Execute(lsSQL);
            string lastid = "";
            for (int iRow = 0; iRow < loResultSet.Rows.Count; iRow++)
            {
              YouTubeEntry youTubeEntry = new YouTubeEntry();
              if (lastid == DatabaseUtility.Get(loResultSet, iRow, "VIDEO_ID"))
            continue;
              lastid = DatabaseUtility.Get(loResultSet, iRow, "VIDEO_ID");
              youTubeEntry.AlternateUri =
            new AtomUri("http://www.youtube.com/watch?v=" + DatabaseUtility.Get(loResultSet, iRow, "VIDEO_ID"));
              youTubeEntry.Title = new AtomTextConstruct();
              youTubeEntry.Title.Text = DatabaseUtility.Get(loResultSet, iRow, "TITLE");
              youTubeEntry.Media = new MediaGroup();
              youTubeEntry.Media.Description = new MediaDescription("");
              youTubeEntry.Id = new AtomId(youTubeEntry.AlternateUri.Content);
              GenericListItem listItem = new GenericListItem()
                                       {
                                         Title = youTubeEntry.Title.Text,
                                         IsFolder = false,
                                         LogoUrl = DatabaseUtility.Get(loResultSet, iRow, "IMG_URL"),
                                         Tag = youTubeEntry,
                                         //ParentTag = artistItem
                                       };
              res.Items.Add(listItem);
            }
            ;

              }
              catch (Exception exception)
              {
            Log.Error(exception);
              }
              return res;
        }
        public GenericListItemCollections HomeGetList(SiteItemEntry entry)
        {
            GenericListItemCollections res = new GenericListItemCollections();

              string feedUrl = "http://gdata.youtube.com/feeds/api/users/"+entry.GetValue("id");
              ProfileEntry profile = (ProfileEntry)Youtube2MP.service.Get(feedUrl);

              string img = "";
              try
              {
            foreach (IExtensionElementFactory factory in profile.ExtensionElements)
            {
              if (factory.XmlName == "thumbnail")
            img = ((Google.GData.Extensions.XmlExtension)factory).Node.Attributes[0].Value;
            }
              }
              catch
              {
              }
              entry.SetValue("imgurl", img);
              GenericListItem listItem = new GenericListItem()
              {
            Title = entry.Title,
            IsFolder = true,
            LogoUrl = img,
            Tag = entry
              };
              res.Items.Add(listItem);
              return res;
        }
 private GenericListItem VevoFavorite()
 {
     SiteItemEntry itemEntry = new SiteItemEntry();
       itemEntry.Provider = new FavoritesVideos().Name;
       itemEntry.SetValue("user", "vevo");
       string title = "Vevo favorites";
       GenericListItem listItem = new GenericListItem()
       {
     Title = title,
     IsFolder = false,
     DefaultImage = "defaultArtistBig.png",
     Tag = itemEntry
       };
       return listItem;
 }
Exemple #22
0
        public GenericListItemCollections GetList(SiteItemEntry entry)
        {
            GenericListItemCollections res = new GenericListItemCollections();

            if (entry.GetValue("letter") == "")
            {
                {
                    res.Title = "Artists";
                    SiteItemEntry newentry1 = new SiteItemEntry();
                    newentry1.Provider = this.Name;
                    newentry1.SetValue("letter", "true");
                    newentry1.SetValue("special", "1");
                    newentry1.Title = Translation.PlayedArtists;
                    GenericListItem listItem1 = new GenericListItem()
                    {
                        Title    = Translation.PlayedArtists,
                        IsFolder = true,
                        Tag      = newentry1
                    };
                    res.Items.Add(listItem1);
                }

                {
                    res.Title = "Artists";
                    SiteItemEntry newentry1 = new SiteItemEntry();
                    newentry1.Provider = this.Name;
                    newentry1.SetValue("letter", "true");
                    newentry1.SetValue("special", "2");
                    newentry1.Title = Translation.ByTags;
                    GenericListItem listItem1 = new GenericListItem()
                    {
                        Title    = Translation.ByTags,
                        IsFolder = true,
                        Tag      = newentry1
                    };
                    res.Items.Add(listItem1);
                }

                foreach (string letter in ArtistManager.Instance.GetArtistsLetters())
                {
                    SiteItemEntry newentry = new SiteItemEntry();
                    newentry.Provider = this.Name;
                    newentry.SetValue("letter", "true");
                    newentry.SetValue("special", "false");
                    newentry.Title = letter;
                    GenericListItem listItem = new GenericListItem()
                    {
                        Title    = letter,
                        IsFolder = true,
                        Tag      = newentry
                    };
                    res.Items.Add(listItem);
                }
            }
            if (entry.GetValue("letter") == "true" && entry.GetValue("special") == "false")
            {
                res.Title = "Artists/Letter/" + entry.Title;
                List <ArtistItem> list = ArtistManager.Instance.GetArtists(entry.Title);
                if (list.Count > 500)
                {
                    foreach (string letter in ArtistManager.Instance.GetArtistsLetters(entry.Title))
                    {
                        SiteItemEntry newentry = new SiteItemEntry();
                        newentry.Provider = this.Name;
                        newentry.SetValue("letter", "true");
                        newentry.SetValue("special", "false");
                        newentry.Title = letter;
                        GenericListItem listItem = new GenericListItem()
                        {
                            Title    = letter,
                            IsFolder = true,
                            Tag      = newentry
                        };
                        res.Items.Add(listItem);
                    }
                }
                else
                {
                    foreach (ArtistItem artistItem in list)
                    {
                        SiteItemEntry newentry = new SiteItemEntry();
                        newentry.Provider = this.Name;
                        newentry.SetValue("letter", "false");
                        newentry.SetValue("id", artistItem.Id);
                        newentry.SetValue("name", artistItem.Name);
                        res.ItemType = ItemType.Artist;
                        GenericListItem listItem = new GenericListItem()
                        {
                            Title   = artistItem.Name,
                            LogoUrl =
                                string.IsNullOrEmpty(artistItem.Img_url.Trim()) ? "@" : artistItem.Img_url,
                            IsFolder     = true,
                            DefaultImage = "defaultArtistBig.png",
                            Tag          = newentry
                        };
                        res.Items.Add(listItem);
                    }
                }
            }
            if (entry.GetValue("special") == "1")
            {
                res.Title = "Artists/" + Translation.PlayedArtists;
                foreach (
                    ArtistItem artistItem in
                    ArtistManager.Instance.GetArtistsByIds(DatabaseProvider.InstanInstance.GetPlayedArtistIds(1)))
                {
                    SiteItemEntry newentry = new SiteItemEntry();
                    newentry.Provider = this.Name;
                    newentry.SetValue("letter", "false");
                    newentry.SetValue("id", artistItem.Id);
                    newentry.SetValue("name", artistItem.Name);
                    res.ItemType = ItemType.Artist;
                    GenericListItem listItem = new GenericListItem()
                    {
                        Title   = artistItem.Name,
                        LogoUrl =
                            string.IsNullOrEmpty(artistItem.Img_url.Trim()) ? "@" : artistItem.Img_url,
                        IsFolder     = true,
                        DefaultImage = "defaultArtistBig.png",
                        Tag          = newentry
                    };
                    res.Items.Add(listItem);
                }
            }

            if (entry.GetValue("special") == "2")
            {
                res.Title = "Artists/" + Translation.ByTags;
                foreach (string[] strings in ArtistManager.Instance.GetTags())
                {
                    SiteItemEntry newentry = new SiteItemEntry();
                    newentry.Provider = this.Name;
                    newentry.SetValue("letter", "true");
                    newentry.SetValue("special", "3");
                    newentry.SetValue("tag", strings[0]);
                    res.ItemType = ItemType.Item;
                    GenericListItem listItem = new GenericListItem()
                    {
                        Title    = strings[0],
                        IsFolder = true,
                        Title2   = strings[1],
                        Tag      = newentry
                    };
                    res.Items.Add(listItem);
                }
            }

            if (entry.GetValue("special") == "3")
            {
                res.Title = "Artists/" + Translation.ByTags + "/" + entry.Title;
                foreach (ArtistItem artistItem in ArtistManager.Instance.GetArtistsByTag(entry.GetValue("tag")))
                {
                    SiteItemEntry newentry = new SiteItemEntry();
                    newentry.Provider = this.Name;
                    newentry.SetValue("letter", "false");
                    newentry.SetValue("id", artistItem.Id);
                    newentry.SetValue("name", artistItem.Name);
                    res.ItemType = ItemType.Artist;
                    GenericListItem listItem = new GenericListItem()
                    {
                        Title   = artistItem.Name,
                        LogoUrl =
                            string.IsNullOrEmpty(artistItem.Img_url.Trim()) ? "@" : artistItem.Img_url,
                        IsFolder     = true,
                        DefaultImage = "defaultArtistBig.png",
                        Tag          = newentry
                    };
                    res.Items.Add(listItem);
                }
            }


            if (entry.GetValue("letter") == "false")
            {
                //res = ArtistManager.Instance.Grabber.GetArtistVideosIds(entry.GetValue("id"));
                res.ItemType = ItemType.Video;
                string user = ArtistManager.Instance.Grabber.GetArtistUser(entry.GetValue("id"));
                GenericListItemCollections resart = ArtistManager.Instance.Grabber.GetArtistVideosIds(entry.GetValue("name"));
                YouTubeFeed videos = null;
                try
                {
                    if (!string.IsNullOrEmpty(user))
                    {
                        YouTubeQuery query =
                            new YouTubeQuery(string.Format("http://gdata.youtube.com/feeds/api/users/{0}/uploads", user));
                        query.NumberToRetrieve = 50;
                        videos = Youtube2MP.service.Query(query);
                    }
                }
                catch (Exception exception)
                {
                    Log.Error(exception);
                }
                foreach (GenericListItem genericListItem in resart.Items)
                {
                    YouTubeEntry tubeEntry   = genericListItem.Tag as YouTubeEntry;
                    YouTubeEntry searchEntry = GetVideFromFeed(Youtube2MP.GetVideoId(tubeEntry), videos);
                    if (searchEntry != null)
                    {
                        searchEntry.Title.Text = tubeEntry.Title.Text;
                        res.Items.Add(Youtube2MP.YouTubeEntry2ListItem(searchEntry));
                    }
                    else
                    {
                        res.Items.Add(genericListItem);
                    }
                }
                res.FolderType = 1;
                res.Title      = "Artists/" + ArtistManager.Instance.GetArtistsById(entry.GetValue("id")).Name;
            }
            return(res);
        }