====== bmarkmidori ====== * Objet : script python pour midori((Voir : [[:doc:reseau:midori]])) sous Openbox(([[:doc:environnements:x11:openbox | Gestionnaire Openbox]])) * Niveau requis :{{tag>débutant avisé}} * Commentaires : // Script mis à disposition par //**Thuban**// afin d'améliorer le menu de midori. // * Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-) * Suivi : {{tag>à-tester}} * Création par [[user>thuban]] le 31/12/2011 * Testé par .... le .... * Commentaires sur le forum : [[https://debian-facile.org/viewtopic.php?pid=153633#p153633 |C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) ===== Aspect ===== Une fois le script en action, le menu de midori ressemblera à : {{/file-Re8e9516ac1e8cc9ea6c3b9872b0b195d.png}} ===== Script ===== Ajouter(([[:doc:editeurs:vim:vim]])) à votre fichier : ~/.config/openbox/menu.xml Cette ligne : menu execute="/usr/bin/python ~/Documents/Scripts/Openbox/ob_bmarkmidori.py" id="midori-menu" label="Marques-Pages" Et éditer le fichier : ~/Documents/Scripts/Openbox/ob_bmarkmidori.py pour y écrire le script suivant : #!/usr/bin/env python # -*- coding:Utf-8 -*- # thuban # # add this line to menu.xml # # # be careful not to use the id 2 in another menu to avoid conflicts ####################################################################### # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. ######################################################################## import os from xml.etree import ElementTree as ET browser = 'midori' bookmarks = os.path.expanduser('~/.config/midori/bookmarks.xbel') def print_label(title, url): print(''.format(title.encode('utf-8'))) print( '') print( '{0} {1}'.format(browser, url)) print( '') print( '') def print_submenu(title,titleList, urlList): print(''.format(str(title.encode('utf-8'))+'6666',str(title).encode('utf-8'))) if len(titleList) > 0: for i in range(len(titleList)): print_label(titleList[i], urlList[i]) print('') def print_bookmarks(elem): '''print les bookmarks avec leur url''' t = elem.getiterator('title') u = elem.getiterator('bookmark') for i in range(len(u)): print_label(t[i].text, u[i].get('href')) def print_folder_menu(folder): folderTitle = folder[0].getiterator('title')[0].text urls, titles = [], [] if len(folder[1:]) > 0: for i in folder[1:]: u = i.getiterator('bookmark') t = i.getiterator('title') for i in t: titles.append(i.text) for i in u: urls.append(i.get('href')) print_submenu(folderTitle, titles, urls) def rbuild_tree(id, bookmarks): '''Crée le menu openbox à partir d'une liste d'éléments''' tree = ET.parse(bookmarks).getroot() folderList = tree.getiterator('folder') print('') for folder in folderList: tree.remove(folder) print_folder_menu(folder) print_bookmarks(tree) print('') def main(): rbuild_tree(2, bookmarks) if __name__ == '__main__': main()