δοκιμή για νέο τ

επεξεργασία
* {{τ|en|word}}: {{τ|en|word}}
* {{τ|en1|word}}: {{τ|en1|word}}
* {{τ|grc|καλός}}: {{τ|grc|καλός}} (δεν υπάρχει ΒΛ grc)
* {{τ|en|very good|link=good|iw=good}}: {{τ|en|very good|link=good|iw=good}}
* {{τ||bon}}: {{τ||bon}} (επιστρέφει μήνυμα λάθους)
* {{τ|fr|}}: {{τ|fr|}} (δεν επιστρέφει τίποτα)
* {{τ|ru|хороший|tr=xoróšij}}: {{τ|ru|хороший|tr=xoróšij}}
* {{τ|ro|noentry|link=entry|noentry=1}}: {{τ|ro|noentry|link=entry|noentry=1}}
#!/usr/bin/python
# -*- coding: utf-8 -*-

import wikipedia
import sys, re, codecs
#reload(sys)
#sys.setdefaultencoding('utf-8')

page_tag = re.compile('(.*)')
meros_tag = re.compile('\{\{\-([^\|]*)\|fr\}\}')
etym_tag = re.compile(u'\{\{ετυμ ([a-z]*)\|FR\}\}')
#cate1_tag = re.compile(u'\[\[Κατηγορία:([^\]]*)\]\](.*)')
categ_tag = re.compile(u'\[\[Κατηγορία:(.*)γαλλικά(\)*)\]\](.*)')
set_string = re.compile('set')

debug_bul = True

def mainloop(line):
   global debug_bul
   t1 = page_tag.search(line)
  #t1=u"absorptivité"
  #
   t = t1.group(1)
   print(t)
   kleida = t.translate(trtable)
   page = wikipedia.Page(wikipedia.getSite(), t)
   arxiko = page.get(get_redirect=True)
  
   # Αντικαταστάσεις

   p2 = meros_tag.sub(r'Πρότυπο:-\1',arxiko)
   p2 = etym_tag.sub(u'{{ετυμ \g<1>|FR|'+kleida+'}}',p2)
   keimeno = categ_tag.sub(u'[[Κατηγορία:\g<1>γαλλικά\g<2>|'+kleida+']]',p2)

   # Εδώ θα μπει ο κώδικας για την αποθήκευση
   if keimeno != page.get():
            # Show the title of the page we're working on.
            # Highlight the title in purple.
      wikipedia.output(u"\n\n>>> \03{lightpurple}%s\03{default} <<<" % page.title())
            ## show what was changed
      wikipedia.showDiff(page.get(), keimeno)
      #choice= 'y'
      if debug_bul:
        choice = wikipedia.inputChoice(u'Do you want to accept these changes?', ['yes', 'No', 'all'], ['y', 'N', 'a'], 'N')
        if choice == 'a':
	  choice = 'y'
          debug_bul = False
        elif choice != 'y':
          choice='n'
          wikipedia.output(u"\03{lightpurple}%s\03{default} : Δεν αποθηκεύτηκαν οι αλλαγές" % page.title())
      if choice == 'y':
                    try:
			# Save the page
                        page.put(keimeno)
                    except wikipedia.EditConflict:
                        wikipedia.output(u'Skipping %s because of edit conflict' % (page.title()))
                    except wikipedia.SpamfilterError, error:
                        wikipedia.output(u'Cannot change %s because of spam blacklist entry %s' % (page.title(), error.url))

   else:
           wikipedia.output(u"\03{lightpurple}%s\03{default} : Καμία αλλαγή δεν απαιτείται" % page.title())

def main():
 wikipedia.setLogfileStatus(True, 'log-cle-fr.txt')
 global trtable
 debug_bul = True

 # πίνακες αντιστοίχισης
 mtg_apo = u'à â ç é è ê ë î ï ô œ ù û ü'
 mtg_se =  u'a a c e e e e i i o oe u u u'
 trkeys = mtg_apo.split(u' ')
 for i in range(len(trkeys)):
	trkeys[i] = ord(trkeys[i]) 
 trvals = mtg_se.split(u' ')
 trtable = dict(zip(trkeys,trvals)) 

 wikipedia.setAction(u'Εισαγωγή κλείδας ταξινόμησης')

 # Εδώ ορίζεται η λέξη στην οποία θα γίνουν οι αλλαγές
 fin = codecs.open('kle-list', 'r', 'utf-8')
 eof=0
 while not eof:
  line = fin.readline()
  #line = unicode(line, 'utf-8')
  if line == "":
    eof = 1
  else:
	mainloop(line)
 fin.close()

if __name__ == "__main__":
    try:
        main()
    finally:
        wikipedia.stopme()
<\pre>