Refactoring e nuove funzionalità per AutoBidder v4.0
* Aggiornamento alla versione 4.0.0 * Refactoring architetturale: introdotte partial classes e UserControls modulari per migliorare manutenibilità e leggibilità. * Aggiunti nuovi UserControls: `AuctionMonitorControl`, `BrowserControl`, `SettingsControl`, `StatisticsControl`. * Introdotto supporto per WebView2 per il browser integrato. * Migliorata gestione delle aste: aggiunta/rimozione tramite URL o ID, configurazione predefinita. * Nuove funzionalità di esportazione: supporto CSV, JSON, XML con opzioni configurabili. * Logging avanzato: codifica colore per severità e auto-scroll. * Tema scuro moderno e miglioramenti UI/UX: sidebar di navigazione, griglie virtualizzate, icone emoji. * Persistenza dati: salvataggio automatico di aste e impostazioni in file JSON. * Documentazione aggiornata: `README.md`, `CHANGELOG.md` e nuovi file di supporto. * Miglioramenti alla sicurezza: cookie di sessione salvati in modo sicuro con DPAPI. * Preparazione per future estensioni: placeholder per funzionalità avanzate e struttura modulare.
This commit is contained in:
754
README.md
754
README.md
@@ -1,148 +1,694 @@
|
||||
# AutoBidder - Guida completa all'uso
|
||||
# AutoBidder v4.0 - Guida Completa
|
||||
|
||||
> AutoBidder è un'app desktop per Windows (WPF, .NET 8) progettata per monitorare aste su Bidoo e inviare offerte automatiche tramite richieste HTTP.
|
||||
|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
AutoBidder è un'applicazione desktop per Windows realizzata con WPF e .NET 8.0, progettata per il monitoraggio e la gestione automatizzata di aste online sulla piattaforma Bidoo. L'applicazione utilizza polling HTTP per monitorare in tempo reale lo stato delle aste e inviare offerte automatiche tramite richieste HTTP dirette, senza necessità di automazione browser.
|
||||
|
||||
---
|
||||
|
||||
Indice
|
||||
- Panoramica
|
||||
- Caratteristiche principali
|
||||
- Requisiti di sistema
|
||||
- Installazione e build
|
||||
- Avvio e guida rapida
|
||||
- Configurazione della sessione (cookie)
|
||||
- Gestione aste e griglia principale
|
||||
- Impostazioni e strategie consigliate
|
||||
- Dettagli tecnici
|
||||
- Persistenza, esportazione e diagnostica
|
||||
- FAQ e risoluzione dei problemi
|
||||
- Supporto
|
||||
## Indice
|
||||
|
||||
1. [Panoramica](#panoramica)
|
||||
2. [Requisiti di Sistema](#requisiti-di-sistema)
|
||||
3. [Installazione](#installazione)
|
||||
4. [Interfaccia Utente](#interfaccia-utente)
|
||||
5. [Configurazione Sessione](#configurazione-sessione)
|
||||
6. [Monitoraggio Aste](#monitoraggio-aste)
|
||||
7. [Browser Integrato](#browser-integrato)
|
||||
8. [Statistiche e Analisi](#statistiche-e-analisi)
|
||||
9. [Impostazioni e Configurazione](#impostazioni-e-configurazione)
|
||||
10. [Export Dati](#export-dati)
|
||||
11. [Dettagli Tecnici](#dettagli-tecnici)
|
||||
12. [FAQ e Troubleshooting](#faq-e-troubleshooting)
|
||||
13. [Sicurezza e Responsabilità](#sicurezza-e-responsabilit)
|
||||
|
||||
---
|
||||
|
||||
Panoramica
|
||||
## Panoramica
|
||||
|
||||
AutoBidder monitora e gestisce più aste simultaneamente tramite polling HTTP verso gli endpoint di Bidoo. L'app è pensata per offrire precisione nelle puntate minimizzando l'uso di risorse (CPU/RAM).
|
||||
AutoBidder offre un'interfaccia dashboard moderna con layout modulare che permette di monitorare simultaneamente più aste, visualizzare statistiche in tempo reale e configurare strategie di bidding personalizzate. L'architettura dell'applicazione è stata progettata per massimizzare le prestazioni minimizzando l'utilizzo di risorse di sistema.
|
||||
|
||||
Caratteristiche principali
|
||||
### Caratteristiche Principali
|
||||
|
||||
- Monitoraggio in tempo reale delle aste tramite griglia unica
|
||||
- Polling HTTP adattivo per aggiornare timer e prezzo delle aste
|
||||
- Invio delle puntate con richieste HTTP dirette (GET a endpoint bid)
|
||||
- Inserimento manuale del cookie di sessione tramite dialog dedicato
|
||||
- Persistenza della lista aste in `auctions.json` e esportazione CSV delle statistiche
|
||||
- Interfaccia scura, log per-asta e contatori in tempo reale
|
||||
**Monitoraggio Multi-Asta**
|
||||
- Gestione simultanea di un numero illimitato di aste
|
||||
- Polling HTTP adattivo che regola la frequenza delle richieste in base allo stato dell'asta
|
||||
- Tracking real-time di timer, prezzo corrente, ultimo offerente e numero di reset
|
||||
- Statistiche dettagliate per ogni asta con log dedicato e lista utenti partecipanti
|
||||
|
||||
Requisiti di sistema
|
||||
**Invio Offerte Automatico**
|
||||
- Puntate inviate tramite richieste HTTP GET dirette agli endpoint Bidoo
|
||||
- Configurazione precisa del timing con granularità al secondo (0-8 secondi countdown)
|
||||
- Delay configurabile in millisecondi per ottimizzare la precisione dell'invio
|
||||
- Limiti di prezzo minimo/massimo per controllo automatico delle spese
|
||||
- Limite massimo di click per asta per gestire il budget di puntate
|
||||
|
||||
- Windows 10 (1809+) o Windows 11
|
||||
- .NET 8.0 Runtime
|
||||
- RAM: 4 GB (consigliati 8 GB)
|
||||
- Connessione Internet stabile
|
||||
**Dashboard Moderna**
|
||||
- Layout a griglia con 6 pannelli ridimensionabili tramite GridSplitter
|
||||
- Dark theme professionale con palette colori consistente
|
||||
- Log globale e log per singola asta con codifica colore per severità
|
||||
- Lista utenti partecipanti con statistiche dettagliate
|
||||
- Pannello impostazioni dedicato per configurazione real-time parametri asta
|
||||
|
||||
Installazione e build
|
||||
**Browser Integrato**
|
||||
- WebView2 basato su Microsoft Edge Chromium
|
||||
- Navigazione completa su Bidoo.com
|
||||
- Aggiunta rapida aste dall'URL corrente
|
||||
- Menu contestuale personalizzato per azioni rapide
|
||||
- Sincronizzazione cookie con sessione applicazione
|
||||
|
||||
1. Verificare il Runtime .NET 8.0: `dotnet --version` (output: 8.0.x)
|
||||
2. Clonare il repository (privato):
|
||||
- `git clone https://192.168.30.23/Alby96/Mimante`
|
||||
3. Dal folder del progetto eseguire:
|
||||
- `dotnet restore`
|
||||
- `dotnet build --configuration Release`
|
||||
4. Eseguire l'app:
|
||||
- `dotnet run` oppure avviare `AutoBidder.exe` in `bin\Release\net8.0-windows`
|
||||
---
|
||||
|
||||
Avvio e guida rapida
|
||||
## Requisiti di Sistema
|
||||
|
||||
1. Avvia l'app: la finestra principale mostra la griglia delle aste monitorate.
|
||||
2. Configura la sessione: apri il dialog `Configura Sessione` e incolla il cookie di sessione (vedi sezione sotto).
|
||||
3. Aggiungi aste: clicca `+ Aggiungi` e inserisci l'URL o l'ID dell'asta.
|
||||
4. Per ogni asta imposta `Timer Click`, `Min/Max Price`, `Max Clicks` e altre opzioni.
|
||||
5. Premi `Avvia Tutti` per iniziare il monitoraggio e l'invio automatico delle puntate.
|
||||
**Sistema Operativo**
|
||||
- Windows 10 (build 1809 o successiva)
|
||||
- Windows 11 (tutte le versioni)
|
||||
|
||||
Configurazione della sessione (cookie)
|
||||
**Software Richiesto**
|
||||
- .NET 8.0 Runtime o SDK
|
||||
- WebView2 Runtime (solitamente già installato su Windows 11)
|
||||
|
||||
Per inviare puntate HTTP è necessario fornire il cookie di sessione della tua istanza di Bidoo. L'app espone un dialog (`Configura Sessione`) con un campo multilinea in cui incollare il valore dell'header `Cookie` o i cookie rilevanti (es. `PHPSESSID`, `user_token`).
|
||||
**Hardware Consigliato**
|
||||
- CPU: Dual-core 2.0 GHz o superiore
|
||||
- RAM: 4 GB minimo, 8 GB consigliato
|
||||
- Spazio disco: 200 MB per l'applicazione
|
||||
- Connessione Internet: stabile con latenza < 100ms verso server Bidoo
|
||||
|
||||
Come ottenere il cookie da Chrome:
|
||||
- Apri Chrome, premi `F12` per aprire gli Strumenti per sviluppatori.
|
||||
- Vai alla scheda `Application` ? `Storage` ? `Cookies` ? seleziona `bidoo.com`.
|
||||
- Copia il valore del cookie di sessione oppure l'intero header cookie.
|
||||
- Incollalo nel campo della finestra `Configura Sessione` e premi `OK`.
|
||||
---
|
||||
|
||||
Note importanti sulla gestione cookie:
|
||||
- I cookie inseriti vengono mantenuti solo in memoria durante l'esecuzione e **non** vengono salvati in chiaro su disco.
|
||||
- Se il cookie scade è necessario copiarne uno nuovo tramite la stessa procedura.
|
||||
## Installazione
|
||||
|
||||
Gestione aste e griglia principale
|
||||
### Installazione da Sorgente
|
||||
|
||||
- La griglia mostra tutte le aste monitorate con colonne: nome, timer, prezzo, strategia, click, resets, ultimo bidder.
|
||||
- Operazioni disponibili per ogni riga: Avvia/Pausa, Stop, Puntata manuale, Rimuovi.
|
||||
- Selezionando una riga si aprono i dettagli per-asta: log, lista utenti e impostazioni dedicate.
|
||||
1. **Verificare .NET 8.0**
|
||||
```bash
|
||||
dotnet --version
|
||||
```
|
||||
L'output dovrebbe mostrare 8.0.x. Se non installato, scaricarlo da [dot.net](https://dot.net).
|
||||
|
||||
Impostazioni e strategie consigliate
|
||||
2. **Clonare il Repository**
|
||||
```bash
|
||||
git clone https://192.168.30.23/Alby96/Mimante
|
||||
cd Mimante/Mimante
|
||||
```
|
||||
|
||||
- `Timer Click` (0-8): secondo del countdown al quale inviare la puntata (0 = 0.0-0.9s)
|
||||
- `Ritardo (ms)`: delay aggiuntivo prima di inviare il click
|
||||
- `Multi-Click` (se disponibile): invia più tentativi paralleli per aumentare affidabilità
|
||||
- Uso consigliato:
|
||||
- Aste molteplici: impostare Timer basso e limiti di prezzo conservativi
|
||||
- Asta ad alto valore: Timer 0-1, Ritardo 0ms, Multi-Click ON (se necessario)
|
||||
3. **Restore Dipendenze**
|
||||
```bash
|
||||
dotnet restore
|
||||
```
|
||||
|
||||
Dettagli tecnici
|
||||
4. **Build del Progetto**
|
||||
```bash
|
||||
dotnet build --configuration Release
|
||||
```
|
||||
|
||||
Polling
|
||||
- L'app utilizza polling HTTP adattivo: la frequenza delle richieste è regolata in base al timer dell'asta per bilanciare precisione e carico.
|
||||
5. **Eseguire l'Applicazione**
|
||||
```bash
|
||||
dotnet run
|
||||
```
|
||||
oppure avviare l'eseguibile da `bin\Release\net8.0-windows\AutoBidder.exe`
|
||||
|
||||
Invio puntate (Click HTTP)
|
||||
- Le puntate sono effettuate tramite richieste HTTP GET verso l'endpoint di Bidoo (es.: `/bid.php?AID=...&sup=0&shock=0`).
|
||||
- Le richieste includono il cookie di sessione fornito dall'utente.
|
||||
- Latenza tipica: 10-30ms (variabile in base alla rete e al server remoto).
|
||||
### Installazione WebView2 Runtime
|
||||
|
||||
Fallback e WebView2
|
||||
- La versione corrente si concentra su polling e click via HTTP. Se il progetto integra WebView2 per altre funzionalità, l'invio attivo delle puntate è gestito via HTTP e non dipende dal rendering del browser.
|
||||
Se WebView2 non è già installato:
|
||||
1. Scaricare da [microsoft.com/edge/webview2](https://developer.microsoft.com/microsoft-edge/webview2/)
|
||||
2. Eseguire l'installer Evergreen Bootstrapper
|
||||
3. Riavviare l'applicazione
|
||||
|
||||
Persistenza, esportazione e diagnostica
|
||||
---
|
||||
|
||||
- Aste aggiunte manualmente sono salvate in: `%AppData%\AutoBidder\auctions.json` e ricaricate all'avvio.
|
||||
- `Export CSV` consente di esportare statistiche per ogni asta: nome, ID, URL, timer, prezzo, click, resets, impostazioni.
|
||||
- Abilitare log dettagliato per indagare problemi: il log registra latenza, risposte server e errori per-asta.
|
||||
## Interfaccia Utente
|
||||
|
||||
FAQ e risoluzione dei problemi
|
||||
L'interfaccia di AutoBidder è organizzata in una sidebar di navigazione verticale e un'area contenuto principale che mostra diverse schede.
|
||||
|
||||
- "Non vedo Click HTTP riuscito": verifica che il cookie sia corretto e la sessione valida.
|
||||
- "Aste non rilevate": aggiungi gli URL o gli ID manualmente nella griglia.
|
||||
- "Il programma non si avvia": assicurati che .NET 8.0 sia installato e che il build sia andato a buon fine.
|
||||
- "Click non funzionano": verifica Timer Click, limiti di prezzo, connessione di rete e validità del cookie.
|
||||
### Sidebar Navigazione
|
||||
|
||||
Sicurezza e responsabilità
|
||||
La sidebar a sinistra contiene 5 tab principali:
|
||||
|
||||
- L'uso di strumenti automatici può violare i Termini di Servizio di Bidoo. L'utente è responsabile dell'uso che fa dell'app.
|
||||
- L'app non salva credenziali su disco. Gestisci i cookie in modo sicuro e non condividerli.
|
||||
- **Aste Attive**: Dashboard principale con griglia aste monitorate e pannelli di controllo
|
||||
- **Browser**: Browser integrato WebView2 per navigazione su Bidoo
|
||||
- **Puntate Gratis**: Placeholder per funzionalità di ricerca puntate gratuite (in sviluppo)
|
||||
- **Dati Statistici**: Analisi aste chiuse e raccomandazioni strategiche (in sviluppo)
|
||||
- **Impostazioni**: Configurazione sessione, export e impostazioni globali
|
||||
|
||||
Supporto
|
||||
### Layout Dashboard Aste Attive
|
||||
|
||||
- Repository privato Gitea: `https://192.168.30.23/Alby96/Mimante`
|
||||
- Per problemi tecnici aprire issue nel repository o contattare il manutentore del progetto.
|
||||
Il pannello Aste Attive è diviso in 6 sezioni ridimensionabili:
|
||||
|
||||
Note per sviluppatori
|
||||
**Sezione Superiore**
|
||||
- Header con info utente (username, puntate disponibili, aste vinte)
|
||||
- Pulsanti controllo globale: Avvia Tutti, Pausa Tutti, Ferma Tutti, Esporta
|
||||
- Griglia aste monitorate (2/3 larghezza) con colonne: ID, Nome, Latenza, Stato, Timer, Prezzo, Ultimo offerente, Click, Reset, Azioni
|
||||
- Log globale (1/3 larghezza) con timestamp e codifica colore
|
||||
|
||||
- Progetto target: `.NET 8.0` (WPF)
|
||||
- File e componenti principali:
|
||||
- `Services\BidooApiClient.cs` — gestione Click HTTP e parsing risposte
|
||||
- `Services\AuctionMonitor.cs` — loop di polling e logica di scheduling
|
||||
- `Dialogs\SessionDialog.xaml` — dialog per l'inserimento manuale dei cookie
|
||||
- `Utilities\PersistenceManager.cs` — gestione `auctions.json`
|
||||
- `ViewModels\AuctionViewModel.cs` — binding e stato delle righe nella griglia
|
||||
**Sezione Inferiore (dettagli asta selezionata)**
|
||||
- Pannello Impostazioni: URL, pulsanti Apri/Copia/Esporta, campi Timer/Delay/Min/Max Price/Max Clicks, Reset
|
||||
- Pannello Utenti: DataGrid con lista utenti partecipanti, conteggio puntate, timestamp ultima offerta, Pulisci
|
||||
- Pannello Log Asta: Log dedicato per asta selezionata con Pulisci
|
||||
|
||||
Contributi
|
||||
Tutti i pannelli sono ridimensionabili trascinando i separatori GridSplitter verticali e orizzontali.
|
||||
|
||||
- Repository privato: aprire PR verso `main` secondo le convenzioni del progetto.
|
||||
---
|
||||
|
||||
Licenza
|
||||
## Configurazione Sessione
|
||||
|
||||
- Privato — non distribuire senza autorizzazione del proprietario.
|
||||
Per inviare puntate automatiche è necessario fornire ad AutoBidder il cookie di sessione autenticata del tuo account Bidoo. L'applicazione non gestisce login con username/password ma richiede l'inserimento manuale del cookie di sessione.
|
||||
|
||||
Buona fortuna con le aste e usa AutoBidder responsabilmente.
|
||||
### Ottenere il Cookie di Sessione
|
||||
|
||||
1. **Aprire Chrome** e navigare su `https://it.bidoo.com`
|
||||
2. **Effettuare il login** con le proprie credenziali Bidoo
|
||||
3. **Aprire Developer Tools** premendo `F12`
|
||||
4. **Navigare alla tab "Application"**
|
||||
5. **Nel menu laterale** andare su Storage ? Cookies ? `https://it.bidoo.com`
|
||||
6. **Copiare la stringa completa** di tutti i cookie (formato: `cookie1=value1; cookie2=value2; ...`)
|
||||
|
||||
### Configurare il Cookie nell'Applicazione
|
||||
|
||||
1. **Aprire la scheda Impostazioni** dalla sidebar
|
||||
2. **Nella sezione "Configurazione Sessione"** incollare la stringa cookie nel campo di testo multi-line
|
||||
3. **Opzionale**: Cliccare "Importa dal Browser" per tentare l'import automatico dai browser installati
|
||||
4. **Cliccare "Salva"** per salvare le modifiche
|
||||
|
||||
La sessione viene salvata in modo sicuro usando DPAPI (Data Protection API) di Windows, cifrata per l'account utente corrente. Il cookie non viene mai salvato in chiaro su disco.
|
||||
|
||||
### Verifica Sessione
|
||||
|
||||
Dopo aver configurato il cookie, l'applicazione:
|
||||
- Mostrerà il nome utente nell'header della scheda Aste Attive
|
||||
- Aggiornerà automaticamente il numero di puntate disponibili
|
||||
- Abiliterà i pulsanti di controllo aste
|
||||
|
||||
Se il cookie scade o diventa invalido, sarà necessario ripetere la procedura di configurazione.
|
||||
|
||||
---
|
||||
|
||||
## Monitoraggio Aste
|
||||
|
||||
### Aggiungere Aste
|
||||
|
||||
**Metodo 1: Da URL o ID**
|
||||
1. Cliccare "Aggiungi" nella griglia aste
|
||||
2. Inserire uno o più URL/ID asta (uno per riga, o separati da spazio/punto e virgola)
|
||||
3. Formati supportati:
|
||||
- URL completo: `https://it.bidoo.com/auction.php?a=asta_123456`
|
||||
- ID asta: `123456`
|
||||
- Link diretto: `it.bidoo.com/...`
|
||||
4. Cliccare OK per aggiungere
|
||||
|
||||
**Metodo 2: Dal Browser Integrato**
|
||||
1. Navigare su Bidoo nel browser integrato
|
||||
2. Aprire la pagina di un'asta
|
||||
3. Cliccare "Aggiungi Asta" nella toolbar del browser
|
||||
4. L'asta verrà aggiunta automaticamente alla griglia
|
||||
|
||||
**Metodo 3: Menu Contestuale Browser**
|
||||
1. Nel browser integrato, fare click destro su un link di un'asta
|
||||
2. Selezionare "Aggiungi Asta" dal menu contestuale
|
||||
3. L'asta verrà estratta e aggiunta alla griglia
|
||||
|
||||
### Configurare Parametri Asta
|
||||
|
||||
Dopo aver selezionato un'asta dalla griglia, il pannello Impostazioni in basso a sinistra mostra:
|
||||
|
||||
**Timer Click (secondi 0-8)**
|
||||
- Specifica il secondo del countdown al quale inviare la puntata
|
||||
- 0 = invia tra 0.0s e 0.9s
|
||||
- 1 = invia tra 1.0s e 1.9s
|
||||
- E così via fino a 8
|
||||
|
||||
**Delay (millisecondi)**
|
||||
- Delay aggiuntivo da applicare dopo aver raggiunto il timer
|
||||
- Valori tipici: 0-500ms
|
||||
- Usare per fine-tuning della precisione
|
||||
|
||||
**Min EUR / Max EUR**
|
||||
- Limiti di prezzo per controllo automatico
|
||||
- Se impostati, l'applicazione non punterà se il prezzo esce da questi limiti
|
||||
- Utile per evitare offerte su aste troppo costose
|
||||
|
||||
**Max Clicks**
|
||||
- Numero massimo di puntate da inviare per questa asta
|
||||
- 0 = nessun limite
|
||||
- Dopo aver raggiunto questo limite, l'asta viene automaticamente fermata
|
||||
|
||||
### Controllare le Aste
|
||||
|
||||
**Avvio/Pausa/Ferma Singola Asta**
|
||||
- Usare i pulsanti "Avvia", "Pausa", "Ferma" nella colonna Azioni della griglia
|
||||
- Avvia: inizia il monitoring e l'invio automatico puntate
|
||||
- Pausa: sospende temporaneamente senza fermare il polling
|
||||
- Ferma: arresta completamente il monitoring
|
||||
|
||||
**Avvio/Pausa/Ferma Globale**
|
||||
- Usare i pulsanti nell'header per controllare tutte le aste simultaneamente
|
||||
- Utile per avvio rapido di sessioni multi-asta
|
||||
|
||||
**Puntata Manuale**
|
||||
- Cliccare "Punta" nella colonna Azioni per inviare un'offerta immediata
|
||||
- Ignora timer e limiti configurati
|
||||
- Utile per test o interventi manuali urgenti
|
||||
|
||||
### Rimuovere Aste
|
||||
|
||||
- Selezionare un'asta dalla griglia
|
||||
- Cliccare "Rimuovi" o premere il tasto `Canc`
|
||||
- Confermare la rimozione nel dialog
|
||||
- L'asta verrà rimossa dalla lista e il monitoring sarà arrestato
|
||||
|
||||
### Persistenza
|
||||
|
||||
Le aste aggiunte vengono salvate automaticamente in `%AppData%\AutoBidder\saved_auctions.json` e ricaricate all'avvio dell'applicazione, mantenendo tutte le configurazioni (timer, limiti, stati).
|
||||
|
||||
---
|
||||
|
||||
## Browser Integrato
|
||||
|
||||
La scheda Browser contiene un controllo WebView2 che offre un'esperienza di navigazione completa basata su Microsoft Edge Chromium.
|
||||
|
||||
### Toolbar Browser
|
||||
|
||||
- **? ?**: Pulsanti indietro/avanti
|
||||
- **?**: Ricarica pagina
|
||||
- **Home**: Naviga alla homepage Bidoo
|
||||
- **Barra indirizzo**: Mostra URL corrente, permette navigazione diretta
|
||||
- **Vai**: Naviga all'URL inserito
|
||||
- **Aggiungi Asta**: Aggiunge l'asta della pagina corrente alla griglia
|
||||
|
||||
### Navigazione
|
||||
|
||||
Il browser si comporta come un browser standard:
|
||||
- Click su link per navigare
|
||||
- Form funzionano normalmente (login, ricerca, ecc.)
|
||||
- JavaScript abilitato
|
||||
- Cookie condivisi con la sessione applicazione
|
||||
|
||||
### Menu Contestuale
|
||||
|
||||
Facendo click destro su un link nel browser:
|
||||
- **Aggiungi Asta**: Estrae l'ID asta dal link e la aggiunge alla griglia
|
||||
- **Copia Link**: Copia l'URL negli appunti
|
||||
|
||||
### Sincronizzazione Cookie
|
||||
|
||||
I cookie del browser WebView2 sono sincronizzati con la sessione dell'applicazione. Se configurato un cookie nella scheda Impostazioni, questo sarà disponibile anche nel browser integrato, permettendo la navigazione autenticata.
|
||||
|
||||
---
|
||||
|
||||
## Statistiche e Analisi
|
||||
|
||||
La scheda Dati Statistici è attualmente in fase di sviluppo e mostrerà in futuro:
|
||||
|
||||
**Analisi Aste Chiuse**
|
||||
- Import e parsing di aste chiuse da file export o scraping diretto
|
||||
- Aggregazione statistica: media prezzi finali, numero medio puntate, distribuzione oraria vincite
|
||||
- Visualizzazione grafici e trend
|
||||
|
||||
**Raccomandazioni Strategiche**
|
||||
- Suggerimenti automatici basati su dati storici
|
||||
- Applicazione automatica di configurazioni ottimali per prodotti simili
|
||||
- Machine learning per previsione prezzi e probabilità di vittoria
|
||||
|
||||
**Database Locale**
|
||||
- Storage in SQLite con Entity Framework Core
|
||||
- Schema ottimizzato per query analitiche
|
||||
- Export/import dati per backup
|
||||
|
||||
---
|
||||
|
||||
## Impostazioni e Configurazione
|
||||
|
||||
La scheda Impostazioni è divisa in 3 sezioni principali.
|
||||
|
||||
### Configurazione Sessione
|
||||
|
||||
**Campo Cookie**
|
||||
- Area di testo multi-line per incollare la stringa cookie completa
|
||||
- Formati supportati: stringa cookie raw, solo token `__stattrb`, cookie separati da punto e virgola
|
||||
|
||||
**Pulsanti**
|
||||
- **Importa dal Browser**: Tenta import automatico cookie da Chrome, Edge, Firefox
|
||||
- **Cancella**: Pulisce il campo e resetta la sessione
|
||||
|
||||
**Info Box**
|
||||
- Istruzioni dettagliate su come ottenere la stringa cookie completa
|
||||
- Guida passo-passo per Chrome Developer Tools
|
||||
|
||||
### Impostazioni Export
|
||||
|
||||
**Percorso Export**
|
||||
- Path del folder dove salvare i file esportati
|
||||
- Pulsante "Sfoglia" per selezione tramite dialog
|
||||
|
||||
**Formato File**
|
||||
- **CSV**: Comma-Separated Values, compatibile con Excel
|
||||
- **JSON**: JavaScript Object Notation, formato strutturato
|
||||
- **XML**: Extensible Markup Language, formato gerarchico
|
||||
|
||||
**Opzioni Export**
|
||||
- **Includi solo puntate utilizzate**: Esporta solo aste su cui sono state inviate offerte
|
||||
- **Includi log delle aste**: Aggiunge ai file export il log completo di ogni asta
|
||||
- **Includi storico puntate utenti**: Esporta la lista utenti partecipanti con statistiche
|
||||
- **Includi metadata delle aste**: Aggiunge informazioni dettagliate (URL, impostazioni, timestamp)
|
||||
- **Rimuovi aste dopo l'export**: Elimina automaticamente le aste dalla griglia dopo export riuscito
|
||||
- **Sovrascrivi file esistenti**: Permette sovrascrittura senza conferma
|
||||
|
||||
### Impostazioni Predefinite Aste
|
||||
|
||||
Valori che verranno applicati automaticamente a tutte le nuove aste aggiunte:
|
||||
|
||||
- **Timer Click (secondi)**: Default 0
|
||||
- **Delay (millisecondi)**: Default 50
|
||||
- **Prezzo Minimo (€)**: Default 0 (nessun limite)
|
||||
- **Prezzo Massimo (€)**: Default 0 (nessun limite)
|
||||
- **Max Click**: Default 0 (nessun limite)
|
||||
|
||||
### Salvataggio Impostazioni
|
||||
|
||||
Cliccare il pulsante "Salva" nella barra inferiore per salvare tutte le modifiche apportate alle tre sezioni. Le impostazioni vengono salvate in file JSON locali e persistono tra le sessioni.
|
||||
|
||||
---
|
||||
|
||||
## Export Dati
|
||||
|
||||
### Export Massivo
|
||||
|
||||
1. Cliccare "Esporta" nell'header della scheda Aste Attive
|
||||
2. Confermare nel dialog
|
||||
3. Tutte le aste monitorate verranno esportate secondo le opzioni configurate
|
||||
4. Un messaggio confermerà il numero di aste esportate e il path dei file
|
||||
|
||||
### Export Singola Asta
|
||||
|
||||
1. Selezionare un'asta dalla griglia
|
||||
2. Nel pannello Impostazioni, cliccare "Esporta"
|
||||
3. Solo l'asta selezionata verrà esportata
|
||||
|
||||
### Formati Export
|
||||
|
||||
**CSV**
|
||||
```csv
|
||||
AuctionId,Name,Url,Status,Timer,Price,Clicks,Resets
|
||||
123456,"Prodotto XYZ","https://...",Closed,0,5.50,15,3
|
||||
```
|
||||
|
||||
**JSON**
|
||||
```json
|
||||
{
|
||||
"auctions": [
|
||||
{
|
||||
"auctionId": "123456",
|
||||
"name": "Prodotto XYZ",
|
||||
"url": "https://...",
|
||||
"status": "Closed",
|
||||
"finalPrice": 5.50,
|
||||
"myClicks": 15,
|
||||
"resetCount": 3,
|
||||
"log": [...],
|
||||
"bidders": [...]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
**XML**
|
||||
```xml
|
||||
<Auctions>
|
||||
<Auction>
|
||||
<AuctionId>123456</AuctionId>
|
||||
<Name>Prodotto XYZ</Name>
|
||||
...
|
||||
</Auction>
|
||||
</Auctions>
|
||||
```
|
||||
|
||||
### Preferenze Export
|
||||
|
||||
L'ultimo formato utilizzato viene salvato automaticamente e proposto come default per export successivi. Le preferenze sono memorizzate in `%AppData%\AutoBidder\exportprefs.json`.
|
||||
|
||||
---
|
||||
|
||||
## Dettagli Tecnici
|
||||
|
||||
### Architettura Applicazione
|
||||
|
||||
**Pattern Utilizzati**
|
||||
- **Partial Classes**: `MainWindow` diviso in 13 file per responsabilità (Commands, AuctionManagement, Logging, UIUpdates, EventHandlers, ecc.)
|
||||
- **UserControls Modulari**: 5 controlli riutilizzabili (AuctionMonitorControl, BrowserControl, SettingsControl, StatisticsControl, SimpleToolbar)
|
||||
- **MVVM Light**: Separazione Model-View-ViewModel per logica UI
|
||||
- **Service Layer**: Servizi dedicati (AuctionMonitor, BidooApiClient, SessionManager, StatsService)
|
||||
- **Repository Pattern**: PersistenceManager per storage JSON
|
||||
|
||||
**Struttura Progetto**
|
||||
```
|
||||
AutoBidder/
|
||||
??? Core/ # MainWindow partial classes
|
||||
??? Controls/ # UserControls WPF
|
||||
??? Dialogs/ # Finestre dialog
|
||||
??? Models/ # Data models
|
||||
??? Services/ # Business logic
|
||||
??? ViewModels/ # MVVM ViewModels
|
||||
??? Utilities/ # Helper utilities
|
||||
??? Data/ # EF Core contexts
|
||||
??? Documentation/ # Markdown docs
|
||||
```
|
||||
|
||||
### Polling HTTP
|
||||
|
||||
**Meccanismo**
|
||||
- Richieste HTTP GET asincrone verso endpoint API Bidoo
|
||||
- Parsing risposta JSON per estrarre stato asta (timer, prezzo, bidder)
|
||||
- Frequenza adattiva: polling più frequente quando timer < 10s
|
||||
|
||||
**Latenza**
|
||||
- Misurata e visualizzata per ogni asta nella colonna "Latenza"
|
||||
- Valori tipici: 50-200ms per rete stabile
|
||||
- Utilizzata per ottimizzare timing invio puntate
|
||||
|
||||
**Threading**
|
||||
- Ogni asta ha un task asincrono dedicato
|
||||
- Cancellation token per gestione pulita stop/pause
|
||||
- Throttling per evitare overload server
|
||||
|
||||
### Invio Puntate
|
||||
|
||||
**Endpoint**
|
||||
```
|
||||
GET /bid.php?AID={auctionId}&sup=0&shock=0
|
||||
Cookie: __stattrb={token}; ...
|
||||
```
|
||||
|
||||
**Parametri**
|
||||
- `AID`: ID asta
|
||||
- `sup`: Tipo puntata (0=normale)
|
||||
- `shock`: Shock bid (0=disabilitato)
|
||||
|
||||
**Headers**
|
||||
- `Cookie`: Stringa cookie sessione configurata
|
||||
- `User-Agent`: Browser-like per evitare blocchi
|
||||
- `Referer`: URL asta corrente
|
||||
|
||||
**Gestione Risposta**
|
||||
- Success: HTTP 200 con corpo contenente nuovo timer/prezzo
|
||||
- Failure: Errore di rete, sessione scaduta, bid già effettuato
|
||||
- Retry: Nessun retry automatico, log dell'errore
|
||||
|
||||
### WebView2 Runtime
|
||||
|
||||
**Versione**
|
||||
- Basato su Microsoft Edge Chromium
|
||||
- Stesso engine usato dal browser Edge
|
||||
- Aggiornamenti automatici tramite Windows Update
|
||||
|
||||
**Isolamento**
|
||||
- User Data Folder separato per applicazione
|
||||
- Cookie storage dedicato
|
||||
- Cache locale per performance
|
||||
|
||||
**JavaScript**
|
||||
- Abilitato di default
|
||||
- Accesso a Web APIs moderne (Fetch, Async/Await, ecc.)
|
||||
- Nessun injection di script personalizzati
|
||||
|
||||
### Database SQLite
|
||||
|
||||
**Schema**
|
||||
```sql
|
||||
CREATE TABLE AuctionStatistics (
|
||||
Id INTEGER PRIMARY KEY,
|
||||
AuctionId TEXT NOT NULL,
|
||||
ProductName TEXT,
|
||||
FinalPrice REAL,
|
||||
TotalBids INTEGER,
|
||||
WinnerUsername TEXT,
|
||||
ClosedAt DATETIME,
|
||||
PollingLatencyMs INTEGER
|
||||
);
|
||||
|
||||
CREATE TABLE ProductInsights (
|
||||
Id INTEGER PRIMARY KEY,
|
||||
ProductName TEXT UNIQUE,
|
||||
AveragePrice REAL,
|
||||
AverageBids INTEGER,
|
||||
TotalAuctions INTEGER,
|
||||
RecommendedMaxPrice REAL,
|
||||
RecommendedMaxClicks INTEGER
|
||||
);
|
||||
```
|
||||
|
||||
**ORM**
|
||||
- Entity Framework Core 8.0
|
||||
- Code-First migrations
|
||||
- Async queries per performance
|
||||
|
||||
### Performance
|
||||
|
||||
**Metriche Target**
|
||||
- CPU: < 5% idle, < 15% attivo con 10 aste
|
||||
- RAM: ~100MB base + 10MB per 100 aste
|
||||
- Latenza polling: 50-200ms media
|
||||
- UI responsiveness: < 16ms per frame (60fps)
|
||||
|
||||
**Ottimizzazioni**
|
||||
- Lazy loading UserControls (caricamento on-demand per tab)
|
||||
- DataGrid virtualizzazione (rendering solo righe visibili)
|
||||
- Async/await per tutte le operazioni I/O
|
||||
- Throttling polling basato su stato asta
|
||||
- String pooling per log messages
|
||||
|
||||
---
|
||||
|
||||
## FAQ e Troubleshooting
|
||||
|
||||
**Q: L'applicazione non invia puntate, perché?**
|
||||
|
||||
A: Verificare:
|
||||
1. Cookie di sessione configurato e valido nella scheda Impostazioni
|
||||
2. Asta selezionata e in stato "Avviato" (non pausato o fermo)
|
||||
3. Timer Click configurato (0-8 secondi)
|
||||
4. Limiti prezzo non superati
|
||||
5. Max Clicks non raggiunto
|
||||
6. Connessione internet attiva
|
||||
|
||||
Controllare il Log Asta per messaggi di errore specifici.
|
||||
|
||||
**Q: Come ottengo il cookie di sessione?**
|
||||
|
||||
A: Segui la guida dettagliata nella sezione [Configurazione Sessione](#configurazione-sessione). In breve: Chrome ? F12 ? Application ? Cookies ? bidoo.com ? copia tutti i valori.
|
||||
|
||||
**Q: Il cookie smette di funzionare dopo un po', perché?**
|
||||
|
||||
A: I cookie di sessione Bidoo hanno una scadenza (tipicamente 24-48 ore). Quando scadono è necessario effettuare nuovamente login su Bidoo e copiare un nuovo cookie. L'applicazione mostra un warning nel log quando rileva cookie invalido.
|
||||
|
||||
**Q: Posso usare AutoBidder su più computer contemporaneamente?**
|
||||
|
||||
A: Sì, ma ogni istanza deve avere il proprio cookie di sessione. Bidoo potrebbe invalidare sessioni se rileva login multipli simultanei da IP diversi. Usa con cautela.
|
||||
|
||||
**Q: L'applicazione consuma troppa CPU/RAM, come ridurre?**
|
||||
|
||||
A:
|
||||
- Riduci il numero di aste monitorate simultaneamente
|
||||
- Aumenta intervallo polling per aste con timer > 60s (configurabile in codice)
|
||||
- Chiudi tab non utilizzate (Browser, Statistiche)
|
||||
- Disabilita log dettagliati per singole aste
|
||||
|
||||
**Q: WebView2 non si carica o mostra errore, cosa fare?**
|
||||
|
||||
A:
|
||||
1. Verificare che WebView2 Runtime sia installato: Pannello di Controllo ? Programmi ? WebView2
|
||||
2. Se non installato, scaricarlo da microsoft.com/edge/webview2
|
||||
3. Riavviare l'applicazione dopo installazione
|
||||
4. Se persiste, reinstallare WebView2 Runtime
|
||||
|
||||
**Q: Come esporto le statistiche di tutte le aste?**
|
||||
|
||||
A: Cliccare "Esporta" nell'header della scheda Aste Attive. Configurare le opzioni export nella scheda Impostazioni prima dell'export. I file verranno salvati nel percorso configurato.
|
||||
|
||||
**Q: Posso importare aste da un file?**
|
||||
|
||||
A: Attualmente no. Le aste devono essere aggiunte manualmente via URL/ID. Feature in roadmap per versioni future.
|
||||
|
||||
**Q: L'applicazione supporta proxy o VPN?**
|
||||
|
||||
A: L'applicazione usa le impostazioni proxy di sistema di Windows. Configurare proxy in Impostazioni Windows ? Rete ? Proxy.
|
||||
|
||||
**Q: Posso personalizzare i colori dell'interfaccia?**
|
||||
|
||||
A: Non tramite UI. I colori sono hard-coded nel XAML. Per personalizzazioni, modificare i file `*.xaml` nella cartella del progetto.
|
||||
|
||||
**Q: L'applicazione salva le password?**
|
||||
|
||||
A: No. AutoBidder non gestisce password. Richiede solo il cookie di sessione che viene salvato cifrato con DPAPI Windows.
|
||||
|
||||
---
|
||||
|
||||
## Sicurezza e Responsabilità
|
||||
|
||||
### Disclaimer Importante
|
||||
|
||||
**Termini di Servizio**
|
||||
L'uso di strumenti di automazione potrebbe violare i Termini di Servizio della piattaforma Bidoo. L'utente è l'unico responsabile dell'uso che fa di AutoBidder. Gli sviluppatori non si assumono responsabilità per sospensioni account, perdite economiche o altre conseguenze derivanti dall'uso dell'applicazione.
|
||||
|
||||
### Sicurezza Dati
|
||||
|
||||
**Storage Cookie**
|
||||
- I cookie non vengono mai salvati in chiaro su disco
|
||||
- Utilizzo di DPAPI (Data Protection API) di Windows per cifratura
|
||||
- Chiave di cifratura legata all'account utente corrente Windows
|
||||
- Impossibile decriptare da altri account o computer
|
||||
|
||||
**Network Security**
|
||||
- Tutte le comunicazioni con Bidoo avvengono tramite HTTPS
|
||||
- Nessuna trasmissione dati sensibili a server terzi
|
||||
- L'applicazione non "telefona a casa" o invia telemetria
|
||||
|
||||
**Privacy**
|
||||
- Nessun log remoto
|
||||
- Nessuna raccolta analytics
|
||||
- Tutti i dati rimangono in locale sul computer dell'utente
|
||||
|
||||
### Best Practices
|
||||
|
||||
1. **Non condividere il cookie di sessione** con nessuno
|
||||
2. **Logout da Bidoo** dopo aver copiato il cookie per invalidare vecchie sessioni
|
||||
3. **Non usare su computer pubblici** o condivisi
|
||||
4. **Backup regolari** di `%AppData%\AutoBidder` per preservare configurazioni
|
||||
5. **Aggiornare regolarmente** l'applicazione per patch di sicurezza
|
||||
6. **Usare password sicure** per l'account Windows (protegge DPAPI)
|
||||
|
||||
### Limitazioni
|
||||
|
||||
- AutoBidder è un tool per uso personale, non commerciale
|
||||
- Non distribuire o rivendere senza autorizzazione
|
||||
- Il repository è privato: non pubblicare il codice sorgente
|
||||
- Non usare per competizioni o tornei dove automazione è proibita
|
||||
|
||||
---
|
||||
|
||||
## Supporto e Sviluppo
|
||||
|
||||
**Repository Privato Gitea**
|
||||
```
|
||||
https://192.168.30.23/Alby96/Mimante
|
||||
```
|
||||
|
||||
**Issue Tracker**
|
||||
Per bug reports, feature requests o domande tecniche, aprire una Issue nel repository.
|
||||
|
||||
**Contatti**
|
||||
Per supporto diretto contattare il maintainer del progetto tramite Gitea.
|
||||
|
||||
**Contributori**
|
||||
Il progetto accetta Pull Requests secondo le convenzioni definite nel CONTRIBUTING.md (da creare).
|
||||
|
||||
**Licenza**
|
||||
Progetto privato - Tutti i diritti riservati. Non distribuire senza autorizzazione esplicita del proprietario.
|
||||
|
||||
---
|
||||
|
||||
**AutoBidder v4.0** - Developed with ?? using .NET 8.0 and WPF
|
||||
|
||||
© 2024 - Per uso personale. Non distribuire.
|
||||
Reference in New Issue
Block a user