#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".
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)
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
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
Dernière modification par ArkSeth (Le 28/12/2009, à 16:06)
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
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 (et c'est du fait à la volée aussi, d'abord.)
Dernière modification par ArkSeth (Le 28/12/2009, à 16:25)
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
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).
Elzen : polisson, polémiste, polymathe ! (ex-ArkSeth)
Un script pour améliorer quelques trucs du forum.
La joie de t'avoir connu surpasse la peine de t'avoir perdu…
timezone[blocklist]
Hors ligne
#11 Le 28/12/2009, à 17:34
- n3o51
Re : Liste des onglets
Et bien merci beaucoup
Je laisse le topic ouvert en attendant une solution pour opera
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
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
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
Hors ligne
#21 Le 30/12/2009, à 14:58
- sputnick
Re : Liste des onglets
Petite question comment tu fait pour les bashfr aléatoire dans t'as signature ?
J'ai codé un robot en Perl
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
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