Croquemichette

Un blog qui veut dire tellement de choses...

Subscribe to RSS feed

Posts tagged with "Opera"

Première utilisation de l'API d'Opera Link

, , , ...

Cela faisait un moment depuis mon dernier post (encore une fois), cette fois-ci, je reviens avec quelque chose de nouveau.

Une longue histoire de signets...

Je suis un utilisateur d'Opera depuis un bon moment déjà. Mon véritable passage à ce navigateur doit dater de 2002 ou 2003. Au fil des années, j'ajoutais des signets à mon cher navigateur, sans pour autant leur donner la moindre importance. J'ajoute un signet, je le perds le lendemain, tant pis.

Toutefois, ce désintéressement a évolué au fil du temps. Mon signet sans importance a intégré une liste de signets qui se trouvaient dans mon fichier bookmarks.adr que je conservais précieusement love

Opera Link

Depuis l'arrivée d'Opera Link, cet intérêt grandissant s'est accentué. La synchronisation des signets, le rêve de tout bon internaute. Garder dans un coffre-fort, toute la richesse de sa navigation.

Mais que se passerait-il si ce coffre-fort était forcé ? yikes

Oui, je sais, vous allez me dire que les données stockées chez Opera ne courent aucun risque, que tout est répliqué à l'infini sur des décennies. Oui, mais, on ne sait jamais...

Je n'ai donc cessé d'espérer de voir apparaître un système permettant de récupérer facilement toute la liste de mes signets, sans avoir à revenir 5 ans en arrière (copie du bookmarks.adr).

API Opera Link wizard

Et tout récemment, Opera a exaucé mon souhait : mettre à disposition une API d'Opera Link.

Lecture, écriture des favoris, des notes, des moteurs de recherche, du Speed Dial, de l'URL filter. Le pied ninja

Et Opera n'a pas fait les choses à moitié, elle a mis à disposition des utilisateurs (enfin, surtout des développeurs) la librairie permettant d'accéder à ces informations dans différents languages, le tout, sous licence BSD.

Je me suis donc atteler à la tâche d'utiliser ces librairies pour réaliser un script (en me basant sur un exemple assez simple fourni avec la librairie) permettant de faire ce que je voulais : récupérer mes données en local.

Pour réaliser ceci, j'ai utilisé la librairie Perl (un bien beau langage).

Ce script est relativement simple, sauf à sa première exécution. En effet, au premier lancement, il est demandé à l'utilisateur de saisir des codes bizarres jester

Pour faire simple, afin de pouvoir utiliser l'API, il faut créer un point d'entrée (en cliquant ici), associé à son compte Opera Link, afin d'obtenir deux choses : un customer key, et un customer secret. Deux codes plein de caractères.

Ces codes sont nécessaires à la connexion à l'API.

Le script

Il se découpe en plusieurs parties.

Tout d'abord, je parlais un peu plus haut des customer key et secret. Ils sont demandés dès le lancement du script. si le script ne les a pas, il ne peut pas avancer.

Ensuite, le script va avoir besoin de se connecter à Opera Link, il lui faudra donc les identifiants de connexion afin d'obtenir un code d'accès (ça fait beaucoup de codes, hein ?). Ce code d'accès permettra d'obtenir un access token, et un access token secret (encore 2 codes).

À partir de là, l'utilisateur n'a plus rien à saisir, la librairie d'Opera va utiliser ces access token et secret pour récupérer ce que vous lui demandez.

Afin de ne pas avoir à ressaisir toutes ces informations à chaque fois, un fichier (~/.operalinkrc) est créé (une fois la récupération des access token et secret terminée) avec les informations suivantes :

  • Identifiant de l'utilisateur
  • L'access token
  • L'access token secret
  • Le customer key
  • Le customer secret

Au final, seuls les access token/secret et l'identifiant (pour nommer le fichier de sortie) seront utilisés. Les customer key/secret seront probablement supprimés par la suite.

Les options du script

  • --help : Affiche l'aide ;
  • --login=<login> : Permet de spécifier l'identifiant de connexion à Opera Link (évite d'avoir à le saisir manuellement lors de l'exécution du script) ;
  • --password=<password> : Va de paire avec l'identifiant à Opera Link (il ne sera stocké nulle part) ;
  • --item-type=<bookmark, note, etc.> : type d'objet à récupérer ;
  • --download : Indique au script de télécharger les informations liées au type d'objet (exemple, téléchargement de tous les favoris au format Json) ;
  • --output=<fichier de sortie> : Indique dans quel fichier stocker les données téléchargées (si pas spécifié, le fichier sera nommé sous la forme YYYY-MM-DD-HHmm-<identifiant>-<item-type>.json dans le dossier courant ;
  • --get-all : Affiche la liste de tous les objets du type choisi, et les affiche sous forme d'arborescence ;
  • --get-root : Affiche la liste de tous les objets qui se trouvent à la racine pour le type choisi ;
  • --get-by-id=<id> : Affiche la liste de tous les objets qui se trouvent sous l'id spécifié pour le type choisi.

Exemples

Je lance le script pour la première fois, je veux récupérer dans un fichier local tous mes favoris, et je ne veux pas saisir mes identifiants en plein milieu de l'exécution du script :

perl opera-link-api --login=bob --password=mypassword --download --item-type=bookmark

En sortie, je vais avoir :

You first need to register an API application on https://auth.opera.com/service/oauth/applications/ to get a customer key, and a customer secret.
Enter the customer key : <mon customer key>
Enter the customer secret : <mon customer secret>

Connecting to https://auth.opera.com/service/oauth/authorize...
Authentication successful (access code : XXXXXXX)

Output file : 2010-12-11-0112-bob-bookmark.json

Je souhaite ensuite afficher mes notes :

perl opera-link-api --item-type=note --get-all

Puis, je vais vouloir les sauvegarder au format Json dans un fichier de mon choix :

perl opera-link-api --item-type=note --download --output=/tmp/mes_notes

À noter que pour le moment, seuls les signets et les notes fonctionnent.

Récupérer le script

Il vous faudra récupérer, et installer la librairie d'Opera Link :

git clone https://github.com/operasoftware/perl5-net-operalink.git
cd perl5-net-operalink
make && make test
sudo make install
Il est possible que vous deviez installer certains paquets Perl :
  • libfile-slurp-perl
  • libterm-readkey-perl
  • curl

Le script (distribué sous licence GPL) est disponible ici. N'hésitez pas à me faire des retours.

Bonjour Madame, Bonjour Monsieur

, ,

Salut à tous ninja

Hi everyone ninja


Cela fait quelque temps que je n'ai rien posté sur ce blog, j'ai été un poil occupé. Malgré cela, je n'ai pas chômé. Je vais vous présenter mes deux premiers widgets smile

It's been a while since I last posted something on this blog, I've been quite busy. Nevertheless, I wasn't lazing off. Today, I'm going to present my first two widgets smile


Pour ceux qui ne le savent pas, je suis français. Et en France, à part le fromage, le vin, la tartiflette, le pot-au-feu, et Mireille Mathieu, nous avons Bonjour Madame, et son équivalent Bonjour Monsieur.

For those who don't know, I'm French. And, in France, aside cheese, wine, Tartiflette, pot-au-feu, and Mireille Mathieu, we have Bonjour Madame (let's say Hello Pretty), and its counterpart Bonjour Monsieur (Hello Handsome).


Chaque jour, ces deux sites (enfin, pour ma part, Bonjour Madame), nous offrent une tranche d'art à tremper dans notre café du matin.

Every day, these two websites (well, only Bonjour Madame for me), offer a slice of art for your breakfast coffee.


Ces deux widgets vous permettront de voir les Bonjour Madame/Monsieur chaque jour, de voir également les jours précédents. Mais également, de mettre en favori ceux qui vous plaisent et que vous souhaitez conserver dans un coin.

These two widgets give you the opportunity to watch Hello Pretty/Handsome every day, to watch previous days. You'll also be able to bookmark the ones you like.


Vous pouvez télécharger le widget de Bonjour Madame ici, et celui de Bonjour Monsieur ici smile

You can download the widget of Bonjour Madame here, and the one of Bonjour Monsieur here smile

New version of WOT, now compatible with GreaseMonkey

, , , ...

Salut à tous,

Hi everyone,


Ça fait un moment que je n'ai pas touché ce script (malgré sa sortie en bêta sur My Opera). Voici donc la nouvelle version ! ninja

I didn't touch the script for a while (despite the release of a bêta version on My Opera). So, here is the new version ! ninja


Celle-ci a une "fonctionnalité" qui est, je pense, assez importante et peut intéresser les non-utilisateurs d'Opera.

This version has a feature which is for me, quite important and can be interesting for Opera non-users.


En effet, cette version est désormais compatible avec GreaseMonkey.

Indeed, this version is now compatible with GreaseMonkey.


Pour ceux qui ne connaissent pas GreaseMonkey, c'est une extension pour Firefox, mais aussi... Safari, sous la forme de GreaseKit.

For those who don't know GreaseMonkey, it's an addon for Firefox, but also... for Safari, with GreaseKit.


Étant un utilisateur linuxien, je n'ai toutefois pas pu tester le script via GreaseKit. Mais d'après ce que j'ai pu lire, s'il marche via GreaseMonkey, il devrait fonctionner via GreaseKit bigsmile

I'm a linux user, so I haven't been able to test it using GreaseKit. But, from what I read, if it works with GreaseMonkey, it should work with GreaseKit bigsmile


Concernant les autres nouveautés, le script affiche désormais des résultats sur les recherches d'images de Google, Bing, et Yahoo. Il fonctionne également sur les pages sécurisées (HTTPS) de Google. Il faut toutefois activer l'User Javascript sur ces pages sécurisées.
Il supporte également de nouveaux sites tels que Scroogle.org, Francite.com (qui a une mauvaise réputation ^_^), Listing Quebec, DuckDuckGo is back, SearchCanvas.

Regarding the other news, the script now displays results on images searches of Google, Bing and Yahoo.
It also supports secured page (HTTPS) of Google. You first need to enable User Javascript on secured pages.
It also supports new websites such as Scroogle.org, Francite.com (which has a bad reputation ^_^), Listing Quebec, DuckDuckGo is back, SearchCanvas.



Télécharger ce script pour Opera ici ou
Download this script for Opera here or here

Télécharger ce script pour GreaseMonkey/GreaseKit ici ou .
Download this script for GreaseMonkey/GreaseKit here or here[/i]

Install or update Opera snapshots on Linux

, , , ...

Hüss !
Hey there !

À chaque fois qu'une nouvelle version d'Opera pour Linux est disponible, je suis comme un gosse.

Every time a new snapshot of Opera for Linux is available, I'm like a kid.


Malheureusement, à chacune de ces versions, je dois reproduire les mêmes actions, et exécuter les mêmes commandes:
- Télécharger le fichier (bzippé ou gzippé) ;
- L'extraire où je veux ;
- Copier le dossier profil existant (je n'utilise pas le profil ~/.opera) ;
- Et d'autres trucs ninja

Unfortunately, every time there is one, I have to reproduce the same actions, execute the same commands :
- Download the file (bzipped or gzipped) ;
- Extract it where I want ;
- Copy the previous profile (I don't use ~/.opera/ for snapshots) ;
- and other things ninja



Et donc, finalement, j'ai créé un pti script (bash) pour faire tout ça. Et je vous le propose smile

So, finally, I wrote a small script (bash) to do this. And I'm offering it to you smile


Que peut-on spécifier lors de l'appel du script / What you can specify to the script


Il y a des variables qui possèdent des valeurs par défaut, telle que le type de plateforme (linux), l'architecture (i686), le dossier de destination (~/opera), le chemin vers le dossier du profil (~/opera/opera/profile, ou ~/.opera si le premier dossier n'existe pas). Il est possible de modifier ces variables via des paramètres, ou directement dans le script.

There are default variables, such as platform (linux), architecture (i686), destination path (~/opera), profile path (~/opera/opera/profile, or ~/.opera if the first path does not exist). You can modify some using parameters, or in the script.


Voici les paramètres que l'on peut modifier lorsqu'on exécute le script :
- le numéro de la version à installer (ex: 10.54) ;
- le numéro du snapshot (ex: 6333) ;
- la plateforme (ex: freebsd, par défaut "linux") ;
- l'architecture (ex: x86_64, par défaut "i686") ;
- l'extension de l'archive à télécharger (ex: gz, par défaut "bz2") ;
- le dossier vers le profil existant que le script devra copier (ex: /mnt/disk1/operaProfile. Si ce paramètre n'est pas spécifié, le script prendra le contenu de ~/opera/opera/profile, ou ~/.opera si le premier dossier n'existe pas).

Here are the parameters you can set when you execute the script :
- the number of the version to install (ex: 10.54) ;
- the number of the build (ex: 6333) ;
- the platform (ex: freebsd, default is linux) ;
- the architecture (ex: x86_64, default is i686) ;
- the extension of the archive you want to download (ex: gz, default is bz2) ;
- the path of the current profile (ex: /mnt/disk1/operaProfile, if not specified, the script will take ~/opera/opera/profile or ~/.opera if the first path does not exist).



Que fait ce script ? / What does the script do ?


Le script va télécharger le fichier de la version/platform/architecture spécifié qui se trouve sur http://snapshot.opera.com/, et le mettra dans /tmp/. Il en extraiera le contenu dans le dossier de destination (par défaut ~/opera/opera-<version>-<build>.<archi>.<platform>).

The script will download the file from http://snapshot.opera.com/ of the version/platform/architecture you specified in /tmp/, will extract the content in a destination folder (default is ~/opera/opera-<version>-<build>.<archi>.<platform>).


Puis, il fermera Opera s'il tourne actuellement, et copiera le profil spécifié, dans le nouveau dossier.
Il créera ensuite un lien symbolique de ~/opera/opera-<version>-<build>.<archi>.<platform> vers ~/opera/opera/.
Il démarrera ensuite Opera.

Then, it will close Opera if it's running, then copy the specified profile (default is ~/opera/opera/profile or ~/.opera if the first path does not exist) in the brand new version folder.
It will create a symbolic link of ~/opera/opera-<version>-<build>.<archi>.<platform> to ~/opera/opera/.
And finally, it will start this new version.



/Quelques exemples / A few examples


To download Opera 10.54, build 6333, for freebsd


updateOpera -v 10.54 -b 6333 -p freebsd


To download Opera 10.54, build 6333, for amd


updateOpera -v 10.54 -b 6333 -a amd64


To download Opera 10.54, build 6333, for x86_64, with the profile from .opera


updateOpera -v 10.54 -b 6333 -o ~/.opera -a x86_64


Exemple de sortie du script / Output of the script


1/8) Downloading Opera from http://snapshot.opera.com/unix/snapshot-6333/opera-10.54-6333.i386.linux.tar.bz2
2/8) Extracting opera-10.54-6333.i386.linux.tar.bz2 in ~/opera
3/8) Killing Opera :(
    Opera is not running
4/8) Copying profile
5/8) Removing old symlink
6/8) Creating symlinks
7/8) Removing temporary file
8/8) Starting Opera


Download


Vous pourrez trouver le script ici.

You can find the script here.

Comment savoir qui vous a supprimé de sa liste d'amis sur Facebook ?

, , ,

Opera doit être installé pour que ce qui suit fonctionne

Salut à tous,

Hi everyone,


Avant-hier, j'avais X amis sur Facebook. Le lendemain, je n'en avais plus que X-1. Qui m'a supprimé de sa liste ?

The day before yesterday, I had X friends. The day after, I had only X-1 friends. Who did remove me from its list ?


Je vous présente donc un script qui fonctionne sous Opera qui vous permet de savoir qui vous a supprimé de sa liste d'amis. Celui-ci enregistre votre liste d'utilisateurs, et vérifie quand vous êtes sur Facebook si quelqu'un vous a supprimé.

I introduce you a script, working in Opera, which permits you to know who removed you from its list. This script saves your list of friends, and check if someone remove you when you browse Facebook.


Toutefois, si votre ami(e) vous a déjà supprimé, ce script ne vous permettra pas de savoir qui est cet(e) ami(e).

If this friend already removed you from its list, this script won't help.


Le script est disponible ici.
Il nécessite l'installation des scripts a-lib-stacktrace et a-lib-xmlhttp-cd pour fonctionner (plus de détails).


The script is available here, and needs a-lib-stacktrace and a-lib-xmlhttp-cd to work (more details).


Si vous avez une remarque, n'hésitez pas à répondre à ce post.

If you have anything you want to say, use the comment button.


Si vous ne savez pas comment installer ce userJS, vous pouvez vous rendre ici

If you don't know how to install this userjs, you can read this.

Still WOT smile

, , , ...

Hey,

There's some fresh meat (vegetables if you're vegetarian) for you smile
A(nother) new version of the User Javascript WOT.

This one is quite stylish.

You can thank QuHno for the design. He also gave me useful advises, especially for the updater. Without him, it would still be using cookies.

You also can thank Nickko, an Opera user who is also a great usability expert. He helps me a lot by giving me usability advises ninja

Regarding what's new :
  • Faster (especially DOM queries reduce to a minimum)
  • Sexy (come on, look at the design bigsmile)
  • No more cookies \o/
  • And I Guess that's enough


A few screenshots :




You can download it here, or here, or use the updater ninja

As usual, I you have any issues with this version, just say so in this thread smile

New major version of WOT for Opera : you can vote !

, , , ...

Hi there !

So, after a few minor versions, I release a major version (with only a 0.01 in the version number) : 0.93.

Voting system


This version contains new things (of course...), in particular a voting system. In fact, it's a quite simple system. When you click on the WOT icon (see the cursor on the screenshot), an iframe opens so you can vote for a link or a website :


Then, a wonderful iframe opens (its size depends on the width of the window) :


Danger ! Danger ! High voltage !


In the original WOT addon, you can configure WOT to display a warning when the website you're about to visit is dangerours/unsafe or however you define it.

In this UJS, you can now enable this feature (disabled by default), and specify the security level.

There's one constant to enable (B_DISPLAYWARNING must be set to true).
And one constant to set security level (N_SECURITY_LEVEL). This security goes from 1 to 5 (1 = dangerous, 2 = not safe, 3 = not sure, 4 = alright 5 = trusted). You will get a warning for every link you click whom domain has a score under the one you specify.

Here is how it looks :


New search engines, and social bookmarking services


Here is the list :


ToDo List


  • Updater : Replace the popup by a DOM element (quite difficult, I still haven't found a way to do it)
  • Add a configuration window (size of the WOT logo, default language, disable/enable updater, check current website, etc.).


If you have any ideas of what I could add to this UserJS, just say so ninja
If you want to report bugs, do it through this post.

This UserJS is available here, here or via the update checker.

========================================================================
Salut les jeunes !

Bon, après quelques versions mineures, je sors une version majeure (avec seulement +0.01 dans le numéro de version) de ce UJS : 0.93.

Cette version contient de nouvelles choses (normal quoi...), en particulier le système de votes. En fait, c'est un système relativement simple. Lorsque vous cliquez sur le logo de WOT (voir le curseur sur la capture d'écran), une iframe s'ouvre pour que vous puissiez voter :


Puis, une superbe iframe s'ouvre (sa taille dépend de la largeur de la fenêtre) :


Danger ! Danger ! High voltage !


Dans l'extension officieille de WOT, il est possible de le configurer pour qu'il affiche un avertissement lorsque vous êtes sur le point de visiter un site potentiellement dangereux.

Dans ce UJS, vous pouvez activer la même fonctionnalité (désactivée par défaut), et configurer un niveau de sécurité.

Il y a un constante pour activer l'avertissement (B_DISPLAYWARNING doit être initialisé à "true").
Et une autre constante pour le niveau de sécurité (N_SECURITY_LEVEL). La sécurité va de 1 à 5 (1= dangereux, 5 = sûr). Vous recevrez un avertissement pour chaque lien sur lequel vous cliquez dont le domaine a une note inférieure à celle définie.

Voilà à quoi ressemble cet avertissement :


Nouveaux moteurs de recherche, sites communautaires


Voici la liste :


À faire


  • Système de mise à jour : remplacer la popup par un élément du DOM (j'ai du mal pour ça...)
  • Ajouter une fenêtre de configuration (pour régler la taille du logo WOT, langue par défaut, activer/ou non les mises à jour, etc.).


Si vous avez des idées qui pourraient être intégrées à ce UJS, n'hésitez pas à le dire ninja
Si vous souhaitez rapporter des bogues, faites-le dans ce sujet.

Ce nouveau JS est disponible ici, ici ou via le système de mise à jour.