Redaktor:Atomobot/atomobot makecosmetics.py
Vzhled
#!/usr/bin/python2.4 # -*- coding: utf-8 -*- from datetime import date, datetime, timedelta import re import socket import wikipedia import catlib import atomobot_settings as config from atomobot_date import AtomobotDate from atomobot_language import AtomobotLanguageSlovak from atomobot_misc import dequotize, dewikize from atomobot_cosmetics import AtomobotCosmetics lang = AtomobotLanguageSlovak() class AtomobotMakeCosmetics( object ): def __init__( self ): self.readonly = True def make_cosmetics( self, artname ): p = wikipedia.Page( self.site, artname ) data = p.get() old_data = data data = self.cosmetics.cosmetize( data ) summary = u'kozmetika' if data == old_data: print 'NO CHANGE NEEDED' return if not self.readonly: self.strong_put( p, data, summary ) def strong_put( self, page, data, summary ): MAX_RETRIES = 20 retries = 0 while retries < MAX_RETRIES: retries += 1 try: page.put( data, summary ) except socket.error, exc: print '#%02d socket error - retrying' % retries continue break def run( self, artname, readonly=True ): self.readonly = readonly self.atomodate = AtomobotDate( lang ) self.site = wikipedia.getSite() self.site.forceLogin() self.cosmetics = AtomobotCosmetics() self.make_cosmetics( artname ) wikipedia.stopme() def main(): print 'Article name:', artname = unicode( raw_input(), 'utf8' ) if not artname: return print 'Read only (Y/n)?', readonly = not ( raw_input() in ( 'N', 'n' ) ) make_cosm = AtomobotMakeCosmetics() make_cosm.run( artname, readonly ) main()