Beispiel #1
0
		public VodList( DownloadForm parent, Twixel twixel ) {
			InitializeComponent();
			DownloadWindow = parent;
			TwitchAPI = twixel;
			comboBoxService.Text = "Twitch (Recordings)";
			objectListViewVideos.SecondarySortColumn = objectListViewVideos.GetColumn( "Video ID" );
			objectListViewVideos.SecondarySortOrder = SortOrder.Ascending;

			comboBoxKnownUsers.Items.Add( " == No Preset == " );
			comboBoxKnownUsers.Items.AddRange( UserInfoPersister.KnownUsers.ToArray() );
			comboBoxKnownUsers.SelectedIndex = 0;

			buttonClear.Enabled = false;
			checkBoxAutoDownload.Enabled = false;

			if ( !Util.ShowDownloadFetched ) {
				buttonDownloadFetched.Enabled = false;
				buttonDownloadFetched.Hide();
				buttonDownloadAllKnown.Enabled = false;
				buttonDownloadAllKnown.Hide();
				checkBoxAutoDownload.Hide();
			}
			if ( !Util.ShowAnySpecialButton ) {
				objectListViewVideos.Size = new Size( objectListViewVideos.Size.Width, objectListViewVideos.Size.Height + 29 );
			}
		}
Beispiel #2
0
        public VodList(DownloadForm parent)
        {
            InitializeComponent();
            DownloadWindow       = parent;
            comboBoxService.Text = "Twitch (Recordings)";
            objectListViewVideos.SecondarySortColumn = objectListViewVideos.GetColumn("Video ID");
            objectListViewVideos.SecondarySortOrder  = SortOrder.Ascending;

            comboBoxKnownUsers.Items.Add(" == No Preset == ");
            comboBoxKnownUsers.Items.AddRange(UserInfoPersister.GetKnownUsers().ToArray());
            comboBoxKnownUsers.SelectedIndex = 0;

            buttonClear.Enabled          = false;
            checkBoxAutoDownload.Enabled = false;

            if (!Util.ShowDownloadFetched)
            {
                buttonDownloadFetched.Enabled = false;
                buttonDownloadFetched.Hide();
                buttonDownloadAllKnown.Enabled = false;
                buttonDownloadAllKnown.Hide();
                checkBoxAutoDownload.Hide();
            }
            if (!Util.ShowAnySpecialButton)
            {
                objectListViewVideos.Size = new Size(objectListViewVideos.Size.Width, objectListViewVideos.Size.Height + 29);
            }
        }
Beispiel #3
0
 public static void DownloadFetched(IEnumerable <IVideoInfo> videos, DownloadForm downloadWindow)
 {
     Console.WriteLine("Enqueueing " + videos.Count() + " videos...");
     foreach (IVideoInfo videoInfo in videos)
     {
         Console.WriteLine("Enqueueing " + videoInfo.Username + "/" + videoInfo.VideoId);
         downloadWindow.CreateAndEnqueueJob(videoInfo);
     }
 }
Beispiel #4
0
        public static async Task AutoDownload(IUserInfo[] users, DownloadForm downloadWindow)
        {
            Random rng = new Random();

            for (int i = 0; i < users.Length; ++i)
            {
                var userInfo = users[i];
                if (userInfo != null)
                {
                    if (!userInfo.AutoDownload)
                    {
                        continue;
                    }

                    List <IVideoInfo> videos = new List <IVideoInfo>();

                    while (true)
                    {
                        downloadWindow.AddStatusMessage("[" + (i + 1).ToString() + "/" + users.Length.ToString() + "] Fetching " + userInfo.ToString() + "...");

                        try {
                            FetchReturnValue fetchReturnValue;
                            int Offset = 0;
                            do
                            {
                                await Task.Delay(rng.Next(55000, 95000));

                                fetchReturnValue = await Fetch(userInfo, Offset, true);

                                Offset += fetchReturnValue.VideoCountThisFetch;
                                if (fetchReturnValue.Success)
                                {
                                    videos.AddRange(fetchReturnValue.Videos);
                                }
                            } while (fetchReturnValue.Success && fetchReturnValue.HasMore);
                            break;
                        } catch (Exception ex) {
                            downloadWindow.AddStatusMessage("Error during " + userInfo.ToString() + ": " + ex.ToString());
                            break;
                        }
                    }

                    await Task.Delay(rng.Next(55000, 95000));

                    DownloadFetched(videos, downloadWindow);
                }
            }
        }
Beispiel #5
0
		public static async Task AutoDownload( UserInfo[] users, Twixel twitchApi, DownloadForm downloadWindow ) {
			for ( int i = 0; i < users.Length; ++i ) {
				var userInfo = users[i];
				if ( userInfo != null ) {
					if ( !userInfo.AutoDownload ) {
						continue;
					}

					List<IVideoInfo> videos = new List<IVideoInfo>();

					while ( true ) {
						downloadWindow.SetAutoDownloadStatus( "[" + ( i + 1 ).ToString() + "/" + users.Length.ToString() + "] Fetching " + userInfo.ToString() + "..." );

						try {
							FetchReturnValue fetchReturnValue;
							do {
								await Task.Delay( 15000 );
								fetchReturnValue = await Fetch( twitchApi, userInfo, videos.Count );
								if ( fetchReturnValue.Success ) {
									videos.AddRange( fetchReturnValue.Videos );
								}
							} while ( fetchReturnValue.Success && fetchReturnValue.HasMore );
							break;
						} catch ( Exception ex ) {
							// TODO: Better errorhandling?
							break;
						}
					}

					DownloadFetched( videos, downloadWindow );
				}
			}
		}
Beispiel #6
0
		public static void DownloadFetched( IEnumerable<IVideoInfo> videos, DownloadForm downloadWindow ) {
			Console.WriteLine( "Enqueueing " + videos.Count() + " videos..." );
			foreach ( IVideoInfo videoInfo in videos ) {
				Console.WriteLine( "Enqueueing " + videoInfo.Username + "/" + videoInfo.VideoId );
				if ( videoInfo.VideoType == VideoFileType.M3U ) {
					downloadWindow.CreateAndEnqueueJob( videoInfo );
				}
				for ( int i = 0; i < DownloadForm.MaxRunningJobs; ++i ) {
					Task.Run( () => downloadWindow.RunJob() );
				}
			}
		}
 public VideoSplitWindow(DownloadForm downloadForm)
 {
     this.downloadForm = downloadForm;
     InitializeComponent();
 }