Skip to content

dewomser/API_LPD2023

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 

Repository files navigation

API_LPD2023

Script zu meinem Vortrag Linux Presentationday 2023-1

Angelegt Donnerstag 25 Mai 2023 Stefan Höhn Wormser Linux User Stammtisch Wolust

Mir gehts mehr um die Möglichkeiten als um eine korrekte Definition. Folien ? Internet an persönliche Anforderungen anpassen. Hacken so wie ich das möchte. Beispiele: Schwerpunkt Worms , Medien , Grafik

APIs und Bash-Kommandozeile

Keine Angst . Ich erkläre das Stück für Stück

Rest-API

Was ist Bash? Unterschied zu Fensterprogrammen.

Bash: 🤗️

Bourne again Shell Mensch-Maschine Schnittstelle . Human Machine Interface“ (HMI) Befehl an Maschine-> Ausgabe (auch Computerprogramm) Das braucht man für BASH: Kleines schwarzes Kästchen -> Dosfenster -> Termialemulator -> Terminal Es gibt verschiedene Shells : zsh, csh, fish ………Powershell ? Hier gehts um BASH

Unterschied zum Fensterprogramm

Viele Newbies halten das für Nachteil : Mausanwendungen sind sehr eingeschänkt 🐭️❌️ Vorteil : Ich mach mir meine (Welt) Ausgabe wie sie mir gefällt, mit wenigen Befehlen. 🌍️ ls, cd, cat ,nano, man …

Pipes und Grep. sehr einfach

Man kann mit Pipes die Ergebnise von Programme weiterleiten in ein anderes Program Das Zeichen | (AltGr <>>|) 🔗️ Beispiel für Pipes: ls| cat ✂️ Beispiel für grep : ls| grep *.txt

Was ist API? Wo findet man API, was macht man damit.

Application Programming Interface Fast alle Programme und auch viele Webseiten haben API , irgend wie mit Json,rss,csv,xml … Beispiel : Wetterseite der Hochschule Worms API Endpoint ist (kann) eine spezielle URL sein. (https:// ……)

Liefert Daten, die man filtern und anzeigen kann.

Unterschiede zum Webbrowser. Und was ist curl ?

Webbrowser kann Daten im HTML-Format anzeigen Curl zeigt HTML Source und allgemein Text aller Art an.

<.............. Ende Vorgeplänkel .................>

Beispiel: Wetter von der Hochschule Worms

frei und ohne Token https://wetter.hs-worms.de/ Ausgabe in Json kann man greppen ✂️oder besseres Tool ist jq ✂️ <--- u=$(curl -k https://wetter.hs-worms.de/api/v3/data) temperatur=$(echo $u|jq ".temperature.out") echo $temperatur ----> geht noch einfacher: 😀️ curl -s https://wetter.hs-worms.de/api/v3/data | jq '.temperature.out'

Schön aber was mach ich jetzt mit dem Output ? Kreativ sein ! Beispiele: Bei 🐘️Mastodon oder 🐦️Twitter oder auf andere Webseite hochladen mit Token über denen ihre API hochladen (Get,Post) oder Temperaturwarnung Frost, Regen, … ☀️☔️🥶️ Popups bei Störungen Server, Maschinen, IOT

Code Beispiel für einfache Temperaturwarnung 🌡️ UHHH , da hab ich einen Fehler gemacht. Mit ASCII-Eingabe kann Bash nicht rechnen.

Voller Fehler t=$(curl -s https://wetter.hs-worms.de/api/v3/data | jq '.temperature.out') # 15.8 nach 15,8 (weil deutsch) t=${t//./,} t1=17 if (($t<$t1));then echo "Uh, das ist kalt !" else echo "Ganz schön warm !" fi So geht das richtig #!/bin/bash t=$(curl -s https://wetter.hs-worms.de/api/v3/data | jq '.temperature.out') t1=15 a=$(echo "$t<$t1"|bc) if [[ $a -eq 1 ]]; then echo "Uh, das ist kalt !" else echo "Ganz schön warm !" fi

Experimental bei Twitter hochladen (vielleicht ist dieses Perlscript jetzt auch schon gesperrt) nur mit Token sehr eingeschränkt

ssh smarpt.de /home/karl/bin/wetter1.sh https://twitter.com/Wolug

🐦️Twitter-Api früher gerne genutzt API V1 + V2 😒️ttytter und 😒️twurl ist kaputt. Direkt über curl mit V2 ???

Mehr Beispiele: Wettervorhersage DWD, Audio mit KDE , Mastodon und andere (yt-dlp)

Wettervorhersage API

Es gibt spezielle Programme die einem die umständliche Eingebe über curl abnehmen. zB. Wetterdienst (10 Tage Vorhersage) fragt die Wettervorhersage beim DWD ist frei und ohne Token

K2635 ist der Container Worms Hagenstrasse


cd bin/wetter


gnuplot wetter1.gp


Jetzt wirds bunt APi liefert Daten für ein Diagramm 📈️

gwenview wetter1.png


Regenradar-API vom DWD (Auswerung mit Python QGIS)

Luftqualität Worms

(für Fortgeschrittene Bash User) readarray -td ";" lq <<< $(curl "https://www.umweltbundesamt.de/api/air_data/v3/airquality/csv?date_from=$(date -d 'yesterday' +%F)&time_from=24&date_to=$(date +%F)&time_to=24&station=1460&lang=de" |grep -E x|$(date -d '1 hours ago' +%H)) echo ${lq[1]}:${lq[7]};echo ${lq[2]}:${lq[8]};echo ${lq[3]}:${lq[9]};echo ${lq[4]}:${lq[10]};echo ${lq[5]}:${lq[11]};echo ${lq[6]}:${lq[12]} Kommt sowas raus : Datum:"'26.05.2023 04:00'" "Feinstaub (PM₁₀) stündlich gleitendes Tagesmittel in µg/m³":15 "Ozon (O₃) Ein-Stunden-Mittelwert in µg/m³":58 "Stickstoffdioxid (NO₂) Ein-Stunden-Mittelwert in µg/m³":15 "Feinstaub (PM₂,₅) stündlich gleitendes Tagesmittel in µg/m³":9 Luftqualitätsindex DERP023:"sehr gut"

Audio API mit KDE (Windowmanager für Linux)

Audio API von KDE wird benutzt zum Abfragen. Mein Bashscript unterstützt Mediaplayer VLC, Webbrowser Chromium/Firefox , Elisa, Clementine QDBusViewer hilft bei der Suche nach Parametern qdbus org.mpris.MediaPlayer2 … Sourcrcode: nano /home/karl/bin/twitter-pic/toot_music bis zum Ende Scrollen und Matodon-API zeigen. API-App heißt toot Action: Link auf dem Desktop klicken !

Mastodon API für die Bash

Ich empfehle toot 🐘️ toot timeline (Pseudo grafisch) toot post test Beispiel zéitverzögert read -i "Stunden " later ; (sleep $later"h" && toot post "$later Stunden später")& Egebnis angucken https://social.tchncs.de/@dewomser

Sonderfall RSS

Beispiel Nibelungenkurier 😀️ /home/karl/bin/rss-test/rss1.sh Worms.de 😀️ Wormser Zeitung 😀️

Sonderfall Serielle Schnittstelle / USB

echo "payload" >/dev/tty3 cat /dev/tty3

Sonderfall Linux Kernel API

Hier zu kompliziert

Fertig !


Und zum Schluss noch Thema (ca. 5 Minuten) : Wolust / Webseite / Wer sich interessiert soll kommen.

Rest-API Ich probiere mich diesmal kürzer zu fassen als beim letzten Mal.

Was war 2022/2023 ? Wir sind gewachsen 11 Tuxe beim letzten Stammtisch im Mai Wir brauchen einen Raum , VHS Homepage Probleme Jekyll bei Github. ich habs repariert Ruby 2 Gems ersetzt Alle die heute hier sind … 1, Dienstag im Monat. Weitersagen Default-Treffpunkti st Timescafe Immer bei Wolust.de gucken ! Oder auf unsem Matrix Channel

………………………………………………………………

Quellen :

https://github.com/dewomser https://gist.github.com/dewomser Grafik API (CC): https://www.seobility.net/de/wiki/REST-API

About

Folien zu meinem Vortrag zu API und BASH beim LPD 23-1 an der Hochschule Worms

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published