예제 #1
0
        public IEnumerable <Video> Get(string searchText)
        {
            var u = new YouTubeManager();
            var r = u.SearchYouTubeAsync(searchText);

            return(r.Result.VideoResults);
        }
예제 #2
0
 public ICompilation()
 {
     _database       = new Database();
     _redditManager  = new RedditManager();
     _twitchManager  = new TwitchManager();
     _videoManager   = new VideoManager();
     _youtubeManager = new YouTubeManager();
 }
예제 #3
0
        private void button1_Click_1(object sender, EventArgs e)
        {
            if (!string.IsNullOrEmpty(txYoutubeUrl.Text))
            {
                TimeSpan?begin   = txYoutubeFromSeconds.GetTimeSpan();
                TimeSpan?endAt   = txYoutubeToSeconds.GetTimeSpan();
                var      vidPath = YouTubeManager.DownloadAndConvert(txYoutubeUrl.Text, begin, endAt);
                DbController.AddMusicItem(vidPath);

                txYoutubeUrl.Text = string.Empty;
                MessageBox.Show(string.Format("{0} Successfully Downloaded !", Path.GetFileName(vidPath.FullFileName)));
            }
        }
예제 #4
0
        /// <summary>
        /// Fills the list with default tracks
        /// </summary>
        private void FillDefaultTracks()
        {
            try
            {
                if (ysThread != null && ysThread.IsAlive)
                {
                    ysThread.Abort();
                }
            }
            catch (Exception exc)
            {
                U.L(LogLevel.Error, "YOUTUBE", "Could not abort search thread: " + exc.Message);
            }

            ThreadStart YouTubeThread = delegate()
            {
                Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate()
                {
                    SearchOverlay = Visibility.Visible;
                }));

                try
                {
                    ObservableCollection <TrackData> tracks = YouTubeManager.TopFeed("top_rated");

                    Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate()
                    {
                        //ClearSort();
                        ItemsSource = tracks;
                    }));
                }
                catch (Exception e)
                {
                    U.L(LogLevel.Warning, "YouTube", "Could not populate TopRated: " + e.Message);
                }

                Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate()
                {
                    SearchOverlay = Visibility.Collapsed;
                }));
            };

            ysThread          = new Thread(YouTubeThread);
            ysThread.Name     = "YouTube default";
            ysThread.Priority = ThreadPriority.BelowNormal;
            ysThread.Start();
        }
예제 #5
0
        /// <summary>
        /// Invoked when the search delay is hit
        /// </summary>
        /// <param name="sender">The sender of the event</param>
        /// <param name="e">The event data</param>
        private void SearchDelay_Tick(object sender, EventArgs e)
        {
            searchDelay.Stop();

            try
            {
                if (ysThread != null && ysThread.IsAlive)
                {
                    ysThread.Abort();
                }
            }
            catch { }

            ThreadStart searchThread = delegate()
            {
                Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate()
                {
                    SearchOverlay = Visibility.Visible;
                }));

                try
                {
                    ObservableCollection <TrackData> tracks = YouTubeManager.Search(searchText);

                    Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate()
                    {
                        //ClearSort();
                        ItemsSource = tracks;
                    }));
                }
                catch (Exception exc)
                {
                    U.L(LogLevel.Warning, "YouTube", "Could not search: " + exc.Message);
                }

                Dispatcher.Invoke(DispatcherPriority.Background, new Action(delegate()
                {
                    SearchOverlay = Visibility.Collapsed;
                }));
            };

            ysThread          = new Thread(searchThread);
            ysThread.Name     = "YouTube search";
            ysThread.Priority = ThreadPriority.BelowNormal;
            ysThread.Start();
        }
예제 #6
0
        /// <summary>
        /// Will load the current track into the youtube player if it is a youtube track
        /// </summary>
        public void LoadYouTube()
        {
            YouTubeManager.HasFlash = true;
            if (invokeAtLoad != null)
            {
                string   function = invokeAtLoad[0] as string;
                object[] param    = invokeAtLoad[1] as object[];
                invokeAtLoad = null;
                InvokeScript(function, param);
            }

            if (YouTubeManager.IsYouTube(SettingsManager.CurrentTrack))
            {
                string vid = YouTubeManager.GetYouTubeID(SettingsManager.CurrentTrack.Path);
                InvokeScript("setVolume", new object[] { SettingsManager.Volume });
                InvokeScript("cueNewVideo", new object[] { vid, 0 });
                SettingsManager.Seek = 0;
            }
        }
예제 #7
0
        public void Init()
        {
            GetAccounts();

            var option = new ChromeOptions
            {
                BinaryLocation = "C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
            };

            option.AddArgument("--disable-notifications");
            option.AddArgument("--mute-audio");
            option.AddArgument("--start-maximized");

            _youTubeManager = new YouTubeManager();
            _youTubeManager.SetContextBrowserManager(_chromeDriver);

            _chromeDriver = new ChromeDriver(PATH_TO_DRIVER, option, TimeSpan.FromSeconds(200));

            _accounts = AccountService.GetAccounts().Where(w => w.AccountType == AccountType.YouTube).First();
        }
예제 #8
0
    /// <summary>
    /// Load control .
    /// </summary>
    private void LoadSocialBoxes()
    {
        List <String> cta_boxes   = new List <String>();
        int           total_boxes = Convert.ToInt32(SocialBoxCount);

        if (!String.IsNullOrEmpty(CTAS))
        {
            try{
                cta_boxes = Regex.Split(CTAS, "{}").ToList();
            }
            catch (Exception ex)
            {
                EventLogProvider.LogException("SocialApp control", "LoadSocialBoxes CTA", ex);
            }
        }
        int           social_count = total_boxes - cta_boxes.Count();
        List <String> obj_list     = new List <String>();

        if (!String.IsNullOrEmpty(InstagramUserID))
        {
            try
            {
                InstagramManager imgr    = new InstagramManager(InstagramOAuthConsumerID, InstagramOAuthConsumerSecret, RedirectURL);
                List <String>    instgrm = imgr.GetRandom(Convert.ToInt32(InstagramUserID), total_boxes).ToList();
                obj_list = obj_list.Concat(instgrm).ToList();
            }
            catch (Exception ex)
            {
                EventLogProvider.LogException("SocialApp control", "LoadSocialBoxes Instagram", ex);
            }
        }
        if (!String.IsNullOrEmpty(TwitterUser))
        {
            try
            {
                TwitterManager tm = new TwitterManager(TwitterOAuthConsumerID, TwitterOAuthConsumerSecret, TwitterOAuthAccessToken, TwitterOAuthAccessSecret);

                List <String> tweet = tm.GetRandomTweet(TwitterUser, total_boxes).ToList();
                obj_list = obj_list.Concat(tweet).ToList();
            }
            catch (Exception ex)
            {
                EventLogProvider.LogException("SocialApp control", "LoadSocialBoxes Twitter", ex);
            }
        }
        if (!String.IsNullOrEmpty(FacebookUserID))
        {
            try
            {
                FacebookManager fmgr   = new FacebookManager(FacebookAuthToken, FacebookAppID, FacebookClientSecret, FacebookRedirectURI);
                List <String>   fbpost = fmgr.GetRandomPost(FacebookUserID, total_boxes).ToList();
                obj_list = obj_list.Concat(fbpost).ToList();
            }
            catch (Exception ex)
            {
                EventLogProvider.LogException("SocialApp control", "LoadSocialBoxes Facebook", ex);
            }
        }
        if (!String.IsNullOrEmpty(youtube_api_key))
        {
            try
            {
                YouTubeManager ytmgr   = new YouTubeManager(youtube_api_key);
                List <String>  ytvideo = ytmgr.GetVideosByPlaylistID(youtube_playlist_id, total_boxes).ToList();
                obj_list = obj_list.Concat(ytvideo).ToList();
            }
            catch (Exception ex)
            {
                EventLogProvider.LogException("SocialApp control", "LoadSocialBoxes Youtube", ex);
            }
        }

        //Randomize the list of social items and take the top # of social boxes
        obj_list = obj_list.OrderBy(x => Guid.NewGuid()).Take(social_count).ToList();

        //CTAs are always shown, add on to the end of the main list
        if (!String.IsNullOrEmpty(CTAS))
        {
            OtherManager  cta_build = new OtherManager();
            List <String> ctas      = cta_build.BuildCTAList(cta_boxes).ToList();
            obj_list = obj_list.Concat(ctas).ToList();
        }

        //If the number of boxes are less than the number requested, fill with backup images
        if ((obj_list.Count() < total_boxes) && !String.IsNullOrEmpty(BackupImages))
        {
            try
            {
                int           num_images = total_boxes - obj_list.Count();
                OtherManager  img_build  = new OtherManager();
                List <String> imgs       = img_build.BuildImageList(s_images_list, num_images).ToList();
                obj_list = obj_list.Concat(imgs).ToList();
            }
            catch (Exception ex)
            {
                EventLogProvider.LogException("SocialApp control", "LoadSocialBoxes BackupImages", ex);
            }
        }

        //randomize again
        obj_list = obj_list.OrderBy(x => Guid.NewGuid()).ToList();

        StringBuilder sb = new StringBuilder();

        foreach (String s in obj_list)
        {
            sb.Append(s);
        }
        community_box_list.InnerHtml = sb.ToString();
    }