aboutsummaryrefslogtreecommitdiffstats
path: root/src/view
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
parente8bd0e3644070d2ea9f8fc309e725d9b9b3d0bd6 (diff)
downloadyouload-switch_to_yt_dlp.tar.gz
youload-switch_to_yt_dlp.tar.bz2
youload-switch_to_yt_dlp.zip
Working on yt-dlpswitch_to_yt_dlp
Diffstat (limited to 'src/view')
-rw-r--r--src/view/app.py46
-rw-r--r--src/view/download_type_chooser.py6
2 files changed, 18 insertions, 34 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)
diff --git a/src/view/download_type_chooser.py b/src/view/download_type_chooser.py
index 927d7a4..2f50cff 100644
--- a/src/view/download_type_chooser.py
+++ b/src/view/download_type_chooser.py
@@ -3,7 +3,7 @@ from kivy.uix.button import Button
from kivy.uix.popup import Popup
from kivy.uix.boxlayout import BoxLayout
-from model.youload_playlist import YouLoadPlayList
+import youload_downloader
class YouloadDownloadTypeChooser(Popup):
@@ -13,10 +13,10 @@ class YouloadDownloadTypeChooser(Popup):
self.title = "Download types"
layout = BoxLayout(orientation="vertical")
- self.current_type = YouLoadPlayList.DEFAULT_DOWNLOAD_TYPE
+ self.current_type = youload_downloader.DOWNLOAD_TYPES[0]
# Add option buttons.
- for download_type in YouLoadPlayList.DOWNLOAD_TYPES:
+ for download_type in youload_downloader.DOWNLOAD_TYPES:
item = Button(text=download_type)
item.bind(on_press=self.option_button_cb)
layout.add_widget(item)