aboutsummaryrefslogtreecommitdiffstats
path: root/src/view/app.py
diff options
context:
space:
mode:
authornathansmith117 <thenathansmithsmith@gmail.com>2024-03-27 22:11:09 +0000
committernathansmith117 <thenathansmithsmith@gmail.com>2024-03-27 22:11:09 +0000
commitef55effa58ee01089bffb441a65e932393d9facb (patch)
tree29f65a87c423953b0575b25780bb8432bab09df2 /src/view/app.py
parente8bd0e3644070d2ea9f8fc309e725d9b9b3d0bd6 (diff)
downloadyouload-ef55effa58ee01089bffb441a65e932393d9facb.tar.gz
youload-ef55effa58ee01089bffb441a65e932393d9facb.tar.bz2
youload-ef55effa58ee01089bffb441a65e932393d9facb.zip
Working on yt-dlpswitch_to_yt_dlp
Diffstat (limited to 'src/view/app.py')
-rw-r--r--src/view/app.py46
1 files changed, 15 insertions, 31 deletions
diff --git a/src/view/app.py b/src/view/app.py
index 5c6ce6f..4b295d2 100644
--- a/src/view/app.py
+++ b/src/view/app.py
@@ -6,14 +6,21 @@ from kivy.uix.button import Button
from kivy.uix.textinput import TextInput
from kivy.uix.label import Label
from kivy import platform
+from kivy.logger import Logger, LOG_LEVELS
import threading
import traceback
-from model.youload_playlist import YouLoadPlayList
+import youload_downloader
from view.file_chooser import YouloadFileChooser
from view.download_type_chooser import YouloadDownloadTypeChooser
import util
+import sys
+
+# The logger fucks up yt-dlp.
+Logger.setLevel(LOG_LEVELS["critical"])
+sys.stdout = sys.__stdout__
+sys.stderr = sys.__stderr__
class YouloadApp(App):
def build(self):
@@ -109,42 +116,19 @@ class YouloadApp(App):
# Download the videos in a different thread so the ui still works.
def download_playlist_thread(self):
try:
- self.download_status.text = "Fetching playlist"
+ self.download_status.text = "Downloading"
self.submit.text = "Stop"
self.is_downloading = True
- # Get playlist.
- playlist = YouLoadPlayList(self.url)
-
- # Set directory and other stuff.
- playlist.set_download_directory(self.folder_display.text)
- playlist.download_type = self.download_type_chooser.current_type
- playlist.prepare_for_download()
- self.downloads_display.text = f"Downloading to {playlist.folder_name}\n"
-
- # Download each video
- for i in range(playlist.video_count):
- # Stop this mother fucker
- if self.should_stop_download:
- break
-
- self.download_status.text = f"Downloading {i+1}/{playlist.video_count}"
- self.downloads_display.text += playlist.download_video(i, self.do_add_numbers) + "\n"
+ self.downloads_display = youload_downloader.download_playlist(
+ self.url_input.text,
+ self.download_type_chooser.current_type,
+ self.folder_display.text,
+ self.do_add_numbers
+ )
# Complete download.
self.download_status.text = "Download complete"
- except FileExistsError as e:
- self.download_status.text = "Folder already exists"
- self.downloads_display.text = repr(e) + "\n" + traceback.format_exc()
- print(self.downloads_display.text)
- except KeyError as e:
- self.download_status.text = "Error getting playlist"
- self.downloads_display.text = repr(e) + "\n" + traceback.format_exc()
- print(self.downloads_display.text)
- except AttributeError as e:
- self.download_status.text = "Download type not supported"
- self.downloads_display.text = repr(e) + "\n" + traceback.format_exc()
- print(self.downloads_display.text)
except Exception as e:
self.downloads_display.text = repr(e) + "\n" + traceback.format_exc()
print(self.downloads_display.text)