You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
marvin8 3cf62bfdee
Merge branch 'issue8'
4 weeks ago
.woodpecker Fix issue #8 4 weeks ago
src/agoradesk_py Fix issue #8 4 weeks ago
tests Bump version number for release 3 months ago
.flake8 Fix issue #8 4 weeks ago
.gitignore Unit / Integration test separation and improved pre-commit / CI 4 months ago
.pre-commit-config.yaml Fix issue #8 4 weeks ago
CHANGELOG.md Fix issue #8 4 weeks ago
LICENSE.md Added pre-commit processing / checking: 8 months ago
README.md Changes needed for new version [1.7 of LocalMonero.co / Agoradesk API](https://agoradesk.com/api-docs/v1#2022-01-13-v17) 3 months ago
get_my_trades.py Addressed all pylint messages in modules other than agoradesk.py 6 months ago
poetry.lock Fix issue #8 4 weeks ago
pyproject.toml Fix issue #8 4 weeks ago

README.md

agoradesk_py

Python interface for AgoraDesk.com/LocalMonero.co API.

This is currently not a complete implementation of the Agoradesk API.

The following API calls are currently not supported.

  • Image uploading in chat

I offer no warranty of any kind -- use this at your own risk!

I am not associated with AgoraDesk.com or LocalMonero.co.

Requirements:

The two main requirements are httpx and arrow. I am using Poetry with this project to keep track of dependencies / requirements.

Install

pip install agoradesk_py

How to Use

This is an example about how you can use the library

#!/usr/bin/env python3

from agoradesk_py.agoradesk import AgoraDesk

api_key = <YourAPIKey>

api = AgoraDesk(api_key)

# Get information about all released trades
api_response = api.dashboard_released()

if api_response["success"]:
    trades = api_response["response"]["data"]["contact_list"]

    for trade in trades:
        trade_data = trade["data"]
        print(
            f"Traded "
            f"{trade_data['amount_xmr']} XMR with a fee of {trade_data['fee_xmr']} XMR "
            f"for {trade_data['amount']} {trade_data['currency']} "
            f"on {trade_data['released_at']}"
        )

else:
     print(f"Error: {api_response['response']['error']}")

Running Tests

Please be aware of the unauthenticated API requests limit of 20 req/h

Tests are split into Unit tests and integration tests.

To prepare to run any tests:

  1. Clone this repository to your computer.
  2. Install Poetry
  3. Install all dependencies / requirements for agoradesk_py using the command poetry install in the project directory.

Unit Tests

Unit tests do not communicate with LocalMonero / AgoraDesk and are executed entirely locally.

Running all unit tests with coverage report is as easy as using the command poetry run pytest --cov-report term-missing tests/unit/ in the project directory,

Integration Tests

Integration tests communicate with the actual LocalMonero / AgoraDesk production APIs and the tests depend on the two following environment variables being set to the api_keys of two testing accounts at LocalMonero.co.

  • api_key
  • api_key2

Please be aware that:

  • LocalMonero.co or AgoraDesk.com are not currently providing a testing setup and all testes are running in their production environment.
  • For some tests to run successfully the account for api_key2 needs to have a balance of currently about 0.1 XMR
  • The two testing account need to be set to trust each other for all the tests to be successful.

To run the integration tests use the command poetry run pytest tests/integration/

Contribute

Do you have an idea or found a bug in agoradesk_py? Please file an issue and/or submit a pull request! :)

Source code is currently on Codeberg at https://codeberg.org/MarvinsCryptoTools/agoradesk_py

Support

If you like the API and want to support me you can do so with Monero: 88NszkQU9qsafT9obFaDZSi7RvHSM76exJ1vvgVShTwM4HjvLr7XjJ7jDkFGnxr3UsDXLgT5t569N6uB7Gn4znjAFjUuN1q