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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file aio-framework-0.0.5.7.tar.gz.
File metadata
- Download URL: aio-framework-0.0.5.7.tar.gz
- Upload date:
- Size: 5.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5a2c91ec568f34ad4cbf0868acdf025421b04ed87b0fa395ec73ee1ffa582f73
|
|
| MD5 |
d3684ebed9755bfefb0586f95d8508bc
|
|
| BLAKE2b-256 |
1d87c4d95b304299977a968928299866b94a65a2a30ae2ab42da0ed43fdf4faa
|