Move download informations from the downloaders.py module
to the downloadmanager.py Worker class. By moving those
informations to the Worker class we don't need to add them
in each downloader separately every time a new one gets
implemented, giving us a better design overall.
Before a callback was used to increase the number of successful downloads
resulting in multiple worker threads trying to edit the same variable.
Now each worker thread stores the number of successful downloads for itself
and the DownloadManager collects this number after download process
has finished.
Re-write DownloadManager, DownloadThread(Worker) using
a custom thread pool implementation for speed. We don't
want to create a new thread for each url when the same
thread can be re-used.
Move all status messages from dlthread (DownloadThread) to
downloaders (YoutubeDLDownloader). Now all the status updates
(status, percent, eta, etc..) come from the downloader.
Remove OutputHandler.py
Now DownloadThread talks directly on
ListCtrl using write() method.
Add DownloadObject.py
Now DownloadObject is responsible for
downloading the video and not the
DownloadThread.
Replaced DownloadThread.ProcessWrapper with
DownloadThread.DownloadThread
Re-designed options frame
Changed "highest available" video format to "default"
Fixed password bug
Fixed "Download subtitle file by languages" bug
Removed Options
Rate Limit
Added Options
Embed Subtitles to mp4
Video Password (Vimeo etc..)
Added version check for settings file