#js

wszystkie notatki oznaczone etykietą "js"

Ciekawe i użyteczne operatory w JS

Przy ostatniej aktualizacji mojego skryptu “Allegro Seller Info” odkryłem i wykorzystałem przydatny operator na jaki już od jakiegoś czasu natrafiałem w różnych JavaScriptowych kodach. To zmusiło mnie do przejrzenia co tam nowego pojawiło się w ostatnich kilku standardach tego języka… [Z powodu małych problemów czasowych, wpis w ciągłym przygotowaniu…]

Allegro Seller Info 0.1.17

Poranne przeglądanie listy obserwowanych/poszukiwanych elementów na Allegro ukazało standardową bolączkę mojego skryptu - przestał działać na listach aukcji. Co może świadczyć, że znów coś pozmieniano i “ulepszono” w serwisie. Na pierwszy rzut oka udało mi się zlokalizować problem w pobieraniu “propsów” z obiektów React-a. W ostatniej wersji coś tam mieszali, a teraz wygląda na to, że znów to robią. Chyba zmieniła się struktura (niekoniecznie DOM-a), bo jakby potrzebne mi obiekty są “zaszyte” poziom niżej - doszedł return w łańcuchu dostępu do obiektu item.

Czytaj dalej

Allegro Seller Info 0.1.16

Mój skrypt użytkownika na allegro dorobił się kolejnej aktualizacji. Zauważyłem dziś kilka dziwnych rzeczy występujących na listach z aukcjami. Niektóre elementy listy nie posiadają wstawek z informacjami o sprzedającym, a te niewidoczne na pierwszym planie jakby “doładowują” się w miarę ich wyświetlenia. Dotyczy to tylko pierwszej strony bazowej listy - tej widocznej po bezpośrednim załadowaniu strony, bo kolejne podstrony ładowane asynchronicznie działają już poprawnie. Cześć z tych problemów wynika z faktu, że niektóre elementy <article/> na listach aukcji nie posiadają react-owych obiektów, z których to korzysta skrypt.

Czytaj dalej

UserJS: YouTube Block Popups (SignIn/GDPR)

Często odpalam jakieś filmy na YouTube w trybie Incognito, bo nie chcę zabrudzać sobie historii obejrzanych filmów, czy karmić algorytm rekomendacji jakimiś pierdołami. Niestety we wrześniu, albo już trochę wcześniej, zauważyłem dziwne zachowanie - po kilku sekundach od rozpoczęcia odtwarzania materiału video, nagle wszystko zostaje przerwane, jakby ktoś wcisnął “Stop”. Myślałem, że to może wina YT, ale długo nic się nie zmieniało, to po którymś razie wyłączyłem swojego AdBlocka (uBlock Origin) i odkryłem przyczynę tego dziwnego działania.

Czytaj dalej

Allegro Seller Info 0.1.15

Po 3 dniach kolejne wydanie allegrowego skryptu użytkownika, bo dziś znów coś na stronie uległo zmianie… Na listach ofert przestały wyświetlać się informacje o sprzedającym. Na szybko ustaliłem, że zmieniono coś w strukturze i identyfikatorach elementów. Nie ma już kontenera #opbox-listing--base, za to jest .opbox-listing. Niestety elementów z taką klasą jest więcej, więc nie będzie to prosta aktualizacja selektora. Tym razem trzeba dodać trochę więcej kodu, bo interesuje mnie ten kontener, w którym to znajdują się oferty zapakowane w <article/>.

Czytaj dalej

Allegro Seller Info 0.1.14

Po powrocie z urlopu znów trzeba poprawić allegrowy skrypt, bo coś nie do końca działa poprawnie. Tym razem zmiana bardzo prosta i szybka. Dotyczy regex-a, za pomocą którego, na stronach ofertowych, następuje wyszukanie i wydobycie miejsca lokacji sprzedającego. Wersja 0.1.14 już jest dostępna w repo UserScripts i standardowo automatyczne aktualizacje powinny zrobić resztę ;) Przy okazji trochę pomarudzę o tym co się dziś stało na Allegro… Na stronach listujących oferty zmieniono nieco style i powiększono elementy listy.

Czytaj dalej

Web Scraping i ScreenShooting w Headless Chrome (CLI)

“Web Scraping” kojarzy mi się z odległymi latami, kiedy to tworzyło się boty i skrypty w Perlu wyciągające ze stron różne potrzebne dane. W większości działały one w command-line i “widziały” tylko to co zawiera źródło strony. Trochę więcej zachodu było jeśli chciało się mieć jakiś dostęp do DOM-a i wykonywać skrypty JS (własne lub te ze strony), aby dostać finalny kod strony, jaki widzą użytkownicy w przeglądarce. To wymagało już jakiś sztuczek z embedowaniem przeglądarki lub jej silnika.

Czytaj dalej

Allegro Seller Info 0.1.13

Po powrocie ze Śląska i w jakimś sensie prawie tygodniowym detoksie od kompa i sieci, pierwszą rzeczą jaka przykuła moją uwagę było niedziałanie UserScript-a na Allegro. No to już dowiedziałem się jaka będzie moja pierwsza czynność do wykonania - naprawienie tego skryptu i wypuszczenie nowej wersji (0.1.13). Zauważony problem to brak wyświetlania informacji na listach z ofertami. Po zajrzeniu do konsoli widać, że znów zmieniła się ścieżka do obiektu item w bebechach react-a danego elementu (<article/>), bo leci jakiś undefined.

Czytaj dalej

UserJS: YouTube Polymer UI Fix

Nowy interfejs serwisu YouTube - “Polymer UI” już dawno pojawił się w sieci. Ja, póki różnymi możliwymi sposobami i hackami mogłem “przełączyć” się na starą dobrą, klasyczną wersję, to z niej korzystałem. Niestety od jakiegoś czasu pojawiał się komunikat, że używana wersja zniknie i tak też się stało. Hack z f6=8w ciasteczkach już nie ma wpływu na wygląd… i co mi teraz pozostało? Może już czas się oswoić i zacząć przyzwyczajać do tego “nowego” UI?

Czytaj dalej

Allegro Seller Info 0.1.12

Kilka zmian wprowadzonych właśnie na stronach Allegro wymusza poprawki w skrypcie i wydanie nowej wersji - 0.1.12. Na stronach z listą ofert zaszły jakieś drobne zmiany w strukturze DOM elementu prezentującego aukcję (<article/>) - wyleciał jeden poziom zagnieżdżenia kontenerów. Zapewne w związku z tym, także dostęp do obiektu item zmienił swoje położenie w react-owych bebechach, bo ścieżka dostępu do niego wygląda teraz tak: item = node[i].children.props.children[0].props.item; Na stronie z opisem oferty znów nieco przebudowano boxy.

Czytaj dalej