Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 28/12/2009, à 00:23

n3o51

Liste des onglets

Bonsoir y a t'il un moyen de copier directement dans un fichier txt la liste des onglets ouverts dans opera et firefox ?

ligne par ligne ?

Merci d'avance

Edit modérateur : si vous n'avez pas de réponses à donner, ne sortez pas le sujet des "Sujets sans réponses".

Dernière modification par xabilon (Le 28/12/2009, à 00:42)


Welcome to the real world
________________________________

Hors ligne

#2 Le 28/12/2009, à 01:23

sputnick

Re : Liste des onglets

Pour ff :

"marques pages"->"marquer tous les onglets"
puis creer un repertoire,
"marques pages"->"organiser les marques pages"
selectionner le dossier dans la collone de gauche, selectionner tous les items à droite, copier coller ( ca copie colle juste les URLS )


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#3 Le 28/12/2009, à 01:32

n3o51

Re : Liste des onglets

Edit modérateur : si vous n'avez pas de réponses à donner, ne sortez pas le sujet des "Sujets sans réponses".

hmm

Je trouve dommage d'avoir supprimer le messages certaienement d'abonnement de la personne précedentes ou d'aide mais bon


@sputnick

Merci mais n'est pas possible depuis un terminal opera ne stock t'il pas ça dans un fichier


Welcome to the real world
________________________________

Hors ligne

#4 Le 28/12/2009, à 12:04

Elzen

Re : Liste des onglets

Je viens de faire une regarder ça rapidement chez moi : apparemment, la session actuelle de Firefox est enregistrée dans le fichier ~/.mozilla/firefox/PROFILE/sessionstore.js, au format json. Tu peux parser ça à peu près facilement avec python, si tu installes le paquet python-json :

import minjson
f = open("FICHIER JSON", "r")
jdata = minjson.read(f.read())
f.close()

Et tu n'as plus qu'à regarder ce que contient la variable jdata.

Pour Opera, je n'en sais rien, je ne l'utilise pas.

Dernière modification par ArkSeth (Le 28/12/2009, à 12:06)

Hors ligne

#5 Le 28/12/2009, à 15:21

n3o51

Re : Liste des onglets

Déja merci pour firefox

Donc FICHIER JSON  est égale a

~/.mozilla/firefox/PROFILE/sessionstore.js

a remplacer du moins

pour regarder jdata je le fait avec printf c'est ça ?


Welcome to the real world
________________________________

Hors ligne

#6 Le 28/12/2009, à 16:01

Elzen

Re : Liste des onglets

Si tu l'affiches tel quel, ça ne te donnera pas grand chose d'autre qu'un cat sur le fichier : minjson.read() te retourne un dictionnaire python, dont certaines valeurs sont elles-mêmes des listes de dictionnaires.

Je suis en train d'y jeter un œil : à première vue, l'objet fourni par ce fichier contient entre autres une clef "windows", qui renvoie la liste des fenêtres, et chaque fenêtre contient entre autres une clef "tabs" qui renvoie la liste des onglets, eux-mêmes constitués de... hum. Sympa, comme présentation.

Je ne garantis rien, il faudrait faire quelques vérifications, mais à première vue, si tu veux récupérer la liste des URL des pages actuellement affichées dans toutes les fenêtres ouvertes, ligne par ligne, ça donnera quelque chose comme ça :

#! /usr/bin/python
# -*- coding:Utf-8 -*-

#Présent dans le paquet python-json.
import minjson

#Lecture du fichier de sauvegarde de la session.
#Remplacer USER par le nom d'utilisateur et PROFILE par le répertoire du profil.
f = open("/home/USER/.mozilla/firefox/PROFILE/sessionstore.js", "r")
jdata = minjson.read(f.read())
f.close()

#Parcours des fenêtres ouvertes dans la session.
for win in jdata.get("windows"):
    #Parcours des onglets ouverts dans cette fenêtre.
    for tab in win.get("tabs"):
        #Récupération de l'indice de la page active sur cet onglet.
        #Numéroté à partir de 1, donc on retire 1 parce que python numérote à partir de 0.
        i = tab.get("index") - 1
        #Récupération et affichage de l'URL de la page.
        print tab.get("entries")[i].get("url")

Tu peux aussi récupérer d'autres informations comme le titre de la page... si ça t'intéresse, ouvre une console python, lance les commandes du post précédent, et explore wink

Dernière modification par ArkSeth (Le 28/12/2009, à 16:06)

Hors ligne

#7 Le 28/12/2009, à 16:12

sputnick

Re : Liste des onglets

Oui mais non. Ce que tu cherche à faire Arkseth c'est :

perl -lne 'print for /url":"\K[^"]+/g' ~/.mozilla/firefox/foobar/sessionstore.js

( Ok c'est du quick and dirty, mais ca marche nickel. )

mais ca contient plus d'URL que ce qu'il y a dans mes onglets chez moi.


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#8 Le 28/12/2009, à 16:24

Elzen

Re : Liste des onglets

Mon pseudo prend deux majuscules, et ton résultat parfaitement normal : le fichier contient toute la session. Donc également les historiques des différents onglets (pages précédentes et suivantes). Mon script (qui marche bien, je viens de tester rapidement) non seulement est plus propre, mais n'affiche que les URL des pages actuelles, comme quoi, les regexp, c'est pas ce qu'il y a de mieux tongue (et c'est du fait à la volée aussi, d'abord.)

Dernière modification par ArkSeth (Le 28/12/2009, à 16:25)

Hors ligne

#9 Le 28/12/2009, à 16:53

n3o51

Re : Liste des onglets

Merci bien mais mon but est d'avoir la liste des onglets dans un fichier vissiblement ton script va permettre d'ouvrir ensuite les lien dans firefox non ?

#Récupération et affichage de l'URL de la page.

Sinon merci j'y regarde des que j'ai 5 minutes

Si quelqu'un c'est ou a une piste pour opera ça serait trés sympa


Welcome to the real world
________________________________

Hors ligne

#10 Le 28/12/2009, à 17:22

Elzen

Re : Liste des onglets

Mon script affiche sur la sortie standard la liste des URLs actuellement ouvertes, chacune sur une ligne. Il n'y a ensuite qu'à rediriger la sortie standard vers un fichier (ou modifier le script lui-même pour qu'il écrive dans un fichier, mais sachant qu'on peut rediriger, je trouve ça moins intéressant).

Hors ligne

#11 Le 28/12/2009, à 17:34

n3o51

Re : Liste des onglets

Et bien merci beaucoup smile

Je laisse le topic ouvert en attendant une solution pour opera smile


Welcome to the real world
________________________________

Hors ligne

#12 Le 28/12/2009, à 20:45

sputnick

Re : Liste des onglets

Interessant ArkSeth, si j'ai un coup de motiv, j'implemente ça en Perl smile

Pour ceux qui ne sont pas sous archlinux, placez minjson.py dans le repertoire courant en le telechargant depuis http://sourceforge.net/projects/json-py/files/json-py/3_4/json-py-3_4.zip/download ( pas de paquet sous Archlinux apparement )


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#13 Le 29/12/2009, à 02:39

sputnick

Re : Liste des onglets

Allé, comme presque promis, voici ce que ça donne en perl :

#!/usr/bin/perl
# Affiche les tabs ouverts dans FF en traitant le fichier sessionstore.js
# et en ne gardant que ce qui nous interesse...
use strict;
use warnings;

# dans le paquet libfile-slurp-perl
use File::Slurp qw( slurp ); 
# dans le paquet libjson-perl
use JSON  -support_by_pp;

# on traite tout le fichier en argument
my $s = slurp $ARGV[0];    
# on retire ces đĸŧ←nø de parentheses bizarres
$s =~ s/^\(//; $s =~ s/\)$//; 
# on instancie une classe
my $d = JSON->new->allow_barekey->allow_singlequote->decode($s); 

# Parcours des fenêtres ouvertes dans la session
foreach my $win (0 .. $#{ $d->{"windows"} } ) {                             
    # Parcours des onglets ouverts dans cette fenêtre via boucle sur les indices.
    for (0 .. $#{ $d->{"windows"}[$win]->{"tabs"} } ) {
        # Récupération et affichage des URLs                 
        print $d->{"windows"}[$win]->{"tabs"}[$_]{"entries"}[0]{"url"},$/; 
    }
}

il faut ajouter comme argument au script le fichier sessionstore.js

Dernière modification par sputnick (Le 29/12/2009, à 03:01)


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#14 Le 29/12/2009, à 12:45

n3o51

Re : Liste des onglets

Merci Sputnick par contre toujours rien du coté de Opera ?


Welcome to the real world
________________________________

Hors ligne

#15 Le 29/12/2009, à 14:58

serged

Re : Liste des onglets

n3o51 a écrit :

Merci Sputnick par contre toujours rien du coté de Opera ?

Peut-être dans des forums spécifiques Opera ?

(J'avoue n'utiliser Opera que pour tester la compatibilité des sites)


LinuxMint Vera Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 16Go / Nvidia GeForce GT610 / LM21.1 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.1 MATE (sur HDD)

Hors ligne

#16 Le 29/12/2009, à 15:17

n3o51

Re : Liste des onglets

Merci mais bon c'est visiblement a peut prés pareil que pour firefox mais le fichier et vraiment bizarre

ça se trouve dans ~/opera/sessions/autosave.win

A pres un super scripteur peut certainement me dire comment grep les lignes ayant http dedans
avec au debut un chiffre suivit de =

Mais je pense que ce fichier integre une parti de l'historique aussi

exemple j'ai

0=http://forum.ubuntu-fr.org/edit.php?id=3171318

Dernière modification par n3o51 (Le 29/12/2009, à 15:21)


Welcome to the real world
________________________________

Hors ligne

#17 Le 29/12/2009, à 19:19

sputnick

Re : Liste des onglets

Je m'y suis collé:

awk -F'=' '
{
    if (/\[[0-9]+history url\]/) {
        while (!/^$/) {
            x=$2
            getline
        }
        print x
    }
}
' ~/.opera/sessions/autosave.win

Dernière modification par sputnick (Le 30/12/2009, à 02:08)


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#18 Le 30/12/2009, à 02:08

sputnick

Re : Liste des onglets

J'ai remplacé x=$NF par x=$2 sinon ca genere des bugs alléatoires ( affiche des morceaux d'URLs éparpillés )

Le principe général c'est que les onglets ouverts se trouvent dans la derniere ligne avant ligne vide dans un bloc qui commence par [<CHIFFRE>history url]. 10 Onglets == 10 blocs [<CHIFFRE>history url] ...


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#19 Le 30/12/2009, à 11:46

n3o51

Re : Liste des onglets

Merci sputnick

je teste aprés

Petite question comment tu fait pour les bashfr aléatoire dans t'as signature ?


Welcome to the real world
________________________________

Hors ligne

#20 Le 30/12/2009, à 12:46

mydjey

Re : Liste des onglets

Je me réabonne. tongue

Hors ligne

#21 Le 30/12/2009, à 14:58

sputnick

Re : Liste des onglets

n3o51 a écrit :

Petite question comment tu fait pour les bashfr aléatoire dans t'as signature ?

J'ai codé un robot en Perl wink


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#22 Le 30/12/2009, à 17:16

n3o51

Re : Liste des onglets

Déja la ça me donne moins envie d'avoir la meme chose smile


Welcome to the real world
________________________________

Hors ligne

#23 Le 30/12/2009, à 23:58

n3o51

Re : Liste des onglets

c'est compliqué a bricoler ?


Welcome to the real world
________________________________

Hors ligne

#24 Le 31/12/2009, à 00:35

sputnick

Re : Liste des onglets

Ben si tu connais les methodes HTTP : POST et GET, Perl, les modules qui vont bien, ca se fait easy. Je ne m'occupe pas de récupérer les quotes sur bashfr.org, je me sert pour ca de "fortune bashfr" que je traite avec des moulinettes ( problemes d'accents, etc...).
En gros, j'automatise l'édition de sa page de profil ou on modifie sa signature.


Si c'est plus la partie propre à bashfr en lui même qui t'interesse et moins l'automatisation HTTP, voici comment installer les fortunes bashfr :

cd /tmp
wget 'http://danstonchat.com/fortunes'
strfile -s -r bashfr bashfr.dat
sudo install -D -m644 bashfr /usr/share/fortune/bashfr
sudo install -D -m644 bashfr.dat /usr/share/fortune/bashfr.dat

Ensuite il ne reste plus qu'à faire :

fortune bashfr

Pour afficher une quote randomisée


On ne peut pas mettre d'array dans un string!
https://sputnick.fr/

Hors ligne

#25 Le 31/12/2009, à 00:59

n3o51

Re : Liste des onglets

non c'est surtout le fait de l'integrer a t'as signature


Welcome to the real world
________________________________

Hors ligne