Farnell-Assistent

Aus Hobbyelektronik.org
Version vom 2. Mai 2013, 20:55 Uhr von Chris (Diskussion | Beiträge) (Kategorie)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

Als Student darf und kann man bei Farnell bestellt. Sehr praktisch, da es eine sehr große Auswahl gibt und das Zeug auch wirklich schnell ankommt - auch wenn es etwas etwas teurer als bei anderen Versendern dauert.

Eines hat mich am Onlineshop aber immer wieder gestört: In der parametrischen Suche bekommt man alle möglichen Artikel präsentiert, die man als Student nicht unbedingt will, dazu gehören:

  • Nicht mehr lieferbare Produkte
  • Bauteile mit Re-Reeling-Service
  • Produkte aus den USA

Der erste Punkt ist unnötig wie ein Kropf, der zweite macht erst Sinn, wenn man eine Pick & Place-Maschine daheim herumstehen hat und letzteres schlägt mit satten 20 Euro Versandkosten zu Buche, was mir in der Eile schon passiert ist (das war dann ein verdammt teurer Widerstand).

Lösung

Ein Problem, das nicht sein muss - es gibt schließlich Greasemonkey, mit dem man Seiten nach dem Laden mit JavaScript verwursten kann.

Also habe ich ein kleines Scriptchen geschrieben, das zuerst die Suchergebnisse in ein Array einliest und danach die Produkte, die den Ausschlusskriterien entsprechen, ausgegraut.

Die Bedingungen fürs ausgrauen und der "Effekt" selbst kann am unteren Ende des Scripts (nach dem Kommentar "here is where the magic happens") verändert werden:

for(i = 0; i < articles.length; i++) {
		var article = articles[i];
		if(article.rereel == true || article.stockCount == 0 || article.stockUSA == true) {
				article.mainrow.style.opacity = 0.2;
				article.inforow.style.opacity = 0.2;
		}
}

In diesem Fall werden alle ge-rereelten, nicht verfügbaren oder aus den USA versendete Bauteile mit 20% (YMMV) Sichtbarkeit dargestellt.

Die einzelnen Elemente im Array articles umfassen folgende Informationen:

article = { 
	"stockUSA" : boolean,    //true, wenn es aus den USA kommt
	"datasheet" : array,     //Array aus Links zu PDF-Dateien der Datenblätter
	"stockCount" : integer,  //Verfügbare Menge
	"rohs" : boolean,        //true, wenn RoHS-konform
	"rereel" : boolean,      //true, wenn mit Re-Reeling-Service angeboten
	"ordercode" : string,    //Bestellnummer
	"mainrow" : HtmlElement, //HTML-Element der Hauptzeile des Artikels
	"inforow" : HtmlElement  //HTML-Element der Zusatzzeile des Artikels
};

Die Änderung sieht dann zum Beispiel wie folgt aus:


Das ganze hat keinen Anspruch auf Vollständigkeit und Korrektheit, Verbesserungsvorschläge oder Verbesserungen sind jederzeit willkommen.

Download

Datei:Farnell Produkte ausgrauen.user.js