mirror of
https://github.com/DYefremov/DemonEditor.git
synced 2026-01-20 22:43:23 +01:00
yt-dlp init adjustment
This commit is contained in:
@@ -2,7 +2,7 @@
|
|||||||
#
|
#
|
||||||
# The MIT License (MIT)
|
# The MIT License (MIT)
|
||||||
#
|
#
|
||||||
# Copyright (c) 2018-2023 Dmitriy Yefremov
|
# Copyright (c) 2018-2025 Dmitriy Yefremov
|
||||||
#
|
#
|
||||||
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
# Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
# of this software and associated documentation files (the "Software"), to deal
|
# of this software and associated documentation files (the "Software"), to deal
|
||||||
@@ -39,7 +39,7 @@ from urllib import parse
|
|||||||
from urllib.error import URLError
|
from urllib.error import URLError
|
||||||
from urllib.request import Request, urlopen, urlretrieve
|
from urllib.request import Request, urlopen, urlretrieve
|
||||||
|
|
||||||
from app.commons import log
|
from app.commons import log, run_task
|
||||||
from app.settings import SEP
|
from app.settings import SEP
|
||||||
from app.ui.uicommons import show_notification
|
from app.ui.uicommons import show_notification
|
||||||
|
|
||||||
@@ -338,14 +338,14 @@ class YouTubeDL:
|
|||||||
return cls._DL_INSTANCE
|
return cls._DL_INSTANCE
|
||||||
|
|
||||||
def init(self):
|
def init(self):
|
||||||
if not os.path.isfile(f"{self._path}yt_dlp{SEP}version.py"):
|
if os.path.isfile(f"{self._path}yt_dlp{SEP}version.py"):
|
||||||
|
if self._path not in sys.path:
|
||||||
|
sys.path.append(self._path)
|
||||||
|
|
||||||
|
self.init_dl()
|
||||||
|
else:
|
||||||
self.get_latest_release()
|
self.get_latest_release()
|
||||||
|
|
||||||
if self._path not in sys.path:
|
|
||||||
sys.path.append(self._path)
|
|
||||||
|
|
||||||
self.init_dl()
|
|
||||||
|
|
||||||
def init_dl(self):
|
def init_dl(self):
|
||||||
try:
|
try:
|
||||||
import yt_dlp
|
import yt_dlp
|
||||||
@@ -360,23 +360,16 @@ class YouTubeDL:
|
|||||||
log(msg)
|
log(msg)
|
||||||
raise YouTubeException(msg)
|
raise YouTubeException(msg)
|
||||||
|
|
||||||
if self._update:
|
|
||||||
if hasattr(yt_dlp.version, "__version__"):
|
|
||||||
l_ver = self.get_last_release_id()
|
|
||||||
cur_ver = yt_dlp.version.__version__
|
|
||||||
if l_ver and yt_dlp.version.__version__ < l_ver:
|
|
||||||
msg = f"yt-dlp has new release!\nCurrent: {cur_ver}. Last: {l_ver}."
|
|
||||||
show_notification(msg)
|
|
||||||
log(msg)
|
|
||||||
self._callback(msg, False)
|
|
||||||
self.get_latest_release()
|
|
||||||
|
|
||||||
self._DownloadError = yt_dlp.utils.DownloadError
|
self._DownloadError = yt_dlp.utils.DownloadError
|
||||||
self._dl = yt_dlp.YoutubeDL(self._OPTIONS)
|
self._dl = yt_dlp.YoutubeDL(self._OPTIONS)
|
||||||
msg = "yt-dlp initialized..."
|
msg = "yt-dlp initialized..."
|
||||||
show_notification(msg)
|
show_notification(msg)
|
||||||
log(msg)
|
log(msg)
|
||||||
|
|
||||||
|
if self._update:
|
||||||
|
if hasattr(yt_dlp.version, "__version__"):
|
||||||
|
self.update(yt_dlp.version.__version__)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def get_last_release_id():
|
def get_last_release_id():
|
||||||
""" Getting last release id. """
|
""" Getting last release id. """
|
||||||
@@ -387,7 +380,18 @@ class YouTubeDL:
|
|||||||
except URLError as e:
|
except URLError as e:
|
||||||
log(f"YouTubeDLHelper error [get last release id]: {e}")
|
log(f"YouTubeDLHelper error [get last release id]: {e}")
|
||||||
|
|
||||||
def get_latest_release(self):
|
@run_task
|
||||||
|
def update(self, current_version):
|
||||||
|
l_ver = self.get_last_release_id()
|
||||||
|
if l_ver and current_version < l_ver:
|
||||||
|
msg = f"yt-dlp has new release!\nCurrent: {current_version}. Last: {l_ver}."
|
||||||
|
show_notification(msg)
|
||||||
|
log(msg)
|
||||||
|
self._callback(msg, False)
|
||||||
|
self.get_latest_release(update=True)
|
||||||
|
|
||||||
|
@run_task
|
||||||
|
def get_latest_release(self, update=False):
|
||||||
try:
|
try:
|
||||||
self._is_update_process = True
|
self._is_update_process = True
|
||||||
log("Getting the last yt-dlp release...")
|
log("Getting the last yt-dlp release...")
|
||||||
@@ -425,6 +429,8 @@ class YouTubeDL:
|
|||||||
raise YouTubeException(e)
|
raise YouTubeException(e)
|
||||||
finally:
|
finally:
|
||||||
self._is_update_process = False
|
self._is_update_process = False
|
||||||
|
if not update:
|
||||||
|
self.init()
|
||||||
|
|
||||||
def get_yt_link(self, url, skip_errors=False):
|
def get_yt_link(self, url, skip_errors=False):
|
||||||
""" Returns tuple from the video links [dict] and title. """
|
""" Returns tuple from the video links [dict] and title. """
|
||||||
|
|||||||
Reference in New Issue
Block a user