feat: fetches per default every category
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful

This commit is contained in:
Hazel 2024-05-13 13:53:36 +02:00
parent 760e12889c
commit dd3714f8c8

View File

@ -7,7 +7,7 @@ import json
from functools import wraps from functools import wraps
from .exceptions import SponsorBlockError, SponsorBlockIdNotFoundError, ReturnDefault from .exceptions import SponsorBlockError, SponsorBlockIdNotFoundError, ReturnDefault
from .constants import Segment from .constants import Segment, Category
def error_handling(default: Any) -> Callable: def error_handling(default: Any) -> Callable:
@ -99,14 +99,25 @@ class SponsorBlock:
return data return data
@error_handling(default=[]) @error_handling(default=[])
def get_segments(self, video: str) -> List[Segment]: def get_segments(self, video: str, categories: List[Category] = None) -> List[Segment]:
"""
Retrieves the skip segments for a given video.
Args:
video (str): The video identifier.
categories (List[Category], optional): A list of categories to filter the skip segments. Defaults to all categories.
Returns:
List[Segment]: A list of skip segments for the given video.
"""
video_id = self._get_video_id(video) video_id = self._get_video_id(video)
categories = categories or [c for c in Category]
# build query parameters # build query parameters
query = { query = {
"videoID": video_id "videoID": video_id,
"categories": json.dumps([c.value for c in categories])
} }
print(query)
r = self._request(method="GET", endpoint="/api/skipSegments?" + urlencode(query)) r = self._request(method="GET", endpoint="/api/skipSegments?" + urlencode(query))
return [constants.Segment(**d) for d in r] return [constants.Segment(**d) for d in r]