def __init__(self, app_obj, update_type, wiz_win_obj=None): super(UpdateManager, self).__init__() # IV list - class objects # ----------------------- # The mainapp.TartubeApp object self.app_obj = app_obj # The calling setup wizard window (if set, the main window doesn't # exist yet) self.wiz_win_obj = wiz_win_obj # The child process created by self.create_child_process() self.child_process = None # Read from the child process STDOUT (i.e. self.child_process.stdout) # and STDERR (i.e. self.child_process.stderr) in an asynchronous way # by polling this queue.PriorityQueue object self.queue = queue.PriorityQueue() self.stdout_reader = downloads.PipeReader(self.queue, 'stdout') self.stderr_reader = downloads.PipeReader(self.queue, 'stderr') # IV list - other # --------------- # The time (in seconds) between iterations of the loop in # self.install_ffmpeg(), .install_matplotlib(), .install_streamlink() # and .install_ytdl() self.sleep_time = 0.1 # 'ffmpeg' to install FFmpeg (on MS Windows only), 'matplotlib' to # install matplotlib (on MS Windows only), 'streamlink' to install # streamlink (on MS Windows only) or 'ytdl' to install/update # youtube-dl (or a fork of it) self.update_type = update_type # Flag set to True if the update operation succeeds, False if it fails self.success_flag = False # The youtube-dl version number as a string, if captured from the child # process (e.g. '2019.07.02') self.ytdl_version = None # (For debugging purposes, store any STDOUT/STDERR messages received; # otherwise we would just set a flag if a STDERR message was # received) self.stdout_list = [] self.stderr_list = [] # Code # ---- # Let's get this party started! self.start()
def __init__(self, app_obj, update_type, wiz_win_obj=None): super(UpdateManager, self).__init__() # IV list - class objects # ----------------------- # The mainapp.TartubeApp object self.app_obj = app_obj # The calling setup wizard window (if set, the main window doesn't # exist yet) self.wiz_win_obj = wiz_win_obj # This object reads from the child process STDOUT and STDERR in an # asynchronous way # Standard Python synchronised queue classes self.stdout_queue = queue.Queue() self.stderr_queue = queue.Queue() # The downloads.PipeReader objects created to handle reading from the # pipes self.stdout_reader = downloads.PipeReader(self.stdout_queue) self.stderr_reader = downloads.PipeReader(self.stderr_queue) # The child process created by self.create_child_process() self.child_process = None # IV list - other # --------------- # 'ffmpeg' to install FFmpeg (on MS Windows only), or 'ytdl' to # install/update youtube-dl self.update_type = update_type # Flag set to True if the update operation succeeds, False if it fails self.success_flag = False # The youtube-dl version number as a string, if captured from the child # process (e.g. '2019.07.02') self.ytdl_version = None # (For debugging purposes, store any STDOUT/STDERR messages received; # otherwise we would just set a flag if a STDERR message was # received) self.stdout_list = [] self.stderr_list = [] # Code # ---- # Let's get this party started! self.start()
def __init__(self, app_obj): super(UpdateManager, self).__init__() # IV list - class objects # ----------------------- # The mainapp.TartubeApp object self.app_obj = app_obj # This object reads from the child process STDOUT and STDERR in an # asynchronous way # Standard Python synchronised queue classes self.stdout_queue = queue.Queue() self.stderr_queue = queue.Queue() # The downloads.PipeReader objects created to handle reading from the # pipes self.stdout_reader = downloads.PipeReader(self.stdout_queue) self.stderr_reader = downloads.PipeReader(self.stderr_queue) # The child process created by self.create_child_process() self.child_process = None # The youtube-dl version number as a string, if captured from the child # process (e.g. '2019.07.02') self.ytdl_version = None # IV list - other # --------------- # (For debugging purposes, store any STDOUT/STDERR messages received; # otherwise we would just set a flag if a STDERR message was # received) self.stdout_list = [] self.stderr_list = [] # Code # ---- # Let's get this party started! self.start()
def __init__(self, app_obj, info_type, media_data_obj, url_string, options_string): super(InfoManager, self).__init__() # IV list - class objects # ----------------------- # The mainapp.TartubeApp object self.app_obj = app_obj # The video for which information will be fetched (None if # self.info_type is 'test_ytdl') self.video_obj = media_data_obj # This object reads from the child process STDOUT and STDERR in an # asynchronous way # Standard Python synchronised queue classes self.stdout_queue = queue.Queue() self.stderr_queue = queue.Queue() # The downloads.PipeReader objects created to handle reading from the # pipes self.stdout_reader = downloads.PipeReader(self.stdout_queue) self.stderr_reader = downloads.PipeReader(self.stderr_queue) # The child process created by self.create_child_process() self.child_process = None # IV list - other # --------------- # The type of information to fetch: 'formats' for a list of video # formats, 'subs' for a list of subtitles, 'test_ytdl' to test # youtube-dl with specified options, or 'version' to check for a new # release of Tartube self.info_type = info_type # For 'test_ytdl', the video URL to download (can be None or an empty # string, if no download is required, for example # 'youtube-dl --version'. For 'formats' and 'subs', set to None self.url_string = url_string # For 'test_ytdl', a string containing one or more youtube-dl download # options. The string, generated by a Gtk.TextView, typically # contains newline and/or multiple whitespace characters; the # info.InfoManager code deals with that. Can be None or an empty # string, if no download options are required. For 'formats' and # 'subs', set to None self.options_string = options_string # For 'version', the version numbers (e.g. 1.2.003) retrieved from the # main website (representing a stable release), and from github # (representing a development release) self.stable_version = None self.dev_version = None # Flag set to True if the info operation succeeds, False if it fails self.success_flag = False # The list of formats/subtitles extracted from STDOUT self.output_list = [] # (For debugging purposes, store any STDOUT/STDERR messages received; # otherwise we would just set a flag if a STDERR message was # received) self.stdout_list = [] self.stderr_list = [] # Code # ---- # Let's get this party started! self.start()