Gibt es noch Klopapier bei DM? Widget fürs iPhone weiß Rat

Alexander Trust, den 22. Oktober 2020
Toilettenpapier abfragen
Toilettenpapier abfragen, Bild: Marco Dengel

Es gibt eigentlich nichts, was nicht gibt. Vor allem in unserer vernetzten Welt stehen viele Informationen zur Verfügung, auch über APIs, die man nur abrufen muss. Wer nun in der Covid-19-Pandemie wissen will, ob es bei seinem DM um die Ecke noch Klopapier gibt, der kann sich dazu mit ein wenig Aufwand ein Widget aufs iPhone basteln. Wir erklären Euch, wie es funktioniert, und auch, wie Ihr die Information im Terminal am Mac oder Windows-PC abfragen könnt.

Marco Dengel machte sich die Mühe mit der Scriptable-App ein Widget anzufertigen, das den Restbestand an Klopapier in einem DM-Drogeriemarkt anzeigt. Möglich macht dies eine Produkt-API, an der man die Verfügbarkeit abfragen kann.

Ihr benötigt dafür in jedem Fall ein iPhone, iPad oder einen iPod touch mit iOS 14 oder neuer und die App Scriptable in Version 1.5 oder neuer.

Quellcode in die Scriptable-App eintragen

Marco Dengel stellt den Quellcode freundlicherweise auf Github bereit. Diesen Quellcode müsst Ihr lediglich in die Scriptable-App am iPhone eingeben.

Was ist Scriptable?

Scriptable ist eine App, die Euch ermöglich mittels Javascript Aufgaben am iPhone (oder andernorts) auszuführen. Ihr könnt Euch dann zum Beispiel über Benachrichtigungen informieren lassen, wenn Euer Webserver nicht erreichbar ist, oder wenn, wie in diesem Fall, bei DM das Klopapier knapp wird.

Wie werden die Daten abgefragt?

DM stellt dazu offenbar eine API bereit und diese fragt Dengel in seinem Code mittels JSON-Objekt ab, wertet die Informationen aus und gibt sie über das Widget aus.

Widget installieren

Ihr geht folgendermaßen vor, wenn Ihr das Klopapier-Widget installieren möchtet:

  1. Öffnet die passende Github-Seite auf Eurem iPhone.
  2. Klickt dann auf die „RAW“-Anzeige. Markiert und kopiert den Text. Wenn Euer Mac und iPhone oder iPad neu genug sind, könnt Ihr den Quellcode auch am Mac in die geteilte Zwischenablage kopieren und dann trotzdem am iOS-Gerät einfügen.
  3. Öffnet Scriptable.
  4. Tippt dort auf das Plus-Symbol und fügt ein Script hinzu.
  5. Kopiert dann den Quellcode in das Editorfenster.
  6. Gebt dem Kind noch einen Namen und speichert es.
  7. Öffnet dann Euren Home-Bildschirm am iPhone oder iPad. Haltet dort ein Programm-Icon länger gedrückt, bis der Dialog erscheint, in dem Ihr „Home-Bildschirm bearbeiten“ auswählen könnt.
  8. Tippt nun auf das Plus-Symbol oben links, um ein Widget hinzuzufügen. Scrollt ein wenig herunter, um Scriptable auswählen zu können und fügt ein Widget hinzu.
  9. Solange die Icons noch am Wackeln sind, tippt auf das neue Widget. Ihr könnt nun Einstellungen vornehmen, bspw. das Script auswählen, als Ausführart „Run Script“ und als Parameter müsst Ihr die ID des Ladengeschäfts Eurer Wahl angeben.
  10. Fertig!

Wie finde ich die ID meines DM-Ladengeschäfts?

Öffnet den „Store Finder“ auf der Webseite von DM. Tippt dann in der Ergebnisliste auf „weitere Details“. Während die Übersichtskarte sich verändert, passt DM aber auch die URL an. In der URL seht Ihr dann die ID Eures Ladengeschäfts.

Beispiel: Ein DM bei uns in der Nähe hat die ID 2764, die sich aus dem URL https://www.dm.de/store/de-2764/niederzier/rurbenden-2 ergibt.

Wie korrekt ist die Anzeige?

Marco Dengel hat in seinem Script alle Klopapier-Sorten fest programmiert, filtert aber das „feuchte“ Klopapier heraus. Wenn Ihr ein wenig Ahnung von Javascript habt, oder zumindest der englischen Sprache mächtig seid, könnt Ihr das Script schnell so anpassen, dass ein anderes Produkt abgefragt wird, Babywindeln vielleicht, oder Tofu, oder nur eine spezielle Sorte Klopapier.

Ist das nicht illegal?

DM stellt die API bereit, entsprechend ist es nicht illegal sie abzufragen. Aber vermutlich hat der Drogeriemarkt-Betreiber die API nicht für diese Zwecke erdacht. Sollte es DM irgendwann zu viel Datenaufkommen sein, könnte der Anbieter sich entscheiden, die API nur noch privat mit passenden Schlüsseln anzubieten. Dann wäre das Widget hinfällig. Aber solange können wir uns daran erfreuen.

Vielen Dank an Marco Dengel für diese sinnvolle Verwendung von modernster Technik. ;)

Klopapier per Terminal abfragen

Um eine Abfrage einfach per Terminal in Windows, macOS oder Linux zu starten, reicht der folgende Befehl:

curl -s "products.dm.de/store-availabi" | jq '[.storeAvailabilities[][0].stockLevel] | add'

Ihr müsst ganz am Ende natürlich auch die Store-ID anpassen. Amüsant ist, wenn Nutzer dies nun noch automatisieren und regelmäßig den Stand diverser Ladengeschäfte abfragen.


Ähnliche Nachrichten

Zugehörige Plattformen