Skip to content

Commit fe362ab

Browse files
committed
- fixed genre not working
- resume support - get report after downloading - better logging - removed default, ffmpeg threading - updated tests EXPERIMENTAL RELEASE!
1 parent da42208 commit fe362ab

2 files changed

Lines changed: 719 additions & 19 deletions

File tree

missav_api/missav_api.py

Lines changed: 30 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
import os
22
import logging
3-
import traceback
4-
3+
import threading
54
import time
65
import hmac
76
import hashlib
7+
88
from base_api import BaseCore
99
from bs4 import BeautifulSoup
1010
from urllib.parse import quote
1111
from functools import cached_property
1212
from typing import Optional, Generator, List
1313
from base_api.base import setup_logger, Helper
1414
from base_api.modules.config import RuntimeConfig
15-
from base_api.modules.progress_bars import Callback
1615
from concurrent.futures import ThreadPoolExecutor, as_completed
1716

1817
BASE_HOST = "client-rapi-missav.recombee.com"
@@ -121,7 +120,7 @@ def genres(self) -> List[str]:
121120
for a_tag in a_tags:
122121
genres.append(a_tag.text.strip())
123122

124-
return a_tags
123+
return genres
125124

126125
except IndexError:
127126
return []
@@ -173,22 +172,34 @@ def get_segments(self, quality: str) -> list:
173172
"""Returns the list of HLS segments for a given quality"""
174173
return self.core.get_segments(quality=quality, m3u8_url_master=self.m3u8_base_url)
175174

176-
def download(self, quality: str, downloader: str, path: str = "./", no_title=False,
177-
callback=Callback.text_progress_bar,
178-
remux: bool = False, remux_callback = None) -> bool:
179-
"""Downloads the video from HLS"""
180-
if no_title is False:
181-
path = os.path.join(path, self.core.truncate(self.core.strip_title(self.title)) + ".mp4")
175+
def download(self, quality, path="./", callback=None, no_title=False, remux: bool = False,
176+
callback_remux=None, start_segment: int = 0, stop_event: Optional[threading.Event] = None,
177+
segment_state_path: Optional[str] = None, segment_dir: Optional[str] = None,
178+
return_report: bool = False, cleanup_on_stop: bool = True, keep_segment_dir: bool = False
179+
) -> bool:
180+
"""
181+
:param callback:
182+
:param quality:
183+
:param path:
184+
:param no_title:
185+
:param remux:
186+
:param callback_remux:
187+
:param start_segment:
188+
:param stop_event:
189+
:param segment_state_path:
190+
:param segment_dir:
191+
:param return_report:
192+
:param cleanup_on_stop:
193+
:param keep_segment_dir:
194+
:return:
195+
"""
196+
if not no_title:
197+
path = os.path.join(path, f"{self.title}.mp4")
182198

183-
try:
184-
self.core.download(video=self, quality=quality, path=path, callback=callback, downloader=downloader,
185-
remux=remux, callback_remux=remux_callback)
186-
return True
187-
188-
except Exception:
189-
error = traceback.format_exc()
190-
self.logger.error(error)
191-
return False
199+
return self.core.download(video=self, quality=quality, path=path, callback=callback, remux=remux,
200+
callback_remux=callback_remux, start_segment=start_segment, stop_event=stop_event,
201+
segment_state_path=segment_state_path, segment_dir=segment_dir, return_report=return_report,
202+
cleanup_on_stop=cleanup_on_stop, keep_segment_dir=keep_segment_dir)
192203

193204

194205
class Client(Helper):

0 commit comments

Comments
 (0)