URL: https://linuxfr.org/users/lucsky2003/journaux/j-avais-envie-de-coder-ce-soir Title: J'avais envie de coder ce soir Authors: Framasky Date: 2013年09月21日T03:29:00+02:00 License: CC By-SA Tags: perl, lstu, mojolicious et raccourcisseur_url Score: 14 Et je voulais un petit truc qui se torcherait facilement, en une soirée. Le but était de faire un truc le plus compact possible, déployable et migrable rapidement. Et éventuellement utile. Un raccourcisseur d'URL m'est venu à l'esprit. Comme ça, pour le fun. Les outils : * pour le langage, Perl bien sûr, y pas mieux ; * pour le framework, Mojolicious, c'est évident ; * pour la tronche du truc, Twitter bootstrap (build custom pour plus de légèreté), parce que j'avais pas envie de réfléchir ; * pour la base de données, SQLite, parce que j'avais pas envie de sortir un bazooka pour tuer une mouche ; * enfin, Carton, un gestionnaire de dépendances pour Perl, qui permet d'installer toutes les dépendances qui vont bien en un tournemain. Au final, il n'y a qu'un fichier qui contient toute l'application, grâce à Mojolicious::Lite qui permet de réunir les templates, le route dispatcher et l'intelligence de l'appli. Le seul autre fichier nécessaire, est le `cpanfile` qui indique à Carton quelles sont les dépendances. Et encore, il suffirait de regarder rapidement le code pour installer les dépendances à la main. Donc l'appli peut se réduire à un fichier. Bref, je vous présente donc [LSTU](http://lstu.fiat-tux.fr) (pour Let's Shorten That Url). Il ne fait pas grand chose, mais il le fait bien. On peut créer une url réduite via le formulaire de la page d'accueil ou en donnant son URL comme ceci :> http://lstu.fiat-tux.fr/a/http://linuxfr.org Et puis on peut aller sur une URL réduite et se retrouver sur l'URL de destination. C'est tout ! Je vous disais bien qu'il ne faisait pas grand chose :D La base de données contient la date de création de l'URL réduite, ainsi que le nombre de fois où elle a été utilisée. Je sais pas trop si j'en ferais quelque chose, mais ça peut toujours servir pour des stats. Pour ceux qui voudraient tester : sudo cpan Carton git clone https://github.com/ldidry/lstu.git cd lstu carton install carton exec ./Lstu daemon -m production Par défaut, ça écoute sur le port 3000, mais ça se change avec les options kivonbien (`carton exec ./Lstu help`). [Dépôt git chez moi](http://git.fiat-tux.fr/?p=lstu.git;a=summary) (=> pour garder mes données chez moi) [Dépôt github](https://github.com/ldidry/lstu) (=> pour la visibilité et le système de tickets) [Instance chez moi](http://lstu.fiat-tux.fr) (=> je sais que mon nom de domaine est un peu long et fait perdre l'intérêt d'un raccourcisseur d'URL, mais c'est du test, pis je suis pas sûr que ça vaille le coup d'investir dans un nom de domaine optimisé pour un truc dont je ne vais sans doute pas me servir) Voilà, si vous avez des remarques, des questions, des demandes, toussa, je ne demande que ça !