Manual:Pywikibot/protect.py
![]() | Wikimedia Git repository has this file: scripts/protect.py |
![]() |
Scripts de Pywikibot |
---|
|
protect.py es un script que facilita la protección de páginas en masa. Es un script simple que le da un gran poder sobre el la protección de casi todas partes de su wiki. Sin embargo, dado que los wikis generalmente se consideran "enciclopedias" que cualquiera "puede editar", es necesario pensar en las razones por las que desea utilizar este script. Dentro de algunas comunidades wiki, particularmente la propia Wikipedia, el uso indebido de este script podría resultar en la revocación de sus derechos administrativos.
Cuándo utilizarlo
Antes de utilizar este script, debe comprender a fondo las políticas de su wiki sobre la protección de páginas. Si su wiki aún no ha discutido su filosofía de protección de páginas, es una buena idea tener esa discusión y escribir algún tipo de política antes de usar este script. Su comunidad debe comprender lo que está haciendo con su bot. El mal uso de ese bot, es decir, usarlo para proteger todas las páginas de un wiki, es muy fácil de hacer con este script, pero generalmente se consideraría un abuso de los poderes administrativos en la mayoría de las comunidades wiki. Recuerde: puede evitar que todos los que no sean administradores editen todas las páginas de su wiki a través de solo un comando con este script.
Los usos "razonables" típicos son:
- proteger toda una categoría de plantillas, porque cambiar esas plantillas tendría un impacto significativo en la wiki
- proteger las páginas de ayuda o políticas de la edición general, porque no desea que las "reglas" de su wiki estén sujetas a vandalismo
- evitar que se cambien los nombres de las páginas, es decir, "mover las páginas bloqueadas", pero seguir permitiendo que se editen libremente
Sintaxis
El script se invoca escribiendo:
$ python pwb.py protect ''parameter1'' ''parameter2'' . . . ''parameterX''
Los parámetros disponibles incluyen:
-page: Protege ls página especificada -cat: Proteger todas las páginas en la categoría dada -nosubcats: No proteger las páginas en subcategorías -links: Proteger todas las páginas enlazadas desde una página dada -file: Proteger todas las páginas listadas en un archivo de texto -ref: Proteger todas las páginas referenciadas desde una página dada -images: Proteger todas las imágenes usadas en una página dada -expiry: Proveer una expiración de protección personalizada (por defecto, la protección no expira) -always: No preguntar, solo hacerlo ya -summary: Proveer un resumen de edición personalizado -unprotect: Desproteger en lugar de proteger -edit:NIVEL_PROTECCIÓN Establecer el nivel de protección contra edición en NIVEL_PROTECCIÓN -move:NIVEL_PROTECCIÓN Establecer el nivel de protección contra traslado en NIVEL_PROTECCIÓN ## Sin soporte ## ## -create:PROTECTION_LEVEL Set move protection level to PROTECTION_LEVEL ## Valores para sysop son: autoconfirmed Si un parámetro de operación (edit, move o create) no ha sido especificado, el nivel de protección predeterminado es sysop (o none si -unprotect)
See note below concerning -expiry.
Uso
A continuación se muestran algunos ejemplos concretos de usos típicos.
Bloqueo completo de todo en una categoría
Primero, considere el caso de una categoría llamada category:Dependent templates . Todo en esta categoría es una plantilla que requiere otra plantilla para funcionar. Por sí solo, ninguna plantilla de esta categoría hace "nada". Pero si se cambia la plantilla, tendrá un efecto en cadena para otras plantillas, que a su vez podrían trasladarse a otras páginas. Así que definitivamente queremos proteger estas plantillas de daños. ¡Son los componentes básicos de nuestra wiki! Así es como lo haces.
$ python pwb.py protect -cat:"Dependent templates" -summary:"Moving or editing this template will harm other templates."
Fácil. No hay opciones más que el nombre de la categoría y un resumen. La secuencia de comandos asumirá que desea mover y editar bloquear la plantilla, por lo que no necesita hacer nada más.
Bloqueo contra traslados
Ahora, imagine que tiene una wiki sobre un programa de televisión. Su comunidad ha decidido una nomenclatura estándar para nombrar las páginas sobre episodios de ese programa. Nunca habrá una necesidad previsible de cambiar esa nomenclatura y, de todos modos, se requeriría una gran discusión comunitaria para hacerlo. Por lo tanto, desea proteger las páginas para que no sean trasladadas (cambien de nombre). Esta es la forma de hacerlo:
$ python pwb.py protect -cat:Episodes -move:sysop -edit:none -summary:"This article's name has been agreed by consensus at [[Forum:Episode names]]. It should not be moved."
Tenga en cuenta algunas cosas aquí.
- No necesitamos poner el nombre de la categoría entre comillas, porque es solo una palabra. (Por cierto, esto es cierto para casi todos los guiones de Pywikibot).
- El resumen debe estar entre comillas dobles, porque hemos incluido un apóstrofe en el texto del resumen.
- El parámetro
-edit
debe definirse ennone
si queremos que todos puedan editar el artículo, porque-edit, -move
y-create
todo predeterminado ensysop
- Definir
-create
en esta instancia no tendría ningún efecto, porque las páginas de una categoría ya están creadas
Trabajando desde un archivo de texto
Ahora para un caso más complicado.
Imagine que desea proteger las plantillas "más utilizadas" en su wiki.
Este es un uso perfectamente razonable, ya que cambiar una plantilla que tiene 10,000 transclusiones tendrá un impacto significativo en tu wiki.
Con razón, no quiere que ese cambio se produzca por capricho.
Entonces, primero iría a Special:MostLinkedTemplates y extraería la lista en un archivo de texto llamado articles_list.txt
.
Asegurándose de que articles_list.txt
se haya guardado en la carpeta pywikibot
en su computadora, entonces podrá escribir algo como esto:
$ python pwb.py protect -file:articles_list.txt -always -summary:"[[Special:MostLinkedTemplates]] protection" -edit:sysop -move:sysop
Caducidad de la protección
Para habilitar la caducidad de la protección, coloque la entrada entre comillas dobles como cadenas comprensibles para MediaWiki (consulte: API:Protect). Se aceptan períodos relativos y fechas absolutas.
ERROR: APIError: toofewexpiries: 0 expiry timestamps were provided where 2 were needed.
-expiry:infinite
on the command line.Suegrencias de resumen de edición
Si no utiliza el parámetro -summary
, se le insertará un resumen automático.
Pero ese resumen no le dirá a su comunidad por qué ha tomado la acción.
Debido a que la protección de las páginas generalmente se considera la antítesis del espíritu de la edición wiki, generalmente es importante dejar un resumen que explique "por qué" ha realizado esta acción inusual.
Recuerde, cuando sus usuarios intenten editar o mover la página, recibirán un mensaje que incluye el resumen de edición de su bot.
En la mayoría de los casos, este resumen debe ser lo más explícito posible sobre la razón por la que sus usuarios no pueden hacer lo que quieren hacer.
Si ha establecido una protección completo, es decir, edición solo de sysop, probablemente también querrá incluir un enlace a una página donde los usuarios puedan dejar comentarios sobre cómo mejorar el artículo bloqueado. A menudo, esta es la página de discusión, pero en los wikis que no tienen habilitada la funcionalidad de la página de discusión, puede ser una buena idea colocar un enlace a un foro u otra página de comentarios.
Limitaciones
Este script no tiene la capacidad de afectar el nivel de protección de nada en los espacios de nombres Special:
.