# 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