Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/python
- # -*- coding: utf-8 -*-
- #######################################################################################################################
- #######################################################################################################################
- __version__ = '$Id$'
- testodamettere = "Lista generata con Makelist.\n"
- import wikipedia as pywikibot
- import pagegenerators
- import sys
- import urllib
- import re
- class AppURLopener(urllib.FancyURLopener):
- #User-Agent
- version = "GeenMakelistBot"
- docuReplacements = {
- '¶ms;': pagegenerators.parameterHelp
- }
- class BasicBot:
- #Ciò che scriverà il bot per ogetto delle modifiche.
- msg = {
- 'it': u'Bot: Makelist',
- }
- def __init__(self, generator, dry):
- self.generator = generator
- self.dry = dry
- self.summary = pywikibot.translate(pywikibot.getSite(), self.msg)
- i = 0
- self.pattern = []
- self.escludi = []
- regexInput = raw_input("Cosa vuoi cercare? [Attenzione, usa le regex!]\n")
- self.pattern.append(re.compile("(" + regexInput + ")"))
- while(regexInput != ""):
- i = i + 1;
- regexInput = raw_input("Vuoi inserire un'altra regex? [Lascia vuoto per proseguire.]\n")
- self.pattern.append(re.compile("(" + regexInput + ")"))
- del self.pattern[i]
- regexInput = raw_input("Vuoi escludere una regex? [Inserisci la regex o lascia vuoto.]\n")
- self.escludi.append(re.compile("(" + regexInput + ")"))
- i = 0
- while(regexInput != ""):
- i = i + 1;
- regexInput = raw_input("Vuoi escludere un'altra regex? [Lascia vuoto per proseguire.]\n")
- self.escludi.append(re.compile("(" + regexInput + ")"))
- del self.escludi[i]
- def run(self):
- for page in self.generator:
- escludi = 0
- for pattern in self.escludi:
- localEscludi = pattern.findall(self.load(page))
- if localEscludi:
- escludi = 1
- if not escludi:
- paginagiatrovata = 0
- for pattern in self.pattern:
- localMatch = pattern.findall(self.load(page))
- if localMatch:
- if not paginagiatrovata:
- print('Trovato in ' + str(page))
- titolo = str(page).replace("[[", "")
- titolo = titolo.replace("]]", "").decode("utf-8")
- globals()["testodamettere"] = globals()["testodamettere"] + "# '''[[:" + titolo + "]]''' ([{{fullurl:" + titolo + "|action=edit}} modifica])\n"
- paginagiatrovata = 1
- i = 0
- for match in localMatch:
- i = i + 1
- if type(match) is list or type(match) is tuple:
- risultato = match[0].replace("<nowiki>", "").replace("</nowiki>", "")
- else:
- risultato = match.replace("<nowiki>", "").replace("</nowiki>", "")
- globals()["testodamettere"] = globals()["testodamettere"] + "#*" + str(i) + ": ''<nowiki>" + risultato + "</nowiki>''\n"
- def treat(self, page, text):
- if not self.save(text, page, self.summary):
- pywikibot.output(u'Page %s not saved.' % page.aslink())
- def load(self, page):
- try:
- text = page.get()
- except pywikibot.NoPage:
- pywikibot.output(u"Page %s does not exist; skipping."
- % page.aslink())
- except pywikibot.IsRedirectPage:
- pywikibot.output(u"Page %s is a redirect; skipping."
- % page.aslink())
- else:
- return text
- return None
- def save(self, text, page, comment, minorEdit=True, botflag=True):
- if text != page.get():
- pywikibot.output(u"\n\n>>> \03{lightpurple}%s\03{default} <<<"
- % page.title())
- pywikibot.showDiff(page.get(), text)
- pywikibot.output(u'Comment: %s' %comment)
- if not self.dry:
- choice = pywikibot.inputChoice(
- u'Do you want to accept these changes?',
- ['Yes', 'No'], ['y', 'N'], 'N')
- if choice == 'y':
- try:
- page.put(text, comment=comment,
- minorEdit=minorEdit, botflag=botflag)
- except pywikibot.LockedPage:
- pywikibot.output(u"Page %s is locked; skipping."
- % page.aslink())
- except pywikibot.EditConflict:
- pywikibot.output(
- u'Skipping %s because of edit conflict'
- % (page.title()))
- except pywikibot.SpamfilterError, error:
- pywikibot.output(
- u'Cannot change %s because of spam blacklist entry %s'
- % (page.title(), error.url))
- else:
- return True
- return False
- def main():
- genFactory = pagegenerators.GeneratorFactory()
- gen = None
- pageTitleParts = []
- dry = False
- for arg in pywikibot.handleArgs():
- if arg.startswith("-dry"):
- dry = True
- else:
- if not genFactory.handleArg(arg):
- pageTitleParts.append(arg)
- if pageTitleParts != []:
- pageTitle = ' '.join(pageTitleParts)
- page = pywikibot.Page(pywikibot.getSite(), pageTitle)
- gen = iter([page])
- if not gen:
- gen = genFactory.getCombinedGenerator()
- if gen:
- gen = pagegenerators.PreloadingGenerator(gen)
- bot = BasicBot(gen, dry)
- bot.run()
- else:
- pywikibot.showHelp()
- if __name__ == "__main__":
- try:
- main()
- finally:
- pywikibot.stopme()
- page = pywikibot.Page(pywikibot.getSite(), str(raw_input("\nDove vuoi salvare?\n")))
- page.put(testodamettere, "Bot: genero lista", 1, 1)
Add Comment
Please, Sign In to add comment