summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCoprDistGit <infra@openeuler.org>2023-05-15 05:22:24 +0000
committerCoprDistGit <infra@openeuler.org>2023-05-15 05:22:24 +0000
commite0fe58c9f3a5ca15154b7dfe3ef0b8752c9ff7ed (patch)
tree7819a120af9f50cd4f87049d47f29a610f05011a
parent1c6d237238606f347c3e6793f70f04951b6a243c (diff)
automatic import of python-pyrituals
-rw-r--r--.gitignore1
-rw-r--r--python-pyrituals.spec559
-rw-r--r--sources1
3 files changed, 561 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
index e69de29..fa1440b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -0,0 +1 @@
+/pyrituals-0.0.6.tar.gz
diff --git a/python-pyrituals.spec b/python-pyrituals.spec
new file mode 100644
index 0000000..2104b35
--- /dev/null
+++ b/python-pyrituals.spec
@@ -0,0 +1,559 @@
+%global _empty_manifest_terminate_build 0
+Name: python-pyrituals
+Version: 0.0.6
+Release: 1
+Summary: Async Python wrapper for the Rituals Perfume Genie API
+License: GPLv3
+URL: https://github.com/milanmeu/pyrituals
+Source0: https://mirrors.nju.edu.cn/pypi/web/packages/8d/97/1364136ac7b9668f28def833beffcdbf1cee6adf9bc827934cf941fb3ebf/pyrituals-0.0.6.tar.gz
+BuildArch: noarch
+
+Requires: python3-aiohttp
+
+%description
+# PyRituals package
+[![PyPI](https://img.shields.io/pypi/v/pyrituals)](https://pypi.org/project/pyrituals/) ![PyPI - Downloads](https://img.shields.io/pypi/dm/pyrituals) [![PyPI - License](https://img.shields.io/pypi/l/pyrituals?color=blue)](https://github.com/milanmeu/pyrituals/blob/main/LICENSE)
+
+An async Python wrapper for the Rituals Perfume Genie API.
+It allows you to control the diffuser and retrieve its state.
+The package supports the first and second version.
+
+## Installation
+```bash
+pip install pyrituals
+```
+
+## Usage
+### Import
+```python
+from pyrituals import Account, Diffuser, AuthenticationException
+```
+
+### Create a `aiohttp.ClientSession` to make requests
+```python
+from aiohttp import ClientSession
+session = ClientSession()
+```
+
+### Endpoints
+Default endpoints:
+```python
+AUTH_URL = "https://rituals.sense-company.com/ocapi/login" # Account.authenticate()
+ACCOUNT_URL = "https://rituals.sense-company.com/api/account/hubs" # Account.get_devices()
+HUB_URL = "https://rituals.sense-company.com/api/account/hub" # Diffuser.update_data()
+UPDATE_URL = "https://rituals.sense-company.com/api/hub/update/attr" # Diffuser.turn_*(), Diffuser.set_*()
+```
+
+To change the used API endpoints add an `url` parameter to the function. Example:
+```python
+LOGIN_URL = "https://rituals.sense-company.com/ocapi/login"
+account = Account("name@example.com", "passw0rd", session)
+await account.authenticate(url=LOGIN_URL)
+```
+
+### Account
+#### Create an instance
+```python
+email = "name@example.com"
+password = "passw0rd"
+
+account = Account(email, password, session)
+```
+
+#### Authenticate
+```python
+try:
+ await account.authenticate()
+except AuthenticationException as e:
+ print("Could not authenticate:", e)
+```
+
+#### Account data
+The account data is only available after authentication.
+```python
+account.data
+```
+
+#### Get linked devices
+`get_devices()` returns a list of `Diffuser`s.
+```python
+devices = await account.get_devices()
+```
+
+### Diffuser
+#### Diffuser data
+The initial data and format is different from the data after executing `update_data()`.
+Some properties require data that is only available after executing `update_data()`.
+Therefore, it's required to execute `update_data()` before using the diffuser properties.
+```python
+diffuser.data
+diffuser.battery_percentage
+diffuser.charging
+diffuser.has_battery
+diffuser.has_cartridge
+diffuser.hash
+diffuser.hub_data
+diffuser.hublot
+diffuser.fill
+diffuser.perfume
+diffuser.perfume_amount
+diffuser.room_size
+diffuser.is_on
+diffuser.is_online
+diffuser.name
+diffuser.version
+diffuser.wifi_percentage
+diffuser.room_size_square_meter
+```
+
+#### Get updated data
+```python
+await diffuser.update_data()
+```
+
+#### Turn the diffuser on
+```python
+await diffuser.turn_on()
+```
+
+#### Turn the diffuser off
+```python
+await diffuser.turn_off()
+```
+
+#### Set the diffuser perfume amount
+Amount must be an integer between 1 and 3, inclusive.
+```python
+amount = 1
+await diffuser.set_perfume_amount(amount)
+```
+
+#### Set the diffuser room size
+Size must be an integer between 1 and 4, inclusive.
+```python
+size = 2
+await diffuser.set_room_size(size)
+```
+
+#### Set the diffuser room size in square meters
+Size must be the integer 15, 30, 60 or 100.
+```python
+size = 60
+await diffuser.set_room_size_square_meter(size)
+```
+
+## Example
+```python
+from aiohttp import ClientSession
+from asyncio import run
+
+import pyrituals
+
+async def main():
+ async with ClientSession() as session:
+ account = pyrituals.Account("name@example.com", "passw0rd", session)
+ try:
+ await account.authenticate()
+ except pyrituals.AuthenticationException as ex:
+ print("Could not authenticate:", ex)
+ return
+ print("Account data:", account.data)
+ devices = await account.get_devices()
+ for diffuser in devices:
+ print("Diffuser data:", diffuser.data)
+ await diffuser.turn_on()
+ await diffuser.set_perfume_amount(1)
+ await diffuser.set_room_size(4)
+ await diffuser.update_data()
+ print("Diffuser updated data:", diffuser.data)
+ if diffuser.has_battery:
+ print(f"Battery percentage: {diffuser.battery_percentage}%")
+
+run(main())
+```
+
+
+
+
+%package -n python3-pyrituals
+Summary: Async Python wrapper for the Rituals Perfume Genie API
+Provides: python-pyrituals
+BuildRequires: python3-devel
+BuildRequires: python3-setuptools
+BuildRequires: python3-pip
+%description -n python3-pyrituals
+# PyRituals package
+[![PyPI](https://img.shields.io/pypi/v/pyrituals)](https://pypi.org/project/pyrituals/) ![PyPI - Downloads](https://img.shields.io/pypi/dm/pyrituals) [![PyPI - License](https://img.shields.io/pypi/l/pyrituals?color=blue)](https://github.com/milanmeu/pyrituals/blob/main/LICENSE)
+
+An async Python wrapper for the Rituals Perfume Genie API.
+It allows you to control the diffuser and retrieve its state.
+The package supports the first and second version.
+
+## Installation
+```bash
+pip install pyrituals
+```
+
+## Usage
+### Import
+```python
+from pyrituals import Account, Diffuser, AuthenticationException
+```
+
+### Create a `aiohttp.ClientSession` to make requests
+```python
+from aiohttp import ClientSession
+session = ClientSession()
+```
+
+### Endpoints
+Default endpoints:
+```python
+AUTH_URL = "https://rituals.sense-company.com/ocapi/login" # Account.authenticate()
+ACCOUNT_URL = "https://rituals.sense-company.com/api/account/hubs" # Account.get_devices()
+HUB_URL = "https://rituals.sense-company.com/api/account/hub" # Diffuser.update_data()
+UPDATE_URL = "https://rituals.sense-company.com/api/hub/update/attr" # Diffuser.turn_*(), Diffuser.set_*()
+```
+
+To change the used API endpoints add an `url` parameter to the function. Example:
+```python
+LOGIN_URL = "https://rituals.sense-company.com/ocapi/login"
+account = Account("name@example.com", "passw0rd", session)
+await account.authenticate(url=LOGIN_URL)
+```
+
+### Account
+#### Create an instance
+```python
+email = "name@example.com"
+password = "passw0rd"
+
+account = Account(email, password, session)
+```
+
+#### Authenticate
+```python
+try:
+ await account.authenticate()
+except AuthenticationException as e:
+ print("Could not authenticate:", e)
+```
+
+#### Account data
+The account data is only available after authentication.
+```python
+account.data
+```
+
+#### Get linked devices
+`get_devices()` returns a list of `Diffuser`s.
+```python
+devices = await account.get_devices()
+```
+
+### Diffuser
+#### Diffuser data
+The initial data and format is different from the data after executing `update_data()`.
+Some properties require data that is only available after executing `update_data()`.
+Therefore, it's required to execute `update_data()` before using the diffuser properties.
+```python
+diffuser.data
+diffuser.battery_percentage
+diffuser.charging
+diffuser.has_battery
+diffuser.has_cartridge
+diffuser.hash
+diffuser.hub_data
+diffuser.hublot
+diffuser.fill
+diffuser.perfume
+diffuser.perfume_amount
+diffuser.room_size
+diffuser.is_on
+diffuser.is_online
+diffuser.name
+diffuser.version
+diffuser.wifi_percentage
+diffuser.room_size_square_meter
+```
+
+#### Get updated data
+```python
+await diffuser.update_data()
+```
+
+#### Turn the diffuser on
+```python
+await diffuser.turn_on()
+```
+
+#### Turn the diffuser off
+```python
+await diffuser.turn_off()
+```
+
+#### Set the diffuser perfume amount
+Amount must be an integer between 1 and 3, inclusive.
+```python
+amount = 1
+await diffuser.set_perfume_amount(amount)
+```
+
+#### Set the diffuser room size
+Size must be an integer between 1 and 4, inclusive.
+```python
+size = 2
+await diffuser.set_room_size(size)
+```
+
+#### Set the diffuser room size in square meters
+Size must be the integer 15, 30, 60 or 100.
+```python
+size = 60
+await diffuser.set_room_size_square_meter(size)
+```
+
+## Example
+```python
+from aiohttp import ClientSession
+from asyncio import run
+
+import pyrituals
+
+async def main():
+ async with ClientSession() as session:
+ account = pyrituals.Account("name@example.com", "passw0rd", session)
+ try:
+ await account.authenticate()
+ except pyrituals.AuthenticationException as ex:
+ print("Could not authenticate:", ex)
+ return
+ print("Account data:", account.data)
+ devices = await account.get_devices()
+ for diffuser in devices:
+ print("Diffuser data:", diffuser.data)
+ await diffuser.turn_on()
+ await diffuser.set_perfume_amount(1)
+ await diffuser.set_room_size(4)
+ await diffuser.update_data()
+ print("Diffuser updated data:", diffuser.data)
+ if diffuser.has_battery:
+ print(f"Battery percentage: {diffuser.battery_percentage}%")
+
+run(main())
+```
+
+
+
+
+%package help
+Summary: Development documents and examples for pyrituals
+Provides: python3-pyrituals-doc
+%description help
+# PyRituals package
+[![PyPI](https://img.shields.io/pypi/v/pyrituals)](https://pypi.org/project/pyrituals/) ![PyPI - Downloads](https://img.shields.io/pypi/dm/pyrituals) [![PyPI - License](https://img.shields.io/pypi/l/pyrituals?color=blue)](https://github.com/milanmeu/pyrituals/blob/main/LICENSE)
+
+An async Python wrapper for the Rituals Perfume Genie API.
+It allows you to control the diffuser and retrieve its state.
+The package supports the first and second version.
+
+## Installation
+```bash
+pip install pyrituals
+```
+
+## Usage
+### Import
+```python
+from pyrituals import Account, Diffuser, AuthenticationException
+```
+
+### Create a `aiohttp.ClientSession` to make requests
+```python
+from aiohttp import ClientSession
+session = ClientSession()
+```
+
+### Endpoints
+Default endpoints:
+```python
+AUTH_URL = "https://rituals.sense-company.com/ocapi/login" # Account.authenticate()
+ACCOUNT_URL = "https://rituals.sense-company.com/api/account/hubs" # Account.get_devices()
+HUB_URL = "https://rituals.sense-company.com/api/account/hub" # Diffuser.update_data()
+UPDATE_URL = "https://rituals.sense-company.com/api/hub/update/attr" # Diffuser.turn_*(), Diffuser.set_*()
+```
+
+To change the used API endpoints add an `url` parameter to the function. Example:
+```python
+LOGIN_URL = "https://rituals.sense-company.com/ocapi/login"
+account = Account("name@example.com", "passw0rd", session)
+await account.authenticate(url=LOGIN_URL)
+```
+
+### Account
+#### Create an instance
+```python
+email = "name@example.com"
+password = "passw0rd"
+
+account = Account(email, password, session)
+```
+
+#### Authenticate
+```python
+try:
+ await account.authenticate()
+except AuthenticationException as e:
+ print("Could not authenticate:", e)
+```
+
+#### Account data
+The account data is only available after authentication.
+```python
+account.data
+```
+
+#### Get linked devices
+`get_devices()` returns a list of `Diffuser`s.
+```python
+devices = await account.get_devices()
+```
+
+### Diffuser
+#### Diffuser data
+The initial data and format is different from the data after executing `update_data()`.
+Some properties require data that is only available after executing `update_data()`.
+Therefore, it's required to execute `update_data()` before using the diffuser properties.
+```python
+diffuser.data
+diffuser.battery_percentage
+diffuser.charging
+diffuser.has_battery
+diffuser.has_cartridge
+diffuser.hash
+diffuser.hub_data
+diffuser.hublot
+diffuser.fill
+diffuser.perfume
+diffuser.perfume_amount
+diffuser.room_size
+diffuser.is_on
+diffuser.is_online
+diffuser.name
+diffuser.version
+diffuser.wifi_percentage
+diffuser.room_size_square_meter
+```
+
+#### Get updated data
+```python
+await diffuser.update_data()
+```
+
+#### Turn the diffuser on
+```python
+await diffuser.turn_on()
+```
+
+#### Turn the diffuser off
+```python
+await diffuser.turn_off()
+```
+
+#### Set the diffuser perfume amount
+Amount must be an integer between 1 and 3, inclusive.
+```python
+amount = 1
+await diffuser.set_perfume_amount(amount)
+```
+
+#### Set the diffuser room size
+Size must be an integer between 1 and 4, inclusive.
+```python
+size = 2
+await diffuser.set_room_size(size)
+```
+
+#### Set the diffuser room size in square meters
+Size must be the integer 15, 30, 60 or 100.
+```python
+size = 60
+await diffuser.set_room_size_square_meter(size)
+```
+
+## Example
+```python
+from aiohttp import ClientSession
+from asyncio import run
+
+import pyrituals
+
+async def main():
+ async with ClientSession() as session:
+ account = pyrituals.Account("name@example.com", "passw0rd", session)
+ try:
+ await account.authenticate()
+ except pyrituals.AuthenticationException as ex:
+ print("Could not authenticate:", ex)
+ return
+ print("Account data:", account.data)
+ devices = await account.get_devices()
+ for diffuser in devices:
+ print("Diffuser data:", diffuser.data)
+ await diffuser.turn_on()
+ await diffuser.set_perfume_amount(1)
+ await diffuser.set_room_size(4)
+ await diffuser.update_data()
+ print("Diffuser updated data:", diffuser.data)
+ if diffuser.has_battery:
+ print(f"Battery percentage: {diffuser.battery_percentage}%")
+
+run(main())
+```
+
+
+
+
+%prep
+%autosetup -n pyrituals-0.0.6
+
+%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-pyrituals -f filelist.lst
+%dir %{python3_sitelib}/*
+
+%files help -f doclist.lst
+%{_docdir}/*
+
+%changelog
+* Mon May 15 2023 Python_Bot <Python_Bot@openeuler.org> - 0.0.6-1
+- Package Spec generated
diff --git a/sources b/sources
new file mode 100644
index 0000000..0ffe95e
--- /dev/null
+++ b/sources
@@ -0,0 +1 @@
+02a91c20c071068c0768447c64839c35 pyrituals-0.0.6.tar.gz