🎯 Cel
Stworzyć program desktopowy lub skrypt (w Pythonie lub Node.js), który automatycznie otwiera prawdziwe profile Chrome, loguje się na 20 kontach Three+, wyciąga kod (liczbę) ze strony po zalogowaniu i dodaje go do tej samej tabeli CSV.
⚙️ Funkcjonalność
Program uruchamia się ręcznie na Windows (bez usług w tle lub autostartu).
Przetwarza pierwsze 20 kont przy każdym uruchomieniu (liczba ustawiana w konfiguracji).
Działa przez prawdziwego Chrome z lokalnymi profilami (user-data-dir + profile-directory).
Nie używa trybów headless, Selenium ani żądań HTTP.
Imituje działania człowieka: otwieranie przeglądarki, nawigacja, kliknięcia, przerwy.
Pomija konta, z których kod już został pobrany — rozpoznaje to na podstawie danych w tej samej CSV.
🔄 Algorytm działania
Otwiera Chrome z odpowiednim profilem, który jest już zalogowany na Three+.
Przechodzi do sekcji Cineworld, klika przycisk Get Rewards.
Pobieranie kodu:
Zapisuje kod w odpowiedniej kolumnie w tym samym pliku CSV obok loginu.
Zamyka przeglądarkę, ale nie wylogowuje się.
Przetwarza kolejne konta (do 20), pomijając już przetworzone.
Zakończa pracę.
Przy kolejnym uruchomieniu program kontynuuje od następnych nieprzetworzonych wpisów.
⚙️ Konfiguracja (settings.json lub .ini)
Ścieżka do Chrome (chrome.exe)
Lista profili (nazwy lub ścieżki)
URL Rewards (zmienia się co tydzień)
Opóźnienia między działaniami: 2–3 minuty (losowo)
Ścieżka do pliku CSV
🗺️ Funkcje strony
Domena: https://threeplus.three.co.uk
URL Rewards zmienia się co poniedziałek (należy ustawić w ustawieniach)
Strona oparta na Flutter Web (canvas), aktywny HSTS, brak CAPTCHA
🛠️ Technologie
Python + Playwright lub Node.js + Puppeteer
Użycie prawdziwych profili Chrome
Przerwy: losowe + time.sleep()
Konfiguracja przez JSON lub INI
📝 Czekam na wersję
🚨 Ważne
🧍♂️ Wszystkie działania muszą imituować ręczną pracę użytkownika.
Program musi działać jak najbardziej „ludzko” (z przerwami, prawdziwymi User-Agent i bez nagłych równoczesnych zapytań), aby uniknąć blokad lub żądań SMS.
✅ Ręczne korzystanie ze strony działa stabilnie — w 20 minut mogę bez problemu uzyskać kody z 40 kont.
✅ Program musi powtarzać dokładnie taką samą szybkość (nie szybciej, nie wolniej), aby nie wzbudzać podejrzeń
Program nie wykonuje logowania — korzysta tylko z już zalogowanych profili.
Całe zachowanie musi być maksymalnie „ludzkie”: otwarta przeglądarka, opóźnienia, prawdziwe kliknięcia, unikanie równoczesnych zapytań.
Szybkość przetwarzania = ~20 kont w 5-10 minut (nie szybciej!)
Adres IP nie zmienia się, proxy nie są używane.
Program nie powinien wywoływać SMS-ów weryfikacyjnych.
🔹 Python + Playwright lub Node.js + Puppeteer — to naprawdę właściwy wybór, ponieważ:
Pozwalają na uruchomienie prawdziwego Chrome z profilami, bez headless i bez zbędnych emulacji.
Pracują stabilnie nawet na skomplikowanych stronach Flutter Web (tak jak w przypadku Three+).
🔹 Brak autoryzacji — logowanie odbywa się przez istniejące profile, więc ryzyko otrzymania SMS jest minimalne (przy poprawnej symulacji użytkownika).
🔹 Zbieranie kodu przez page.evaluate() — skuteczne i naturalne, szczególnie przy nawigacji przez My Codes.
🔹 Opóźnienia, kliknięcia, zachowanie użytkownika — ważny element: imituje ręczną pracę (każdy profil otwiera się osobno, działa z przerwami) — to klucz do uniknięcia blokad.
🔹 Logika CSV — poprawna: odczyt, weryfikacja, aktualizacja — wszystko w jednym pliku, bez zbędnych baz danych.
🔹 Brak headless, Selenium czy proxy — to dokładnie to, czego potrzebujesz do bezpiecznej automatyzacji w tak wrażliwym środowisku.
✅ Jeśli wszystko zostanie zrealizowane właśnie tak — program będzie w 100% spełniał wymagania i działał maksymalnie niezawodnie, jak ręczna interakcja.