First things first: download hier het script.
Zorgen dat het vanaf de command line werkt
Om het script makkelijk aan te kunnen roepen, moet het in je PATH staan. Ik heb bijvoorbeeld een directory bin aangemaakt onder mijn home directory, en die staat in mijn PATH. Dat doe je als volgt:
mkdir ~/bin
chmod 700 ~/bin
echo PATH=$PATH:~/bin >> ~/.profile
. ~/.profile
Klaar. Je hebt nu de directory gemaakt ervoor gezorgd dat alleen JIJ erin kunt, en de directory aan je pad toegevoegd.
Nu is het een kwestie van het gedownloade script uitpakken, in die nieuwe directory zetten, en even in een willekeurige tekst-editor openen om je inlog-gegevens erin te zetten. Als dat gebeurd is, kun je gaan testen:
twit Ik kan nu twitteren vanaf de command line, w00t!
Er kunnen nu vier dingen gebeuren:
- het werkt — dit is de ideale situatie
- je krijgt een melding command not found — staat het script op de goede plek? is het bereikbaar via je pad?
- je krijgt een melding met authentication error erin — tikfoutje bij het invullen van je gebruikersnaam of wachtwoord
- er gebeurt helemaal NIKS, of je krijgt een andere foutmelding dan hierboven
In dat laatste geval kan het van alles zijn… Het is een quick hack, dus ik vang lang niet alle foutmeldingen af. Eigenlijk geen enkele, behalve die authentication. Laat maar horen wat er gebeurt, wie weet is het simpel op te lossen. Je kunt eventueel van de op één na laatste regel het hekje verwijderen, zodat er dit staat:
echo $RETURNVAL
en het nog eens proberen. Pas wel op, want je gebruikersnaam en wachtwoord kunnen in de uitvoer zitten; plak het dus niet klakkeloos ergens neer.
Nu nog vanuit QuickSilver!
Eigenlijk is dat een hele makkelijke stap, dankzij de Actions van QuickSilver. Alles wat je in Application Support/QuickSilver/Actions/ zet, is na een herstart van QuickSilver te gebruiken.
Het kan zijn dat die laatste directory, Actions, nog niet bestaat; in dat geval kun je hem gewoon aanmaken. Je kunt dan het script ernaartoe kopiëren, of, als je net als ik niet dol bent op redundantie, een symlink maken:
mkdir -p ~/Library/Application\ Support/Quicksilver/Actions
cd ~/Library/Application\ Support/Quicksilver/Actions
ln -s ~/bin/twit twit.sh
(QuickSilver wil wel per se dat er .sh achter staat om aan te geven dat het een shell script is)
Dan open je het command venster van QuickSilver en druk je op Command + Control + Q. QuickSilver herstart, waarna je een tekst in kunt voeren (door met een punt te beginnen), en “twit” als action kunt kiezen. Tadaa!
Maar er is voor QuickSilver toch ook een AppleScript dat hetzelfde doet? Waarom is deze beter?
Snelheid. Het aanroepen van een AppleScript zorgt er in veel gevallen voor dat je programma (in dit geval QuickSilver) doodleuk hangt zolang het AppleScript draait. Dat kan, zeker als je web-dingen gaat aanroepen, even duren, en dat irriteert me mateloos. Dit script is heel wat sneller.
En de nadelen?
Wat het AppleScript mooier doet dan mijn shell-scriptje is het ophalen van je Twitter account-gegevens. In mijn script zet je ze er gewoon in, in plaats van dat ik ze uit de Keychain haal. Dat is wel mogelijk met security, maar ik kreeg dat zo gauw niet voor elkaar om daar netjes de gegevens uit te vissen die ik wilde hebben. Ook doe ik geen enkele serieuze fout-controle. Er wordt niet gekeken of je tweet te lang is, of het posten wel goed is gegaan, noem maar op.
Ligt puur aan mij en mijn beperkte bash scripting fu. Misschien herschrijf ik het eens in een wat prettiger taal, maar voorlopig werkt dit goed genoeg voor mij.
Als iemand zich geroepen voelt tot improvements, be my guest! Het commentaarding is uw zeepkist.
Geen pings
Je kunt vanaf je eigen site pingbacken of een trackback sturen naar deze URL. Meer informatie over pingback en trackback vind je hier.
2 reacties
Ja, maar, wat moet je er mee? Hoe kun je nu andere mensen volgen?
Wat doe je weer moeeeeeeiiiilijk Maxxxx! ;)
Voor het volgen pak je maar een willekeurige twitter-dinges die Growl gebruikt. Ikzelf gebruik Twitterlex. Dat is er niet makkelijker of moeilijker op geworden. Het posten, daar ging het me om, en dan nog meer om de “because I can!”-factor dan om het daadwerkelijk nut. Maar dat geldt denk ik voor 80% van al die social web 2.0 dingesen. =]