Aggiornamento alla versione 3.0.0
- Rimosse funzionalità legacy legate a WebView2. - Introdotto uno stile globale per i pulsanti. - Semplificata l'interfaccia con gestione tramite griglia unica. - Aggiunti comandi per avviare, mettere in pausa e fermare aste. - Introdotta gestione manuale dei cookie tramite dialog. - Aggiunti dialog per configurare sessione e aggiungere aste. - Migliorata la persistenza con salvataggio sicuro (DPAPI). - Rifattorizzate statistiche per utilizzare `BidHistory` e `BidderStats`. - Ottimizzato il polling per ridurre il carico di sistema. - Aggiornata esportazione CSV con dati più dettagliati. - Introdotti nuovi modelli dati per utente e banner aste. - Rimossi file di test manuale e codice obsoleto. - Aggiornata documentazione per riflettere le modifiche. - Aggiunta nuova icona dell'applicazione. - Migliorata la sicurezza eliminando il salvataggio in chiaro dei cookie.
This commit is contained in:
101
README.md
101
README.md
@@ -2,7 +2,7 @@
|
||||
|
||||
> AutoBidder è uno strumento desktop per Windows (WPF, .NET 8) pensato per automatizzare le offerte sul sito Bidoo.com. Questa guida descrive caratteristiche, installazione, configurazione, modalità operative, strategie avanzate, dettagli tecnici e risoluzione dei problemi.
|
||||
|
||||

|
||||

|
||||

|
||||
|
||||
---
|
||||
@@ -12,9 +12,9 @@ Sommario
|
||||
- Requisiti di sistema
|
||||
- Installazione e avvio
|
||||
- Guida rapida (primi passi)
|
||||
- Modalità operative: Asta Singola e Multi-Asta
|
||||
- Gestione aste tramite griglia
|
||||
- Strategie e consigli pratici
|
||||
- Dettagli tecnici: Polling, Click HTTP e sincronizzazione cookie
|
||||
- Dettagli tecnici: Polling e Click HTTP
|
||||
- Impostazioni e persistenza
|
||||
- Esportazione e diagnostica
|
||||
- FAQ e risoluzione problemi
|
||||
@@ -23,10 +23,9 @@ Sommario
|
||||
---
|
||||
|
||||
## Caratteristiche principali
|
||||
- Monitoraggio in tempo reale di singole aste o molte aste contemporaneamente
|
||||
- Due modalità operative: `Asta Singola` (massima precisione) e `Multi-Asta` (monitoraggio e auto-switch)
|
||||
- Polling adattivo (HTTP / WebView2 / Active) per ridurre uso di CPU e RAM
|
||||
- Click HTTP diretto (reverse engineered) con sincronizzazione dei cookie dal WebView2
|
||||
- Monitoraggio in tempo reale di tutte le aste tramite griglia unica
|
||||
- Polling adattivo solo HTTP per ridurre uso di CPU e RAM
|
||||
- Click HTTP diretto (reverse engineered) con cookie manuale
|
||||
- Persistenza della lista aste (`auctions.json`) e esportazione CSV delle statistiche
|
||||
- UI dark theme moderna con griglia in tempo reale, dettagli asta, log e contatori
|
||||
|
||||
@@ -44,59 +43,47 @@ Sommario
|
||||
- `dotnet restore`
|
||||
- `dotnet build --configuration Release`
|
||||
4. Eseguire l'app:
|
||||
- `dotnet run` (dalla cartella del progetto) oppure avviare `AutoBidder.exe` in `bin\\Release\\net8.0-windows`
|
||||
- `dotnet run` (dalla cartella del progetto) oppure avviare `AutoBidder.exe` in `bin\Release\net8.0-windows`
|
||||
|
||||
## Guida rapida (primi passi)
|
||||
1. Avvia l'app: l'interfaccia principale mostra due pannelli (controlli a sinistra, browser WebView2 a destra).
|
||||
2. Login: accedi a `bidoo.com` tramite il browser integrato (se vuoi usare il Click HTTP diretto devi essere loggato).
|
||||
3. Scegli modalità:
|
||||
- `Asta Singola` per concentrarti su un solo oggetto
|
||||
- `Multi-Asta` per monitorare più aste e lasciare che l'app esegua auto-switch
|
||||
4. Aggiungi aste (Multi-Asta):
|
||||
- Metodo Automatico: vai sulla pagina Preferiti e lascia che l'app rilevi le aste
|
||||
- Metodo Manuale: clicca `+ URL` o `Pagina` e incolla/aggiungi l'URL dell'asta
|
||||
5. Configura impostazioni globali o per-asta (Timer Click, Min/Max Price, Max Clicks, Max Resets, Ritardo, Multi-Click)
|
||||
6. Premi `Avvia` per attivare il Click Loop; il background polling rimane sempre attivo anche senza Avvia.
|
||||
1. Avvia l'app: l'interfaccia principale mostra la griglia delle aste monitorate.
|
||||
2. Configura la sessione: copia il cookie `__stattrb` dal browser (F12 > Application > Cookies) e inseriscilo tramite il dialog di configurazione.
|
||||
3. Aggiungi aste: usa il pulsante `+ Aggiungi` per inserire URL o ID delle aste da monitorare.
|
||||
4. Configura impostazioni per ogni asta (Timer Click, Min/Max Price, Max Clicks, Max Resets, Ritardo).
|
||||
5. Premi `Avvia Tutti` per attivare il monitoraggio e le puntate automatiche.
|
||||
|
||||
## Modalità operative
|
||||
|
||||
### Asta Singola
|
||||
- Ideale per oggetti di valore dove la precisione è critica.
|
||||
- Monitoraggio intensivo del DOM tramite WebView2, contatori dettagliati, lista utenti e log dedicato.
|
||||
- Supporta `Multi-Click` (click multipli paralleli) per aumentare probabilità in connessione instabile.
|
||||
- Impostazioni consigliate per asta singola: `Timer Click` 0-1, `Multi-Click` ON, `Ritardo` 0ms.
|
||||
|
||||
### Multi-Asta
|
||||
- Monitoraggio simultaneo di molte aste.
|
||||
- L'app punta solo sull'asta con `timer` più basso (auto-switch) per evitare concorrere contro se stessa.
|
||||
- Per ogni asta è possibile impostare opzioni indipendenti (Timer Click, Min/Max Price, Pausa/Riprendi).
|
||||
- Metodo manuale (URL diretto) è raccomandato per monitoraggi massivi (consumo risorse minimo).
|
||||
## Gestione aste tramite griglia
|
||||
- Tutte le aste sono gestite tramite una griglia unica.
|
||||
- Puoi avviare, mettere in pausa, fermare o puntare manualmente su ogni asta direttamente dalla griglia.
|
||||
- Non esistono più modalità "Asta Singola" o "Multi-Asta": tutto è gestito in modo uniforme.
|
||||
|
||||
## Strategie consigliate
|
||||
- Monitoraggio massivo (50+ aste): usa `URL Manuale`, `Timer Click` 0, limiti di prezzo bassi.
|
||||
- Asta singola ad alto valore: `Timer Click` 0-1, `Multi-Click` ON, `Ritardo` 0ms.
|
||||
- Caccia all'affare: `Max Price` molto basso, monitora molte aste con Timer Click 0.
|
||||
- Monitoraggio massivo: aggiungi molte aste tramite URL o ID, imposta Timer Click basso e limiti di prezzo.
|
||||
- Asta ad alto valore: Timer Click 0-1, Ritardo 0ms.
|
||||
- Caccia all'affare: Max Price basso, monitora molte aste con Timer Click 0.
|
||||
|
||||
## Approfondimento tecnico
|
||||
|
||||
### Polling adattivo (Dual-Track)
|
||||
- Track 1 — Background Polling: esegue richieste HTTP ogni ~5s per aggiornare timer, prezzo e ultimo bidder. Mantiene uso CPU/RAM minimo.
|
||||
- Track 2 — Click Loop: attivo solo dopo `Avvia`. Polling dinamico 20-400ms per aste critiche e invio dei click (HTTP diretto o WebView2 fallback).
|
||||
### Polling adattivo
|
||||
- Il monitoraggio avviene solo tramite chiamate HTTP dirette alle API di Bidoo.
|
||||
- Nessun WebView2 viene utilizzato, nemmeno come fallback.
|
||||
- Il polling si adatta al timer dell'asta per ottimizzare la frequenza delle richieste.
|
||||
|
||||
### Click HTTP diretto
|
||||
- Al momento dell'azione, il client costruisce una GET verso l'endpoint reverse engineered di Bidoo tipo:
|
||||
`GET https://it.bidoo.com/bid.php?AID=81204347&sup=0&shock=0`
|
||||
- Richiede i cookie di sessione (PHPSESSID, user_token, ecc.) che vengono sincronizzati dal WebView2.
|
||||
- Latenza tipica: 10-30ms (molto più veloce del click via WebView2 che può impiegare 50-100ms)
|
||||
- Se il Click HTTP fallisce, l'app esegue fallback automatico con `ExecuteScript` su WebView2.
|
||||
- Richiede i cookie di sessione (`__stattrb`) che vengono copiati manualmente dal browser.
|
||||
- Latenza tipica: 10-30ms.
|
||||
- Non esiste più alcun fallback WebView2: tutte le puntate sono gestite solo via HTTP.
|
||||
|
||||
### Sincronizzazione cookie
|
||||
- Al primo `Avvia` viene letto il `CookieManager` di `CoreWebView2`, copiato in un `CookieContainer` per l'`HttpClient` utilizzato dai Click HTTP.
|
||||
- I cookie sono conservati solo in memoria, mai su disco. Devono essere rinfrescati ri-effettuando il login nel WebView2 se scadono.
|
||||
- I cookie vengono inseriti manualmente dall'utente tramite dialog.
|
||||
- Non vengono mai salvati su disco in chiaro.
|
||||
- Se il cookie scade, è necessario copiarlo nuovamente dal browser.
|
||||
|
||||
## Persistenza e file locali
|
||||
- Lista aste manuali salvata in:
|
||||
`%AppData%\\AutoBidder\\auctions.json`
|
||||
`%AppData%\AutoBidder\auctions.json`
|
||||
- La lista viene ricaricata automaticamente all'avvio dell'app.
|
||||
- Esportazione CSV: la funzionalità `Export CSV` genera un file contenente statistiche per ogni asta (nome, ID, URL, timer, prezzo, strategy, click/resets, impostazioni per-asta).
|
||||
|
||||
@@ -105,13 +92,10 @@ Sommario
|
||||
- `Max Clicks` / `Max Resets`: limiti operativi (0 = illimitato)
|
||||
- `Min/Max Price`: evita puntate fuori dal range desiderato
|
||||
- `Ritardo (ms)`: delay aggiuntivo prima di inviare il click
|
||||
- `Multi-Click`: invia più click paralleli (utile su connessioni con jitter)
|
||||
|
||||
## Interfaccia e controlli
|
||||
- Pannello sinistro: controlli principali (modalità, Avvia, Pausa, Stop, aggiungi/rimuovi aste, esporta CSV)
|
||||
- Pannello destro: browser integrato (WebView2) + dettagli asta quando selezionata
|
||||
- Griglia aste (multi-asta): mostra Timer, Prezzo, Strategia, Clicks, Resets, Ultimo bidder
|
||||
- Log in tempo reale per ogni asta con dettagli di latenza, risposta server e fallimenti
|
||||
- Griglia centrale: mostra tutte le aste monitorate con controlli per avviare, mettere in pausa, fermare e puntare manualmente.
|
||||
- Log in tempo reale per ogni asta con dettagli di latenza, risposta server e fallimenti.
|
||||
|
||||
## Diagnostica ed esportazione
|
||||
- Abilita log dettagliato prima di aprire issue o per analisi locali
|
||||
@@ -119,17 +103,18 @@ Sommario
|
||||
- Mantieni screenshot del pannello log per report più chiari
|
||||
|
||||
## FAQ e risoluzione dei problemi
|
||||
- "Non vedo Click HTTP riuscito": assicurati di essere loggato nel WebView2 e che la sincronizzazione cookie sia avvenuta (vedi log "Cookie sincronizzati (X cookie)"). Premi `Avvia` dopo il login.
|
||||
- "Aste non rilevate": assicurati di essere nella pagina Preferiti per il metodo automatico oppure aggiungi gli URL manualmente.
|
||||
- "Non vedo Click HTTP riuscito": assicurati di aver inserito correttamente il cookie dal browser e che la sessione sia valida.
|
||||
- "Aste non rilevate": aggiungi manualmente gli URL o ID delle aste.
|
||||
- "Il programma non si avvia": verifica .NET 8.0 Runtime installato e che il build sia andato a buon fine.
|
||||
- "Click non funzionano": verifica Timer Click, limiti di prezzo e connessione internet. Controlla se il fallback WebView è attivo nei log.
|
||||
- "Click non funzionano": verifica Timer Click, limiti di prezzo, connessione internet e validità del cookie.
|
||||
|
||||
## Avvisi e responsabilità
|
||||
- L'automazione potrebbe violare i Termini di Servizio di Bidoo. L'uso è a rischio e responsabilità dell'utente.
|
||||
- Non salvare credenziali su disco: l'app non memorizza login, usa il WebView2 per la sessione.
|
||||
- Non salvare credenziali su disco: l'app non memorizza login, usa solo il cookie manuale.
|
||||
- Cookie e dati di sessione rimangono in memoria e vengono rimossi alla chiusura dell'app.
|
||||
|
||||
## Changelog sintetico (ultime versioni)
|
||||
- v3.0: Solo HTTP, nessun WebView2, cookie manuale, interfaccia unica su griglia
|
||||
- v2.10: Click HTTP diretto, sincronizzazione cookie automatica, miglioramenti prestazionali
|
||||
- v2.9: Persistenza automatica, UI improvements, export CSV
|
||||
- v2.8: Polling adattivo e strategie ibride
|
||||
@@ -141,13 +126,13 @@ Sommario
|
||||
---
|
||||
|
||||
Note tecniche per sviluppatori
|
||||
- Progetto target: `.NET 8.0` (WPF + WebView2)
|
||||
- Progetto target: `.NET 8.0` (WPF)
|
||||
- Aree chiave del codice:
|
||||
- `Services\\BidooApiClient.cs` — gestione Click HTTP e parsing risposte
|
||||
- `Services\\AuctionMonitor.cs` — loop di polling e logica auto-switch
|
||||
- `Services\\SessionManager.cs` — sincronizzazione cookie e HttpClient creation
|
||||
- `Utilities\\PersistenceManager.cs` — salvataggio/ricaricamento `auctions.json`
|
||||
- `ViewModels\\AuctionViewModel.cs` + XAML corrispondenti — visualizzazione e binding UI
|
||||
- `Services\BidooApiClient.cs` — gestione Click HTTP e parsing risposte
|
||||
- `Services\AuctionMonitor.cs` — loop di polling
|
||||
- `Services\SessionManager.cs` — gestione cookie manuale
|
||||
- `Utilities\PersistenceManager.cs` — salvataggio/ricaricamento `auctions.json`
|
||||
- `ViewModels\AuctionViewModel.cs` + XAML corrispondenti — visualizzazione e binding UI
|
||||
|
||||
## Contributi
|
||||
- Questo repository è privato. Per contribuire, aprire PR verso branch `main` e seguire le convenzioni del progetto.
|
||||
|
||||
Reference in New Issue
Block a user