Allegro Seller Info 0.1.9

Po miesiącu spokoju pojawiły się jakieś zmiany na Allegro, które to wymuszają wprowadzenie drobnych poprawek do mojego UserJS-a i wydanie kolejnej nowej wersji (0.1.9).

Głównym problemem są zmiany na stronach aukcji modyfikujące nieco layout i strukturę elementów DOM wokół miejsca wstrzykiwania informacji o lokalizacji. Wygląda na to, że obecnie wykorzystywany jest model flexbox (Flexible Box Layout) i grid (Grid Layout) do układania kontenerów związanych z atrybutami i informacjami o aukcji.

Po raz kolejny zmieniono także nieco wygląd "boxa" z informacjami o dostawie. Dlatego zdecydowałem się powrócić do poprzedniej koncepcji - wyświetlać lokalizację nad informacjami o dostawie, tak jak to miało miejsce w pierwszych wersjach. W istocie użyty jest też podobny kod, a przynajmniej jego logika, z tamtych czasów.

Przy okazji zdecydowałem się na poprawki w sposobie "wyciągania" lokalizacji. Poprzedni kod działa długo dobrze, ale od jego powstania wiele się pozmieniało w strukturze dokumentu. W pewnych okolicznościach - zagraniczna lokalizacja lub niespodziewany format - zwraca cały przechwycony tekst danego węzła i jego potomków.

for (var e of node.getElementsByTagName('*')) {
	if (e.innerText.startsWith('Wysy\u0142ka z:')) {
		var i = e.innerText.lastIndexOf(', Polska');
		loc = e.innerText.substr(10, i != -1 ? i - 10 : undefined).trim();
		break;
	}
}

W nowej wersji wykorzystano proste wyrażenie regularne (bo szybciej, prościej i mniej upierdliwego kodu niż przy ręcznym parsowaniu) dla dopasowania i przechwycenia informacji o miejscu wysyłki towaru.

for (var e of node.getElementsByTagName('*')) {
	var m = e.innerText.match("^Wysy\u0142ka z: (.*)\n");
	if (m && m.length == 2) {
		var i = m[1].lastIndexOf(', Polska');
		loc = i != -1 ? m[1].substr(0, i) : m[1];
		break;
	}
}

Pozostaje wycinanie nazwy państwa dla krajowych lokalizacji.

Pomijam znów poprawki w stylach, bo to drobny szczegół, choć niezbędny, aby wszystko ładnie komponowało się na stronie.

Nowa wersja już wylądowała w moim repozytorium UserScripts. Auto-aktualizacje powinny zapewnić używanie najnowszej wersji w Waszych przeglądarkach. Zobaczymy jak długo obecna wersja podziała bez kolejnych "fixów".

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *