🎯 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 zapytań 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 Reward.
Pobieranie kodu:
a) Kod pojawia się w wyskakującym okienku — odczytuje się 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 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
🛠️ Technologie
Python + Playwright lub Node.js + Puppeteer
Użycie prawdziwych profili Chrome
Przerwy: losowe + time.sleep()
Konfiguracja przez JSON lub INI
📝 Oczekuję 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 weryfikacyjnych.
✅ Ręcznie strona działa stabilnie — w 10 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 4-8 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 stronach opartych na Flutter Web (tak jak w przypadku Three+).
🔹 Brak autoryzacji — logowanie odbywa się przez istniejące profile, więc ryzyko otrzymania SMS weryfikacyjnego 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 będzie działał maksymalnie niezawodnie, jak ręczna interakcja.