Package emma :: Package interface :: Package mediawiki
[hide private]
[frames] | no frames]

Source Code for Package emma.interface.mediawiki

 1  """ 
 2  mediawiki interface 
 3   
 4  @copyright: (c) 2012 hackmeeting U{http://sindominio.net/hackmeeting} 
 5  @author: Ruben Pollan 
 6  @organization: hackmeeting U{http://sindominio.net/hackmeeting} 
 7  @contact: meskio@sindominio.net 
 8  @license: 
 9    This program is free software; you can redistribute it and/or 
10    modify it under the terms of the Do What The Fuck You Want To 
11    Public License, Version 2, as published by Sam Hocevar. See 
12    U{http://sam.zoy.org/projects/COPYING.WTFPL} for more details. 
13  """ 
14   
15   
16  import mwclient 
17   
18  from emma import __version__ 
19  from emma.interface import Interface 
20  from emma.events import Event, trigger, subscribe 
21   
22   
23 -class mediawiki(Interface):
24 - def run(self):
25 """ 26 Initialize mediawiki interface 27 """ 28 host = self.conf['host'] 29 path = self.conf['path'] 30 self.wiki = mwclient.Site(host, path) 31 32 user = self.conf['user'] 33 password = self.conf['password'] 34 self.wiki.login(user, password) 35 self.log(_("Login to %s wiki") % (host)) 36 37 event_read = Event(event='read', interface='mediawiki', 38 identifier=self.identifier) 39 subscribe(event_read, self.read) 40 event_write = Event(event='write', interface='mediawiki', 41 identifier=self.identifier) 42 subscribe(event_write, self.write)
43
44 - def read(self, event, data):
45 self.log(_("Fetch %s wiki page") % (data)) 46 return self.wiki.Pages[data].edit()
47
48 - def write(self, event, data):
49 name, text = data 50 self.log(_("Write %s wiki page") % (name)) 51 page = self.wiki.Pages[name] 52 page.save(text)
53