dev

MassEdit est un automatiseur de tâches et outil d'édition de masse écrit en JavaScript (compatible avec l'ES5). Son développement a été fait dans l'intention de rendre accessibles à tous les contributeurs les capacités d'édition de masse de logiciels ou robots spécifiques comme AutoWikiBrowser et Pywikibot ainsi que l'outil trouver-et-remplacer (find-and-replace en anglais) de l'éditeur.

Exécuté en tant qu'application intégrée au navigateur, MassEdit offre aux utilisateurs la possibilité d'automatiser des tâches d'édition et de maintenance autrement fastidieuses. Il peut créer un nouvel ensemble de pages/modèles/catégories, ajouter ou supprimer du contenu de pages existantes, catégoriser ou recatégoriser des pages en masse, rechercher et remplacer à volonté du contenu sélectionné, envoyer des messages aux utilisateurs, générer des listes de pages appartenant à des catégories/espaces de nom ou générer des pages contenant un certain modèle. En plus de fournir une liste de pages, les utilisateurs peuvent aussi entrer les noms d'une catégorie ou d'un espace de noms pour modifier leurs pages.

Le script utilise un certain nombre d'autres dépendances externes également présentes sur le wiki Dev. En plus de celles qui sont chargées par défaut dans MediaWiki, MassEdit utilise Modal.js, Placement.js, I18n-js, Colors.js, et WgMessageWallsExist pour la fonctionnalité permettant de standardiser la conception et de fournir un support i18n plus compréhensible. Étant donné le potentiel abus sous forme de vandalisme ou spam, cette application peut seulement être utilisée par le staff local (c'est-à-dire les administrateurs, modérateurs et les bots) et les groupes globaux de modération.

Installation

Configuration

Certains éléments du script de MassEdit peuvent être configurés en fonction des envies des utilisateurs via l'emploi d'une variable nommée window.MassEditConfig. Bien que les utilisateurs sont libres d'ajuster l'intervalle auquel le script modifie les pages, les intervalles plus rapides que les limites imposées aux utilisateurs et aux bots seront ajustés aux intervalles maximum internes de 1500 millisecondes pour les utilisateurs et 750 pour les robots. Les utilisateurs peuvent également modifier l'emplacement par défaut du bouton "MassEdit" utilisé pour ouvrir la fonctionnalité et commencer à utiliser le script. Comme ce script supporte tous les emplacements approuvés de Placement.js's, les utilisateurs peuvent choisir n'importe quel emplacement supporté pour l'emplacement du bouton de MassEdit ; voir les emplacements approuvés de Placement pour plus de détails.

Voici un exemple de configuration ci-dessous :

window.MassEditConfig = {
  interval: 2500,
  placement: {
    element: "toolbar",
    type: "append"
  }
};
Variables Type de donnée Valeur(s) par défaut
interval Nombre 1500 (750 pour les bots)
placement.element Chaîne de caractères "tools"
placement.type Chaîne de caractères "prepend"

Utilisation générale

En plus de l'utilisation standard des options "insérer au début" et "ajouter à la fin" pour le contenu des pages, ces options peuvent être utilisées de manière interchangeable pour créer des nouvelles pages basées sur les valeurs entrées. Sélectionner l'une ou l'autre option et entrer les titres de pages inexistantes a pour effet de créer ces pages automatiquement, donnant un moyen rapide et efficace de publier de nouveaux articles à partir d'un modèle ou d'un texte.

De plus, si la fonction trouver-et-remplacer peut être utilisée pour localiser et remplacer du wikitexte, du HTML, ou du texte dans les articles, elle peut aussi être utilisée pour retirer du contenu des pages. Laisser le champ "New Content" blanc est compté comme une chaîne de caractère vide, permettant le retrait du contenu du champ "Target Content" dans les articles en question.

Les utilisateurs ont également la possibilité de modifier/supprimer/remplacer du contenu des pages des catégories entrées. Sélectionner l'option "Categories" et entrer le nom d'une catégorie édite toutes les pages actuellement dans cette catégorie. (Note : les noms des catégories peuvent être écrites Catégorie:Exemple de catégorie ou simplement Exemple de catégorie.)

En plus des moyens d'édition basés sur les catégories, les utilisateurs peuvent aussi modifier les pages appartenant à certains espaces de noms, en séparant les numéros d'espaces de noms (0 pour l'espace Principal, 4 pour l'espace Projet, etc.) par des sauts de lignes.

Les utilisateurs ont aussi la possibilité d'utiliser la fonctionnalité de génération de listes pour rassembler les listes de pages contenant les modèles sélectionnés. Comme pour les catégories et les espaces de noms, plusieurs modèles intégrés peuvent être écrits sur des lignes distinctes, et tous les modèles entrés plus d'une fois seront retirés avant le tri et l'affichage.

Journal des modifications

11-12-24
Addition of rudimentary search functionality for finding target text in input categories/namespaces/loose pages
08-11-24
Addition of functionality permitting the filtering out of redirects when editing/listing pages by namespace
04-10-21
UCP update 4; removal of legacy MW 1.19 code, reinstitution of limited messaging functionality for UCP Message Walls
20-10-20
Patch to address Fandom-side API bug related to comment section protection on UCP wikis
20-09-20
UCP update 3; bug fixes to ModalButton enable/disable toggling, adjustments to modal assembly mechanism
26-08-20
UCP update 2: addition of Colors dependency, further updates to make basic functionality available on UCP wikis
05-07-20
Improvements to dependency loader init.load, minor bug fixes
01-07-20
Initial experiments in drafting extendable, UCP-friendly dependency-loading framework, pending UCPification of Dev dependencies or importation of legacy functionality like importArticle(s) and ResourceLoader modules like ext.wikia.LinkSuggest
27-06-20
Organizational restructuring for enhanced readability, improvements to module/dependency loading, addition of exports object to window.dev.massEdit to expose public debugging methods, minor bug fixes to user messaging functionality
18-06-20
Minor patching to handle ArticleComments extension edge cases, addition of TESTING constant for testing API methods without actually editing page content
28-05-20
Refactor of find-and-replace functionality to accept user-input regex; refactor of scene-generation mechanism to lazy-initialize interfaces only when needed; addition of localStorage caching for scenes
03-04-20
Addition of functionality to generate listings of template transclusions via Embeddedin; addition of functionality to remove duplicate entries from listings prior to Quicksorting
08-10-19
Expansion using WgMessageWallsExist to offer mass-messaging functionality; addition of category member page generation functionality per MassNullEdit; modal redesign and code expansion/alterations
20-09-19
Addition of functionality to replace only specific occurrences of a replacement target; addition of case sensitive/insensitive matching for find-and-replace; minor code alterations
18-09-19
Minor rewrite using Placement and Modal; addition of rudimentary pause/resume functionality, query-continue handling for categories/namespaces containing over 5000 member pages, and jQuery linksuggest.
24-05-18
Removal of static config-based edit summary in favor of modal-based summary textbox; assorted cosmetic and improper input behavior fixes
17-04-18
Addition of namespace-based editing/find-and-replace function
12-04-18
Addition of category-based editing/find-and-replace function
07-01-18
Addition of find-and-replace function for set of pages; improved/expanded error handling for nonexistent pages, empty input fields, and pages without target text; general cleanup
18-12-17
Retrofitting of I18n-js, addition of "find-and-delete" option, addition of config options, cleanup
06-02-17
Revision of regex, removal of character limit
05-02-17
Initial revision