Plantilla discusión:ProgresoLemario

Contenido de la página no disponible en otros idiomas.
De Wikipedia, la enciclopedia libre

Actualización 2019[editar]

Convertí la plantilla en una {{Ficha}} y también actualice los contadores usando el siguiente script de Python (necesita BeautifulSoup4):

import re, requests
from urllib import quote, basejoin
from bs4 import BeautifulSoup as bs

plantilla = """
Inserte contenido de la plantilla aquí
"""

dominio ='https://es.wikipedia.org/wiki/'
datos = re.findall("(\|etiqueta([0-9]+)\s*=\s*\[\[([^\]]+)\]\]\s*\n\|datos[0-9]+\s*=\s*([0-9\.]+)\%)", plantilla)
total = re.search("Total:\s*([0-9\.]+)\%", plantilla, re.I)
total_creados = total_enlaces =0

for original, id, articulo, porcentaje in datos:
    enlace = basejoin(dominio, quote(articulo.split("|")[0]))
    print("Revisando %s" % enlace)
    sopa = bs(requests.request("GET", enlace).text, "lxml")
    # Obtenemos enlaces de las listas y contamos cuantos artículos se hicieron
    enlaces = sopa.select(".mw-parser-output > ol > li > a:nth-of-type(1), .mw-parser-output > ul > li > a:nth-of-type(1)")
    creados = pendientes =0
    for url in enlaces:
        if url["href"].find("redlink=1") > -1: pendientes += 1
        else: creados +=1
    subtotal = creados/(len(enlaces)/100.0)
    # Actualizamos porcentaje de artículos creados en la plantilla
    plantilla = plantilla.replace(original, original.replace(porcentaje, "{0:.2f}".format(subtotal)))
    total_enlaces += len(enlaces)
    total_creados += creados

nuevo_total = total_creados / (total_enlaces /100.0)
# Actualizamos total
plantilla = plantilla.replace(total.group(0), "Total: {0:.2f}%".format(nuevo_total))
# Actualizamos fecha de ultima modificación
plantilla = re.sub("Actualizado a las \S+ \(UTC\) del \S+", "Actualizado a las {{subst:CURRENTTIME}} (UTC) del {{subst:CURRENTDAY}}/{{subst:CURRENTMONTH}}/{{subst:CURRENTYEAR}}", plantilla, flags=re.I)
# Mostramos resultado final
print(plantilla)

El parseo de la plantilla y la obtención de los datos es algo básica pero debería funcionar mientras la estructura de los mismos permanezcan uniformes. No descarto algún error al momento de calcular los porcentajes por lo que seria bueno que alguien controlase si los resultados actualizados son correctos.

Para usarla hay que hacer lo siguiente (se asume que Python y BeautifulSoup ya están instalados):

  1. Copiar el código de arriba en algún editor de texto
  2. Ir a editar (no al editor visual) y copiar el código fuente del articulo.
  3. Reemplazar Inserte contenido de la plantilla aquí con el texto obtenido del paso anterior.
  4. Copiar y pegar todo en una consola con Python abierto y esperar.
  5. Si todo sale bien debería mostrarse la plantilla modificada con la que se debe actualizar el articulo.

Puede que sean muchos pasos pero imagino que se podría mejorar o integrar a algún bot, igualmente ahí queda en caso de que alguien mas quiera llevar eso a cabo.

También hice lo mismo en {{Progreso1911}} y {{ProgresoEncarta}}.--190.139.218.66 (discusión) 07:11 30 sep 2019 (UTC)[responder]