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

επεξεργασία
* {{τ|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}}
  1. !/usr/bin/python
  2. -*- coding: utf-8 -*-

import wikipedia import sys, re, codecs

  1. reload(sys)
  2. sys.setdefaultencoding('utf-8')

page_tag = re.compile('(.*)') meros_tag = re.compile('\{\{\-([^\|]*)\|fr\}\}') etym_tag = re.compile(u'\{\{ετυμ ([a-z]*)\|FR\}\}')

  1. 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>