EU-Utility/README.md

146 lines
3.7 KiB
Markdown

# EU-Utility
A modular utility application with a powerful plugin system.
## Features
- **Plugin System**: Extensible architecture for custom functionality
- **Auto-Updater**: Automatic update checking and installation
- **Plugin Marketplace**: Browse and install community plugins
- **Cloud Sync**: Synchronize settings across devices
- **Statistics Dashboard**: Usage analytics and system monitoring
- **Import/Export**: Backup and restore your data
- **Clipboard Manager**: Copy/paste with history tracking
## Quick Start
```bash
# Run the application
python main.py
# Or with clipboard monitoring
python main.py --monitor-clipboard
```
## New Features (v1.1.0)
### 1. Auto-Updater System
Automatically check for and install updates with rollback support.
```python
from plugins.auto_updater import AutoUpdaterPlugin
updater = plugin_api.get_plugin("auto_updater")
updater.set_config({"auto_check": True, "channel": "stable"})
updater.check_for_updates()
```
### 2. Plugin Marketplace
Browse, install, and manage community plugins.
```python
from plugins.plugin_marketplace import PluginMarketplacePlugin
marketplace = plugin_api.get_plugin("plugin_marketplace")
plugins = marketplace.fetch_plugins()
marketplace.install_plugin("plugin_id")
```
### 3. Cloud Sync
Synchronize your settings across multiple devices.
```python
from plugins.cloud_sync import CloudSyncPlugin, CloudProvider
sync = plugin_api.get_plugin("cloud_sync")
sync.set_provider_config(CloudProvider.CUSTOM, {
"upload_url": "https://your-server.com/upload",
"download_url": "https://your-server.com/download",
})
sync.sync_bidirectional()
```
### 4. Statistics Dashboard
Track usage metrics and system health.
```python
from plugins.stats_dashboard import StatsDashboardPlugin
stats = plugin_api.get_plugin("stats_dashboard")
stats.record_counter("my_event", 1)
health = stats.get_system_health()
report = stats.generate_report()
```
### 5. Import/Export System
Backup and restore your data in multiple formats.
```python
from plugins.import_export import ImportExportPlugin, ExportFormat
ie = plugin_api.get_plugin("import_export")
ie.export_data(profile="full", format=ExportFormat.ZIP)
ie.create_backup("my_backup")
ie.restore_backup("backup_file.zip")
```
## Documentation
- [Features Documentation](FEATURES.md) - Detailed feature documentation
- [Plugin Development](docs/PLUGIN_DEVELOPMENT.md) - Create your own plugins
- [API Reference](docs/API_REFERENCE.md) - Complete API documentation
## Project Structure
```
.
├── core/ # Core services
│ ├── base_plugin.py # Base plugin class
│ └── plugin_api.py # Plugin management API
├── plugins/ # Plugin directory
│ ├── auto_updater.py
│ ├── plugin_marketplace.py
│ ├── cloud_sync.py
│ ├── stats_dashboard.py
│ ├── import_export.py
│ └── test_plugin.py
├── data/ # Data storage
├── tests/ # Test suite
└── main.py # Entry point
```
## Requirements
- Python 3.8+
- (Optional) `pyperclip` for clipboard functionality
- (Optional) `psutil` for system metrics
- (Optional) `pyyaml` for YAML export/import
```bash
pip install -r requirements.txt
```
## Creating a Plugin
```python
from core.base_plugin import BasePlugin
class MyPlugin(BasePlugin):
name = "my_plugin"
description = "My custom plugin"
version = "1.0.0"
author = "Your Name"
def on_start(self):
print(f"[{self.name}] Plugin started!")
def on_stop(self):
print(f"[{self.name}] Plugin stopped!")
```
Save to `plugins/my_plugin.py` and it will be automatically loaded.
## License
MIT License