Je viens récemment de me mettre au langage Ruby dans l’optique de commencer un projet basé sur Ruby On Rails. Pour m’exercer je m’amuse à faire quelques scripts et il y en a un qui je pense peux en intéressé plus d’un. Il s’agit de récupérer le contenu du presse papier et si celui-ci contient une URL de plus de 25 caractères je la transforme en TinyURL, qui permet de partager des URL plus courtes (très utilisé sur Twitter notamment).

Voici le code :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#!/usr/bin/ruby
require 'open-uri'
 
#On récupere le contenu du presse papier en enlevant les espaces de debut et de fin
copyUrl = IO.popen('pbpaste', 'r+').read.strip
 
# Si c'est une URL de plus de 30 caractères
if /^http:\/\//.match(copyUrl) and copyUrl.length < 25
 
	# Si ce n'en est pas déjà une, on la transforme en tinyurl.
	unless /tinyurl\.com/.match(copyUrl)
		url = URI.escape('http://tinyurl.com/api-create.php?url=' + copyUrl)
		resultURL = open(url).read
 
		# On copie le résultat dans le presse papier
		IO.popen('pbcopy', 'w').puts resultURL
	end
end

Comme vous pouvez le voir cela est très simple à faire. Bon, après avoir enregistrer ce code dans un fichier ruby (.rb) pensez à le rendre executable avec un chmod +x tinythis.rb
Maintenant vous pouvez appeller le script via un ./tinythis.rb vais vous avouerais que cela n’est pas très pratique. Le mieux serait de pouvoir exécuter ça rapidement sans passer par la ligne de commande.

Et il y a une solution pour ça, en tout cas sous Mac OS X : utiliser les triggers de Quicksilver ! Et oui, ce fabuleux lanceur d’application permet aussi d’effectuer plein d’action en les associants à des raccourcis clavier, et justement ou peux exécuter des scripts ! C’est pas beau la vie Quicksilver ?

Pour cela vous devez vous rendre dans l’onglet “Triggers” Quicksilver. Tout en bas de le fenêtre cliquez sur le + et choisissez Hotkey.

Add Hotkey

Dans la nouvelle ligne qui apparaît double-cliquez sur la partie command. Dans le premier champs vous pouvez directement glisser-déposer votre script ruby comme sur la capture :

Drag'n'Drop Script

Dans tout les cas, quelque soit la façon dont vous fassiez, vous devez obtenir cela :

Config Trigger

Cliquez sur save. Maintenant cliquez dans dans la zone trigger de votre ligne et définissez votre raccourci clavier. Personnellement j’ai choisir CMD+SHIFT+C ainsi je copie avec CMD+C et je n’ai qu’à rajouter SHIFT pour transformer en Tinyurl.

Config Trigger

Si cependant vous avez une solution pour effectuer en même temps la copie dans le presse papier et la transformation en TinyURL, n’hésitez pas à me l’indiquer dans les commentaires ;-)

Voilà c’est la fin de cet article, si vous avez un soucis avec l’une des étapes n’hésitez pas à poser votre question =)

Laisser un commentaire