Metadata-Version: 2.4 Name: aiontfy Version: 0.5.4 Summary: Async ntfy client library Project-URL: Documentation, https://tr4nt0r.github.io/aiontfy/ Project-URL: Source, https://github.com/tr4nt0r/aiontfy Author-email: Manfred Dennerlein Rodelo License-Expression: MIT License-File: LICENSE Classifier: Operating System :: OS Independent Classifier: Programming Language :: Python :: 3.12 Requires-Python: >=3.12 Requires-Dist: aiohttp~=3.11 Requires-Dist: mashumaro~=3.13 Requires-Dist: orjson~=3.10 Description-Content-Type: text/markdown # aiontfy Asynchronous client library for the [ntfy](https://ntfy.sh/) pub-sub notification service [![build](https://github.com/tr4nt0r/aiontfy/workflows/Build/badge.svg)](https://github.com/tr4nt0r/aiontfy/actions) [![codecov](https://codecov.io/gh/tr4nt0r/aiontfy/graph/badge.svg?token=aqCYYmMC6i)](https://codecov.io/gh/tr4nt0r/aiontfy) [![PyPI version](https://badge.fury.io/py/aiontfy.svg)](https://badge.fury.io/py/aiontfy) ![PyPI - Downloads](https://img.shields.io/pypi/dm/aiontfy?style=flat&label=pypi%20downloads) [!["Buy Me A Coffee"](https://img.shields.io/badge/-buy_me_a%C2%A0coffee-gray?logo=buy-me-a-coffee)](https://www.buymeacoffee.com/tr4nt0r) [![GitHub Sponsor](https://img.shields.io/badge/GitHub-Sponsor-blue?logo=github)](https://github.com/sponsors/tr4nt0r) --- ## 📖 Documentation - **Full Documentation**: [https://tr4nt0r.github.io/aiontfy](https://tr4nt0r.github.io/aiontfy) - **Source Code**: [https://github.com/tr4nt0r/aiontfy](https://github.com/tr4nt0r/aiontfy) --- ## 📦 Installation You can install aiontfy via pip: ```sh pip install aiontfy ``` --- ## 🚀 Usage ### Basic Examples ```python """Publish to a ntfy topic.""" import asyncio from aiohttp import ClientSession from aiontfy import Message, Ntfy async def main() -> None: async with ClientSession() as session: ntfy = Ntfy("https://ntfy.sh", session) message = Message( topic="aiontfy", title="Hello", message="World", click="https://example.com/", delay="10s", priority=3, tags=["octopus"], ) print(await ntfy.publish(message)) asyncio.run(main()) ``` ```python """Subscribe to ntfy topics.""" import asyncio from aiohttp import ClientSession from aiontfy import Event, Notification, Ntfy def callback(message: Notification) -> None: """Process notifications callback function.""" if message.event is Event.MESSAGE: print(message.to_dict()) async def main() -> None: async with ClientSession() as session: ntfy = Ntfy("https://ntfy.sh", session) await ntfy.subscribe( ["aiontfy", "test"], # Subscribe to multiple topics callback, priority=[3, 4, 5], # Only subscribe to priority >= 3 ) asyncio.run(main()) ``` For more advanced usage, refer to the [documentation](https://tr4nt0r.github.io/pynecil). --- ## 🛠 Contributing Contributions are welcome! To contribute: 1. Fork the repository. 2. Create a new branch. 3. Make your changes and commit them. 4. Submit a pull request. Make sure to follow the [contributing guidelines](CONTRIBUTING.md). --- ## 📜 License This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details. --- ## ❤️ Support If you find this project useful, consider [buying me a coffee ☕](https://www.buymeacoffee.com/tr4nt0r) or [sponsoring me on GitHub](https://github.com/sponsors/tr4nt0r)!