వాడుకరి:Mpradeepbot/mpc.cinemaStats.py

ఈ ప్రోగ్రాముకు సహాయకారిగా ఈ ఫైలును ఉపయోగించండి.

import wikipedia, pagegenerators, catlib, config, codecs

# Replace the contents in the page 'pageTitle' with data 'pageData' 
# and add the comment 'comment'
def writeData(pageTitle, pageData, comment):
  page = wikipedia.Page(wikipedia.getSite(), pageTitle)
  try:
    # Load the page's text from the wiki
    data = page.get()
  except wikipedia.NoPage:
    data = u''
  data = pageData
  try:
    page.put(data, comment = comment)
  except wikipedia.EditConflict:
    wikipedia.output(u'Skipping %s because of edit conflict' % (page.title()))
  except wikipedia.SpamfilterError, url:
    wikipedia.output(u'Cannot change %s because of blacklist entry %s' % (page.title(), url))


# get all the wiki links count in a given page
def getLinkListCount(pageText):
   count = 0
   pos = 0

   while 1==1:
     beg = pageText.find(u'[[',pos)
     pos = beg + 2
     if beg >= 0:
        beg = beg + 2
        end = pageText.find(u']]',beg)
        if end == -1:
          print u'Page is not normal'
          break
        pos = end + 2
        if end >= 0:
           count = count + 1
     else:
        break
   return count



logfile = codecs.open('mpc.cinemaStats.log', encoding='utf-8', mode='wb')
logfileNames = codecs.open('mpc.cinemaStatsNames.log', encoding='utf-8', mode='wb')
logfileNO = codecs.open('mpc.cinemaStats.no.log', encoding='utf-8', mode='wb')
logfileML = codecs.open('mpc.cinemaStats.ml.log', encoding='utf-8', mode='wb')
datafile = open('mpc.cinemaStats.txt', 'rb' )

#omit 3 characters if it is UTF-8
datafile.read(3)

line       = unicode(datafile.readline(), 'utf8')
line       = line.replace(u'\n', u'')
sinimAmUsa = line.replace(u'\r', u'')

line   = unicode(datafile.readline(), 'utf8')
line   = line.replace(u'\n', u'')
liMkulEdu = line.replace(u'\r', u'')

line   = unicode(datafile.readline(), 'utf8')
line   = line.replace(u'\n', u'')
ekkuva = line.replace(u'\r', u'')

line   = unicode(datafile.readline(), 'utf8')
line   = line.replace(u'\n', u'')
allPages = line.replace(u'\r', u'')

line   = unicode(datafile.readline(), 'utf8')
line   = line.replace(u'\n', u'')
firstPageTitle = line.replace(u'\r', u'')

namespace = wikipedia.Page(wikipedia.getSite(), firstPageTitle).namespace()
firstPageTitle = wikipedia.Page(wikipedia.getSite(), firstPageTitle).titleWithoutNamespace()
gen = pagegenerators.AllpagesPageGenerator(firstPageTitle, namespace)

preloadingGen = pagegenerators.PreloadingGenerator(gen, pageNumber = 500)

nolinks    = 0
multiple   = 0
movieCount = 0
extraInfo  = 0

for page in preloadingGen:
    try:
      # Load the page's text from the wiki
      pageData = page.get()
      if not page.canBeEdited():
         wikipedia.output(u'Skipping locked page %s' % page.title())
         continue
    except wikipedia.NoPage:
       wikipedia.output(u'Page %s not found' % page.title())
       continue
    except wikipedia.IsRedirectPage:
       wikipedia.output(u'Page %s is redirect page' % page.title())
       continue

    logfileNames.write(u'* [[' + page.title() + u']]\r\n')

    tCount = pageData.count(sinimAmUsa)

    if tCount == 0:
       continue  # skip if it is not a sinimA page
    elif tCount > 1:
       multiple = multiple + 1
       logfileML.write(u'* [[' + page.title() + u']]\r\n')

    if getLinkListCount(pageData) == 0:
       nolinks = nolinks + 1
       logfileNO.write(u'* [[' + page.title() + u']]\r\n')

    movieCount = movieCount + 1

# write the results to a file
print u'Total Movie Pages = ' + str(movieCount)
logfile.write(u'* ' + allPages + u' = ' + str(movieCount) + u'\n')
print u'Movie Pages without Links = ' + str(nolinks)
logfile.write(u'* ' + liMkulEdu + u' - ' + str(nolinks) + u'\n')


# close all the open handles
logfile.close()
logfileNames.close()
logfileNO.close()
logfileML.close()
datafile.close()

logfile   = codecs.open('mpc.cinemaStats.log', encoding='utf-8', mode='rb')
logfileNO = codecs.open('mpc.cinemaStats.no.log', encoding='utf-8', mode='rb')
logfileML = codecs.open('mpc.cinemaStats.ml.log', encoding='utf-8', mode='rb')

totalData = u''
totalData = totalData + logfile.read() + u'\n'
totalData = totalData + u'== ' + liMkulEdu + u' ==\n' + logfileNO.read() + u'\n\n'
totalData = totalData + u'== ' + ekkuva + u' ==\n' + logfileML.read() + u'\n\n'


writeData(u'User:Mpradeep/movstat', totalData, 'Robot: Updating statistics')

logfile.close()
logfileNO.close()
logfileML.close()


logfile = codecs.open('mpc.cinemaStats.log', encoding='utf-8', mode='wb')
logfile.write(totalData)
logfile.close()