**IMPORTANT: cette idée et le code qui en résulte ont été pondus un samedi soir 23h30 après deux verres d'alcool à 21° en conjoncture avec un certain ennui et seulement 2 heures de code/test. Bref c'est une horreur, mais l'idée à la base n'est pas mauvaise. Soyez libres de développer ça :-)** * machine Debian/Ubuntu * cutycapt * xvfb * php5-cli * php5-cgi Structure des fichiers: * / * /db/ * /work/ * /index.php * /webcapt.run Principe de base: on appelle index.php avec une URL en paramètre GET, index.php passe l'URL via fichier dans /work/ à webcapt, ce dernier génère des captures d'écran PNG et SVG avec cutycapt, renomme selon hash sha1 de l'URL et déplace dans /db/, index.php enfin redirige vers le fichier s'il existe. Intérêt: combiné à un Autoblog, fournir un instantané en image de la page autobloguée (permettant ainsi de sauvegarder le design et extraire d'autres éléments de la page grâce au SVG ouvert dans Inkscape) Bémols: * ça bouffe pas mal de ressources, la génération de captures d'écran.. d'où le forbidden qui limite les IP pouvant appeler le script * un entrecroisement PHP/Bash assez moche avec une passation de données ridicule (via nom d'un fichier avec un "for file in *") * vous en connaissez beaucoup, vous, d'hébergeurs mutualisés qui autorisent exec() ? Niveau sécu c'est assez horrible * ... ====== ** Le code** ====== ---- #!/bin/bash mkdir -p "work" mkdir -p "db" cd "work/" for file in *; do url=$(echo "$file" | base64 -d); urlhash=$(php -r "echo sha1(\"$url\");") xvfb-run --server-args="-screen 0, 1280x720x24" cutycapt --url=$url --private-browsing=on --user-agent="Mozilla/5.0 (X11; U; Linux x86_64; C) CutyCapt" --header=DNT:1 --min-width=1280 --min-height=720 --out="$file.svg" xvfb-run --server-args="-screen 0, 1280x720x24" cutycapt --url=$url --private-browsing=on --user-agent="Mozilla/5.0 (X11; U; Linux x86_64; C) CutyCapt" --header=DNT:1 --min-width=1280 --min-height=720 --out="$file.png" rm "$file" mv "$file.svg" "../db/$urlhash.svg" mv "$file.png" "../db/$urlhash.png" done