146 lines
3.7 KiB
Markdown
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
|