Utilisateur:Nemoi/test

Un article de Wikipédia, l'encyclopédie libre.

WHEREISPYWIKIPEDIA = "/home/dieu/"

from gettext import gettext as _

import os import gtk import gedit

os.chdir(WHEREISPYWIKIPEDIA+"pywikipedia/") import wikipedia as wp

ui_str = """ <ui> <menubar name="MenuBar"> <menu name="FileMenu" action="File"> <placeholder name="FileOps_4">

           <separator/>

<menuitem name="wikiExport" action="wikiExport"/> <menuitem name="wikiImport" action="wikiImport"/> </placeholder> </menu> <menu name="Wikipedia" action="MenuWiki"> <menuitem name="wikiFormatnum" action="wikiFormatnum"/> </menu> </menubar> </ui> """

class WikiTools: # activation def __init__(self, plugin, window): self._window = window self._plugin = plugin

self._insert_menu()

def deactivate(self): self._window = None self._plugin = None

           self._action_group = None

self._remove_menu()

def update_ui(self): self._action_group.set_sensitive(self._window.get_active_document() != None)

# menus def _insert_menu(self): manager = self._window.get_ui_manager()

self._action_group = gtk.ActionGroup("Wiki")

self._action_group.add_actions([("wikiExport", None, _("Export..."), None, _("upload the text on wikipedia"), self.on_wikiExport_activate)]) self._action_group.add_actions([("wikiImport", None, _("Import..."), None, _("import the text from wikipedia"), self.on_wikiImport_activate)])

self._action_group.add_actions([("MenuWiki", None, _("WikiTools"), None, _("Groups usefull wiki-tools"), None)]) self._action_group.add_actions([("wikiFormatnum", None, _("formatnum"), None, _("insert formatnums"), self.on_wikiFormatnum_activate)])

manager.insert_action_group(self._action_group, -1) self._ui_id = manager.add_ui_from_string(ui_str)

def _remove_menu(self): manager = self._window.get_ui_manager()

manager.remove_ui(self._ui_id) manager.remove_action_group(self._action_group)

manager.ensure_update()

# fenetre de choix d'article def delete_event(self, widget, event, data=None): return False def destroy(self, widget, data=None): gtk.main_quit()

def cancel(self, widget, data=None): self.window_article.hide()

def ok(self, widget, action): nom_article = self.entry_article.get_text() if not nom_article: return

print nom_article # test

site = wp.Site("fr","wikipedia") page = wp.Page(site,nom_article)

if action == "export": doc = self._window.get_active_document() if not doc: return text = doc.get_text(doc.get_start_iter(),doc.get_end_iter())

page.put(text,"Édition de Nemoi depuis gedit ; Fonctionalité de commentaire non-encore implémentée")

elif action == "import": text = page.get()

doc = self._window.create_tab(1) doc.set_text(text) else: print "bug_01"

self.window_article.hide()

def choose_article(self,action): self.window_article = gtk.Window(gtk.WINDOW_TOPLEVEL) self.window_article.set_modal(1)

  1. self.window_article.set_size_request(200, 100)

self.window_article.set_border_width(10) self.window_article.set_title(_("Article to ")+action+"...")

self.window_article.connect("delete_event", self.delete_event) self.window_article.connect("destroy", self.destroy)

  1. self.window_article.hide_on_delete(True)
  2. self.window_article.set_icon_from_file(...)
  3. self.window_article.set_destroy_with_parent(...)
  4. self.window_article.set_deletable(False)

self.vbox = gtk.VBox(False, 1) self.window_article.add(self.vbox)

self.entry_article = gtk.Entry(max=0) self.entry_article.set_visibility(1) self.vbox.pack_start(self.entry_article, True, True, 0)

self.buttonbox = gtk.HButtonBox() self.buttonbox.set_layout(gtk.BUTTONBOX_SPREAD) self.vbox.pack_start(self.buttonbox, True, True, 0)

self.button_cancel = gtk.Button(stock=gtk.STOCK_CANCEL) self.button_cancel.connect("clicked", self.cancel, None) self.buttonbox.add(self.button_cancel)

self.button_ok = gtk.Button(stock=gtk.STOCK_OK) self.button_ok.connect("clicked", self.ok, action) self.buttonbox.add(self.button_ok)

self.button_cancel.show() self.button_ok.show() self.buttonbox.show() self.entry_article.show() self.vbox.show() self.window_article.show()

# appels def on_wikiExport_activate(self,action): self.choose_article("export")

def on_wikiImport_activate(self, action): self.choose_article("import")

def on_wikiFormatnum_activate(self, action): doc = self._window.get_active_document() if not doc: return

class ExamplePyPlugin(gedit.Plugin): def __init__(self): gedit.Plugin.__init__(self) self._instances = {}

def activate(self, window): self._instances[window] = WikiTools(self, window)

def deactivate(self, window): self._instances[window].desactivate() del self._instances[window]

def update_ui(self, window): self._instances[window].update_ui()