# 🐧 Pinguin Browser SDK

SDK für die Entwicklung von Addons für den Pinguin Browser.

## Installation

```bash
pip install pinguinbrowser-sdk
```

## Addon erstellen

### 1. Python-Datei schreiben

Erstelle eine `my_addon.py`:

```python
import pinguinbrowser_sdk

# Browser-API holen
browser = pinguinbrowser_sdk.get_browser()
api = pinguinbrowser_sdk.BrowserAPI(browser)

# Beispiel: Tab erstellen
def create_google_tab():
    api.create_tab("https://google.com")
    api.show_notification("Google Tab erstellt!", "success")

# Beispiel: Alle Tabs auflisten
def list_tabs():
    count = api.get_tab_count()
    api.show_notification(f"Du hast {count} Tabs offen", "info")

# Addon-Initialisierung
api.show_notification("Mein Addon wurde geladen!", "success")
create_google_tab()
```

### 2. Addon builden

```bash
pinguinbrowser --build
```

Dies öffnet ein GUI-Fenster wo du:
- Deine Python-Datei auswählst
- Name, Autor, Version und Beschreibung eingibst
- Auf "Addon erstellen" klickst

Es wird eine `.pbcl` Datei erstellt.

### 3. Addon installieren

1. Kopiere die `.pbcl` Datei in den `addons` Ordner deines Browsers
2. Starte den Browser neu
3. Gehe zu Einstellungen → Addons
4. Dein Addon ist jetzt sichtbar und kann aktiviert/deaktiviert werden

## API-Referenz

### Browser API

```python
from pinguinbrowser_sdk import BrowserAPI, get_browser

browser = get_browser()
api = BrowserAPI(browser)
```

#### Tab Management

```python
# Neuen Tab erstellen
api.create_tab(url="https://example.com", incognito=False, make_active=True)

# Tab schließen
api.close_tab(index=0)  # None = aktueller Tab

# Aktuellen Tab holen
tab = api.get_current_tab()

# Tab-Anzahl
count = api.get_tab_count()

# Zu Tab wechseln
api.switch_to_tab(2)

# Tab-URL holen
url = api.get_tab_url(index=0)

# Zu URL navigieren
api.navigate_to("https://github.com", index=None)

# Tab neu laden
api.reload_tab(index=None)

# JavaScript ausführen
api.execute_javascript("alert('Hello from Addon!');")
```

#### Benachrichtigungen

```python
api.show_notification("Nachricht", level="info")  # info, success, error, action
```

#### Einstellungen

```python
# Lesen
value = api.get_setting("key", default="default_value")

# Schreiben
api.set_setting("my_addon_setting", "value")
```

#### Storage (Addon-Daten)

```python
# Speichern
api.store_data("my_key", {"data": "value"})

# Laden
data = api.load_data("my_key", default={})
```

#### Verlauf & Cookies

```python
# Verlauf abrufen
history = api.get_history(limit=100)

# Verlauf löschen
api.clear_history()

# Cookies abrufen
cookies = api.get_cookies()

# Cookies löschen
api.clear_cookies()
```

#### UI Interaktion

```python
# Sidebar öffnen/schließen
api.show_sidebar()
api.hide_sidebar()

# URL-Bar
text = api.get_url_bar_text()
api.set_url_bar_text("https://example.com")
```

#### Downloads

```python
# Download-Liste
downloads = api.get_downloads()

# Downloads löschen
api.clear_downloads()
```

#### Tab-Gruppen

```python
# Gruppe erstellen
group_id = api.create_group("Meine Gruppe", color="#ff0000")

# Alle Gruppen
groups = api.get_groups()
```

#### Lesezeichen

```python
# Lesezeichen hinzufügen
api.add_bookmark("https://example.com", title="Example")

# Alle Lesezeichen
bookmarks = api.get_bookmarks()
```

#### Theme

```python
# Dark Mode umschalten
api.toggle_dark_mode()

# Prüfen ob Dark Mode aktiv
is_dark = api.is_dark_mode()
```

#### Screenshots

```python
# Screenshot erstellen
api.take_screenshot()
```

## Beispiel-Addons

### Auto-Refresh Addon

```python
import pinguinbrowser_sdk
import threading
import time

api = pinguinbrowser_sdk.BrowserAPI(pinguinbrowser_sdk.get_browser())

def auto_refresh():
    while True:
        time.sleep(60)  # Alle 60 Sekunden
        api.reload_tab()
        api.show_notification("Tab aktualisiert", "info")

# Thread starten
thread = threading.Thread(target=auto_refresh, daemon=True)
thread.start()

api.show_notification("Auto-Refresh Addon gestartet", "success")
```

### YouTube Shortcuts Addon

```python
import pinguinbrowser_sdk

api = pinguinbrowser_sdk.BrowserAPI(pinguinbrowser_sdk.get_browser())

# YouTube-Tab erstellen
def open_youtube():
    api.create_tab("https://youtube.com")
    api.show_notification("YouTube geöffnet", "success")

open_youtube()
```

### Dark Mode Scheduler

```python
import pinguinbrowser_sdk
import datetime
import threading
import time

api = pinguinbrowser_sdk.BrowserAPI(pinguinbrowser_sdk.get_browser())

def check_time():
    while True:
        hour = datetime.datetime.now().hour
        
        # 18-6 Uhr: Dark Mode
        if hour >= 18 or hour < 6:
            if not api.is_dark_mode():
                api.toggle_dark_mode()
        # 6-18 Uhr: Light Mode
        else:
            if api.is_dark_mode():
                api.toggle_dark_mode()
        
        time.sleep(3600)  # Jede Stunde prüfen

thread = threading.Thread(target=check_time, daemon=True)
thread.start()

api.show_notification("Dark Mode Scheduler aktiv", "success")
```

## Lizenz

MIT License