Usuario:Chewie/cuenta creaciones.py
Apariencia
Este script recibe un dump de la tabla de metadatos de revisiones comprimido en gzip y crea un diccionario que mapea un usuario con la lista de artículos que ha creado.
import re import gzip import sys # Lo que debe recibir este script es un dump en XML de la tabla stub-meta-history, # comprimido con gzip f = gzip.open(sys.argv[1]) title_pattern = re.compile('<title>(.*)</title>') username_pattern = re.compile('<username>(.*)</username>') ip_pattern = re.compile('<ip>(.*)</ip>') # Este diccionario acabará teniendo un usuario (o IP) como índice y una lista # de artículos como valor user_creations = {} title_found = False for line in f: title = re.findall(title_pattern, line) if title: title_string = title[0] title_found = True elif title_found: username = re.findall(username_pattern, line) if username: username_string = username[0] if user_creations.has_key(username_string): user_creations[username_string].append(title_string) else: user_creations[username_string] = [title_string,] title_found = False else: ip = re.findall(ip_pattern, line) if ip: ip_string = ip[0] if user_creations.has_key(ip_string): user_creations[ip_string].append(title_string) else: user_creations[ip_string] = [title_string,] title_found = False f.close() # Aquí habría que hacer algo útil con user_creations