Flyounet : (Digital|Real)? life

Une sorte de journal quotidien, mais en vachement plus espacé dans le temps

Comment compiler Cutycapt

Rédigé le .

Déjà qu'est-ce que Cutycapt : il s'agit d'un outil qui va générer une image d'un site. Vous lui passez une URL et il vous sort une belle image dans le format que vous souhaitez. C'est un outil que j'utilise au sein d'un projet que j'ai repris : bm.

L'outil est censé fonctionner un peu partout (oui même sous Windows). Il est disponible sur Github ou Sourceforge. Si vous prononcez son nom à l'anglaise ça vous donnera un truc du genre : QTcapt. Bah oui, comme QT (le truc de Trolltech). D'ailleurs vous aurez besoin des sources de QT pour le compiler...
Même si un apt-get install cutycapt fonctionne, je suggère la recompile.

Pourquoi recompiler si c'est dispo ?!
Parce qu'en ces temps de sécurisation à tout va, il arrive que ces mêmes certificats puissent être auto-signés ou périmés. Dans ce cas, le cutycapt fourni par Debian ne fera pas la capture. Donc la méthode la plus simple :

apt-get install libqt4-webkit libqt4-dev    # si vous avez du QT5, ça doit passer
git clone https://github.com/hoehrmann/CutyCapt.git
cd CutyCapt/
vi CutyCapt.hpp   # voir plus bas
qmake             # c'est pas une erreur de syntaxe
vi Makefile       # voir beaucoup plus bas
make

Maintenant, vous vous le mettez où voulez (oui là aussi s'il reste de la place), et vous lisez l'aide : cutycapt -help (j'ai renommé le binaire pour enlever les majuscules).


Voici la note plus bas

Dans le haut du fichier, vous devriez avoir :

#include <QtWebKit>

#if QT_VERSION >= 0x050000
#include <QtWebKitWidgets>
#endif

Changez le pour :

#include <QtWebKit>
#include <QNetworkReply>
#include <QSslError>
#if QT_VERSION >= 0x050000
#include <QtWebKitWidgets>
#endif

Voici la note beaucoup plus bas

Lors de la première compilation, impossible de générer des screenshots sur des liens sécurisés (https), pour une raison que j'ignore (et grosse flemme sur la recherche de la raison).
Du coup, j'ai juste enlevé l'optimisation de la compilation, et SHAZAM ça s'est mis à fonctionner !

Donc, dans le Makefile (qui est généré par le qmake), on change :

CFLAGS        = -pipe -O2 -D_REENTRANT -Wall -W $(DEFINES)
CXXFLAGS      = -pipe -O2 -D_REENTRANT -Wall -W $(DEFINES)

Par un truc vachement compliqué :

CFLAGS        = -pipe -D_REENTRANT -Wall -W $(DEFINES)
CXXFLAGS      = -pipe -D_REENTRANT -Wall -W $(DEFINES)

Juste un mot au sujet de bm : j'utilise de moins en moins un navigateur (type Firefox ou Chrome), mon petit portable avec son processeur Atom ayant du mal à gérer les 182 onglets (à l'instant, je viens de vérifier) ouverts. Donc pour des pages que je regarde souvent (style aide, doc., etc.), je fais une capture et les visionne avec feh. bm me sert juste à gérer ces liens (et au besoin me les ouvre directement, dans un navigateur). En plus, j'ai synchronisé mes différentes machines pour avoir mes bookmarks partout...