Skip to main content

Ayinope AIO Framework

Project description

A Python website bot development framework (WIP)

Introduction

This project was created to aid the development of website bots and API wrappers. aio-framework handles task management and execution, session management, and captcha queue management (with threads!). Currently, captcha queue management supports 2Captcha. aio-framework is meant to decrease development time by providing common bot and API wrapper functionality.

Basic Usage

This module is available via pip:

$ pip install aio-framework

Basic ApiWrapper and Bot implementations are shown below. Bot implementations must implement the execute_task method.

ApiWrapper

# exampleapiwrapper.py
from aio import ApiWrapper

class ExampleApiWrapper(ApiWrapper):
    BASE_URL = 'https://example.com'

    def get_product_data(self, product_url):
        response = self.get(product_url)
        return response.json()['data'] # Or something

    def add_product_to_cart(self, product_data, captcha_token):
        payload = {
            'product_data': product_data,
            'captcha': captcha_token
        }
        endpoint = '/add-to-cart'
        response = self.post(endpoint, data=payload)
        return response.json()['success'] # Or something

Bot

# examplebot.py
from aio import Bot
from aio.captcha import CaptchaManager
from exampleapiwrapper import ExampleApiWrapper

class ExampleBot(Bot):
    def execute_task(self, task):
        example_api_wrapper = ExampleApiWrapper()

        twocaptcha_api_token = '2CAPTCHA_API_TOKEN_HERE'
        site_key = 'SITE_KEY_HERE'
        page_url = 'PAGE_URL_HERE'

        captcha_manager = CaptchaManager(twocaptcha_api_token, site_key, page_url)
        captcha_manager.start_captcha_queue(num_threads=5)

        task.status = 'STARTED'

        product_url = task.data['product_url']

        task.logger.info('Getting product data')
        product_data = example_api_wrapper.get_product_data(product_url)
        task.logger.info('Got product data!')

        task.logger.info('Waiting for captcha token')
        captcha_token = captcha_manager.wait_for_captcha_token()
        task.logger.info('Got captcha token!')

        task.logger.info('Adding product to cart')
        added = example_api_wrapper.add_product_to_cart(product_data, captcha_token)
        task.logger.info('Added product to cart!')

        task.status = 'FINISHED'

Executing

# main.py
from aio import Task
from examplebot import ExampleBot

example_bot = ExampleBot()
task_data = {
    'product_url': 'https://example.com/product'
}
task = Task(task_data)
example_bot.add_task(task)
example_bot.start_all_tasks()

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

aio-framework-0.0.5.7.tar.gz (5.1 kB view details)

Uploaded Source

File details

Details for the file aio-framework-0.0.5.7.tar.gz.

File metadata

File hashes

Hashes for aio-framework-0.0.5.7.tar.gz
Algorithm Hash digest
SHA256 5a2c91ec568f34ad4cbf0868acdf025421b04ed87b0fa395ec73ee1ffa582f73
MD5 d3684ebed9755bfefb0586f95d8508bc
BLAKE2b-256 1d87c4d95b304299977a968928299866b94a65a2a30ae2ab42da0ed43fdf4faa

See more details on using hashes here.

Supported by

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