Metadata-Version: 2.3
Name: ahi
Version: 0.19.38
Summary: Application Hacking Interface. An HTTP API client helper for "unofficial" APIs.
License: LGPL-3.0-or-later
Author: beruu
Author-email: 18537787-beruu@users.noreply.gitlab.com
Requires-Python: >=3.9.0
Classifier: Development Status :: 4 - Beta
Classifier: License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Internet :: WWW/HTTP
Classifier: Topic :: Software Development :: Testing
Provides-Extra: browser-emulation
Requires-Dist: PySocks (>=1.7.1)
Requires-Dist: hiredis (>=2.0.0)
Requires-Dist: parsel (>=1.6.0)
Requires-Dist: redis (>=3.5.3)
Requires-Dist: requests (>=2.26.0,<3.0.0)
Requires-Dist: selenium (>=4.0.0,<5.0.0) ; extra == "browser-emulation"
Requires-Dist: urllib3 (>=2.0.0,<3.0.0)
Project-URL: Homepage, https://gitlab.com/unsanctioned/ahi
Description-Content-Type: text/markdown

# Application Hacking Interface

## Using the simple HTTPClient
```python
from logging import *
c = ahi.HTTPClient(cache_ttl=60, force_wait_interval=1, auto_adjust_for_rate_limiting=True, logging_level=DEBUG, proxy='http://127.0.0.1:8080', verify=True, allow_redirects=False, timeout=None)
resp = c.get('http://example.com/')
print(resp)
```

## Using the Selenium driver for Firefox
```python
from logging import *
from selenium.webdriver.common.keys import Keys
ff = ahi.SeleniumFirefox(headless=True, force_wait_interval=timedelta(seconds=0), logging_level=DEBUG)
ff.get('https://example.com/')
ff.html.css('#LoginForm_Password').send_keys('P4$$w0rd')
ff.html.css('#LoginForm_Password').send_keys(Keys.RETURN)
ff.execute_script('''SetLocation('\x2Fdocs\x2FProMyPlanning.aspx?_Division_=549942',event, 0)''')
ff.html.css('#Reports_Reports_Reports_MyPlanning').click()
print(ff.html)
```

## Converting from a curl command line
```bash
girl --curl https://example.com/
```

