From 033a1fdb11d3d40904701ee8dd5cb49dda7bc37c Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Fri, 5 May 2023 08:32:22 +0000 Subject: automatic import of python-aiotractive --- .gitignore | 1 + python-aiotractive.spec | 410 ++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 412 insertions(+) create mode 100644 python-aiotractive.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..c1ad982 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/aiotractive-0.5.5.tar.gz diff --git a/python-aiotractive.spec b/python-aiotractive.spec new file mode 100644 index 0000000..06330aa --- /dev/null +++ b/python-aiotractive.spec @@ -0,0 +1,410 @@ +%global _empty_manifest_terminate_build 0 +Name: python-aiotractive +Version: 0.5.5 +Release: 1 +Summary: Asynchronous Python client for the Tractive REST API +License: The MIT License +URL: https://github.com/zhulik/aiotractive +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/07/ba/906190535f72d9dc1a31e34c1816c04ea7f92814a4e3535b1ed504fb93dc/aiotractive-0.5.5.tar.gz +BuildArch: noarch + +Requires: python3-aiohttp +Requires: python3-yarl + +%description +## aiotractive + +![Continuous Integration](https://github.com/zhulik/aiotractive/workflows/Continuous%20Integration/badge.svg?branch=main) + +**Unofficial** Asynchronous Python client for the [Tractive](https://tractive.com) REST API. + +**This project and it's author are not affilated with Tractive GmbH** + +This project is a result of reverse engineering of the Tractive web app. + +Inspired by [home_assistant_tractive](https://github.com/Danielhiversen/home_assistant_tractive). + +Initially some code was borrowed from home_assistant_tractive, but in the end all of it was replaced with my own implementations. + +The package is in active development. **Not all features available in the Tractive web app are implemented.** + +Important notes: + +- In order to use Tractive devices and their service you need to have an active subscription. +- Tractive may change their API at any point of time and this project will be broken. Please, report any issues. + +## Installation + +`pip install aiotractive` + +## Usage + +```python +import asyncio + +from aiotractive import Tractive + +async def main(): + async with Tractive("email", "password") as client: + # interact with the client here + pass + +if __name__ == "__main__": + asyncio.run(main()) +``` + + +### Tractive + +Tractive is the entrypoint class, it acts as an async context manager and provides access to API endpoints. + +#### Authentication + +```python +client.authenticate() + +# {'user_id': 'user_id', 'client_id': 'client_id', 'expires_at': 1626821491, 'access_token': 'long access token'} +``` + +#### Trackers + +```python +trackers = await client.trackers() +tracker = trackers[0] + +# Or + +tracker = client.tracker("TRACKER_ID") + +# Retrieve details +await trackers.details() # Includes device capabilities, battery status(not level), charging state and so on + +await tracker.hw_info() # Includes battery level, firmware version, model and so on + +# Retrieve current location +await tracker.pos_report() # Includes coordinates, latitude, speed and so on +# Retrieve hardware info + +# Control the buzzer +await set_buzzer_active(True) # or False + +# Control the LED +await set_led_active(True) # or False + +# Control the live tracking +await set_live_tracking_active(True) # or False +``` + +#### Trackable objects (usually pets) +```python +objects = await client.trackable_objects() + +object = objects[0] + +# Retrieve details +await object.details() # Includes pet's name, pet's tracker id and so on +``` + +#### Events + +```python +async for event in client.events(): + pp(event) + +``` + +After connecting you will immediately receive one `tracker_status` event per owned tracker. +The first event always includes full current status of the tracker including current position, battery level, states of the buzzer, +the LED and the live tracking. + +All following events will have the same name, but only include one of these: either a position, battery info, or a buzzer/LED/live +status. + +## Contribution +You know;) + + + + +%package -n python3-aiotractive +Summary: Asynchronous Python client for the Tractive REST API +Provides: python-aiotractive +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-aiotractive +## aiotractive + +![Continuous Integration](https://github.com/zhulik/aiotractive/workflows/Continuous%20Integration/badge.svg?branch=main) + +**Unofficial** Asynchronous Python client for the [Tractive](https://tractive.com) REST API. + +**This project and it's author are not affilated with Tractive GmbH** + +This project is a result of reverse engineering of the Tractive web app. + +Inspired by [home_assistant_tractive](https://github.com/Danielhiversen/home_assistant_tractive). + +Initially some code was borrowed from home_assistant_tractive, but in the end all of it was replaced with my own implementations. + +The package is in active development. **Not all features available in the Tractive web app are implemented.** + +Important notes: + +- In order to use Tractive devices and their service you need to have an active subscription. +- Tractive may change their API at any point of time and this project will be broken. Please, report any issues. + +## Installation + +`pip install aiotractive` + +## Usage + +```python +import asyncio + +from aiotractive import Tractive + +async def main(): + async with Tractive("email", "password") as client: + # interact with the client here + pass + +if __name__ == "__main__": + asyncio.run(main()) +``` + + +### Tractive + +Tractive is the entrypoint class, it acts as an async context manager and provides access to API endpoints. + +#### Authentication + +```python +client.authenticate() + +# {'user_id': 'user_id', 'client_id': 'client_id', 'expires_at': 1626821491, 'access_token': 'long access token'} +``` + +#### Trackers + +```python +trackers = await client.trackers() +tracker = trackers[0] + +# Or + +tracker = client.tracker("TRACKER_ID") + +# Retrieve details +await trackers.details() # Includes device capabilities, battery status(not level), charging state and so on + +await tracker.hw_info() # Includes battery level, firmware version, model and so on + +# Retrieve current location +await tracker.pos_report() # Includes coordinates, latitude, speed and so on +# Retrieve hardware info + +# Control the buzzer +await set_buzzer_active(True) # or False + +# Control the LED +await set_led_active(True) # or False + +# Control the live tracking +await set_live_tracking_active(True) # or False +``` + +#### Trackable objects (usually pets) +```python +objects = await client.trackable_objects() + +object = objects[0] + +# Retrieve details +await object.details() # Includes pet's name, pet's tracker id and so on +``` + +#### Events + +```python +async for event in client.events(): + pp(event) + +``` + +After connecting you will immediately receive one `tracker_status` event per owned tracker. +The first event always includes full current status of the tracker including current position, battery level, states of the buzzer, +the LED and the live tracking. + +All following events will have the same name, but only include one of these: either a position, battery info, or a buzzer/LED/live +status. + +## Contribution +You know;) + + + + +%package help +Summary: Development documents and examples for aiotractive +Provides: python3-aiotractive-doc +%description help +## aiotractive + +![Continuous Integration](https://github.com/zhulik/aiotractive/workflows/Continuous%20Integration/badge.svg?branch=main) + +**Unofficial** Asynchronous Python client for the [Tractive](https://tractive.com) REST API. + +**This project and it's author are not affilated with Tractive GmbH** + +This project is a result of reverse engineering of the Tractive web app. + +Inspired by [home_assistant_tractive](https://github.com/Danielhiversen/home_assistant_tractive). + +Initially some code was borrowed from home_assistant_tractive, but in the end all of it was replaced with my own implementations. + +The package is in active development. **Not all features available in the Tractive web app are implemented.** + +Important notes: + +- In order to use Tractive devices and their service you need to have an active subscription. +- Tractive may change their API at any point of time and this project will be broken. Please, report any issues. + +## Installation + +`pip install aiotractive` + +## Usage + +```python +import asyncio + +from aiotractive import Tractive + +async def main(): + async with Tractive("email", "password") as client: + # interact with the client here + pass + +if __name__ == "__main__": + asyncio.run(main()) +``` + + +### Tractive + +Tractive is the entrypoint class, it acts as an async context manager and provides access to API endpoints. + +#### Authentication + +```python +client.authenticate() + +# {'user_id': 'user_id', 'client_id': 'client_id', 'expires_at': 1626821491, 'access_token': 'long access token'} +``` + +#### Trackers + +```python +trackers = await client.trackers() +tracker = trackers[0] + +# Or + +tracker = client.tracker("TRACKER_ID") + +# Retrieve details +await trackers.details() # Includes device capabilities, battery status(not level), charging state and so on + +await tracker.hw_info() # Includes battery level, firmware version, model and so on + +# Retrieve current location +await tracker.pos_report() # Includes coordinates, latitude, speed and so on +# Retrieve hardware info + +# Control the buzzer +await set_buzzer_active(True) # or False + +# Control the LED +await set_led_active(True) # or False + +# Control the live tracking +await set_live_tracking_active(True) # or False +``` + +#### Trackable objects (usually pets) +```python +objects = await client.trackable_objects() + +object = objects[0] + +# Retrieve details +await object.details() # Includes pet's name, pet's tracker id and so on +``` + +#### Events + +```python +async for event in client.events(): + pp(event) + +``` + +After connecting you will immediately receive one `tracker_status` event per owned tracker. +The first event always includes full current status of the tracker including current position, battery level, states of the buzzer, +the LED and the live tracking. + +All following events will have the same name, but only include one of these: either a position, battery info, or a buzzer/LED/live +status. + +## Contribution +You know;) + + + + +%prep +%autosetup -n aiotractive-0.5.5 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-aiotractive -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Fri May 05 2023 Python_Bot - 0.5.5-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..24b5f09 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +e5e572c3b60046f81865f91cff78d402 aiotractive-0.5.5.tar.gz -- cgit v1.2.3