mirror of
https://github.com/bohd4nx/FragmentAPI.git
synced 2026-07-25 06:14:29 +00:00
Refactor pyfragment structure: Move models to domain-specific modules
- Moved PaymentMethod and other enums from models to enums.py for better organization. - Refactored imports in various files to reflect the new structure. - Created new model files for ads, anonymous numbers, giveaways, marketplace, purchases, and tonapi. - Removed the old models.py file to clean up the codebase. - Updated all relevant imports in the codebase to use the new model locations.
This commit is contained in:
@@ -9,7 +9,7 @@ Channel can be "@channel", "channel", or "https://t.me/channel".
|
||||
import asyncio
|
||||
|
||||
from pyfragment import ConfigurationError, FragmentClient, UserNotFoundError
|
||||
from pyfragment.models.enums import PaymentMethod
|
||||
from pyfragment.enums import PaymentMethod
|
||||
|
||||
SEED = "word1 word2 ... word24"
|
||||
API_KEY = "YOUR_TONAPI_KEY"
|
||||
|
||||
@@ -9,7 +9,7 @@ Channel can be "@channel", "channel", or "https://t.me/channel".
|
||||
import asyncio
|
||||
|
||||
from pyfragment import ConfigurationError, FragmentClient, UserNotFoundError
|
||||
from pyfragment.models.enums import PaymentMethod
|
||||
from pyfragment.enums import PaymentMethod
|
||||
|
||||
SEED = "word1 word2 ... word24"
|
||||
API_KEY = "YOUR_TONAPI_KEY"
|
||||
|
||||
@@ -9,7 +9,7 @@ Username can be "@username", "username", or "https://t.me/username".
|
||||
import asyncio
|
||||
|
||||
from pyfragment import ConfigurationError, FragmentClient, UserNotFoundError
|
||||
from pyfragment.models.enums import PaymentMethod
|
||||
from pyfragment.enums import PaymentMethod
|
||||
|
||||
SEED = "word1 word2 ... word24"
|
||||
API_KEY = "YOUR_TONAPI_KEY"
|
||||
|
||||
@@ -9,7 +9,7 @@ Username can be "@username", "username", or "https://t.me/username".
|
||||
import asyncio
|
||||
|
||||
from pyfragment import ConfigurationError, FragmentClient, UserNotFoundError
|
||||
from pyfragment.models.enums import PaymentMethod
|
||||
from pyfragment.enums import PaymentMethod
|
||||
|
||||
SEED = "word1 word2 ... word24"
|
||||
API_KEY = "YOUR_TONAPI_KEY"
|
||||
|
||||
@@ -20,13 +20,14 @@ from pyfragment.exceptions import (
|
||||
VerificationError,
|
||||
WalletError,
|
||||
)
|
||||
from pyfragment.models.anonymous_numbers import LoginCodeResult, TerminateSessionsResult
|
||||
from pyfragment.models.cookies import CookieResult
|
||||
from pyfragment.models.enums import PaymentMethod, WalletVersion
|
||||
from pyfragment.models.giveaways import PremiumGiveawayResult, StarsGiveawayResult
|
||||
from pyfragment.models.marketplace import GiftsResult, NumbersResult, UsernamesResult
|
||||
from pyfragment.models.payments import AdsRechargeResult, AdsTopupResult, PremiumResult, StarsResult
|
||||
from pyfragment.models.wallet import WalletInfo
|
||||
from pyfragment.domains.anonymous_numbers.models import LoginCodeResult, TerminateSessionsResult
|
||||
from pyfragment.core.models import CookieResult
|
||||
from pyfragment.enums import PaymentMethod, WalletVersion
|
||||
from pyfragment.domains.giveaways.models import PremiumGiveawayResult, StarsGiveawayResult
|
||||
from pyfragment.domains.marketplace.models import GiftsResult, NumbersResult, UsernamesResult
|
||||
from pyfragment.domains.ads.models import AdsRechargeResult, AdsTopupResult
|
||||
from pyfragment.domains.purchases.models import PremiumResult, StarsResult
|
||||
from pyfragment.domains.tonapi.models import WalletInfo
|
||||
|
||||
logging.getLogger("pyfragment").addHandler(logging.NullHandler())
|
||||
|
||||
|
||||
@@ -19,12 +19,13 @@ from pyfragment.domains.marketplace.service import MarketplaceService
|
||||
from pyfragment.domains.purchases.service import PurchasesService
|
||||
from pyfragment.domains.tonapi.service import TonapiService
|
||||
from pyfragment.exceptions import ConfigurationError, CookieError
|
||||
from pyfragment.models.anonymous_numbers import LoginCodeResult, TerminateSessionsResult
|
||||
from pyfragment.models.enums import PaymentMethod, WalletVersion
|
||||
from pyfragment.models.giveaways import PremiumGiveawayResult, StarsGiveawayResult
|
||||
from pyfragment.models.marketplace import GiftsResult, NumbersResult, UsernamesResult
|
||||
from pyfragment.models.payments import AdsRechargeResult, AdsTopupResult, PremiumResult, StarsResult
|
||||
from pyfragment.models.wallet import WalletInfo
|
||||
from pyfragment.domains.anonymous_numbers.models import LoginCodeResult, TerminateSessionsResult
|
||||
from pyfragment.enums import PaymentMethod, WalletVersion
|
||||
from pyfragment.domains.giveaways.models import PremiumGiveawayResult, StarsGiveawayResult
|
||||
from pyfragment.domains.marketplace.models import GiftsResult, NumbersResult, UsernamesResult
|
||||
from pyfragment.domains.ads.models import AdsRechargeResult, AdsTopupResult
|
||||
from pyfragment.domains.purchases.models import PremiumResult, StarsResult
|
||||
from pyfragment.domains.tonapi.models import WalletInfo
|
||||
|
||||
|
||||
class FragmentClient:
|
||||
|
||||
@@ -6,8 +6,8 @@ from typing import Any
|
||||
|
||||
from pyfragment.core.constants import FRAGMENT_BASE_URL, FRAGMENT_DOMAIN, REQUIRED_COOKIE_KEYS
|
||||
from pyfragment.exceptions import CookieError
|
||||
from pyfragment.models.cookies import CookieResult
|
||||
from pyfragment.models.enums import SupportedBrowser
|
||||
from pyfragment.core.models import CookieResult
|
||||
from pyfragment.enums import SupportedBrowser
|
||||
|
||||
try:
|
||||
import rookiepy
|
||||
|
||||
@@ -0,0 +1,25 @@
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
|
||||
|
||||
@dataclass
|
||||
class AdsTopupResult:
|
||||
transaction_id: str
|
||||
username: str
|
||||
amount: int
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"AdsTopupResult(username='{self.username}', amount={self.amount} GRAM (ex TON), tx='{self.transaction_id}')"
|
||||
|
||||
|
||||
@dataclass
|
||||
class AdsRechargeResult:
|
||||
transaction_id: str
|
||||
amount: int
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"AdsRechargeResult(amount={self.amount} GRAM (ex TON), tx='{self.transaction_id}')"
|
||||
|
||||
|
||||
__all__ = ["AdsRechargeResult", "AdsTopupResult"]
|
||||
@@ -8,7 +8,7 @@ from pyfragment.core.constants import ADS_TOPUP_PAGE, DEVICE_INFO, GRAM_TOPUP_MA
|
||||
from pyfragment.domains.tonapi.account import get_account_info
|
||||
from pyfragment.domains.tonapi.transaction import process_transaction
|
||||
from pyfragment.exceptions import ConfigurationError, FragmentAPIError, FragmentError, UnexpectedError, VerificationError
|
||||
from pyfragment.models.payments import AdsRechargeResult
|
||||
from pyfragment.domains.ads.models import AdsRechargeResult
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from pyfragment.client import FragmentClient
|
||||
|
||||
@@ -5,7 +5,7 @@ from typing import TYPE_CHECKING
|
||||
from pyfragment.domains.ads.recharge import recharge_ads
|
||||
from pyfragment.domains.ads.tonup import topup_gram
|
||||
from pyfragment.domains.base import BaseService
|
||||
from pyfragment.models.payments import AdsRechargeResult, AdsTopupResult
|
||||
from pyfragment.domains.ads.models import AdsRechargeResult, AdsTopupResult
|
||||
|
||||
if TYPE_CHECKING:
|
||||
pass
|
||||
|
||||
@@ -16,7 +16,7 @@ from pyfragment.exceptions import (
|
||||
UserNotFoundError,
|
||||
VerificationError,
|
||||
)
|
||||
from pyfragment.models.payments import AdsTopupResult
|
||||
from pyfragment.domains.ads.models import AdsTopupResult
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from pyfragment.client import FragmentClient
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from pyfragment.domains.anonymous_numbers.number import get_login_code, terminate_sessions, toggle_login_codes
|
||||
from pyfragment.domains.anonymous_numbers.service import AnonymousNumbersService
|
||||
from pyfragment.models.anonymous_numbers import LoginCodeResult, TerminateSessionsResult
|
||||
from pyfragment.domains.anonymous_numbers.models import LoginCodeResult, TerminateSessionsResult
|
||||
|
||||
__all__ = [
|
||||
"AnonymousNumbersService",
|
||||
|
||||
@@ -7,7 +7,7 @@ from typing import TYPE_CHECKING
|
||||
from pyfragment.core.constants import NUMBERS_PAGE
|
||||
from pyfragment.domains.anonymous_numbers.parser import parse_login_code
|
||||
from pyfragment.exceptions import AnonymousNumberError, FragmentAPIError, FragmentError, UnexpectedError
|
||||
from pyfragment.models.anonymous_numbers import LoginCodeResult, TerminateSessionsResult
|
||||
from pyfragment.domains.anonymous_numbers.models import LoginCodeResult, TerminateSessionsResult
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from pyfragment.client import FragmentClient
|
||||
|
||||
@@ -4,7 +4,7 @@ from typing import TYPE_CHECKING
|
||||
|
||||
from pyfragment.domains.anonymous_numbers.number import get_login_code, terminate_sessions, toggle_login_codes
|
||||
from pyfragment.domains.base import BaseService
|
||||
from pyfragment.models.anonymous_numbers import LoginCodeResult, TerminateSessionsResult
|
||||
from pyfragment.domains.anonymous_numbers.models import LoginCodeResult, TerminateSessionsResult
|
||||
|
||||
if TYPE_CHECKING:
|
||||
pass
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from pyfragment.domains.giveaways.giveaway import giveaway_premium, giveaway_stars
|
||||
from pyfragment.domains.giveaways.service import GiveawaysService
|
||||
from pyfragment.models.giveaways import PremiumGiveawayResult, StarsGiveawayResult
|
||||
from pyfragment.domains.giveaways.models import PremiumGiveawayResult, StarsGiveawayResult
|
||||
|
||||
__all__ = [
|
||||
"GiveawaysService",
|
||||
|
||||
@@ -28,8 +28,8 @@ from pyfragment.exceptions import (
|
||||
UserNotFoundError,
|
||||
VerificationError,
|
||||
)
|
||||
from pyfragment.models.enums import PaymentMethod
|
||||
from pyfragment.models.giveaways import PremiumGiveawayResult, StarsGiveawayResult
|
||||
from pyfragment.enums import PaymentMethod
|
||||
from pyfragment.domains.giveaways.models import PremiumGiveawayResult, StarsGiveawayResult
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from pyfragment.client import FragmentClient
|
||||
|
||||
@@ -4,8 +4,8 @@ from typing import TYPE_CHECKING
|
||||
|
||||
from pyfragment.domains.base import BaseService
|
||||
from pyfragment.domains.giveaways.giveaway import giveaway_premium, giveaway_stars
|
||||
from pyfragment.models.enums import PaymentMethod
|
||||
from pyfragment.models.giveaways import PremiumGiveawayResult, StarsGiveawayResult
|
||||
from pyfragment.enums import PaymentMethod
|
||||
from pyfragment.domains.giveaways.models import PremiumGiveawayResult, StarsGiveawayResult
|
||||
|
||||
if TYPE_CHECKING:
|
||||
pass
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
from pyfragment.domains.marketplace.search import search_gifts, search_numbers, search_usernames
|
||||
from pyfragment.domains.marketplace.service import MarketplaceService
|
||||
from pyfragment.models.marketplace import GiftsResult, NumbersResult, UsernamesResult
|
||||
from pyfragment.domains.marketplace.models import GiftsResult, NumbersResult, UsernamesResult
|
||||
|
||||
__all__ = [
|
||||
"GiftsResult",
|
||||
|
||||
@@ -6,7 +6,7 @@ from typing import TYPE_CHECKING, Any
|
||||
from pyfragment.core.constants import FRAGMENT_BASE_URL, GIFTS_PAGE, NUMBERS_PAGE
|
||||
from pyfragment.domains.marketplace.parser import parse_auction_rows, parse_gift_items
|
||||
from pyfragment.exceptions import FragmentAPIError, FragmentError, UnexpectedError
|
||||
from pyfragment.models.marketplace import GiftsResult, NumbersResult, UsernamesResult
|
||||
from pyfragment.domains.marketplace.models import GiftsResult, NumbersResult, UsernamesResult
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from pyfragment.client import FragmentClient
|
||||
|
||||
@@ -4,7 +4,7 @@ from typing import TYPE_CHECKING
|
||||
|
||||
from pyfragment.domains.base import BaseService
|
||||
from pyfragment.domains.marketplace.search import search_gifts, search_numbers, search_usernames
|
||||
from pyfragment.models.marketplace import GiftsResult, NumbersResult, UsernamesResult
|
||||
from pyfragment.domains.marketplace.models import GiftsResult, NumbersResult, UsernamesResult
|
||||
|
||||
if TYPE_CHECKING:
|
||||
pass
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
from pyfragment.domains.purchases.purchase import purchase_premium, purchase_stars
|
||||
from pyfragment.domains.purchases.service import PurchasesService
|
||||
from pyfragment.models.payments import PremiumResult, StarsResult
|
||||
from pyfragment.domains.purchases.models import PremiumResult, StarsResult
|
||||
|
||||
__all__ = ["PremiumResult", "PurchasesService", "StarsResult", "purchase_premium", "purchase_stars"]
|
||||
|
||||
@@ -23,23 +23,4 @@ class StarsResult:
|
||||
return f"StarsResult(username='{self.username}', amount={self.amount} stars, tx='{self.transaction_id}')"
|
||||
|
||||
|
||||
@dataclass
|
||||
class AdsTopupResult:
|
||||
transaction_id: str
|
||||
username: str
|
||||
amount: int
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"AdsTopupResult(username='{self.username}', amount={self.amount} GRAM (ex TON), tx='{self.transaction_id}')"
|
||||
|
||||
|
||||
@dataclass
|
||||
class AdsRechargeResult:
|
||||
transaction_id: str
|
||||
amount: int
|
||||
|
||||
def __repr__(self) -> str:
|
||||
return f"AdsRechargeResult(amount={self.amount} GRAM (ex TON), tx='{self.transaction_id}')"
|
||||
|
||||
|
||||
__all__ = ["AdsRechargeResult", "AdsTopupResult", "PremiumResult", "StarsResult"]
|
||||
__all__ = ["PremiumResult", "StarsResult"]
|
||||
@@ -25,8 +25,8 @@ from pyfragment.exceptions import (
|
||||
UserNotFoundError,
|
||||
VerificationError,
|
||||
)
|
||||
from pyfragment.models.enums import PaymentMethod
|
||||
from pyfragment.models.payments import PremiumResult, StarsResult
|
||||
from pyfragment.enums import PaymentMethod
|
||||
from pyfragment.domains.purchases.models import PremiumResult, StarsResult
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from pyfragment.client import FragmentClient
|
||||
|
||||
@@ -4,8 +4,8 @@ from typing import TYPE_CHECKING
|
||||
|
||||
from pyfragment.domains.base import BaseService
|
||||
from pyfragment.domains.purchases.purchase import purchase_premium, purchase_stars
|
||||
from pyfragment.models.enums import PaymentMethod
|
||||
from pyfragment.models.payments import PremiumResult, StarsResult
|
||||
from pyfragment.enums import PaymentMethod
|
||||
from pyfragment.domains.purchases.models import PremiumResult, StarsResult
|
||||
|
||||
if TYPE_CHECKING:
|
||||
pass
|
||||
|
||||
@@ -11,8 +11,8 @@ from tonutils.exceptions import ProviderResponseError
|
||||
|
||||
from pyfragment.core.constants import MIN_GRAM_BALANCE, MIN_USDT_BALANCE, USDT_GRAM_MASTER_ADDRESS
|
||||
from pyfragment.exceptions import WalletError
|
||||
from pyfragment.models.enums import WALLET_CLASSES
|
||||
from pyfragment.models.wallet import WalletInfo
|
||||
from pyfragment.enums import WALLET_CLASSES
|
||||
from pyfragment.domains.tonapi.models import WalletInfo
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from pyfragment.client import FragmentClient
|
||||
|
||||
@@ -4,7 +4,7 @@ from typing import TYPE_CHECKING
|
||||
|
||||
from pyfragment.domains.base import BaseService
|
||||
from pyfragment.domains.tonapi.account import get_wallet_info
|
||||
from pyfragment.models.wallet import WalletInfo
|
||||
from pyfragment.domains.tonapi.models import WalletInfo
|
||||
|
||||
if TYPE_CHECKING:
|
||||
pass
|
||||
|
||||
@@ -13,7 +13,7 @@ from tonutils.exceptions import ProviderResponseError
|
||||
|
||||
from pyfragment.domains.tonapi.account import check_gram_payment_balance, check_usdt_payment_balance
|
||||
from pyfragment.exceptions import ParseError, TransactionError, WalletError
|
||||
from pyfragment.models.enums import WALLET_CLASSES, PaymentMethod
|
||||
from pyfragment.enums import WALLET_CLASSES, PaymentMethod
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from pyfragment.client import FragmentClient
|
||||
|
||||
@@ -1,25 +0,0 @@
|
||||
from pyfragment.models.anonymous_numbers import LoginCodeResult, TerminateSessionsResult
|
||||
from pyfragment.models.cookies import CookieResult
|
||||
from pyfragment.models.enums import PaymentMethod, WalletVersion
|
||||
from pyfragment.models.giveaways import PremiumGiveawayResult, StarsGiveawayResult
|
||||
from pyfragment.models.marketplace import GiftsResult, NumbersResult, UsernamesResult
|
||||
from pyfragment.models.payments import AdsRechargeResult, AdsTopupResult, PremiumResult, StarsResult
|
||||
from pyfragment.models.wallet import WalletInfo
|
||||
|
||||
__all__ = [
|
||||
"AdsRechargeResult",
|
||||
"AdsTopupResult",
|
||||
"CookieResult",
|
||||
"GiftsResult",
|
||||
"LoginCodeResult",
|
||||
"NumbersResult",
|
||||
"PaymentMethod",
|
||||
"PremiumGiveawayResult",
|
||||
"PremiumResult",
|
||||
"StarsGiveawayResult",
|
||||
"StarsResult",
|
||||
"TerminateSessionsResult",
|
||||
"UsernamesResult",
|
||||
"WalletInfo",
|
||||
"WalletVersion",
|
||||
]
|
||||
@@ -9,7 +9,7 @@ from tonutils.exceptions import ProviderResponseError
|
||||
|
||||
from pyfragment import TransactionError, WalletError
|
||||
from pyfragment.domains.tonapi.transaction import process_transaction
|
||||
from pyfragment.models.enums import PaymentMethod
|
||||
from pyfragment.enums import PaymentMethod
|
||||
from tests.shared import VALID_SEED
|
||||
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ from pyfragment.core.constants.limits import (
|
||||
STARS_WINNERS_MAX,
|
||||
STARS_WINNERS_MIN,
|
||||
)
|
||||
from pyfragment.models.enums import PaymentMethod
|
||||
from pyfragment.enums import PaymentMethod
|
||||
from tests.shared import FAKE_ACCOUNT, FAKE_RECIPIENT, FAKE_REQ_ID, FAKE_TRANSACTION, FAKE_TX_HASH
|
||||
|
||||
# Stars purchase validation tests
|
||||
|
||||
@@ -9,7 +9,7 @@ import pyfragment.domains.purchases.purchase as _purchase_premium_mod
|
||||
from pyfragment import ConfigurationError, FragmentClient, PremiumGiveawayResult, PremiumResult, UserNotFoundError
|
||||
from pyfragment.core.constants.limits import PREMIUM_MONTHS_VALID, PREMIUM_WINNERS_MAX, PREMIUM_WINNERS_MIN
|
||||
from pyfragment.exceptions import AlreadySubscribedError
|
||||
from pyfragment.models.enums import PaymentMethod
|
||||
from pyfragment.enums import PaymentMethod
|
||||
from tests.shared import FAKE_ACCOUNT, FAKE_RECIPIENT, FAKE_REQ_ID, FAKE_TRANSACTION, FAKE_TX_HASH
|
||||
|
||||
# Premium purchase validation tests
|
||||
|
||||
Reference in New Issue
Block a user