TinyURL auf Zwischenspeicher anwenden 12. September 2008 um 15:28 Uhr / Programming
Einige von euch benutzen vielleicht sogar schon mein altes Screenschot-Hochladescript, heute will ich ein paar Teile davon wiederverwerten und ein kleines Script schreiben, dass eine URL aus dem Zwischenspeicher nimmt, sie durch den Dienst TinyURL jagt und das Ergebnis, also die verkürzte URL stattdessen in den Zwischenspeicher läd, so dass man sie nur noch irgendwo hinpasten muss. Das ist nützlich bei Twitter, wenn man jemandem eine lange URL Zitieren oder per E-Mail schicken muss oder auch in einem Chat.
Ein paar Zwischenschritte
Damit das ganze auch schön einfach und sinnvoll funktioniert und wir auch mitbekommen dass die kurze URL auch wirklich im Speicher landet braucht es ein paar Zwischenschritte:
- Wir müssen das Script sehr einfach aufrufen können. Es wäre sinnlos erst das Teminal aufzumachen um es damt zu starten also nutzen wir Quicksilver
- Wir brauchen von TinyURL eine API und einen Client der mit ihr sprechen kann, und dazu nutzen wir das auf jedem OS X Rechner installierte curl
- Schlussendlich wollen wir wissen wann das ganze fertig zum irgendwohin-posten ist, und dazu nutzen wir Growl.
Keine Angst wenn ihr etwas davon nicht kennt, ich werde weiterführende Links dazuposten. Also los geht es!
TinyURL-API und Curl
Als erstes habe ich mich auf die Suche nach einer API für TinyURL gemacht und siehe da, es gibt eine wunderbare, die besser hätte nicht sein können: http://tinyurl.com/api-create.php?url=, als url-Parameter will das ding einfach die lange URL haben und es gibt einfach die verkürzte URL zurück. Die Tools die wir dazu benutzen sind volgende:
- curl ruft eine Webseite via HTTP auf und schreibt das Ergebniss in standard-output. Ich habe es btw. auch schon früher mal in Cronjobs mit curl und Manueller Trackback erwähnt und beschrieben.
- pbcopy und pbpaste lesen aus- und schreiben in den Zwischenspeicher und wir nutzten Sie schon im Screenschot-Hochladescript
curl -s http://tinyurl.com/api-create.php?url=`pbpaste` | pbcopy
Notifikation mit Growl
Das ist schon mal prima und es funktioniert wunderbar. Doch da es ja ein bischen dauert bis der Service antwortet weiß man nie so richtig ob es schon fertig ist und man es pasten kann oder nicht. Aber es gibt unter OS X doch diesen Notifikationsdienst Growl den sowieso eigentlich alle installiert haben und nutzen, was läge also näher als sich dessen zu bedienen?
Für die Shell gibt es da das Tool growlnotify das eigentlich jeder haben sollte, der Growl selbst installiert hat. Für unser Vorhaben reicht da dann so etwas:
growlnotify "TinyURL" -m `pbpaste`
Quicksilver
Quicksilver ist der "Applouncher" meines Vertrauens. Aber natürlich kann man das Script auch mit Spotlight starten, was mir aber ein bisschen langsamer und unkomfortabler vorkommt.
Das fertige Script
Wenn wir die einzelnen Schritte jetzt zusammensetzen und noch eine Shebang, damit das ding auch ausgeführt werden kann, dazumachen dann sieht das ganze so aus:
#!/bin/sh
# tinyurl.sh takes a url from the message buffer and
# turns it to a TinyURL which its writes back to it
curl -s http://tinyurl.com/api-create.php?url=`pbpaste` | pbcopy
growlnotify "TinyURL" -m `pbpaste`
Das ganze Speichern wir nur noch in einer Datei mit dem Namen tinyurl.sh. Ich speichere meine privaten Scripte unter ~/Library/Scripts/.
Sobald Quicksilver das Script gefunden hat sind wir fertig mit der Übung, aber Achtung ~/Library/Scripts/ ist nicht in den Default-Suchpfaden von Quicksilver, das muss man erst dazulegen.
Ich hoffe ihr kopiert nicht nur einfach das Script ohne nachzudenken sondern guckt euch die einzelnen Befehle an und verwendet sie in Zukunft auch für andere Scripte die ihr dann in eueren Blogs veröffentlicht, sonst wäre es fast ein bisschen schade um die viele Beschreibung ;-).
Kommentare
Die Kommentare sind für diesen Eintrag geschlossen.