#!/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()