🎯 Cel
Stworzyć program desktopowy lub skrypt (na Python lub Node.js), który automatycznie otwiera prawdziwe profile Chrome, loguje się do 20 kont na 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 po uruchomieniu (liczba ustawiana w konfiguracji).
Pracuje przez prawdziwy Chrome z lokalnymi profilami (user-data-dir + profile-directory).
Nie używa trybów headless, Selenium lub zapytań HTTP.
Imituje działania człowieka: otwarcie przeglądarki, nawigacja, kliknięcia, pauzy.
Pomija konta, z których kod już został pobrany — rozpoznaje to na podstawie danych w tym samym CSV.
🔄 Algorytm działania
Otwiera Chrome z odpowiednim profilem, który jest już zalogowany do Three+.
Przechodzi do sekcji Cineworld, klika przycisk Get Reward.
Pobieranie kodu:
a) Kod pojawia się w wyskakującym okienku — odczytuje go i zapisuje.
b) W pojedynczych przypadkach pojawia się link “Go to yours codes” — wtedy program przechodzi tam i pobiera kod.
W każdym przypadku, po kliknięciu "Get Reward" kod zawsze trafia do sekcji My Codes, więc program powinien odczytywać go stamtąd.
Zapisuje kod w odpowiedniej kolumnie tego samego pliku CSV obok loginu.
Zamyka przeglądarkę, ale nie wylogowuje się.
Przetwarza kolejne konta (do 20), pomijając już przetworzone.
Zakończa działanie.
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
🛠️ Technologie
Python + Playwright lub Node.js + Puppeteer
Użycie prawdziwych profili Chrome
Pauzy: losowe + time.sleep()
Konfiguracja przez JSON lub INI
📝 Czekam na wersję
🚨 Ważne
🧍♂️ Wszystkie działania muszą imitować ręczną pracę użytkownika.
Program musi działać jak najbardziej „ludzko” (z pauzami, prawdziwymi User-Agent i bez nagłych jednoczesnych zapytań), aby uniknąć blokad lub żądań SMS.
✅ Ręcznie strona działa stabilnie — w 10 minut mogę bez problemu uzyskać kody z 40-60 kont.
Program może nie wykonywać logowania — korzysta z już zalogowanych profili.
Całe zachowanie musi być maksymalnie „ludzkie”: otwarta przeglądarka, opóźnienia, prawdziwe kliknięcia, unikanie jednoczesnych zapytań.
IP nie zmienia się, proxy nie używa się.
🔹 Python + Playwright lub Node.js + Puppeteer — to naprawdę właściwy wybór, ponieważ:
Pozwalają uruchamiać prawdziwego Chrome z profilami, bez headless i bez zbędnych emulacji.
Pracują stabilnie nawet z witrynami opartymi na Flutter Web (tak jak w przypadku Three+).
🔹 Brak autoryzacji — logowanie odbywa się przez istniejące profile, więc ryzyko otrzymania SMS potwierdzenia 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: imitacja ręcznej pracy (każde konto otwierane osobno, działanie z pauzami) — to klucz do uniknięcia blokad.
🔹 Logika CSV — poprawna: odczyt, sprawdzanie, aktualizacja — wszystko w jednym pliku, bez zbędnych baz danych.
🔹 Brak headless, Selenium czy proxy — to dokładnie to, czego potrzebujesz dla 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.