//zh-yue.wikipedia.org/w/index.php?title=User:R._Hillgentleman/kwokYue.py&diff=cur

#kwokYue7.py
#demo: http://zh-yue.wikipedia.org/w/index.php?title=Wikipedia:%E6%B2%99%E7%9B%92&diff=110555&oldid=110553
#重要做嘅嘢:要避開書名號《》、引號""、「」、""、“”
 
 
import re 
import wikipedia
site=wikipedia.getSite()
 
page=wikipedia.Page(site, u'wikipedia:沙盒')
oldtext = page.get()
text=oldtext
 
#(?<!《||"「|“|)[\u3400-\u4DB5\u4E00-\u9FA5\uF900-\uFA2D\u20000-\u2A6D6\u2F800-\u2FA1D]*
#[\u3400-\u4DB5\u4E00-\u9FA5\uF900-\uFA2D\u20000-\u2A6D6\u2F800-\u2FA1D]*(?!》|"|」|”)
 
si  = re.compile(ur'(?<!《|"|「|“|)[\u3400-\u4DB5\u4E00-\u9FA5\uF900-\uFA2D\u20000-\u2A6D6\u2F800-\u2FA1D]*(?<!為|國|於)是(?!但|非|為|故)[\u3400-\u4DB5\u4E00-\u9FA5\uF900-\uFA2D\u20000-\u2A6D6\u2F800-\u2FA1D]*(?!》|"|」|”)',flags=re.U)  #自以為是 - must (?) match fixed length
 
bud = re.compile(ur'(?<!《|"|「|“|)[\u3400-\u4DB5\u4E00-\u9FA5\uF900-\uFA2D\u20000-\u2A6D6\u2F800-\u2FA1D]*不(?!過|屈|惜|朽|治|測)[\u3400-\u4DB5\u4E00-\u9FA5\uF900-\uFA2D\u20000-\u2A6D6\u2F800-\u2FA1D]*(?!》|"|」|”)',flags=re.U)
 
dig = re.compile(ur'(?<!《|"|「|“|)[\u3400-\u4DB5\u4E00-\u9FA5\uF900-\uFA2D\u20000-\u2A6D6\u2F800-\u2FA1D]*(?<!目|中|麗)的(?!確|而)[\u3400-\u4DB5\u4E00-\u9FA5\uF900-\uFA2D\u20000-\u2A6D6\u2F800-\u2FA1D]*(?!》|"|」|”)',flags=re.U)
 
text = si.sub(ur'係', text, count=0)  #count=0 : replace all
text =bud.sub(ur'唔', text )
text =dig.sub(ur'嘅', text )
 
page.put(text, u'kwokYue7.py 機械人改字:(?<!《||"「|“|)[\u3400-\u4DB5\u4E00-\u9FA5\uF900-\uFA2D\u20000-\u2A6D6\u2F800-\u2FA1D]*(?<!為|國|於)是(?!但|非|為|故)[\u3400-\u4DB5\u4E00-\u9FA5\uF900-\uFA2D\u20000-\u2A6D6\u2F800-\u2FA1D]*(?!》|"|」|”) -> 係 ; 不,的 etc')
 
wikipedia.stopme()
 

 ###################################################################################################3
#commented out crap - converted into a for-loop...
#newtext = wikipedia.replaceExcept(newtext, u'是', u'係',[u'是但',u'是非',u'自以為是',u'國是'], caseInsensitive=True)
#newtext = wikipedia.replaceExcept(newtext, u'不', u'唔',[], caseInsensitive=True)      
#newtext = wikipedia.replaceExcept(newtext, u'的', u'嘅',[u'目的',u'的士',u'一矢中的',u'的確',u'的而且確'], caseInsensitive=True)
#newtext = wikipedia.replaceExcept(newtext, u'們', u'哋',[], caseInsensitive=True)
#newtext = wikipedia.replaceExcept(newtext, u'他', u'佢',[u'其他',u'他山',], caseInsensitive=True)
#newtext = wikipedia.replaceExcept(newtext, u'她', u'佢',[], caseInsensitive=True)
#newtext = wikipedia.replaceExcept(newtext, u'它', u'佢',[], caseInsensitive=True)
#newtext = wikipedia.replaceExcept(newtext, u'您', u'你',[], caseInsensitive=True)
#newtext = wikipedia.replaceExcept(newtext, u'在', u'喺',[u'現在',u'存在',u'所在',], caseInsensitive=True)
#newtext = wikipedia.replaceExcept(newtext, u'今天', u'今日',[], caseInsensitive=True)
#newtext = wikipedia.replaceExcept(newtext, u'明天', u'聽日',[], caseInsensitive=True)
#########################################################################################
#''list'' is a list of lists of length three  (oldtext, newtext, exceptions)
# where oldtext and newtext are unicodestrings; exceptions is a list of strings
# perhaps  use ur'[^(自以為|國)]是[^(但|非)]' ?? understand regex better!
# use the sub method?  r=regex object, r1=replacement, s = string,  r.sub(r1,string,count=0)
"""
list=[
 [ur'是', ur'係',[ur'(?<!是)但',u'是非',u'自以為是',u'國是']],
 [u'不', u'唔',[]],
 [u'的', u'嘅',[u'目的',u'的士',u'一矢中的',u'的確',u'的而且確',u'麗的']],
 [u'美麗的',u'好靚嘅',[]],
 [u'們', u'哋',[]],
 [u'他', u'佢',[u'其他',u'他山',u'維他']],
 [u'她', u'佢',[]],
 [u'它', u'佢',[]],
 [u'您', u'你',[]],
 [u'在於',u'喺',[u'現在',u'存在',u'所在',u'此在'] ],
 [u'在', u'喺',[u'現在',u'存在',u'所在',u'在乎',u'此在']],
 [u'今天',u'今日',[]],
 [u'明天',u'聽日',[]],
 [u'衛',u'衞',[]],
 [u'了',u'咗',[u'了解',u'了結',u'了了',u'未了',u'不了']],
 [u'也',u'都',[]],
 [u'這',u'呢',[]],
 [u'此',u'呢',[]],
 [u'牠',u'佢',[]],
 [u'沒',u'無',[u'沉沒',u'覆沒',u'沒頂',u'沒入',u'沒落']],
 [u'没',u'無',[u'沉没',u'覆没',u'没頂',u'没入',u'没落']],
 [u'及',u'同',[u'埃及',u'及時',u'及第']],
 [u'與',u'同',[u'參與',u'與會',u'與共']],
 [u'和',u'同',[u'共和',u'和平',u'大和',u'昭和',u'和坤',u'和氣',u'和顏',u'和聲',u'和弦',u'和絃',u'調和',u'和樂',u'和好',u'協和',u'唱和',u'一和',u'和諧']],
 [u'並',u'重',[u'並且',u'並蒂',u'並重']],
 [u'吃',u'食',[]],
 [u'些',u'啲',[]],
 [u'看',u'睇',[u'看更',u'看守',u'看家',u'看門']],
 [u'那裏',u'嗰度',[]],
 [u'那兒',u'嗰度',[]],
 [u'哪裏',u'邊度',[]],
 [u'那',u'嗰',[u'那麼']],
 [u'這裏',u'呢度',[]],
 [u'這兒',u'呢度',[]],
 [u'從',u'由',[u'從人',u'隨從',u'服從',u'順從',u'從心']],
 [u'逝世',u'死',[]],
 [u'般',u'樣',[]],
 [u'這樣',u'咁樣',[]],
 [u'衛',u'衞',[]],
 [u'說',u'講',[u'小說',u'說文',u'說書',u'解說',u'說明']],
 [u'像',u'似',[u'成像',u'影像',u'圖像',u'印像']],
] 
k=[]
for i,j,k in list:
  print i,j,k
  ######################################################################
  # need to write from scratch the regex 
  # text = wikipedia.replaceExcept(text, i,j,k, caseInsensitive=True)
  ##################################################################### 
page.put(newtext,u'機械人轉字:國語,[[user:hillgentleman1]]')
 
wikipedia.output(text)
wikipedia.stopme()
 
""" 
 
#################################################################################### 
"""
some crap
import wikipedia #importing the wikipedia.py module
site=wikipedia.getSite()  # setting the site, from configuration
pg = wikipedia.Page(site, 'template:copyvio') #creating the Page object in question
x=pg.contributingUsers()  #getting the contributing users
"""