From d4eac5c757106c4762cb3e95f9e4b3509132b39f Mon Sep 17 00:00:00 2001 From: Ushie Date: Sat, 5 Aug 2023 21:45:05 +0300 Subject: [PATCH] feat: use objects for /socials and /donations (#51) Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> --- api/models/donations.py | 22 ++++++++++++++++++-- api/models/socials.py | 11 +++++++++- config.py | 46 ++++++++++++++++++++--------------------- 3 files changed, 53 insertions(+), 26 deletions(-) diff --git a/api/models/donations.py b/api/models/donations.py index 92d2bf8..a4b642f 100644 --- a/api/models/donations.py +++ b/api/models/donations.py @@ -1,13 +1,31 @@ from pydantic import BaseModel +class WalletFields(BaseModel): + """ + Implements the fields for a crypto wallet. + """ + + name: str + address: str + + +class LinkFields(BaseModel): + """ + Implements the fields for a donation link. + """ + + name: str + url: str + + class DonationFields(BaseModel): """ A Pydantic BaseModel that represents all the donation links and wallets. """ - wallets: dict[str, str] - links: dict[str, str] + wallets: list[WalletFields] + links: list[LinkFields] class DonationsResponseModel(BaseModel): diff --git a/api/models/socials.py b/api/models/socials.py index 234b59f..0b43821 100644 --- a/api/models/socials.py +++ b/api/models/socials.py @@ -1,12 +1,21 @@ from pydantic import BaseModel +class SocialField(BaseModel): + """ + Implements the fields for a social network link. + """ + + name: str + url: str + + class SocialsResponseModel(BaseModel): """ A Pydantic BaseModel that represents a dictionary of social links. """ - socials: dict[str, str] + socials: list[SocialField] """ A dictionary where the keys are the names of the social networks, and the values are the links to the profiles or pages. diff --git a/config.py b/config.py index 5c88c95..c7d5904 100644 --- a/config.py +++ b/config.py @@ -1,32 +1,32 @@ # Social Links -from email.policy import default - - -social_links: dict[str, str] = { - "website": "https://revanced.app", - "github": "https://github.com/revanced", - "twitter": "https://twitter.com/revancedapp", - "discord": "https://revanced.app/discord", - "reddit": "https://www.reddit.com/r/revancedapp", - "telegram": "https://t.me/app_revanced", - "youtube": "https://www.youtube.com/@ReVanced", -} +social_links: list[dict[str, str]] = [ + {"name": "website", "url": "https://revanced.app"}, + {"name": "github", "url": "https://github.com/revanced"}, + {"name": "twitter", "url": "https://twitter.com/revancedapp"}, + {"name": "discord", "url": "https://revanced.app/discord"}, + {"name": "reddit", "url": "https://www.reddit.com/r/revancedapp"}, + {"name": "telegram", "url": "https://t.me/app_revanced"}, + {"name": "youtube", "url": "https://www.youtube.com/@ReVanced"}, +] # Donation info -wallets: dict[str, str] = { - "btc": "bc1q4x8j6mt27y5gv0q625t8wkr87ruy8fprpy4v3f", - "doge": "D8GH73rNjudgi6bS2krrXWEsU9KShedLXp", - "eth": "0x7ab4091e00363654bf84B34151225742cd92FCE5", - "ltc": "LbJi8EuoDcwaZvykcKmcrM74jpjde23qJ2", - "xmr": "46YwWDbZD6jVptuk5mLHsuAmh1BnUMSjSNYacozQQEraWSQ93nb2yYVRHoMR6PmFYWEHsLHg9tr1cH5M8Rtn7YaaGQPCjSh", -} +wallets: list[dict[str, str]] = [ + {"name": "btc", "address": "bc1q4x8j6mt27y5gv0q625t8wkr87ruy8fprpy4v3f"}, + {"name": "doge", "address": "D8GH73rNjudgi6bS2krrXWEsU9KShedLXp"}, + {"name": "eth", "address": "0x7ab4091e00363654bf84B34151225742cd92FCE5"}, + {"name": "ltc", "address": "LbJi8EuoDcwaZvykcKmcrM74jpjde23qJ2"}, + { + "name": "xmr", + "address": "46YwWDbZD6jVptuk5mLHsuAmh1BnUMSjSNYacozQQEraWSQ93nb2yYVRHoMR6PmFYWEHsLHg9tr1cH5M8Rtn7YaaGQPCjSh", + }, +] -links: dict[str, str] = { - "opencollective": "https://opencollective.com/revanced", - "github": "https://github.com/sponsors/ReVanced", -} +links: list[dict[str, str]] = [ + {"name": "Open Collective", "url": "https://opencollective.com/revanced"}, + {"name": "Github Sponsors", "url": "https://github.com/sponsors/ReVanced"}, +] # API Configuration