Metadata-Version: 2.4
Name: automatyzer_desktop
Version: 0.1.7
Summary: Bot do automatyzacji zadań poprzez Remote Desktop
Home-page: https://github.com/automatyzer/desktop
Author: Tom Sapletta
Author-email: info@softreck.dev
License: MIT
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Python: >=3.7.0
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: python-dotenv>=0.21.0
Requires-Dist: psutil>=5.9.0
Requires-Dist: pyautogui>=0.9.53
Requires-Dist: pillow>=9.2.0
Requires-Dist: numpy>=1.23.0
Requires-Dist: opencv-python>=4.6.0
Requires-Dist: pytesseract>=0.3.10
Requires-Dist: pyperclip>=1.8.2
Requires-Dist: paramiko>=2.11.0
Requires-Dist: imaplib2>=3.6
Requires-Dist: email-validator>=1.2.1
Requires-Dist: pywinctl>=0.0.5
Provides-Extra: nlp
Requires-Dist: spacy>=3.4.0; extra == "nlp"
Requires-Dist: transformers>=4.24.0; extra == "nlp"
Requires-Dist: torch>=1.13.0; extra == "nlp"
Requires-Dist: SpeechRecognition>=3.8.1; extra == "nlp"
Requires-Dist: pyaudio>=0.2.12; extra == "nlp"
Requires-Dist: python-Levenshtein>=0.12.2; extra == "nlp"
Requires-Dist: tensorflow>=2.10.0; extra == "nlp"
Provides-Extra: data
Requires-Dist: pandas>=1.5.0; extra == "data"
Requires-Dist: matplotlib>=3.6.0; extra == "data"
Requires-Dist: seaborn>=0.12.0; extra == "data"
Requires-Dist: scikit-learn>=1.1.0; extra == "data"
Provides-Extra: test
Requires-Dist: pytest>=7.2.0; extra == "test"
Requires-Dist: pytest-cov>=4.0.0; extra == "test"
Requires-Dist: pytest-mock>=3.10.0; extra == "test"
Provides-Extra: dev
Requires-Dist: black; extra == "dev"
Requires-Dist: isort; extra == "dev"
Requires-Dist: flake8; extra == "dev"
Requires-Dist: mypy; extra == "dev"
Requires-Dist: pre-commit; extra == "dev"
Provides-Extra: all
Requires-Dist: spacy>=3.4.0; extra == "all"
Requires-Dist: transformers>=4.24.0; extra == "all"
Requires-Dist: torch>=1.13.0; extra == "all"
Requires-Dist: SpeechRecognition>=3.8.1; extra == "all"
Requires-Dist: pyaudio>=0.2.12; extra == "all"
Requires-Dist: python-Levenshtein>=0.12.2; extra == "all"
Requires-Dist: tensorflow>=2.10.0; extra == "all"
Requires-Dist: pandas>=1.5.0; extra == "all"
Requires-Dist: matplotlib>=3.6.0; extra == "all"
Requires-Dist: seaborn>=0.12.0; extra == "all"
Requires-Dist: scikit-learn>=1.1.0; extra == "all"
Requires-Dist: pytest>=7.2.0; extra == "all"
Requires-Dist: pytest-cov>=4.0.0; extra == "all"
Requires-Dist: pytest-mock>=3.10.0; extra == "all"
Requires-Dist: black; extra == "all"
Requires-Dist: isort; extra == "all"
Requires-Dist: flake8; extra == "all"
Requires-Dist: mypy; extra == "all"
Requires-Dist: pre-commit; extra == "all"
Dynamic: author
Dynamic: author-email
Dynamic: classifier
Dynamic: description
Dynamic: description-content-type
Dynamic: home-page
Dynamic: license
Dynamic: license-file
Dynamic: provides-extra
Dynamic: requires-dist
Dynamic: requires-python
Dynamic: summary


# desktop-bot

A versatile desktop automation bot with advanced capabilities for UI interaction, task scheduling, remote system management, and AI-powered assistance.

## Features

- **UI Automation**: Control mouse, keyboard, and screen interactions using PyAutoGUI
- **Computer Vision**: Image recognition and OCR capabilities with OpenCV and Tesseract
- **Task Scheduling**: Automated task execution with APScheduler and Schedule
- **Remote System Management**: Connect to remote systems via SSH using Paramiko
- **Email Integration**: Process and respond to emails automatically
- **Natural Language Processing**: Understand and generate text using Spacy and Transformers
- **Speech Recognition**: Convert speech to text for voice-controlled automation
- **Web API**: RESTful interface with Flask for remote control and integration
- **Data Analysis**: Process and visualize data with Pandas, Matplotlib and Seaborn

## Installation

### Prerequisites

- Python 3.9+ 
- For Linux users: Additional system dependencies may be required

### System Dependencies

#### Linux
```bash
sudo apt-get update
sudo apt-get install portaudio19-dev python3-dev gcc tesseract-ocr
```

#### macOS
```bash
brew install portaudio tesseract
```

#### Windows
- Install [Tesseract OCR](https://github.com/UB-Mannheim/tesseract/wiki)
- Ensure it's added to your PATH

### Setup

1. Clone the repository:
   ```bash
   git clone https://github.com/automatyzer/desktop.git
   cd desktop
   ```

2. Install Python dependencies:
   ```bash
   pip install -r requirements.txt
   ```

   Note: If you encounter issues with PyAudio installation, try:
   ```bash
   pip install --upgrade --no-build-isolation pyaudio
   ```

3. Set up environment variables:
   ```bash
   cp .env.example .env
   # Edit .env with your configuration
   ```

## Usage

Basic usage instructions:

```python
# Example code for using desktop
from desktop_bot import Bot

bot = Bot()
bot.start()
```

## Cross-Platform Compatibility

desktop is designed to work across multiple platforms:
- **Windows**: Full support with native window management via pygetwindow
- **Linux**: Supported with pywinctl for window management
- **macOS**: Supported with pywinctl for window management

## Advanced Features

### Automated UI Testing
Use desktop to automate UI testing by capturing screenshots, recognizing UI elements, and simulating user interactions.

### Workflow Automation
Create scheduled tasks to automate repetitive workflows, such as data entry, report generation, or system maintenance.

### AI-Assisted Automation
Leverage the integrated NLP capabilities to create intelligent automation that can understand context and adapt to changing conditions.

## Configuration

The bot can be configured using environment variables or a `.env` file. Key configuration options include:

- `LOG_LEVEL`: Set logging verbosity (DEBUG, INFO, WARNING, ERROR)
- `SCHEDULER_ENABLED`: Enable/disable the task scheduler
- `API_ENABLED`: Enable/disable the REST API
- `API_PORT`: Port for the REST API server
- `OCR_ENGINE`: Select OCR engine configuration

## Development

### Project Structure
```
desktop/
├── bot/              # Core bot functionality
├── api/              # REST API implementation
├── nlp/              # Natural language processing modules
├── vision/           # Computer vision and OCR capabilities
├── scheduler/        # Task scheduling implementation
├── utils/            # Utility functions and helpers
├── tests/            # Test suite
└── update/           # Update scripts and tools
```

### Testing

Run tests with pytest:

```bash
pytest
```

For coverage report:

```bash
pytest --cov=. tests/
```

### Updating Dependencies

To update project dependencies:

```bash
python update/requirements.py
```

### Contributing

1. Fork the repository
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
3. Commit your changes (`git commit -m 'Add some amazing feature'`)
4. Push to the branch (`git push origin feature/amazing-feature`)
5. Open a Pull Request

## Troubleshooting

### PyAudio Installation Issues
If you encounter issues installing PyAudio:

1. Ensure you have the required system dependencies installed
2. Try installing with: `pip install --upgrade --no-build-isolation pyaudio`
3. On Windows, you may need to install a pre-built binary: `pip install pipwin && pipwin install pyaudio`

### OCR Functionality
If OCR features aren't working:
1. Verify Tesseract OCR is properly installed
2. Check that the Tesseract executable is in your PATH
3. Set the `TESSERACT_CMD` environment variable to the Tesseract executable path

## License

This project is licensed under the MIT License - see the LICENSE file for details.

## Acknowledgments

- All the open-source libraries that make this project possible
- Contributors and community members who have helped improve the project

## Quick Start

### Local Development
1. Create virtual environment
```bash
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python app.py
```
