ambi-alert


Nameambi-alert JSON
Version 0.0.2 PyPI version JSON
download
home_pageNone
SummaryThis is a reverse search tool. Agentic Alerting
upload_time2025-02-07 23:39:47
maintainerNone
docs_urlNone
authorNone
requires_python<4.0,>=3.10
licenseNone
keywords python web-monitoring alerts search web-scraping
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # AmbiAlert

<div align="center">
    <img src="docs/logo.png" alt="AmbiAlert Logo" width="200"/>
</div>

[![Release](https://img.shields.io/github/v/release/prassanna-ravishankar/ambi-alert)](https://img.shields.io/github/v/release/prassanna-ravishankar/ambi-alert)
[![Build status](https://img.shields.io/github/actions/workflow/status/prassanna-ravishankar/ambi-alert/main.yml?branch=main)](https://github.com/prassanna-ravishankar/ambi-alert/actions/workflows/main.yml?query=branch%3Amain)
[![Documentation](https://img.shields.io/badge/docs-mkdocs-blue)](https://prassanna-ravishankar.github.io/ambi-alert/)
[![License](https://img.shields.io/github/license/prassanna-ravishankar/ambi-alert)](https://img.shields.io/github/license/prassanna-ravishankar/ambi-alert)

AmbiAlert is a powerful web monitoring tool that helps you stay informed about topics that matter to you. Instead of constantly checking websites for updates, AmbiAlert does the work for you by monitoring relevant web pages and alerting you when meaningful changes occur.

## Features

- 🔍 **Smart Query Expansion**: Automatically expands your search queries to cover different aspects of your topic
- 🌐 **Intelligent Web Monitoring**: Tracks relevant websites and detects meaningful changes
- 🤖 **AI-Powered Relevance Checking**: Uses advanced language models to ensure changes are actually relevant to your interests
- 📧 **Flexible Alerting System**: Supports email notifications with more backends coming soon
- 💾 **Persistent Monitoring**: Uses SQLite to track monitored URLs and their states
- 🔄 **Automatic Retries**: Handles temporary failures gracefully

## Installation

### Using pip

```bash
pip install ambi-alert
```

### From Source

```bash
# Clone the repository
git clone https://github.com/prassanna-ravishankar/ambi-alert.git
cd ambi-alert

# Install dependencies and set up development environment
make install

# Run tests
make test

# Check code quality
make check

# Build documentation
make docs
```

## Quick Start

### Command Line

The simplest way to use AmbiAlert is through its command-line interface:

```bash
# Monitor news about the next iPhone (prints alerts to console)
ambi-alert "next iPhone release"

# Monitor with email alerts
ambi-alert "next iPhone release" \
    --smtp-server smtp.gmail.com \
    --smtp-port 587 \
    --smtp-username your.email@gmail.com \
    --smtp-password "your-app-password" \
    --from-email your.email@gmail.com \
    --to-email target.email@example.com

# Check more frequently (every 15 minutes)
ambi-alert "next iPhone release" --check-interval 900
```

### Python API

You can also use AmbiAlert programmatically:

```python
from ambi_alert import AmbiAlert
from ambi_alert.alerting import EmailAlertBackend

# Create an alert backend (optional)
alert_backend = EmailAlertBackend(
    smtp_server="smtp.gmail.com",
    smtp_port=587,
    username="your.email@gmail.com",
    password="your-app-password",
    from_email="your.email@gmail.com",
    to_email="target.email@example.com"
)

# Create and run AmbiAlert
async with AmbiAlert(alert_backend=alert_backend) as ambi:
    # Add queries to monitor
    await ambi.add_monitoring_query("next iPhone release")
    await ambi.add_monitoring_query("AI breakthrough")

    # Start monitoring
    await ambi.run_monitor()
```

## Development

### Setup Development Environment

```bash
# Install dependencies and pre-commit hooks
make install

# Run tests
make test

# Check code quality
make check

# Build and serve documentation
make docs

# Build package
make build

# Build and publish to PyPI
make build-and-publish
```

### Running Tests

```bash
# Run all tests
make test

# Test documentation
make docs-test
```

## Documentation

Full documentation is available at [https://prassanna-ravishankar.github.io/ambi-alert/](https://prassanna-ravishankar.github.io/ambi-alert/).

To build and view documentation locally:

```bash
make docs
```

Then open [http://127.0.0.1:8000](http://127.0.0.1:8000) in your browser.

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Set up development environment (`make install`)
4. Make your changes
5. Run tests and checks (`make test && make check`)
6. Commit your changes (`git commit -m 'Add amazing feature'`)
7. Push to the branch (`git push origin feature/amazing-feature`)
8. Open a Pull Request

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.

## Acknowledgments

- Built with [smolagents](https://huggingface.co/docs/smolagents/index) for intelligent web search
- Uses DuckDuckGo for web search functionality
- Inspired by the need for proactive information monitoring

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "ambi-alert",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.10",
    "maintainer_email": null,
    "keywords": "python, web-monitoring, alerts, search, web-scraping",
    "author": null,
    "author_email": "\"Prass, The Nomadic Coder\" <me@prassanna.io>",
    "download_url": "https://files.pythonhosted.org/packages/16/32/5163d6d5fa75fd45aee6c5263a9955dd7d0861719c3563fd728bb590b89b/ambi_alert-0.0.2.tar.gz",
    "platform": null,
    "description": "# AmbiAlert\n\n<div align=\"center\">\n    <img src=\"docs/logo.png\" alt=\"AmbiAlert Logo\" width=\"200\"/>\n</div>\n\n[![Release](https://img.shields.io/github/v/release/prassanna-ravishankar/ambi-alert)](https://img.shields.io/github/v/release/prassanna-ravishankar/ambi-alert)\n[![Build status](https://img.shields.io/github/actions/workflow/status/prassanna-ravishankar/ambi-alert/main.yml?branch=main)](https://github.com/prassanna-ravishankar/ambi-alert/actions/workflows/main.yml?query=branch%3Amain)\n[![Documentation](https://img.shields.io/badge/docs-mkdocs-blue)](https://prassanna-ravishankar.github.io/ambi-alert/)\n[![License](https://img.shields.io/github/license/prassanna-ravishankar/ambi-alert)](https://img.shields.io/github/license/prassanna-ravishankar/ambi-alert)\n\nAmbiAlert is a powerful web monitoring tool that helps you stay informed about topics that matter to you. Instead of constantly checking websites for updates, AmbiAlert does the work for you by monitoring relevant web pages and alerting you when meaningful changes occur.\n\n## Features\n\n- \ud83d\udd0d **Smart Query Expansion**: Automatically expands your search queries to cover different aspects of your topic\n- \ud83c\udf10 **Intelligent Web Monitoring**: Tracks relevant websites and detects meaningful changes\n- \ud83e\udd16 **AI-Powered Relevance Checking**: Uses advanced language models to ensure changes are actually relevant to your interests\n- \ud83d\udce7 **Flexible Alerting System**: Supports email notifications with more backends coming soon\n- \ud83d\udcbe **Persistent Monitoring**: Uses SQLite to track monitored URLs and their states\n- \ud83d\udd04 **Automatic Retries**: Handles temporary failures gracefully\n\n## Installation\n\n### Using pip\n\n```bash\npip install ambi-alert\n```\n\n### From Source\n\n```bash\n# Clone the repository\ngit clone https://github.com/prassanna-ravishankar/ambi-alert.git\ncd ambi-alert\n\n# Install dependencies and set up development environment\nmake install\n\n# Run tests\nmake test\n\n# Check code quality\nmake check\n\n# Build documentation\nmake docs\n```\n\n## Quick Start\n\n### Command Line\n\nThe simplest way to use AmbiAlert is through its command-line interface:\n\n```bash\n# Monitor news about the next iPhone (prints alerts to console)\nambi-alert \"next iPhone release\"\n\n# Monitor with email alerts\nambi-alert \"next iPhone release\" \\\n    --smtp-server smtp.gmail.com \\\n    --smtp-port 587 \\\n    --smtp-username your.email@gmail.com \\\n    --smtp-password \"your-app-password\" \\\n    --from-email your.email@gmail.com \\\n    --to-email target.email@example.com\n\n# Check more frequently (every 15 minutes)\nambi-alert \"next iPhone release\" --check-interval 900\n```\n\n### Python API\n\nYou can also use AmbiAlert programmatically:\n\n```python\nfrom ambi_alert import AmbiAlert\nfrom ambi_alert.alerting import EmailAlertBackend\n\n# Create an alert backend (optional)\nalert_backend = EmailAlertBackend(\n    smtp_server=\"smtp.gmail.com\",\n    smtp_port=587,\n    username=\"your.email@gmail.com\",\n    password=\"your-app-password\",\n    from_email=\"your.email@gmail.com\",\n    to_email=\"target.email@example.com\"\n)\n\n# Create and run AmbiAlert\nasync with AmbiAlert(alert_backend=alert_backend) as ambi:\n    # Add queries to monitor\n    await ambi.add_monitoring_query(\"next iPhone release\")\n    await ambi.add_monitoring_query(\"AI breakthrough\")\n\n    # Start monitoring\n    await ambi.run_monitor()\n```\n\n## Development\n\n### Setup Development Environment\n\n```bash\n# Install dependencies and pre-commit hooks\nmake install\n\n# Run tests\nmake test\n\n# Check code quality\nmake check\n\n# Build and serve documentation\nmake docs\n\n# Build package\nmake build\n\n# Build and publish to PyPI\nmake build-and-publish\n```\n\n### Running Tests\n\n```bash\n# Run all tests\nmake test\n\n# Test documentation\nmake docs-test\n```\n\n## Documentation\n\nFull documentation is available at [https://prassanna-ravishankar.github.io/ambi-alert/](https://prassanna-ravishankar.github.io/ambi-alert/).\n\nTo build and view documentation locally:\n\n```bash\nmake docs\n```\n\nThen open [http://127.0.0.1:8000](http://127.0.0.1:8000) in your browser.\n\n## Contributing\n\nContributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.\n\n1. Fork the repository\n2. Create your feature branch (`git checkout -b feature/amazing-feature`)\n3. Set up development environment (`make install`)\n4. Make your changes\n5. Run tests and checks (`make test && make check`)\n6. Commit your changes (`git commit -m 'Add amazing feature'`)\n7. Push to the branch (`git push origin feature/amazing-feature`)\n8. Open a Pull Request\n\n## License\n\nThis project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.\n\n## Acknowledgments\n\n- Built with [smolagents](https://huggingface.co/docs/smolagents/index) for intelligent web search\n- Uses DuckDuckGo for web search functionality\n- Inspired by the need for proactive information monitoring\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "This is a reverse search tool. Agentic Alerting",
    "version": "0.0.2",
    "project_urls": {
        "Documentation": "https://prassanna.io/ambi-alert/",
        "Homepage": "https://prassanna.io/ambi-alert/",
        "Repository": "https://github.com/prassanna-ravishankar/ambi-alert"
    },
    "split_keywords": [
        "python",
        " web-monitoring",
        " alerts",
        " search",
        " web-scraping"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "b37fa000849946942fe85279ce4d8adb3fbeef045b2f2ea971014903604da160",
                "md5": "5533207f9c11a72370ad532166f09a3b",
                "sha256": "f7c5b75cd0b606eaba7a666cc7e55d1e823e9d82609a2829cd24a9164f90cccb"
            },
            "downloads": -1,
            "filename": "ambi_alert-0.0.2-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "5533207f9c11a72370ad532166f09a3b",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.10",
            "size": 4458,
            "upload_time": "2025-02-07T23:39:45",
            "upload_time_iso_8601": "2025-02-07T23:39:45.890358Z",
            "url": "https://files.pythonhosted.org/packages/b3/7f/a000849946942fe85279ce4d8adb3fbeef045b2f2ea971014903604da160/ambi_alert-0.0.2-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "16325163d6d5fa75fd45aee6c5263a9955dd7d0861719c3563fd728bb590b89b",
                "md5": "6de657e66d7132eb8993c6db3eedf44b",
                "sha256": "071cf97b5d9404b44eabd6c7de356911a51bd0a841422c61d89c5d98118fbad6"
            },
            "downloads": -1,
            "filename": "ambi_alert-0.0.2.tar.gz",
            "has_sig": false,
            "md5_digest": "6de657e66d7132eb8993c6db3eedf44b",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.10",
            "size": 8637,
            "upload_time": "2025-02-07T23:39:47",
            "upload_time_iso_8601": "2025-02-07T23:39:47.579086Z",
            "url": "https://files.pythonhosted.org/packages/16/32/5163d6d5fa75fd45aee6c5263a9955dd7d0861719c3563fd728bb590b89b/ambi_alert-0.0.2.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-02-07 23:39:47",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "prassanna-ravishankar",
    "github_project": "ambi-alert",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "tox": true,
    "lcname": "ambi-alert"
}
        
Elapsed time: 0.42634s