Webhook Telegram Bot - Notifiche Discourse basate sull'IA

:information_source: Riassunto Bot Telegram professionale per notifiche automatiche su nuovi post dai forum Discourse con riassunti generati dall’IA utilizzando OpenAI GPT-4.1-nano
:hammer_and_wrench: Link Repository GitHub - DigneZzZ/webhook_tg_bot
:open_book: Guida all’installazione README_EN.md

Webhook Telegram Bot - Notifiche Discourse Potenziate dall’IA

Nota: Sebbene questo non sia un plugin Discourse tradizionale ma piuttosto un servizio di integrazione esterno, non sono riuscito a trovare una categoria più appropriata per condividere questo utile strumento con la community di Discourse. Questo bot funziona a fianco del tuo forum Discourse per fornire funzionalità di notifica avanzate.

Funzionalità

:link: Integrazione Discourse

  • Elabora webhook per eventi di creazione di argomenti e post

  • Supporta tutti i tipi di contenuti Discourse

  • Combina dati di argomenti e post in messaggi unificati

  • Verifica della firma webhook per la sicurezza (HMAC-SHA256)

:robot: Analisi dei Contenuti IA

  • Integrazione OpenAI GPT-4.1-nano per riassunti intelligenti dei post

  • Analisi del contenuto consapevole del contesto con pulizia dell’HTML

  • Modelli speciali per diversi tipi di contenuto

  • Filtraggio ed elaborazione automatica dei contenuti

:mobile_phone: Invio Avanzato Telegram

  • Invia notifiche alla chat principale o ad argomenti specifici del forum

  • Mappatura delle categorie - instrada diverse categorie di Discourse verso diversi argomenti Telegram

  • Prefissi emoji per ruoli utente (:crown: Admin, :shield: Moderatore, :star: Staff, ecc.)

  • Formattazione intelligente dei messaggi HTML

:bullseye: Filtraggio Flessibile e Controllo

  • Monitora categorie specifiche o tutte le categorie
  • Ignora categorie indesiderate con sistema di priorità
  • Blocca utenti bot (discobot, chatbot, utenti di sistema)
  • Notifiche sezioni premium con avvisi di abbonamento

:rocket: Pronto per la Produzione

  • Containerizzazione Docker con controlli di integrità
  • Pipeline CI/CD GitHub Actions
  • Integrazione Systemd per avvio automatico
  • Registrazione e monitoraggio completi
  • Arresto grazioso e gestione degli errori

Configurazione

1. Configurazione Webhook Discourse

  1. Naviga su Admin → API → Webhooks

  2. Fai clic su New Webhook

  3. Configura:

Payload URL: https://your-domain.com/webhook

Content Type: application/json

Secret: your_webhook_secret

Which events: Topic Event + Post Event

2. Configurazione Bot Telegram

  1. Crea il bot tramite @BotFather

  2. Ottieni Chat ID per il tuo gruppo/canale

  3. Opzionalmente, configura argomenti del forum per l’instradamento delle categorie

3. Configurazione dell’Ambiente

Crea il file .env con le impostazioni richieste (vedi configurazione completa nel repository).

4. Distribuzione Docker

# Installazione rapida

curl -fsSL https://raw.githubusercontent.com/dignezzz/webhook_tg_bot/main/install.sh -o install.sh

chmod +x install.sh

./install.sh install

5. Configurazione Proxy Inverso

Per il supporto webhook sul tuo dominio, configura un proxy inverso (nginx/Apache) per instradare le richieste webhook al container del bot sulla porta 8080.

Esempio di configurazione nginx:

location /webhook {
proxy_pass http://localhost:8080/webhook;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
}

Impostazioni

Nome Descrizione Predefinito Richiesto
TELEGRAM_BOT_TOKEN Token del bot da @BotFather - :white_check_mark:
TELEGRAM_CHAT_ID ID del gruppo/canale di destinazione - :white_check_mark:
TELEGRAM_THREAD_ID ID dell’argomento principale (0 = chat principale) 0 :cross_mark:
WEBHOOK_SECRET Chiave segreta per la verifica della firma - :white_check_mark:
WEBHOOK_PORT Porta del server webhook 8080 :cross_mark:
WEBHOOK_PATH Percorso dell’endpoint webhook /webhook :cross_mark:
OPENAI_API_KEY Chiave API OpenAI per i riassunti - :cross_mark:
OPENAI_MODEL Modello GPT da utilizzare gpt-4.1-nano :cross_mark:
BASE_URL URL del tuo forum Discourse - :cross_mark:
MONITORED_CATEGORIES ID delle categorie da monitorare (separati da virgola) all :cross_mark:
IGNORED_CATEGORIES ID delle categorie da ignorare (separati da virgola) none :cross_mark:
IGNORED_USERS ID degli utenti da ignorare (separati da virgola) none :cross_mark:
PREMIUM_CATEGORIES ID delle categorie premium (separati da virgola) none :cross_mark:

Mappatura Categoria-Argomento (Opzionale):

TELEGRAM_THREAD_ID_1=123456
THREAD_CATEGORIES_1=1,2,3
TELEGRAM_THREAD_ID_2=234567
THREAD_CATEGORIES_2=4,5

Esempio Formato Messaggio

👤 👑 Administrator ha creato un nuovo post: Guida alla configurazione Docker

📋 L'autore condivide una soluzione al problema di configurazione del container Docker e spiega il processo passo-passo per risolvere gli errori di connessione al database.

🔗 Link all'argomento (https://forum.example.com/t/topic/123)

🏷 Tag: #docker, #database, #troubleshooting

💎 Questa sezione è disponibile solo su abbonamento.

Installazione e Gestione

Il bot include uno script di gestione per operazioni semplici:

whtg status # Controlla lo stato del bot

whtg start # Avvia il bot

whtg stop # Arresta il bot

whtg restart # Riavvia il bot

whtg logs # Visualizza i log

whtg update # Aggiorna all'ultima versione

whtg uninstall # Rimuovi il bot

Supporto Lingua

Nota: Attualmente, tutti i messaggi dell’interfaccia e la documentazione sono in russo, ma il supporto per la lingua inglese sarà aggiunto nel prossimo futuro. Il bot funziona con qualsiasi forum Discourse indipendentemente dalla lingua.

Requisiti Tecnici

  • Docker e Docker Compose

  • Proxy inverso (nginx/Apache) per il supporto del dominio webhook

  • Chiave API OpenAI (opzionale, per riassunti IA)

  • Certificato HTTPS (raccomandato per la produzione)

Supporto e Contributi

Licenza: Licenza MIT

2 Mi Piace