Allegro Seller Info 0.1.9

tech • 295 słów • 2 minuty czytania

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

Głównym problemem są zmiany na stronach aukcji wokół miejsca wstrzykiwania informacji o lokalizacji. Zmodyfikowano nieco layout i strukturę elementów DOM. 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 “odświeżono” także 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 tej okazji zdecydowałem się na poprawki w sposobie “wyciągania” lokalizacji. Poprzedni kod długo działał 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;
	}
}

Nadal pozostaje wycinanie nazwy państwa dla krajowych lokalizacji.

Pomijam wprowadzone drobne poprawki w stylach.

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”.

Komentarze (0)

Dodaj komentarz

/dozwolony markdown/

/nie zostanie opublikowany/