Compare commits

..

9 Commits

Author SHA1 Message Date
dd3714f8c8 feat: fetches per default every category
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/tag/woodpecker Pipeline was successful
2024-05-13 13:53:36 +02:00
760e12889c Merge pull request 'ci: add pipeline' (#1) from ci/add-pipeline into main
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Reviewed-on: #1
2024-04-26 09:48:07 +00:00
7d14fef3f5 docs: add ci badge
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/pr/woodpecker Pipeline was successful
ci/woodpecker/pull_request_closed/woodpecker Pipeline was successful
2024-04-25 19:56:55 -07:00
65b1d17253 docs: fix command in README 2024-04-25 19:56:08 -07:00
b57991c3ce ci: install requests package
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
ci/woodpecker/manual/woodpecker Pipeline was successful
ci/woodpecker/pr/woodpecker Pipeline was successful
2024-04-25 19:50:11 -07:00
17203825ed ci: remove _version.py file
Some checks failed
ci/woodpecker/manual/woodpecker Pipeline failed
2024-04-25 19:45:45 -07:00
e97ee0ea13 ci: add version file to gitignore 2024-04-25 19:45:09 -07:00
68919e2c35 ci: remove no-longer-needed __about__ file 2024-04-25 19:43:50 -07:00
03e094a497 ci: add pipeline 2024-04-25 19:43:08 -07:00
6 changed files with 66 additions and 7 deletions

2
.gitignore vendored
View File

@@ -160,3 +160,5 @@ cython_debug/
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
# setuptools-scm
_version.py

36
.woodpecker.yml Normal file
View File

@@ -0,0 +1,36 @@
labels:
platform: linux/amd64
steps:
build:
image: python
commands:
- python -m pip install hatch requests
- python -m unittest
- hatch build
when:
- event: manual
- event: tag
publish-gitea:
image: gitea.elara.ws/music-kraken/plugin-twine
settings:
repository_url: "https://gitea.elara.ws/api/packages/music-kraken/pypi"
username:
from_secret: gitea_username
password:
from_secret: gitea_password
when:
- event: manual
- event: tag
publish-pypi:
image: gitea.elara.ws/music-kraken/plugin-twine
settings:
username:
from_secret: pypi_username
password:
from_secret: pypi_password
when:
- event: manual
- event: tag

View File

@@ -1,5 +1,7 @@
# Python Sponsorblock
[![status-badge](https://ci.elara.ws/api/badges/61/status.svg)](https://ci.elara.ws/repos/61)
<img src="https://gitea.elara.ws/music-kraken/python-sponsorblock/raw/branch/main/assets/logo.svg" width=300 alt="python-sponsorblock logo"/>
This is a wrapper for the sponsorblock api, enabling you to get the timestamps of sponsor segments from Youtube videos.
@@ -8,7 +10,7 @@ This is a wrapper for the sponsorblock api, enabling you to get the timestamps o
```bash
# using this gitea repository (recommended)
pip install --index-url https://gitea.elara.ws/api/packages/music-kraken/pypi/simple/ music-kraken
pip install --index-url https://gitea.elara.ws/api/packages/music-kraken/pypi/simple/ python-sponsorblock
```
```bash

View File

@@ -12,7 +12,16 @@ include = ["python_sponsorblock/*.py", "python_sponsorblock/**/*.py" ]
packages = ["python_sponsorblock"]
[tool.hatch.version]
path = "python_sponsorblock/__about__.py"
source = "vcs"
path = "python_sponsorblock/_version.py"
fallback-version = "0.0.0"
[tool.hatch.version.raw-options]
local_scheme = "no-local-version"
[tool.hatch.build.hooks.vcs]
version-file = "python_sponsorblock/_version.py"
[project]
name = "python-sponsorblock"

View File

@@ -1 +0,0 @@
__version__ = '0.0.0'

View File

@@ -7,7 +7,7 @@ import json
from functools import wraps
from .exceptions import SponsorBlockError, SponsorBlockIdNotFoundError, ReturnDefault
from .constants import Segment
from .constants import Segment, Category
def error_handling(default: Any) -> Callable:
@@ -99,14 +99,25 @@ class SponsorBlock:
return data
@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)
categories = categories or [c for c in Category]
# build query parameters
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))
return [constants.Segment(**d) for d in r]