Utente:JDDBot/itPediaQuote
Il sorgente qui riportato crea un modello di base per le citazioni di film prelevando le informazioni per la tabella film dalla pagina corrispondente su it.wikipedia. Essendo pubblicato qui, è liberamente modificabile e riutilizzabile, ma sarei pregato chiunque dovesse apportare miglioramenti di contattarmi, così da poter migliorare il bot stesso!
#!/usr/bin/python # -*- coding: latin-1 -*- import wikipedia, re PageTitles = [] #for arg in wikipedia.handleArgs(): # if arg.startswith('-page'): # PageTitles = arg[6:] PageTitles = [] JDDBotPage = wikipedia.Page(wikipedia.getSite(), 'UTENTE:JDDBot').get() listaFilm = re.compile('==Lista Film==\n[^=]*', re.I).search(JDDBotPage).group() listaFilm = re.compile('==Lista Film==\n').sub('', listaFilm) PageTitles = listaFilm.rsplit ('* ') for i in range (1, 5): PageTitles[i] = re.compile('[\]\[\n]+').sub('', PageTitles[i]) pages = [wikipedia.Page(wikipedia.getSite(), PageTitle) for PageTitle in PageTitles] for page in pages: if !(re.compile('[[Categoria:Film').search(page.get()) or re.compile('{{Film', re.IGNORE).search(page.get())): continue pediaPage = wikipedia.Page(wikipedia.getSite(None, 'wikipedia', 'Jodido'), page.title()) if pediaPage.exists() == False: pediaPage = wikipedia.Page(wikipedia.getSite(None, 'wikipedia', 'Jodido'), page.title() + ' (film)') quoteTable = '' intro = '' text = '' outro = '' if page.exists() == True: text = page.get() if page.exists() == False or re.compile('{{Film[\W\w]*}}').search(page.get()) == None: pediaTable = re.compile('{{Film[\W\w]*}}', re.I).search(pediaPage.get()).group() quoteTable = '{{Film\n' titolo = re.compile('\|[\s]*titoloitaliano[\s]*=[^\|]*').search(pediaTable).group() titolo = re.compile('\|[\s]*titoloitaliano[\s]*=[\s]*').sub('', titolo) quoteTable = quoteTable + '|titoloitaliano= ' + titolo + '\n' quoteTable = quoteTable + re.compile('\|[\s]*titolooriginale[\s]*=[^\|]*').search(pediaTable).group() quoteTable = quoteTable + re.compile('\|[\s]*nomepaese[\s]*=[^\|]*').search(pediaTable).group().replace('nome', '') annoProd = re.compile('\|[\s]*annoproduzione[\s]*=[^\|]*').search(pediaTable).group() annoProd = re.compile('\|[\s]*annoproduzione[\s]*=[\s]*\[*').sub('', annoProd) annoProd = re.compile('\]*').sub('', annoProd) quoteTable = quoteTable + '|anno= ' + annoProd + '\n' quoteTable = quoteTable + re.compile('\|[\s]*nomegenere[\s]*=[^\|]*').search(pediaTable).group().replace('nome', '') regista = re.compile('\|[\s]*nomeregista[\s]*=[^\|]*').search(pediaTable).group() regista = re.compile('\|[\s]*nomeregista[\s]*=[\s]*').sub('', regista) quoteTable = quoteTable + '|regista= ' + regista + '\n' quoteTable = quoteTable + re.compile('\|[\s]*nomesceneggiatore[\s]*=[^\|]*').search(pediaTable).group().replace('nome', '') quoteTable = quoteTable + re.compile('\|[\s]*nomeattori[\s]*=[^\|]*').search(pediaTable).group().replace('nome', '') quoteTable = quoteTable + '\n}}\n' if page.exists() == False or re.compile(u"è un film").search(page.get()) == None: intro = '\'\'\'' + re.compile('\n').sub('', titolo) + "\'\'\'" + u" è un film del " + re.compile('\n').sub('', annoProd) + ", diretto da " + re.compile ('[\s]*,[\s]*').sub (' e ', re.compile('\n').sub('', regista)) + "." outro = '\n\n==Frasi==\n\n\n==Dialoghi==\n\n\n==Altri progetti==\n{{interprogetto|w}}\n\n{{stub}}\n[[Categoria:Film]]' page.put (quoteTable + intro + text + outro) wikipedia.stopme()