mirror of
https://github.com/revanced/revanced-api.git
synced 2025-04-29 22:24:31 +02:00

* feat: sanic framework settings * feat: initial implementation * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * refactor: backend changes * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix: docstrings out of place * feat: more gh endpoints * ci: fix pre-commit issues * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * feat: app info * ci: merge CI and fix triggers * chore: bump deps * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix: typing issues * chore: deps * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * refactor: clean up returns * ci: spread jobs correctly * ci: move to quodana * ci: fix issues with python modules * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * chore: pycharm config * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * refactor: improve code quality * feat: better README * ci: add quodana baseline config * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * ci: fix quodana config * ci: more qodana stuff * ci: revert qodana changes * ci: python interpreter detection is broken * feat: tests * ci: testing * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * ci: fix workflow names * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * chore: add deps * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * test: more tests * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * feat: /tools compat * feat: donations endpoint * feat: teams endpoint * fix: lock pydantic version * chore: deps * ci: docker builds * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * ci: remove coverage action and others * ci: pre-commit fixes --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
127 lines
3.3 KiB
Python
127 lines
3.3 KiB
Python
from typing import Optional
|
|
from dataclasses import dataclass
|
|
|
|
|
|
@dataclass
|
|
class Metadata(dict):
|
|
"""
|
|
Represents the metadata of a release.
|
|
|
|
Attributes:
|
|
- tag_name (str): The name of the release tag.
|
|
- name (str): The name of the release.
|
|
- body (str): The body of the release.
|
|
- draft (bool): Whether the release is a draft.
|
|
- prerelease (bool): Whether the release is a prerelease.
|
|
- created_at (str): The creation date of the release.
|
|
- published_at (str): The publication date of the release.
|
|
"""
|
|
|
|
def __init__(
|
|
self,
|
|
tag_name: str,
|
|
name: str,
|
|
draft: bool,
|
|
prerelease: bool,
|
|
created_at: str,
|
|
published_at: str,
|
|
body: str,
|
|
repository: Optional[str] = None,
|
|
):
|
|
dict.__init__(
|
|
self,
|
|
tag_name=tag_name,
|
|
name=name,
|
|
draft=draft,
|
|
prerelease=prerelease,
|
|
created_at=created_at,
|
|
published_at=published_at,
|
|
body=body,
|
|
repository=repository,
|
|
)
|
|
|
|
|
|
@dataclass
|
|
class Asset(dict):
|
|
"""
|
|
Represents an asset in a release.
|
|
|
|
Attributes:
|
|
- name (str): The name of the asset.
|
|
- content_type (str): The MIME type of the asset content.
|
|
- download_url (str): The URL to download the asset.
|
|
"""
|
|
|
|
def __init__(self, name: str, content_type: str, browser_download_url: str):
|
|
dict.__init__(
|
|
self,
|
|
name=name,
|
|
content_type=content_type,
|
|
browser_download_url=browser_download_url,
|
|
)
|
|
|
|
|
|
@dataclass
|
|
class Release(dict):
|
|
"""
|
|
Represents a release.
|
|
|
|
Attributes:
|
|
- metadata (Metadata): The metadata of the release.
|
|
- assets (list[Asset]): The assets of the release.
|
|
"""
|
|
|
|
def __init__(self, metadata: Metadata, assets: list[Asset]):
|
|
dict.__init__(self, metadata=metadata, assets=assets)
|
|
|
|
|
|
@dataclass
|
|
class Contributor(dict):
|
|
"""
|
|
Represents a contributor to a repository.
|
|
|
|
Attributes:
|
|
- login (str): The GitHub username of the contributor.
|
|
- avatar_url (str): The URL to the contributor's avatar image.
|
|
- html_url (str): The URL to the contributor's GitHub profile.
|
|
- contributions (Optional[int]): The number of contributions the contributor has made to the repository.
|
|
"""
|
|
|
|
def __init__(
|
|
self,
|
|
login: str,
|
|
avatar_url: str,
|
|
html_url: str,
|
|
contributions: Optional[int] = None,
|
|
):
|
|
if contributions:
|
|
dict.__init__(
|
|
self,
|
|
login=login,
|
|
avatar_url=avatar_url,
|
|
html_url=html_url,
|
|
contributions=contributions,
|
|
)
|
|
else:
|
|
dict.__init__(self, login=login, avatar_url=avatar_url, html_url=html_url)
|
|
|
|
|
|
@dataclass
|
|
class AppInfo(dict):
|
|
"""
|
|
Represents the information of an app.
|
|
|
|
Attributes:
|
|
- name (str): The name of the app.
|
|
- category (str): The app category.
|
|
- logo (str): The base64 enconded app logo.
|
|
"""
|
|
|
|
def __init__(self, name: str, category: str, logo: str):
|
|
dict.__init__(
|
|
self,
|
|
name=name,
|
|
category=category,
|
|
logo=logo,
|
|
)
|