Utente:JDDBot/itPediaQuote

Da Wikiquote, aforismi e citazioni in libertà.

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()