Skip to main content

Sync/async Python wrapper for 5sim API

Project description

Без имени-1

PyFiveSim

Sync/async Python wrapper for 5sim API

Installing

pip install PyFiveSim

Features

  • Two available clients: sync (HTTPX) and async (AIOHTTP), which can be used as context managers or as instances
  • Methods return Pydantic model as result for easier interaction with data
  • Enums for prettier code
  • Full exception handling

Library documentation is already in development...

Usage

import asyncio

from pyfivesim import PyFiveSimAsync
from pyfivesim.exceptions import (
    FiveSimNotEnoughBalance,
    FiveSimUnknownError,
    FiveSimNoFreePhones,
)
from pyfivesim.enums import (
    OrderAction,
    Status,
)


async def main():
    api_key = "YOUR_API_KEY"
    
    # Create a client instance or use async with ...
    client = PyFiveSimAsync(
        api_key=api_key,
        base_url="https://5sim.net/v1" # Optional, default is "https://5sim.biz/v1",
    )
    # or use sync client PyFiveSimSync(api_key=api_key)
    
    # Get the user profile and print the ID, balance, and rating
    profile = await client.get_user_profile()
    print("ID >>>", profile.id)
    print("Balance >>>", profile.balance)
    print("Rating >>>", profile.rating)
    # Get last 5 user orders and print the service and price
    for order in profile.last_top_orders:
        print("Service >>>", order.service)
        print("Operator >>>", order.operator)
        print("Price >>>", order.price)

    # Try to buy a number
    try:
        order = await client.buy_number(
            product="youdo",
            country="russia",
            max_price=5,
        )
    except FiveSimNotEnoughBalance:
        print("O-o-p-s! Not enough balance :(")
    except FiveSimNoFreePhones:
        print("O-o-p-s! No free numbers :(")
    except FiveSimUnknownError as exc:
        print("Unknown error occurred :(")
        print("Error status code >>>", exc.status_code)
        print("Error message >>>", exc.data)
    else:
        print("W-o-o-h-o-o! Number bought successfully!")
        print("Phone number >>>", order.phone)
        print("Price >>>", order.price)

        print("Start checking for SMS...")
        sleep_for = 5
        while not order.status == Status.FINISHED:
            await asyncio.sleep(sleep_for)
            order = await client.get_order_info(order.id)
            if order.sms:
                print("SMS received! :)")
                print("SMS text >>>", order.sms.text)
                print("SMS code >>>", order.sms.code)
                print("Finish the order...")
                await client.action_with_order(OrderAction.FINISH, order.id)
                print("Order finished successfully!")
                break
            else:
                print(f"No SMS received yet, sleep for {sleep_for} seconds :(")


if __name__ == "__main__":
    asyncio.run(main())

Docs

Go to https://5sim.biz/ for more information about API methods

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

PyFiveSim-1.0.0.tar.gz (15.5 kB view details)

Uploaded Source

File details

Details for the file PyFiveSim-1.0.0.tar.gz.

File metadata

  • Download URL: PyFiveSim-1.0.0.tar.gz
  • Upload date:
  • Size: 15.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.4

File hashes

Hashes for PyFiveSim-1.0.0.tar.gz
Algorithm Hash digest
SHA256 dc365f579157d2c3bb3d3401d0b4930bfab396dc15cb0035f1b9deb8e7603881
MD5 ff314473e98ea57f79c269f8db5258d1
BLAKE2b-256 317e516b3dfd03dd900cd07e8b275fef2fb833369228e8463ec9e75e8cf72229

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page