Χρήστης:Flubot/ΔΦΑ
Αυτό το bot θα εισάγει την παράμετρο της γλώσσας στο πρότυπο ΔΦΑ
#!/usr/bin/python # -*- coding: utf-8 -*- import wikipedia import sys, re, codecs page_tag = re.compile('(.*)') lang_tag = re.compile('==\{\{-([a-z\-]+)-\}\}==') prof_templ = re.compile(u'\{\{ΔΦΑ\|([^\}\|]*)\}\}') debug_bul = True wikipedia.setAction(u'Εισαγωγή παραμέτρου γλώσσας στο πρότυπο ΔΦΑ') # Εδώ ορίζεται η λέξη στην οποία θα γίνουν οι αλλαγές fin = codecs.open('dfa-list', 'r', 'utf-8') eof=0 while not eof: line = fin.readline() if line == "": eof = 1 else: t1 = page_tag.search(line) t = t1.group(1) print(t) indx = [] tomeas = [] glossa = [] page = wikipedia.Page(wikipedia.getSite(), t) arxiko = page.get(get_redirect=True) # Χωρισμός του κειμένου σε τομείς ανά γλώσσα meso = arxiko.splitlines() tomeis = arxiko.count('=={{-') j=0 for k in range(len(meso)): result = lang_tag.search(meso[k]) if result: glossa.append(result.group(1)) indx.append(k) j = j+1 indx.append(len(meso)+1) tomeas.append('') for j2 in range(indx[1]-1): tomeas[0] = tomeas[0] + meso[j2] + '\n' for j1 in range(1,tomeis): tomeas.append('') for j2 in range(indx[j1],indx[j1+1]-1): tomeas[j1] = tomeas[j1] + meso[j2] + '\n' # Αντικαταστάσεις for j1 in range(len(tomeas)): tomeas[j1] = prof_templ.sub(u'{{ΔΦΑ|\\1|γλ='+glossa[j1]+'}}',tomeas[j1]) # Επανασυγκόλληση των τομέων γλώσσας του κειμένου keimeno = "\n".join(tomeas) if keimeno[-1] == '\n': keimeno = keimeno[0:-1] # Εδώ ο κώδικας για την αποθήκευση 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' 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)) fin.close()