# 🤖 Bot Telegram per Gestione Sessioni

Questo bot Telegram ti permette di gestire completamente le sessioni Telegram direttamente dal bot, senza dover accedere al server o eseguire comandi manuali.

## 📋 Funzionalità

- ✅ **Crea nuove sessioni** - Autenticazione completa tramite bot
- 📋 **Lista sessioni** - Visualizza tutte le sessioni salvate
- 🗑️ **Elimina sessioni** - Rimuovi sessioni non più necessarie
- 🔐 **Gestione 2FA** - Supporto completo per password 2FA
- 🔒 **Controllo accessi** - Opzionale: limita l'accesso a utenti specifici

## 🚀 Configurazione

### 1. Crea un Bot Telegram

1. Apri Telegram e cerca `@BotFather`
2. Invia il comando `/newbot`
3. Segui le istruzioni per creare il bot
4. Copia il **token** che ti viene fornito (es. `123456789:ABCdefGHIjklMNOpqrsTUVwxyz`)

### 2. Configura il file `.env`

Aggiungi le seguenti variabili al tuo file `.env`:

```env
# Telegram Bot Configuration
TELEGRAM_BOT_TOKEN=il_tuo_bot_token_qui

# Opzionale: lista di User ID autorizzati separati da virgola
# Se non specificato, tutti possono usare il bot
ALLOWED_USER_IDS=123456789,987654321
```

**Come ottenere il tuo User ID:**
- Cerca `@userinfobot` su Telegram
- Invia un messaggio al bot
- Copia il tuo User ID

### 3. Avvia il Bot con Docker

```bash
# Avvia tutti i servizi (MySQL, phpMyAdmin, Bot)
docker-compose up -d

# Visualizza i log del bot
docker-compose logs -f bot

# Oppure solo il bot
docker-compose up -d bot
```

## 📱 Utilizzo del Bot

### Comandi Disponibili

- `/start` - Mostra il messaggio di benvenuto
- `/help` - Mostra la guida ai comandi
- `/sessions` - Lista tutte le sessioni salvate
- `/create` - Crea una nuova sessione
- `/delete` - Elimina una sessione esistente

### Creare una Nuova Sessione

1. Invia il comando `/create` al bot
2. Inserisci il numero di telefono con prefisso internazionale (es. `+393491234567`)
3. Riceverai un codice OTP su Telegram
4. Invia il codice ricevuto al bot
5. Se hai 2FA attivo, inserisci la password quando richiesta
6. La sessione verrà salvata automaticamente nel database

### Visualizzare le Sessioni

Invia il comando `/sessions` per vedere tutte le sessioni salvate con:
- Nome e username
- Numero di telefono
- User ID
- Data ultimo aggiornamento
- Session ID

### Eliminare una Sessione

1. Invia il comando `/delete`
2. Visualizza la lista delle sessioni disponibili
3. Inserisci il **Session ID** della sessione da eliminare
4. La sessione verrà rimossa dal database

## 🐳 Gestione Docker

### Avviare il Bot

```bash
# Avvia solo il bot
docker-compose up -d bot

# Avvia tutti i servizi
docker-compose up -d
```

### Visualizzare i Log

```bash
# Log del bot
docker-compose logs -f bot

# Log di tutti i servizi
docker-compose logs -f
```

### Riavviare il Bot

```bash
docker-compose restart bot
```

### Fermare il Bot

```bash
docker-compose stop bot
```

### Aggiornare il Bot

```bash
# Ricostruisci l'immagine
docker-compose build bot

# Riavvia il bot
docker-compose up -d bot
```

## 🔒 Sicurezza

### Limitare l'Accesso al Bot

Per limitare l'accesso solo a utenti specifici, aggiungi nel file `.env`:

```env
ALLOWED_USER_IDS=123456789,987654321
```

Dove `123456789` e `987654321` sono i User ID degli utenti autorizzati.

**Nota:** Se `ALLOWED_USER_IDS` non è specificato o è vuoto, tutti possono usare il bot.

## 🛠️ Risoluzione Problemi

### Il bot non risponde

1. Verifica che il bot sia avviato: `docker-compose ps`
2. Controlla i log: `docker-compose logs bot`
3. Verifica che `TELEGRAM_BOT_TOKEN` sia configurato correttamente nel `.env`

### Errore di connessione al database

1. Verifica che MySQL sia avviato: `docker-compose ps mysql`
2. Controlla che le variabili d'ambiente del database siano corrette
3. Verifica i log di MySQL: `docker-compose logs mysql`

### Errore durante la creazione sessione

1. Verifica che `TELEGRAM_API_ID` e `TELEGRAM_API_HASH` siano configurati
2. Assicurati che il numero di telefono sia nel formato corretto (con prefisso internazionale)
3. Controlla i log del bot per dettagli sull'errore

## 📝 Note

- Il bot mantiene lo stato delle conversazioni in memoria
- Se interrompi il processo di creazione sessione, puoi ricominciare con `/create`
- Le sessioni vengono salvate nel database MySQL
- Il bot si riconnette automaticamente in caso di disconnessione

## 🔗 Link Utili

- [Documentazione Telegraf](https://telegraf.js.org/)
- [Documentazione Telegram Bot API](https://core.telegram.org/bots/api)
- [GramJS Documentation](https://gram.js.org/)
