ഉപയോക്താവ്:UltraBot/atomchiller t.py
ഈ പ്രോഗ്രാം ഇവിടെ നല്കുന്നത് ഇതുപയോഗിച്ച് വിക്കിപീഡിയയെ മെച്ചപ്പെടുത്തുന്നതിന്റെ ഭാഗമായി മറ്റുവള്ളവര്ക്ക് ഉപയോഗിക്കാനാകും എന്ന വിശ്വാസത്തിലാണ്. ഈ പ്രോഗ്രാം പ്രവര്ത്തിപ്പിച്ച് വല്ല കുഴപ്പവുമുണ്ടാകുന്നുവെങ്കില് അതിന്റെ പൂര്ണ്ണ ഉത്തരവാദിത്തം പ്രോഗ്രാം പ്രവര്ത്തിപ്പിച്ചവര്ക്ക് തന്നെയായിരിക്കും, ഇതിന്റെ നിര്മ്മാതാവ് അതിന്റെ യാതൊരു ഉത്തരവാദിത്തവും ഏറ്റെടുക്കുന്നില്ല.
"""
Author: Junaid P V
Description:
This script written utilizing pywikipedia framework is exclusively
for Malayalam Wikipedia only (htt://ml.wikipedia.org/).
Purpose of this bot is to change title of a page to new chill version
if that title contains old malayalam chill letters.
to read more about chills see: http://www.unicode.org/versions/Unicode5.1.0/#Malayalam_Chillu_Characters
"""
import pagegenerators
import wikipedia
import codecs
import unicodedata
NEWLINE = u'\u000d\u000a'
# Chill pairs
oldChilluNN = u'\u0D23\u0D4D\u200D' # old chillu NN
newChilluNN = u'\u0D7A' # new chillu NN
oldChilluN = u'\u0D28\u0D4D\u200D' # old chillu N
newChilluN = u'\u0D7B' # new chillu N
oldChilluRR=u'\u0d30\u0d4d\u200d' # old chillu RR
newChilluRR=u'\u0d7c' # new chillu R
oldChilluL = u'\u0D32\u0D4D\u200D' # old chillu L
newChilluL = u'\u0D7D' # new chillu L
oldChilluLL = u'\u0D33\u0D4D\u200D' # old chillu LL
newChilluLL = u'\u0D7E' # new chillu LL
oldChilluK = u'\u0d15\u0D4D\u200D' #old chillu K
newChilluK = u'\u0D7F' # new chillu K
oldNT = u'\u0d28\u0d4d\u0D31'
newNT = u'\u0D7B\u0D4D\u0D31'
# function to replace old chills with new ones
def replace_chills(oldString):
newString=oldString.replace(oldChilluNN, newChilluNN)
newString=newString.replace(oldChilluN, newChilluN)
newString=newString.replace(oldChilluRR, newChilluRR)
newString=newString.replace(oldChilluL, newChilluL)
newString=newString.replace(oldChilluLL, newChilluLL)
newString=newString.replace(oldChilluK, newChilluK)
# ന്റ യെ ഒഴിവാക്കുന്നു
#newString=newString.replace(oldNT, newNT)
return newString
siteFamily = "wikipedia"
siteLangCode = "ml"
wikiSite = wikipedia.Site(code = siteLangCode, fam = siteFamily)
log = codecs.open("atom_chiller3.log", mode="at", encoding = 'utf-8')
pageGenerator=pagegenerators.TextfilePageGenerator(filename=None,site="ml")
wikipedia.output("Atom chilling page titles")
for page in pageGenerator:
if page.isCategory():
continue
title=page.title()
newTitle=replace_chills(title)
if title!=newTitle:
newPage=wikipedia.Page(site=wikiSite, title=newTitle)
if newPage.exists() and (not newPage.isRedirectPage()):
wikipedia.output( title + ": A non redirect page already exist. No change on title" +NEWLINE)
log.write(title + ur" എന്ന തിരിച്ചുവിടലല്ലാത്ത ഒരുതാൾ നിലവിലുണ്ട്" + NEWLINE )
elif newPage.isRedirectPage():
wikipedia.output(title + ": a redirect page exists with its atom chill version" + NEWLINE)
log.write(title+ur": പുതിയ ചില്ലുകളുള്ള ഒരു തിരിച്ചുവിടൽ താൾ നിലവിലുണ്ട്" + NEWLINE)
else:
wikipedia.output("Moving " + title + " to " + newTitle + NEWLINE)
success=page.move(newTitle,reason=ur"പുതിയ ചില്ലുകളാക്കുന്നു")
if success:
log.write(title + ur" എന്ന താളിന്റെ തലക്കെട്ട് " + newTitle + ur" എന്ന പുതിയ ചില്ലുകളുള്ള തലക്കെട്ടാക്കിയിരിക്കുന്നു" + NEWLINE)
else:
log.write(title + ur" എന്ന താളിന്റെ തലക്കെട്ട് " + newTitle + ur" എന്ന പുതിയ ചില്ലുകളുള്ള തലക്കെട്ടാക്കാൻ സാധിച്ചില്ല" + NEWLINE)
else:
wikipedia.output( title+ ": Title change not required")
log.write(title + ur": ഇത് പുതിയ ചില്ലുകൾ തന്നെയാണ്" +NEWLINE)
wikipedia.stopme()
log.flush()