Utilisateur:Daahbot/Historique/complet
Novembre 2005
[modifier le wikicode]Date | Action | Nombre | Commentaire |
---|---|---|---|
2005-11-19 | "Catégorie:Jours de la semaine" -> "Catégorie:Jours de la semaine en français" | 6 | |
2005-11-19 | "Lexique en français du calendrier" -> "Calendrier en français" | 30 | |
2005-11-19 | "Catégorie:Nom commun" -> "Catégorie:Noms communs" | 4 | |
2005-11-19 | "Catégorie:Langues" -> "Catégorie:Langues en français" | 100 | |
2005-11-19 | "Catégorie:Lexique en bambara des animaux" -> "Catégorie:Animaux en bambara" | 31 | |
2005-11-19 | "Catégorie:Lexique en bambara du calendrier" -> "Catégorie:Calendrier en bambara" | 13 | |
2005-11-20 | "Catégorie:Lexique en bambara des aliments" -> "Catégorie:Aliments en bambara" | 8 | |
2005-11-20 | "Catégorie:Lexique en bambara des couleurs" -> "Catégorie:Couleurs en bambara" | 7 | |
2005-11-20 | "Catégorie:Grammaire en turc" -> "Catégorie:Grammaire turque" | 3 | |
2005-11-20 | "Catégorie:Religions en français" -> "Catégorie:Lexique en français de la religion" | 9 | |
2005-11-20 | "Catégorie:Gentilés français" -> "Catégorie:Gentilés en français" | 47 | |
2005-11-21 - 2005-11-29 | "\{\{-(..)-\}\}" -> "{{=\1=}})" | Tous les articles (23599) | Pour distinguer les modèles de section de langue et aussi libérer les modèles à tirets, afin d'accueillir des langues dont les codes à trois chiffres entreraient en concurrence avec les autres modèles de sous-sections, il a été décidé de remplacer les modèles de langue (tous à deux lettres alors) du type {{-en-}} par {{=en=}}. D'abord testé avec les section de langue anglaise, puis généralisé à toutes les langues. |
2005-11-26 | Locutions -> Locutions nominales | 406 | |
2005-11-30 | -Abréviation +Symbole | 92 | |
2005-12-04 | Harmonisation des références | 493 |
Janvier 2006
[modifier le wikicode]Correction des prononciations et conversion X-SAMPA
[modifier le wikicode]Quelques corrections simples (e.g. apostrophes) en API et SAMPA et conversion SAMPA vers X-SAMPA.
- 3283 articles
Février 2006
[modifier le wikicode]Correction des r français
[modifier le wikicode]- 5338 articles
Ébauche étymologies
[modifier le wikicode]Ajout d'une section étymologie avec un bandeau d'ébauche.
- 13882 articles
Import d'expression de Wikipédia
[modifier le wikicode]Liste formatée.
- 97 articles
Correction de prononciations
[modifier le wikicode]- Initiale : 9138 articles
- Correction ligatures API : 358
Mars 2006
[modifier le wikicode]Formatage des articles Commission terminologie et néologie
[modifier le wikicode]Créés automatiquement, ces articles n'étaient pas correctement formatés (certains ont d'ailleurs encore des erreurs).
- 2927 articles.
Arrangement DAF8
[modifier le wikicode]Formatage des articles importés depuis le DAF8.
- 24 039 articles
Avril 2006
[modifier le wikicode]Structure des articles
[modifier le wikicode]Réarrangement de la structure des articles (ordre des sections notamment).
- 139 297 articles
Mai 2006
[modifier le wikicode]Formulation étymologie
[modifier le wikicode]Reformulation de l'étymologie de certains articles.
- 916 articles
Juillet 2006
[modifier le wikicode]Tables d'accord
[modifier le wikicode]Ajout d'un modèle de table d'accord le cas échéant.
- 3201 articles
aout 2006
[modifier le wikicode]18 aout 2006
[modifier le wikicode]Déwikification des modèles de langues
[modifier le wikicode]Suite à vote sur la Wikidémie (lien).
- liste : Wiktionnaire:Liste des langues
- script : replace.py ; regex : ("[[", "") et ("]]", "")
- Résumé : « Déwikification des langues »
- Problèmes relevés :
- quelques langues de la forme [[langue|nom de langue]] ; corrigées.
Numérotation des sections de type
[modifier le wikicode]Avec {{{num}}} (au lieu du paramètre {{{1}}}). Précède les modifications des modèles {{-def-}}
, voir (lien).
- liste : dump du 6 aout 2006
- script : replace.py ; regex : ("(\{\{-.+?-\|)([0-9]\}\})", "\1num=\2")
- Résumé : « Numérotation avec paramètre "num=" »
- Problèmes relevés :
Remplacement de modèles
[modifier le wikicode]- 18 aout 2006 :
{{-adjc-}}
->{{-adj-}}
(modèle inutilisé et inutile)- liste : dump du 6 aout 2006
- script : replace.py ; ("{{-adjc-}}", "{{-adj-}}")
- 18 aout 2006 :
{{-dim-lex-}}
->{{dim-lex}}
(les - sont réservés aux titres de section)- liste : dump du 6 aout 2006
- script : replace.py ; ("{{-dim-lex-}}", "{{dim-lex}}")
- 18 aout 2006 :
{{-sym-}}
->{{-symb-}}
(symb est plus compréhensible et plus répandu)- liste : dump du 6 aout 2006
- script : replace.py ; ("{{-sym-}}", "{{-symb-}}")
- 18 aout 2006 :
{{-pré-}}
->{{-pref-}}
(pref est plus compréhensible et plus répandu)- liste : dump du 6 aout 2006
- script : replace.py ; ("{{-pré-}}", "{{-pref-}}")
- 18 aout 2006 :
{{-prép-}}
->{{-prep-}}
(prep est plus répandu, et plus simple à écrire)- liste : dump du 6 aout 2006
- script : replace.py ; ("{{-prép-}}", "{{-prep-}}")
- 18 aout 2006 : {{-locution-|interjective}} ->
{{-loc-interj-}}
- liste : dump du 6 aout 2006
- script : replace.py ; regex : ("\{\{-locution-\|(i|I)nterjective\}\}", "{{-loc-interj-}}")
- 18 aout 2006 :
{{-loc-pron-}}
->{{-loc-pronom-}}
- liste : dump du 6 aout 2006
- script : replace.py ; ("{{-loc-pron-}}", "{{-loc-pronom-}}")
20 aout 2006
[modifier le wikicode]{{pron}}
-> {{pron-audio}}
(libération du modèle et unification du modèle pron-audio).
- liste : dump du 6 aout 2006
- script : replace.py ; ("{{pron|", "{{pron-audio|")
23 aout 2006
[modifier le wikicode]{{-adverbe-|...}} -> {{-adv-}}
(précision mise sur la ligne de forme, ou au niveau des définitions).
- liste : références à
{{-adverbe-}}
- script : replace.py ; regex : ("\{\{-adverbe-\|(.+?)\}\}\r\n'''(.+?)'''(.*?)", "{{-adv-}}\n'''\2'''\3 ''adverbe \1''")
24 aout 2006
[modifier le wikicode]Simplification du tableau des prononciations régionales.
- liste : références à
{{-tab-pron-}}
(estimation : 9907 changements) - script : replace.py ; fix :
'tab': { 'regex' : True, 'msg' : { 'fr':u'Robot : Prononciations régionales dans des modèles simplifiés', }, 'replacements': [ # Début et fin de tableau (u"\r\n\{\{-tab-pron-\}\}", r""), (u"(\{\{pron-audio\|(( |.)+?)\}\}\r\n\| ?\[( |.)*?\]\r\n\| ?\[?((.| )*?)\]?)\r\n\|\}", r"\1"), # Nettoyage avant (u"\{\{pron-audio\|(.+?)\|\}\}", r"{{pron-reg|\1}}"), (u"(\{\{pron-audio\|(.+?)\}\}\r\n\|) ?\?\r\n\| ?\?\r\n", r"\1 []\r\n| []\r\n"), (u"(\{\{pron-audio\|(.+?)\}\}\r\n\|) ?/(.*?)/\r\n\| ?/?(.*?)/?\r\n", r"\1 [\2]\r\n| [\3]\r\n"), # pron-audio (u"\{\{pron-audio\|(.+?)\|(.+?)\}\}\r\n\| ?\[\]\r\n\| ?\[\]", r"{{pron-reg|\1|audio=\2}}"), (u"\{\{pron-audio\|(.+?)\|(.+?)\}\}\r\n\| ?\[(.+?)\]\r\n\| ?\[.*?\]", r"{{pron-reg|\1|\3|audio=\2}}"), # pron sans audio (u"\{\{pron-audio\|(.+?)\}\}\r\n\| ?\[(.*?)\]\r\n\| ?\[?(.*?)\]?\r\n", r"{{pron-reg|\1|\2}}\r\n"), # Nettoyage : deux points, crédit superflu (déjà sur Commons), formulation (u"\{\{pron-reg\|(.+?) *?<!-- *?réalisé par .+? *?--> *?: *?\|", r"{{pron-reg|\1|"), (u"\{\{pron-reg\|(.+?) *?<!-- *?précisez svp la ville ou la régio ?n *?--> *?: *?\|", r"{{pron-reg|\1 ("+u"région ?)|"), (u"\{\{pron-reg\|(.+?) *?: *?\|", r"{{pron-reg|\1|"), (u"\{\{pron-reg\|Français standard \(Ouest de la France\)(.*?)\|", r"{{pron-reg|France (Ouest)|"), (u"\{\{pron-reg\|\?\|", r"{{pron-reg||"), ], },
- Problèmes relevés :
- Incompatibilité des modèles de type term contenant le modèle
{{term}}
quand affiché dans le nouveau modèle --> ne pas mettre de modèles dedans ; - Modèles à enlever car inadéquats :
{{popu}}
(et mettre sous{{term}}
) - présents dans les descriptions --> remplacer par autre chose, mais prononciation populaire ne veut rien dire... ; - Quelques présentations qui en font trop, de type « Canada (Montréal) - profond », ---> à mettre en titre= (par défaut : nom de l'article).
- Prononciations du vitenamien suivant un schéma inattendu (mais heureusement constant). Voir remplacement spécial ;
- Tombé sur des articles charcutés par PiedBot (et erreurs consécutives). Son maitre a corrigé les articles, et j'ai pu repasser normalement dessus.
- Incompatibilité des modèles de type term contenant le modèle
Vietnamien
[modifier le wikicode]Estimation : 6592 articles à corriger (soit 66% du total). Remplacement spécial à l'aide de replace.py -regex dans un fix :
(u"{{-tab-pron-}}\r\n\|-\r\n\|\r\n\|Hanoï \(Nord du Vietnam\)\r\n\| \[(.+?)\]\r\n\| \[.+?\]\r\n\|-\r\n\|-\r\n\|\r\n\|Ho Chi Minh-Ville \(Sud du Vietnam\)\r\n\| \[(.+?)\]\r\n\| \[.+?\]\r\n\|\}", u"{{pron-reg|Nord du Vietnam (Hanoï)|"+r"\1"+u"}}\r\n{{pron-reg|Sud du Vietnam (Ho Chi Minh-Ville)|"+r"\2}}")
- Pas de problèmes relevés pour le vietnamien.
26 aout 2006
[modifier le wikicode]Adjectifs au pluriel en -als
[modifier le wikicode]Mon bot est auparavant passé sur les articles importés du DAF8 pour nettoyer et mettre en forme. Une erreur de regex (trop large) à donné des tableaux donnant le pluriel d'adjectifs en -als au lieu de -aux. Ce processus corrige ces articles.
- Estimation : 160 articles
- script : replace.py ; fix :
'tabal': { 'regex' : True, 'msg' : { 'fr':u'Robot : Correction pluriels en als', }, 'replacements': [ (r"\{\{fr-accord-mixte\|\r\n ?ms=(.+?)al\r\n\| ?mp=\1als\r\n\| ?fs=\1ale\r\n\| ?fp=\1ales\r\n\| ?pms=(.+?)al\r\n\| ?pmp=\2al\r\n\| ?pfs=\r\n\| ?pfp=\r\n\}\}", r"{{fr-accord-al|\1|\2}}"), (r"\{\{fr-accord-mixte\|\r\n ?ms=(.+?)al\r\n\| ?mp=\1als\r\n\| ?fs=\1ale\r\n\| ?fp=\1ales\r\n\| ?pms=(.+?)al\r\n\| ?pmp=\2al\r\n\| ?pfs=\2al\r\n\| ?pfp=\2al\r\n\}\}", r"{{fr-accord-al|\1|\2}}"), ], },
Catégorisation automatique
[modifier le wikicode]20 septembre 2006 et suivants
[modifier le wikicode]Catégories automatiques
[modifier le wikicode]Suite au vote et aux discussions sur l'ASCII, j'ai préparé un script spécial pour changer les articles afin qu'ils soient catégorisés automatiquement : catauto.py.
- Articles concernés : tous (durée de changement importante).
- Dans un premier temps, seuls les articles en alphabets latin ou grec sont gérés au niveau de l'ASCII (l'alphabet cyrillique est à faire, et les autres systèmes d'écriture devraient avoir des règles spéciales).
- Les articles avec apostrophes et tirets sont évités, car la manière de les traiter n'a pas encore été décidée.
Problèmes rencontrés :
- Certaines catégories vides et inutiles parasitent la catégorisation automatique des articles (exemple : [[Catégorie:français]]). J'ai modifié le script pour qu'il les enlève (à partir de la lettre K), mais un bot devra passer pour enlever les autres.
- Les nums étaient mal pris en compte par les expressions rationnelles. Correction du script et relecture des logs pour vérification : 4 articles corrigés.
- Erreur dans l'expression rationnelle "Ascii nécessaire, sans langue, sans ASCII" (un "\|" d'oublié :P). Les titres de ce type là n'ont pas été modifiés par le bot. J'ai corrigé le script, et je repasserais sur les articles oubliés en utilisant le log.
- Erreur dans Listutiles/"types" : il manquait une virgule avant -prep-, ce qui fait que toutes les sections de préposition n'ont pas été modifiées. Une fois le parcours général terminé, je ferais de toute façon repasser le bot sur les mots sautés (cf ci-dessus).
Octobre 2006
[modifier le wikicode]- 3 octobre : les alphabets latin et grecs sont faits (mis à part les problèmes sus-décrits). Les alphabets suivants n'auront pas d'ASCII pour le moment car ils ne sont pas pris en compte par mon bot.
Problèmes renconcontrés :
- Problèmes avec les caractères chinois. À voir...
Octobre 2006
[modifier le wikicode]31 octobre 2006
[modifier le wikicode]complétement -> complètement (orthographe)
- liste : dump du 19 octobre 2006
- script : replace.py ; ("complétement, complètement")
Novembre 2006
[modifier le wikicode]Sections prononciations
[modifier le wikicode]Élimination des sections de prononciation vides (trop lourdes) et transformation des sections non vides en remplaçant les API et SAMPA par le modèle {{pron}}
.
- script : replace.py ; fix :
'pron_sec' : { 'exceptions' : [''], 'regex' : True, 'msg' : { 'fr':u'Robot : Élimination des sections prononciations inutiles, remplacement API/SAMPA par {{pron}}', }, 'replacements': [ # Complet vide +ébauche (u"\r?\n?\r\n\{\{-pron-\}\}\r\n\{\{ébauche-pron\|.+?\}\}\r\n\*? ?\{\{API\}\} ?: ?(//|/x{2,}/)\r\n\*? ?\{\{SAMPA\}\} ?: ?(//|/x{2,}/)", r""), # API vide +ébauche (u"\r?\n?\r\n\{\{-pron-\}\}\r\n\{\{ébauche-pron\|.+?\}\}\r\n\*? ?\{\{API\}\} ?: ?(//|/x{2,}/)", r""), # Complet plein +ébauche (u"(\r?\n?\r\n\{\{-pron-\}\}\r\n)\{\{ébauche-pron\|.+?\}\}\r\n\*? ?\{\{API\}\} ?: ?/(.+?)/\r\n\*? ?\{\{SAMPA\}\} ?: ?/.*?/", r"\1* {{pron|\2}}"), # API plein +ébauche (u"(\r?\n?\r\n\{\{-pron-\}\}\r\n)\{\{ébauche-pron\|.+?\}\}\r\n\*? ?\{\{API\}\} ?: ?/(.+?)/", r"\1* {{pron|\2}}"), # Complet vide -ébauche (u"\r?\n?\r\n\{\{-pron-\}\}\r\n\*? ?\{\{API\}\} ?: ?(//|/x{2,}/)\r\n\*? ?\{\{SAMPA\}\} ?: ?(//|/x{2,}/)", r""), # API vide -ébauche (u"\r?\n?\r\n\{\{-pron-\}\}\r\n\*? ?\{\{API\}\} ?: ?(//|/x{2,}/)", r""), # Complet plein -ébauche (u"(\r?\n?\r\n\{\{-pron-\}\}\r\n)\*? ?\{\{API\}\} ?: ?/(.+?)/\r\n\*? ?\{\{SAMPA\}\} ?: ?/.*?/", r"\1* {{pron|\2}}"), # API plein -ébauche (u"(\r?\n?\r\n\{\{-pron-\}\}\r\n)\*? ?\{\{API\}\} ?: ?/(.+?)/", r"\1* {{pron|\2}}"), # Vide +ébauche (u"(\r?\n?\r\n\{\{-pron-\}\}\r\n)\{\{ébauche-pron\|.+?\}\}\r\n", r"\r\n"), ], },
Avancement : alphabet latin fini.
- Problèmes rencontrés :
- ligne oubliée pour "Vide +ébauche"
- Plusieurs prononciations par ligne (mélangé ou pas entre API et SAMPA, bref c'est le bordel)
- Repérage de ce genre d'articles en parcourant le dump et correction manuelle (effectuée, mais certains peuvent subsister).
- Formats particuliers :
- Hébreu, type מסע (import Piedot).
- 164459 articles
Janvier 2007
[modifier le wikicode]Références
[modifier le wikicode]Suite à la création des modèles {{ref}} et {{REF}} (voir Wiktionnaire:Wikidémie/janvier 2007#Références), il faudrait rajouter une puce devant tous les modèles de références {{réf}}
et {{R:...}} dans les articles.
- liste : ref:Modèle:
{{réf}}
, Dump du 4 décembre 2006. Puis chaque modèle l'un après l'autre depuis la liste des modèles. - script : replace.py ; fix :
'references' : { 'regex' : True, 'msg' : { 'fr':u'Robot : format des références', }, 'replacements': [ (u"\n(\{\{réf\|.+?\}\})", r"\n* \1"), (u"\n(\{\{R:.+?\}\})", r"\n* \1"), (u"\{\{réf\|Littré(\|| )1863\}\}", r"{{R:Littr"+u"é"+"}}"), (u"\{\{réf\|Larousse du XX<sup>e</sup> siècle\|1926\}\}", r"{{R:LarousseXXe}}"), ], },
- Note : J'en profite pour mettre les références aux Littré avec
{{R:Littré}}
, idem pour le Larousse du XXe siècle. - Note 2 : J'ai mis dans tous les modèles de référence le modèle de base
{{réf}}
afin que la modification de la puce se répercute partout facilement. - Problèmes rencontrés : déconnexions trop fréquentes : le bot doit reprendre du début. Je change donc de la liste complète (dump) à la liste des modèles en les faisant un à un (moins automatique mais plus fiable).
Marquage des articles importés du DAF8 (avorté)
[modifier le wikicode]La méthode utilisée n'étant pas efficace (utilisation d'expressions rationnelles), je n'ai pas effectué les changements en attendant de développer quelque chose de plus simple : voir à février 2006 pour la suite.
Février 2007
[modifier le wikicode]Marquage des articles importés du DAF8 (reprise)
[modifier le wikicode]Après discussions sur la Wikidémie sur la nécessité de marquer les articles dont tout ou partie proviennent du DAF8 : Discussion et Mise en place du bot. La marque ajoutée est {{Import:DAF8}}
, sous les références des articles concernés.
- liste :
ref:Modèle:remplacé par une liste générée à partir du dump, plus facile à gérer (notamment en cas de déconnexion intempestive où on n'a pas besoin de tout reprendre du début){{R:DAF8}}
- script : version adaptée de replace.py avec le passage suivant qui correspond aux changements faits sur le texte (def DoReplacement) :
new_text = "" r = False rfait = False fr = False ; # On cherche si la page possède bien une référence R:DAF8, et si elle n'a pas déjà de marque d'import:DAF8 if re.search("\{\{R:DAF8\}\}", original_text) and not re.search("\{\{Import:DAF8\}\}", original_text): lignes = original_text.split('\r\n') for l in lignes: # On détecte la section des références if l == u"{{=fr=}}": fr = True ; if l == u"{{-réf-}}" and fr: r = True new_text += l+"\r\n" # Si on est dans la section des références... elif r == True and rfait == False and fr: # ...si on trouve un élément de référence on continue if re.search("^\* ", l): new_text += l+"\r\n" # sinon on est arrivé à la fin de la section et on ajoute la marque d'import else: new_text += l+'\r\n{{Import:DAF8}}\r\n\r\n' r = False rfait = True else: new_text += l+"\r\n" # On vérifie que la marque a bien été apposée ; # sinon c'est que la section de référence était en fin de page # et n'avait donc pas de ligne supplémentaire # On ajoute donc la marque à la fin if not rfait: new_text += '\r\n{{Import:DAF8}}\r\n\r\n' # Sinon aucun changement à effectuer else: new_text = original_text # FIN... return new_text
- problèmes rencontrés :
- accord : il y a plusieurs section de références, et le robot a donc créé deux modèle import:DAF8... J'ai donc changé
elif r == True:
- en
elif r == True and rfait == False:
- pour ne faire le changement qu'une seule fois : la première, qui est censée être le français.
- Dans l'éventualité où des sections non françaises se trouveraient avant (caractères et conventions internationales dans le standard), j'ai ajouté une condition (fr) qui vérifie qu'on est bien dans une section française (on n'est jamais trop prudent).
- Problème plus général (bug de pywikipedia) : quand dans le fichier file: utilisé il y a des articles dont le nom correspond à un code de langue, alors le code de langue est changé en ce nom-là et le titre d'article oublié, ce qui casse complètement la suite. Résolution : Pagegenerator.py:TextfilePageGenerator:ligne 204 :
if parts[i] in fam.langs and len(parts) > 1:
(ajout de la seconde condition).
- accord : il y a plusieurs section de références, et le robot a donc créé deux modèle import:DAF8... J'ai donc changé
- Terminé. Pas d'autre problèmes rencontrés.
Mars 2007
[modifier le wikicode]Catégorisation automatique
[modifier le wikicode]À partir du 8 mars. Nouveau passage :
- règles supplémentaires utilisées :
- tirets = espaces
- apostrophe supprimée
- Script utilisé : catauto.py mis à jour.
- Données utilisées : voir Liste ascii.
- Liste : Passage sur tous les articles
Problèmes rencontrés :
- Certains modèles de langue portent des paramètres, ce qui ne devrait pas être le cas (
{{=ln=}}
notamment) : Ce paramètre pose problème pour mon script qui utilise la partie droite =}} de ces modèles pour reconnaitre les langues, ce qui fait que le robot charcute finalement l'article.- Solution apportée : élimination des paramètres dans les modèles de langue avant traitement par le robot.
- Erreur dans la solution proposée précédemment (erreur d'expression rationnelle).
- Solution apportée : script corrigé, et articles mal traités corrigés.
- En examinant le log, j'ai trouvés des articles qui posaient problème pour mon script : ces articles possèdent plusieurs sections de langue pour une même langue (ce qui ne devrait pas être le cas). Le script n'en reconnaissant qu'une (table de hachage) réécrit la seconde dans la première.
- Solution apportée : correction des articles repérés dans le log, puis repérage et correction des articles dans ce cas (dans le dernier dump).
Alphabet latin terminé.
Avril 2007
[modifier le wikicode]Netoyage des catégories DAF1932
[modifier le wikicode]Les catégories Catégorie:Noms communs en français etc. sont "polluées" par les pages non fusionnées du DAF8. Mon bot passe sur l'ensemble de ces pages pour leur enlever toute catégorisation.
- liste : pages liées au modèle
{{DAF1932}}
- script : replace.py avec le fix suivant :
'nocatdaf' : { 'regex' : True, 'msg' : { 'fr':u'Robot : Suppression des catégories des pages du DAF8 non fusionnées', }, 'replacements': [ (u"\n\[\[Catégorie:.+? en français.*?\]\]", r""), (u"\n\[\[Catégorie:français.*?\]\]", r""), ], },
- Commentaire : j'ai ajouté un petit truc aux modèles de titre pour qu'ils ne catégorisent automatiquement que les articles qui sont dans l'espace principal (non Wiktionnaire, Utilisateur, Discuter, etc.). Même chose pour le modèle
{{=fr=}}
.
Novembre 2007
[modifier le wikicode]Élimination des sections vides
[modifier le wikicode]Certains articles comportent des sections vides (par exemple on a {{-adj-|fr}} suivi de {{-nom-|fr}}). Le bot élimine ces sections vides.
- liste : pages du type
"{{-type-}}\r\n\r?\n?{{-type-}}"
- nombre : un peu plus de 50
- script : replace.py :
s%\{\{-.+?-.*?\}\}\r\n(\r\n\{\{-)%\1%
- commentaire : « sections vides ôtées »
- Commentaires :
- une partie était du type
{{--}} {{-pron-}}
; j'ai dû réverté les modifs. - une partie était du type
{{-adj-}} {{-nom-}}
avec les informations d'adjectif et de nom mélangés ensuite. Il faut les reprendre un à un (ne respecte pas le format normal). - Il n'y a en fait pas d'erreurs de sections oubliées, plutôt des non-respects du format, ce qui est plus compliqué à corrigé (à la main).
- une partie était du type
Correction des o fermés/ouverts
[modifier le wikicode]Pas mal de mots ont une prononciation erronée, à cause d'un o fermé ou ouvert. En particulier, ils se répercutent dans les flexions. Un bot facilitera le changement (qui est mineur).
- liste : pages liées à des verbes en ô/au notés Erreur sur la langue ! au lieu de Erreur sur la langue !.
- script : replace.py :
s/ɔ/o/
(suivi)- correction (collision avec Erreur sur la langue !) : ajout de
s/õ/ɔ̃/
à la suite
- correction (collision avec Erreur sur la langue !) : ajout de
- commentaire : « o fermé »
- Remarques :
Nettoyage de modèles et formatage
[modifier le wikicode]Quelques modèles très courants sont à transformer, dont -etym-
. Comme je risque de passer sur tout le Wiktionnaire, j'en profite pour ajouter d'autres corrections.
- liste : mots contenant
-etym-
(entre autres) - script : replace.py, avec le code fix suivant :
'mod': { 'regex': True, 'msg': { 'fr': u'Bot: nettoyage modèles et format', }, 'replacements': [ # Espaces doubles ou en bout de lignes (u' +', ' '), (u' +\r', u'\r'), # R:DAF8 + Import:DAF8 = Import:DAF8 suffit (u'\r\n\*? ?\{\{R:DAF8\}\}[\r\n]+?(\{\{Import:DAF8\}\})', u'\r\n'+r'\1'), (u'\r\n\*? ?\{\{R:DAF8\}\}(\r\n.+?)[\r\n]+?(\{\{Import:DAF8\}\})', r'\1'+u'\r\n'+r'\2'), (u'\r\n\*? ?\{\{R:DAF8\}\}(\r\n.+?\r\n.+?)[\r\n]+?(\{\{Import:DAF8\}\})', r'\1'+u'\r\n'+r'\2'), (u'\r\n\*? ?\{\{R:DAF8\}\}(\r\n.+?\r\n.+?\r\n.+?)[\r\n]+?(\{\{Import:DAF8\}\})', r'\1'+u'\r\n'+r'\2'), (u'\r\n\*? ?\{\{R:DAF8\}\}(\r\n.+?\r\n.+?\r\n.+?\r\n.+?)[\r\n]+?(\{\{Import:DAF8\}\})', r'\1'+u'\r\n'+r'\2'), (u'\r\n\*? ?\{\{R:DAF8\}\}(\r\n.+?\r\n.+?\r\n.+?\r\n.+?\r\n.+?)[\r\n]+?(\{\{Import:DAF8\}\})', r'\1'+u'\r\n'+r'\2'), (u'\r\n\*? ?\{\{R:DAF8\}\}(\r\n.+?\r\n.+?\r\n.+?\r\n.+?\r\n.+?\r\n.+?)[\r\n]+?(\{\{Import:DAF8\}\})', r'\1'+u'\r\n'+r'\2'), # Dico Rivarol (u'\* Dictionnaire classique de la langue française - A\.C\. de Rivarol - 1827\.', u'* {{R:Rivarol}}'), # API -> pron ou éliminé si vide (toujours mieux que de laisser) (u'(\{\{-pron-\}\}\r\n)\* \{_{API\}\} : /(.+?)/\r\n\* \{\{SAMPA\}\} : /.+?/', r'\1* {{pron|\1}}'), (u'\r\n\{\{-pron-\}\}\r\n\{\{ébauche-pron\|.+\}\}\r\n\* \{\{API\}\} : //\r\n\* \{\{SAMPA\}\} : //\r\n\r\n', ''), # pron-rég accent (u'[\r\n]*\*? ?\{\{pron-r[eé]g\|', u'\r\n* {{pron-rég|'), # Espacement des sections (avant et/ou après) (u'(\{\{voir\|.+?\}\})[\r\n]*', r'\1'+u'\r\n\r\n'), (u'[\r\n]*\{\{-[eé]tym-\}\}', u'\r\n\r\n{{-étym-}}'), (u'[\r\n]*(\{\{[eé]bauche\|)', u'\r\n{{ébauche|'), (u'[\r\n]*(\{\{clé de tri)', u'\r\n\r\n\r\n'+r'\1'), (u'[\r\n]*\r\n(\{\{-.+?-)', u'\r\n\r\n'+r'\1'), (u'[\r\n]*\r\n(\{\{=.+?=)', u'\r\n\r\n'+r'\1'), # Espacements des tableaux des modèles ( - ) (u'(\{\{\(\}\})[\r\n]+', r'\1'+u'\r\n'), (u'[\r\n]+(\{\{\-\}\})[\r\n]+', u'\r\n'+r'\1'+u'\r\n'), (u'[\r\n]+(\{\{\)\}\})', u'\r\n'+r'\1'), # Espaces des listes (pas exhaustif je pense) (u'\n(#|\*|#:|\*\*|\#\*|\#:*) *(\[\[|\{\{|[a-zA-Z])', u'\n'+r'\1 \2'), # Pas de déterminant sur la ligne de forme svp (u'\n([Ll]es?|[Ll]a|[dD]er|[dD]ie|[dD]as) ?(\'\'\'.+?\'\'\')', u'\n'+r'\2'), # Mot vedette en gras svp, non en lien (u'(\n)\[\[(.+?)\]\](.*?\r\n#)', r"\1'''\2'''\3"), # Pas de : en fin de ligne de forme svp (u'(\n\'\'\'.+?\'\'\'.*?) ?:?(\r\n#)', r"\1\2"), # pron sur la ligne de forme en remplacement de // # (plusieurs fois au cas où) (u'(\n\'\'\'.+?\'\'\'.+?)/(.+?)/(.*?\r\n#)', r'\1{{pron|\2}}\3'), (u'(\n\'\'\'.+?\'\'\'.+?)/(.+?)/(.*?\r\n#)', r'\1{{pron|\2}}\3'), (u'(\n\'\'\'.+?\'\'\'.+?)/(.+?)/(.*?\r\n#)', r'\1{{pron|\2}}\3'), (u'(\n\'\'\'.+?\'\'\'.+?)/(.+?)/(.*?\r\n#)', r'\1{{pron|\2}}\3'), # pron avec un truc vide => {{pron|}} (u'\{\{pron\|(\.\.\.|\?|\-| )\}\}', r'{{pron|}}'), # Images # (à faire au cas par cas?) #(u'\[\[[iI]mage:(.+?)\|([^\|\r\n\}]+?)\]\]', r'[[Image:\1|thumb|\2\]\]'), # Lien ucf (majuscule en premier) avec lien vers section française (u'# ?\[\[(.+?)#Français\|(.+?)\]\]', r'# {{ucf|\1}}'), # Lien annexe avec modèle (u'\* \[\[Annexe:(.+?)\|'+r'\1\]\]', r'* {{Annexe|\1}}'), (u'\* \[\[Annexe:(.+?)\|(.+?)\]\]', r'* {{Annexe|\1|\2}}'), # Accord : accent (u'\{\{fr-accord-r[ée]g\|', u'{{fr-rég|'), (u'\{\{fr-reg\|', u'{{fr-rég|'), # Types de mots : accent (u'\{\{-adj-dem-', u'{{-adj-dém-'), (u'\{\{-adj-indef-', u'{{-adj-indéf-'), (u'\{\{-art-def-\}\}', u'{{-art-déf-'), (u'\{\{-art-indef-', u'{{-art-indéf-'), (u'\{\{-def-', u'{{-déf-'), (u'\{\{-flex-prep-', u'{{-flex-prép-'), (u'\{\{-loc-prep-', u'{{-loc-prép-'), (u'\{\{-pronom-dem-', u'{{-pronom-dém-'), # Niveau3 : accents #(u'\{\{-mero-', u'{{-méro-'), #(u'\{\{-pref-', u'{{-préf-'), (u'\{\{-prep-', u'{{-prép-'), # Terminologie : correction code et accent # Complets (namespace=0 en tout cas) #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{chi\}\}', r'\1'+u'{{chim}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{des\}\}', r'\1'+u'{{dés}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{ecolo\}\}', r'\1'+u'{{écol}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{econ\}\}', r'\1'+u'{{écon}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{electro\}\}', r'\1'+u'{{électro}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{erot\}\}', r'\1'+u'{{érot}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{femin\}\}', r'\1'+u'{{fémin}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{genet\}\}', r'\1'+u'{{génét}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{geog\}\}', r'\1'+u'{{géog}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{geol\}\}', r'\1'+u'{{géol}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{geom\}\}', r'\1'+u'{{géom}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{geoph\}\}', r'\1'+u'{{géoph}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{herald\}\}', r'\1'+u'{{hérald}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{med\}\}', r'\1'+u'{{méde}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{metaph\}\}', r'\1'+u'{{métaph}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{meton\}\}', r'\1'+u'{{méton}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{neo\}\}', r'\1'+u'{{néol}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{pec\}\}', r'\1'+u'{{pêch}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{pedo\}\}', r'\1'+u'{{pédo}}'), ##(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{pej\}\}', r'\1'+u'{{péj}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{poes\}\}', r'\1'+u'{{poés}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{poet\}\}', r'\1'+u'{{poét}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{pre\}\}', r'\1'+u'{{pré}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{pres\}\}', r'\1'+u'{{prés}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{refl\}\}', r'\1'+u'{{réfl}}'), #(u'(#.+?|\* ?\[\[.+?\]\] ?|\{\{.+?\}\},? ?)\{\{theol\}\}', r'\1'+u'{{théol}}'), # Lien création d'article (u'\{\{cree\}\}', u'{{créer}}'), (u'\{\{cree\|', u'{{créer|'), # WP, Wikilivre, etc. : puce (u'\n(\{\{(WP|)\}\})', u'\n* '+r'\1'), # Forme de l'étymologie : # majuscule au moins pour de/le (u'(\{\{-étym-\}\}\r\n):? ?d([ue])', r'\1: D\2'), (u'(\{\{-étym-\}\}\r\n):? ?l([ea])', r'\1: L\2'), # langue hors modèles (u'(\{\{-étym-\}\}\r\n):? ?(.+?)\{\{la\}\}', r'\1: \2latin'), (u'(\{\{-étym-\}\}\r\n):? ?(.+?)\{\{grc\}\}', r'\1: \2grec ancien'), (u'(\{\{-étym-\}\}\r\n):? ?(.+?)\{\{fr\}\}', r'\1: \2fran'+u'çais'), (u'(\{\{-étym-\}\}\r\n):? ?(.+?)\{\{en\}\}', r'\1: \2anglais'), (u'(\{\{-étym-\}\}\r\n):? ?(.+?)\{\{de\}\}', r'\1: \2allemand'), ], },
- Attention : changements dans replace.py pour ne pas changer les pages s'il n'y a que des sauts de page à insérer ou ajouter (ligne 303):
new_short = re.sub('[\r\n]+', '', new_text) ; old_short = re.sub('[\r\n]+', '', original_text) ; if new_text == original_text or new_short == old_short:
- avancement :
- entrainement, tests ;
- terminologies finis (namespace=0 en tout cas) ;
- -méro-, -préf-, -prép- faits.
Novembre 2008
[modifier le wikicode]Substitution des modèles {ucf} et {lien} (repris plus tard)
[modifier le wikicode]Voir suite en décembre.
Ajout du code de langue dans les titres
[modifier le wikicode]Pour faire des liens complets du type [[mot#fr|mot]], il faut ajouter le paramètre "code=" à tous les modèles de langue.
- liste : pages utilisant le modèle =langue=, sauf celles contenant déjà le paramètre "code=".
- script : replace.py -> user-fixes.py
'replacements': [ (u"\[\[catégorie:", u"[[Catégorie:"), (r"(\{\{=langue=\|[^\|^\}]+)(\}\})(\r\n<includeonly>\[\["+u"Catégorie"+r":.+\]\]</includeonly>)(<noinclude>\r\n[.\r\n]*\n\[\["+u"Catégorie:Modèles de code langue"+r"\|)([a-z]+)(\]\])", r"\1|code=\5\2\4\5\6"), (r"(\{\{=langue=\|[^\|^\}]+\|portail=oui)(\}\})(\r\n<includeonly>\[\["+u"Catégorie"+r":.+\]\]</includeonly>)(<noinclude>\r\n[.\r\n]*\n\[\["+u"Catégorie:Modèles de code langue"+r"\|)([a-z]+)(\]\])", r"\1|code=\5\2\4\5\6"), (r"(\{\{=langue=\|\[\[[^\|^\}]+\|[^\|^\}]+\]\])(\}\})(\r\n<includeonly>\[\["+u"Catégorie"+r":.+\]\]</includeonly>)(<noinclude>\r\n[.\r\n]*\n\[\["+u"Catégorie:Modèles de code langue"+r"\|)([a-z]+)(\]\])", r"\1|code=\5\2\4\5\6"), (r"(\{\{=langue=\|[^\|^\}]+\|[^\|^\}]+)(\}\})(\r\n<includeonly>\[\["+u"Catégorie"+r":.+\]\]</includeonly>)(<noinclude>\r\n[.\r\n]*\n\[\["+u"Catégorie:Modèles de code langue"+r"\|)([a-z]+)(\]\])", r"\1|code=\5\2\4\5\6"), ],
- NB : ce code est très spécifique : il se peut que certains modèles ne soient pas sous cette forme (essentiellement celles qui ont plus d'un paramètre, comme "portail=") : à vérifier.
- Exceptions (codes non conventionnels) :
- Modèle:=bat-smg=
- Modèle:=ca-valencia= (code correctement normalisé)
- Modèle:=cbk-zam=
- Modèle:=conv=
- Modèle:=de-1996=
- Modèle:=fiu-vro=
- Modèle:=fr-1835=
- Modèle:=gsw-FR= (code normalisé)
Modèle:=ko-hanja=→ Modèle:=ko-Hani= (code correctement normalisé)- Modèle:=ku-ckb=
- Modèle:=map-bms=
- Modèle:=nds-nl=
- Modèle:=ru-sib=
- Modèle:=tsolyáni=
- Modèle:=vi-chunho=
- Modèle:=vi-chunom=
- Modèle:=zh-classical=
- Terminé, mis à part les modèles non conventionnels ci-dessus pour lesquels les liens devront se faire manuellement après concertation. - Dakdada (discuter) 2 décembre 2008 à 14:56 (UTC)
Décembre 2008
[modifier le wikicode]Unification de {modl}
[modifier le wikicode]D'après la décision prise sur la page de gestion des modèles.
- liste : pages utilisant {M}, {mod} et {Mod}.
- script : replace.py :
\{\{(M|mod|Mod)\|
→{{modl|
- Terminé : les modèles M et Mod ont été supprimés et le modèle mod transformé en page de la langue mobilien. - Dakdada (discuter) 7 décembre 2008 à 16:27 (UTC)
Renommage des modèles grecs importés (suspendu)
[modifier le wikicode]Les modèles de Catégorie:Modèles en grec ont été importés sans être traduits.
- Travail de rangement à faire dans les catégories :
Correction des prononciations API
[modifier le wikicode]Des erreurs courantes :
- g au lieu de ɡ
- ' au lieu de ˈ
- : au lieu de ː
- liste : dernier dump
- script : replace.py, user-fixes.py :
fixes['pronAPI'] = {
'regex': True,
'msg': {
'fr':u'Correction des prononciations API',
},
'replacements': [
(r"(\{\{)(pron|fr-ind|fr-"+u"rég"+r")(\|[^\}]*)g([^\}]*\}\})", r"\1\2\3"+u"ɡ"+r"\4"),
(r"(\{\{)(pron|fr-ind|fr-"+u"rég"+r")(\|[^\}]*)'([^\}]*\}\})", r"\1\2\3"+u"ˈ"+r"\4"),
(r"(\{\{)(pron|fr-ind|fr-"+u"rég"+r")(\|[^\}]*):([^\}]*\}\})", r"\1\2\3"+u"ː"+r"\4"),
],
}
- En préparation
Ajout de puces à WP et pron-rég
[modifier le wikicode]Les modèles {{WP}}
et {{pron-rég}}
ne devraient pas contenir de puce (celles-ci doivent écrites directement dans les articles). Aussi pris en compte : {{pron}}
(en début de ligne dans les sections {{-pron-}}
et les références commençant par R: (exemple : {{R:DAF8}}
).
- liste : dernier dump
- script : replace.py, user-fixes.py :
fixes['puces'] = {
'regex': True,
'msg': {
'fr':u'Correction des puces de WP, pron, pron-rég et des références',
},
'replacements': [
(r"\n(\{\{WP\}\})", r"\n* \1"),
(r"\n(\{\{WP\|.*\}\})", r"\n* \1"),
(r"\n(\{\{pron-" + u"rég" + r")", r"\n* \1"),
(r"\n(\{\{pron\|)", r"\n* \1"),
(r"\n(\{\{R:.+\}\})", r"\n* \1"),
],
}
- Terminé pour l'espace de nommage principal du moins (ailleurs, le format est différent)
- Conséquence : élimination des puces incluses dans ces modèles
Substitution des modèles {ucf} et {lien}, suite
[modifier le wikicode]Reprise de novembre.
- Remplacement automatique de ces modèles par des liens qui précis du type coin. Utilisation des modèles substituables
{{s-ucf}}
et{{s-lien}}
, respectivement. - Liste : références vers
{{ucf}}
et{{lien}}
(~55 700 articles concernés) - script : replace.py -> user-fixes.py :
fixes['ucf'] = {
'regex': True,
'msg': {
'fr':u'Robot: substitution automatique des liens ucf, lien',
},
'replacements': [
(r'\[\[ucf\|[^\]]+?\]\]', r'{{ucf|\1}}'),
(r'\{\{(lien|ucf)\|2=(.+?)\}\}', r"[[{{subst:PAGENAME}}#\2|{{subst:PAGENAME}}]]"),
(r'\{\{(lien|ucf)([\|\}])', r"{{subst:s-\1\2"),
(r'\[\[#Français\|(.+?)\]\]', r'[[{{subst:PAGENAME}}#fr|\1]]'),
],
}
- Note : quelques erreurs de liens avec des liens normaux vers [[ucf|mot]]
- Erreur : le modèle
{{s-ucf}}
fait de mauvaises substitutions Correction du modèle - Terminé pour l'espace de nom principal
- Le remplacement dans les autres espaces ne peut pas se faire aussi systématiquement
Remplacement de {ext} par {par ext}
[modifier le wikicode]Suite à discussion sur la Wikidémie : code langue de l'extremaduran occupé par {par extension}. Nouveau nom : {{par ext}}
.
- Liste : références à [[modl|ext}} ;
- Script : replace.py
python replace.py -regex -ref:Modèle:ext "\{\{ext\}\}" "{{par ext}}"
Janvier 2009
[modifier le wikicode]Sections de langues modifiables
[modifier le wikicode](Commencé fin décembre) Suite à Wiktionnaire:Gestion des modèles/Sections modifiables.
- Liste : tous les articles
- Script : replace.py -> user-fixes.py :
fixes['langues'] = {
'regex': True,
'msg': {
'fr':u'Robot : sections de langues rendues modifiables',
},
'replacements': [
(r"(\{\{=.+?=\}\})(\r)", r"== \1 ==\2"),
(r"(\{\{-car-\}\})(\r)", r"== \1 ==\2"),
(r"(\{\{=.+?=\|.+?\}\})(\r)", r"== \1 ==\2"),
(r"(\{\{-car-\|.+?\}\})(\r)", r"== \1 ==\2"),
],
}
- Terminé. Reste à faire une seconde passe rapide pour corriger les articles modifiés pendant la transition.
Substitution de {eo-flex}
[modifier le wikicode]Modèle {{eo-flex}}
à substituer : impossible à modifier, cryptique pour tout contributeur et inutilisable s'il y a des homographes ou une quelconque information à ajouter.
- Liste : articles utilisant Modèle:eo-flex
- Script : replace.py -> user-fixes.py :
fixes['eo-flex'] = {
'regex': True,
'msg': {
'fr':u'Robot : substitution du modèle eo-flex',
},
'replacements': [
# Nom
(r"\{\{eo-flex\|([^\|]+)\|ojn\|?([^\|\}]*)\}\}", r"== {{=eo=}} ==\n{{-flex-nom-|eo}}\n'''\1ojn''' {{pron|\2}}\n# ''Accusatif pluriel de'' [[\1o#eo|\1o]]."),
(r"\{\{eo-flex\|([^\|]+)\|oj\|?([^\|\}]*)\}\}", r"== {{=eo=}} ==\n{{-flex-nom-|eo}}\n'''\1oj''' {{pron|\2}}\n# ''Nominatif pluriel de'' [[\1o#eo|\1o]]."),
(r"\{\{eo-flex\|([^\|]+)\|on\|?([^\|\}]*)\}\}", r"== {{=eo=}} ==\n{{-flex-nom-|eo}}\n'''\1on''' {{pron|\2}}\n# ''Accusatif singulier de'' [[\1o#eo|\1o]]."),
# Adjectif
(r"\{\{eo-flex\|([^\|]+)\|ajn\|?([^\|\}]*)\}\}", r"== {{=eo=}} ==\n{{-flex-adj-|eo}}\n'''\1ajn''' {{pron|\2}}\n# ''Accusatif pluriel de'' [[\1a#eo|\1a]]."),
(r"\{\{eo-flex\|([^\|]+)\|aj\|?([^\|\}]*)\}\}", r"== {{=eo=}} ==\n{{-flex-adj-|eo}}\n'''\1aj''' {{pron|\2}}\n# ''Nominatif pluriel de'' [[\1a#eo|\1a]]."),
(r"\{\{eo-flex\|([^\|]+)\|an\|?([^\|\}]*)\}\}", r"== {{=eo=}} ==\n{{-flex-adj-|eo}}\n'''\1an''' {{pron|\2}}\n# ''Accusatif singulier de'' [[\1a#eo|\1a]]."),
],
}
- Erreur de script : \1o#ea au lieu de \1a#eo (articles corrigés)
Février 2009
[modifier le wikicode]Renommage de petits modèles
[modifier le wikicode]- Modèles concernés :
- Scripts : replace.py
- En préparation
O ouvert
[modifier le wikicode]Corriger les articles en français terminés par un o ouvert : ils devraient tous être fermés.
- Remplacement avec replace.py :
(u"ɔ([\}\|/\]])", r"o\1")
- Résumé automatique : « Robot: o toujours fermé en fin de mot en français »
- Confirmation manuelle
- Fait pour la majorité des pages détectées (~1500)
Mars 2009
[modifier le wikicode]Ajout de puces à R:fon
[modifier le wikicode]Ajout de puces devant le modèle (et pas dans le modèle) du modèle {{R:fon}}
.
- Script : identique à précédemment (2008)
Avril 2009
[modifier le wikicode]Correction du modèle pron
[modifier le wikicode]Suppression du second argument en X-SAMPA désormais obsolète (remplacé par le code langue).
- Liste : d'après le dernier dump (31 mars 2009)
- Script : replace.py, fix:
# Protection paramètre de langue en conflit avec X-SAMPA (en espérant que ce sont bien des codes langue...)
(r"\{\{pron\|([^\}\|=]*)\|([a-z]{2,3})\}\}", r"{{__pron__|\1|\2}}"),
# Prononciation en deuxième paramètre (erreur ?)
(r"\{\{pron\|\|([^\}\|=]+)\}\}", r"{{pron|\1}}"),
# Résidu X-SAMPA
(r"\{\{pron\|([^\}\|=]+)\|([^\}\|=]+)\}\}", r"{{pron|\1}}"),
# Déprotection
(r"\{\{__pron__", r"{{pron"),
- Résumé : Correction de syntaxe du modèle Code langue manquant !
- Manuel, terminé : 208 pages modifiées + quelques autres corrigées manuellement
Ajout de noms de familles russes
[modifier le wikicode]Import d'après le Wiktionary russophone de noms de familles russes et leurs déclinaisons.
- Liste adaptée par Chrisaix
- Script : pagefromfile.py
- Résumé : Import depuis ru.wiktionary.org, adapté par Chrisaix
- Terminé : 73 635 + 77 712 = 151 347 articles importés
- Liste des contributions
Ajout de flexions d'ajectifs tchèques
[modifier le wikicode]Création à partir des articles d'adjectifs tchèques du Wiktionnaire.
- Liste préparé par Chrisaix
- Script : pagefromfile.py
- Résumé : Création à partir de l'article de base, préparé par Chrisaix
Juillet 2009
[modifier le wikicode]Ajout d'adjectifs ukrainiens
[modifier le wikicode]- Liste préparé par Chrisaix
- Script : pagefromfile.py
- Résumé : Création automatique d'article préparé par Chrisaix
- Terminé : 12 278 articles importés
Substitution des modèles {{en-compar}}
et {{en-superl}}
[modifier le wikicode]Remplacés par substitution par {{comparatif de}}
et {{superlatif de}}
, en sortant le numéro de liste du modèle.
- Liste : références à
{{en-compar}}
et{{en-superl}}
- Script : replace.py
- Résumé (auto) : « Robot : Remplacement de texte automatisé (-{{en-compar| +{{subst:en-compar|) » et « Robot : Remplacement de texte automatisé (-{{en-superl| +{{subst:en-superl|) »
- Restreint à l'espace principal
- exemple : acer
- Terminé
Août 2009
[modifier le wikicode]Extraction de points finaux hors des modèles
[modifier le wikicode]Les modèles {{variante de}}
, {{variante ortho de}}
, {{comparatif de}}
, {{superlatif de}}
avaient un point final inclus qu'il faut sortir pour laisser le choix au rédacteur.
- Liste obtenue automatiquement depuis le dernier dump du 10 août 2009.
- Script :
replace.py -namespace:0 "(\{\{)(variante de|variante ortho de|comparatif de|superlatif de)(\|[^=\}\r\n]+?\}\})([^\.,;])" "\1\2\3.\4"
- Résumé : « Bot : point final hors du modèle »
- Note : évitement des modèles utilisant le paramètre point=0 (paramètre à enlever plus tard)
- Terminé : ~1288 remplacements
- Corrigé 7 articles contenant point=0
Déplacement des documentations de modèles
[modifier le wikicode]Renommage des pages /Aide en /Documentation.
- Liste obtenue à partir du dump
- Script : movepages.py
- 571 pages d'aide en /Aide
- Terminé : 371 pages déjà renommées, 3 renommées et supprimées, soit 197 pages déplacées par Daahbot
- Note : reste à remplacer les liens depuis les modèles
Septembre 2009
[modifier le wikicode]Élimination des cadres de type Wikipédia
[modifier le wikicode]Élimination des cadres de type {{Wikipédia}}
, placés en dehors de sections de langue en haut à droite des pages, suite à discussion sur la Wikidémie. Dans un premier temps, seuls les cadres présents dans une même page que des liens WP sont éliminés, car superflus.
- Liste : pages contenant à la fois le modèle Wikipédia (cadre) et le modèle WP (lien adapté)
- Script : replace.py "\{\{Wikip.dia.*\}\}\r\n" ""
- Fait à l'aide du dernier dump, mais de nouveaux cadres ont pu être ajoutés depuis. Il faut nettoyer le reste à la main : Spécial:Pages_liées/Modèle:Wikipédia.
Sections de langues modifiables encore
[modifier le wikicode]Certaines pages n'ont pas la nouvelle forme de section de langue modifiable (519 pages détectées dans le dump du 10 septembre 2009). Il y a de nouvelles pages créées après la création du dump, mais elles sont en minorité ; la plupart des pages sont très anciennes, comme pointé par Chrisaix. Je suppose que ceux-là sont des résidus du passage du bot sur toutes les pages, le taux d'erreur étant alors de ~5.10-4 (attribuable à des erreurs de connexion, etc.).
- Liste : pages avec {{=.+=}} sans == de part et d'autre
- Script : replace.py
- 519 pages
Séparation des erreurs orthographiques et typographiques
[modifier le wikicode]La catégorie Catégorie:Erreurs d’orthographe en français mélange vraies erreurs (maline) et erreurs typographiques (coeur). Le bot parcourt donc tous les articles et remplace le modèle {{-erreur-}}
par {{-var-typo-}}
(temporaire). Comme la différence n'est pas simple, chaque modification est confirmée à la main.
- Liste : référence au modèle
{{-erreur-}}
- Script : replace.py : "\{\{-erreur-" "{{-var-typo-" -namespace:0
- Près de 600 pages
Sections de langues modifiables pour import DAF8
[modifier le wikicode]Les sections de langue =fr= n'ont pas été rendues modifiables dans les articles restant à importer du DAF8.
- Liste : catégorie Catégorie:DAF1932 fusion
- Script : replace.py
- 1011 pages concernées
Format des exemples et citations
[modifier le wikicode]Ajout de puces aux exemples et application du modèle {{source}}
aux citations.
- Exemple : [1]
- Liste : toutes les pages avec des exemples (71740 dans le dernier dump)
- Script : replace.py -fix
fixes['expuces'] = {
'regex' : True,
'msg' : {
'_default':u"Bot : mise en forme des exemples et citations",
},
'replacements': [
(u"\n#: ?''", u"\n#* ''"),
(u"\n#:\* ?''", u"\n#* ''"),
(u"\n#:: ''", u"\n#*: ''"),
(r"(\n#\*+ ?''.+)''([\.!\?;:]?) *(" + u"[—–-]" + r" *|- *)(\(?<small> *\(?|\(|\(?<ref> *\(?) *(.+?)[,\.;:]? *(\)? *</small> *\)?|\)|\)? *</ref> *\)?)\.? *(\r)", r"\1\2'' {{source|\5}}\7"),
(r"(\n#\*+ ?''.+)''([\.!\?;:]?) *(\(? *<small> *\(?|\(? *<ref> *\(?) *(.+?)[,\.;:]? *(\)? *</small> *\)?|\)? *</ref> *\)?)\.? *(\r)", r"\1\2'' {{source|\4}}\6"),
# (r"(\n#\*+ ?''.+)''([\.!\?;:]?) *(\() *(.+?)[,\.;:]? *(\))\.? *(\r)", r"\1\2'' {{source|\4}}\6"),
(r"(<small>|<ref>) *(\{\{source\|.+\}\}) *(</small>|</ref>)", r"\2"),
(u"'' *[—–-] *\{\{source\|", u"'' {{source|"),
(u"\{\{source\|[—–-]?"+r" *(.+?),? *\}\} *(\r)", r"{{source|\1}}\2"),
(u"(?i)\(Joseph Morsel.+2007\)", u"{{source|Joseph Morsel avec la collaboration de Christine Ducourtieux, ''L’Histoire (du Moyen Âge) est un sport de combat…'', 2007}}"),
]
}
- Cas difficiles :
- Les parenthèses ambigües (sans indication qu'il s'agit d'une source) ignorées, seront remplacées ultérieurement.
- Fini, mais :
- Il reste des lignes d'exemples non transformées car ne commençant pas par '' (typiquement avec
{{ébauche-exe}}
) ; - Il reste à lister les groupes entre parenthèses pour faire la part des sources et des notes.
- Vérifier qu'il n'y a pas d'autres cas (vérification dans le prochain dump).
- Il reste des lignes d'exemples non transformées car ne commençant pas par '' (typiquement avec
Décembre 2009
[modifier le wikicode]Format des exemples et citations (suite)
[modifier le wikicode]Il reste des exemples sans puce, à cause de leur mise en forme erronée (pas de , modèle en début, etc.) ou pas reconnu.
- Liste : reste de pages avec des lignes commençant par #: ou #::
fixes['expuces'] = {
'regex' : True,
'msg' : {
'_default':u"Bot : mise en forme des exemples et citations",
},
'replacements': [
(u"\n#: ?''", u"\n#* ''"),
(u"\n#:\* ?''", u"\n#* ''"),
(u"\n#:: ?''", u"\n#*: ''"),
(r"(\n#\*+ ?''.+)''([\.!\?;:]?) *(" + u"[—–-]" + r" *|- *)(\(?<small> *\(?|\(|\(?<ref> *\(?) *(.+?)[,\.;:]? *(\)? *</small> *\)?|\)|\)? *</ref> *\)?)\.? *(\r)", r"\1\2'' {{source|\5}}\7"),
(r"(\n#\*+ ?''.+)''([\.!\?;:]?) *(\(? *<small> *\(?|\(? *<ref> *\(?) *(.+?)[,\.;:]? *(\)? *</small> *\)?|\)? *</ref> *\)?)\.? *(\r)", r"\1\2'' {{source|\4}}\6"),
# (r"(\n#\*+ ?''.+)''([\.!\?;:]?) *(\() *(.+?)[,\.;:]? *(\))\.? *(\r)", r"\1\2'' {{source|\4}}\6"),
(r"(<small>|<ref>) *(\{\{source\|.+\}\}) *(</small>|</ref>)", r"\2"),
(u"'' *[—–-] *\{\{source\|", u"'' {{source|"),
(u"\{\{source\|[—–-]?"+r" *(.+?),? *\}\} *(\r)", r"{{source|\1}}\2"),
(u"(?i)\(Joseph Morsel.+2007\)", u"{{source|Joseph Morsel avec la collaboration de Christine Ducourtieux, ''L’Histoire (du Moyen Âge) est un sport de combat…'', 2007}}"),
(u"\n#:: ?([A-z\{\(\[<])", r"\n#*: \1"),
(u"\n#:: ", u"\n#*: "),
(u"\n#: ?([A-z\{\(\[<])", r"\n#* \1"),
(u"\n#: ", u"\n#* "),
]
}
- Enlève également les tirets devant les sources des citations.
- Terminé.
Remplacements simples
[modifier le wikicode]Projet : quelques résidus à remplacer.
Depuis | Vers |
---|---|
— | — |
… *. | … |
Septembre 2010
[modifier le wikicode]Modèle régio -> région
[modifier le wikicode]Remplacement du modèle régio par le synonyme région.
- liste : références à
{{régio}}
- script :
replace.py -namespace:0 -regex "\{\{régio([\|\}])" "{{région\1" -ref:Template:régio
- Terminé
Juin 2011
[modifier le wikicode]Modèle supprimer -> "supprimer ?"
[modifier le wikicode]Remplacement du modèle supprimer par "supprimer ?", pour le rendre synonyme de {{Supprimer}}
qui n’est pas un bandeau.
- liste : références à
{{supprimer}}
- script :
template.py supprimer "supprimer ?"
- Terminé
Annexe:Organisation d'une cellule animale eucaryote / français -> lien thésaurus
[modifier le wikicode]Renommage de l’annexe vers une page de thésaurus : mise à jour des liens.
- liste : référence vers le lien à remplacer (10 pages)
- script : python replace.py "*Organisation d'une cellule animale eucaryote en annexe." "* Le thésaurus Cellule vivante en français " -summary:"Bot : lien Thésaurus harmonisé" -ref:"Annexe:Organisation d'une cellule animale eucaryote / français"
- Terminé
Août 2012
[modifier le wikicode]Nouveau modèle unique de sections de langue
[modifier le wikicode]Remplacement des modèles de langue du type {{=fr=}}
par le modèle {{langue}}
. Cf Wiktionnaire:Prise de décision/Simplifier le Modèle:=xxx=.
- liste : toutes les pages
- script :
python replace.py -fix:languesec -namespace:0 -start:!
fixes['languesec'] = {
'regex' : True,
'msg' : {
'_default':u"Bot : remplacement du modèle de section de langue (cf [[Wiktionnaire:Prise de décision/Simplifier le Modèle:=xxx=]])",
},
'replacements': [
("== *\{\{-car-\}\} *==", u"== {{caractère}} =="),
("== *\{\{=([^=]+)=\}\} *==", r"== {{langue|\1}} =="),
]
}
- Fonctionnement sur le Toolserver
- Note : j'ai protégé le modèle (oublié de le faire avant de lancer la migration)
- Saut de маркираха à Ա pour cause de conflit avec JackBot (d · c · b) qui formate les modèles en bulgare. Je retournerai au cyrillique à la fin, avant la finalisation.
- Arrivé à la fin : remplacement des pages restantes (omises ou ajoutées entretemps) en prenant le modèle =langue= comme référence.
- Terminé. Il reste quelques occurrences en dehors de l'espace principal (vérifier les pages d'aide à la création).
Remplacement du modèle caractère par le modèle casse
[modifier le wikicode]Afin de libérer {{caractère}}
(cf ci-dessus), et accessoirement donner un nom plus descriptif au modèle : remplacement de {{caractère}}
par {{casse}}
.
- préalable : renommage de
{{caractère}}
vers{{casse}}
. - liste : pages incluant
{{caractère}}
- script :
- 1783 pages modifiées
Février 2013
[modifier le wikicode]Préparation de la migration de mon bot depuis le Toolserver vers les Labs ([2]).
Anciens modèles de prononciation 1
[modifier le wikicode]Il reste beaucoup d'articles utilisant l'ancienne présentation des prononciations : // sans modèle. JackBot est passé sur pas mal de ces articles, mais a oublié par endroit d'enlever l'ancienne prononciation.
- Listes : pages détectées dans le fichier xml du 2013-02-20
- Regex :
\{\{pron\|(.+?)\|(.+?)\}\} /\1/
-->{{pron|\1|\2}}
- Changements manuels assistés
- 30 pages repêchées... j'en espérait plus (il y près de 4600 anciennes prononciations restantes)
- Réécrire le script pour remplacer directement les /[^/]+/ dans les articles
Anciens modèles de prononciation 2
[modifier le wikicode]Suite : afin de remplacer tous les /xxx/, j'ai écrit un fix :
fixes['pronold'] = { 'regex' : True, 'msg' : { '_default':u"Bot : modèle de prononciation: /xxx/ -> {{pron|xxx|lang}}", }, 'replacements': [ # First MARK LANGUE (u"==( *)\{\{langue\|(.+)\}\}( *)== *", u"§§§" + r"\1\2\3" + u"§§§"), (u"(§§§ *)([^ §]+)( *§§§[^§]+?) \/([^\/\r\n\{=<> ][^\/\r\n\{=<>]*)\/", r"\1\2\3 {{pron|\4|\2}}"), (u"(§§§ *)([^ §]+)( *§§§[^§]+?) \/([^\/\r\n\{=<> ][^\/\r\n\{=<>]*)\/", r"\1\2\3 {{pron|\4|\2}}"), (u"(§§§ *)([^ §]+)( *§§§[^§]+?) \/([^\/\r\n\{=<> ][^\/\r\n\{=<>]*)\/", r"\1\2\3 {{pron|\4|\2}}"), (u"(§§§ *)([^ §]+)( *§§§[^§]+?) \/([^\/\r\n\{=<> ][^\/\r\n\{=<>]*)\/", r"\1\2\3 {{pron|\4|\2}}"), (u"(§§§ *)([^ §]+)( *§§§[^§]+?) \/([^\/\r\n\{=<> ][^\/\r\n\{=<>]*)\/", r"\1\2\3 {{pron|\4|\2}}"), (u"(§§§ *)([^ §]+)( *§§§[^§]+?) \/([^\/\r\n\{=<> ][^\/\r\n\{=<>]*)\/", r"\1\2\3 {{pron|\4|\2}}"), (u"(§§§ *)([^ §]+)( *§§§[^§]+?) \/([^\/\r\n\{=<> ][^\/\r\n\{=<>]*)\/", r"\1\2\3 {{pron|\4|\2}}"), (u"(§§§ *)([^ §]+)( *§§§[^§]+?) \/([^\/\r\n\{=<> ][^\/\r\n\{=<>]*)\/", r"\1\2\3 {{pron|\4|\2}}"), (u" \/([^\/\r\n\{=<> ][^\/\r\n\{=<>]*)\/", r" {{pron|\1}}"), # RESTORE LANGUE (u"§§§( *)(.+?)( *)§§§", r"==\1{{langue|\2}}\3=="), # Fix for old API SAMPA duo (u"[:\*]+ *\{\{(API|IPA)\}\} *:? *(\{\{pron\|.+\}\}) *[\r\n]+\* *\{\{SAMPA\}\} *: *\{\{pron\|[^\}]+\}\} *([\r\n]*)", r"* \2\3"), # Fix for broken conversion (u"[:\*]+ *\{\{pron\|\|[^\}]+?\}\} *:? *(\{\{pron\|[^\}]+\}\}) *[\r\n]+\* *\{\{SAMPA\}\} *: *\{\{pron\|[^\}]+\}\} *([\r\n]*)", r"* \1\2"), # Same without SAMPA (u"[:\*]+ *(\{\{pron\|\|[^\}]+?\}\}|\[\[API\]\]|\[\[IPA\]\]|API|IPA) *:? *(\{\{pron\|[^\}]+\}\}) *", r"* \2"), ], 'exceptions': { 'text-contains': [ u'\{\{R:AHD\}\}', u'http://', u'/…/\)', ], } }
- Fix utilisé avec replace.py -fix:pronold
- Dans le regex ci-dessus j'ai bricolé pour récupérer le code langue et éviter de ne prendre que le premier code langue pour tout l'article. J'ai aussi dû répété la même ligne au cas où il y aurait plusieurs prononciations nécessitant une conversion (pas possible autrement). Enfin, j'ai raouté une ligne pour voir les // qui ne pourraient pas récupérer leur code langue.
- Changements manuels assistés (pas automatique)
- Il y a ~4600 pages à changer, donc ça va prendre du temps de tout vérifier à l'œil, mais ce sera plus rapide que de tout remplacer à la main, et c'est mieux que de tout remplacer aveuglément par bot.
- Suspendu : quelques centaines de pages modifiées, mais il y a un vrai problème de mise en forme notamment des pages de caractères chinois qui ont encore les
{{API}}
et{{SAMPA}}
(voire{{IPA}}
!). Pour corser les choses, JackBot est passé sur ces pages mais ne les a pas changé comme il aurait fallut, donc il faudra attendre que ces pages soient corrigées avant de reprendre les corrections manuelles. - Reprise : ajout de 3 nouvelles lignes pour corriger les erreurs
Juin 2013
[modifier le wikicode]Catégorie et id dans term
[modifier le wikicode]Inclusion des catégories et id dans le modèle term.
- Liste : Catégorie:Modèles de thématique
- Script : replace.py -fix:term
fixes['term'] = { 'regex' : True, 'msg' : { '_default':u"Bot : catégorisation et id paramètres de term", }, 'replacements': [ # Sans catfin (u"<span id=\"?([^\">]+)\"?>\{\{terme?\|(.+)\}\}</span><includeonly>\{\{#if:\{\{\{nocat\|\}\}\}\{\{NAMESPACE\}\}\|\|\r?\n?\{\{#ifeq:\{\{\{1\|\}\}\}\|nocat\|\|\[\[Catégorie:(Lexique|.+) \{\{#if:\{\{\{1\|\}\}\}\|en +(\{\{\{\{\{1\|\}\}\}\}\}|\{\{nom langue\| ?\{\{\{1\|?f?r?\}\}\} ?\}\}) *(.*)\|sans langue précisée\}\}\]\] *\}\} *\}\}</includeonly>", r"{{term|\2|\n|id=\1\n|lang={{{1|}}}\n|cat=\3\n|nocat={{{nocat|}}}\n}}"), # Avec catfin (u"<span id=\"?([^\">]+)\"?>\{\{terme?\|(.+)\}\}</span><includeonly>\{\{#if:\{\{\{nocat\|\}\}\}\{\{NAMESPACE\}\}\|\|\r?\n?\{\{#ifeq:\{\{\{1\|\}\}\}\|nocat\|\|\[\[Catégorie:(Lexique|.+) \{\{#if:\{\{\{1\|\}\}\}\|en +(\{\{\{\{\{1\|\}\}\}\}\}|\{\{nom langue\| ?\{\{\{1\|f?r?\}\}\} ?\}\}) *(.*)\|.*sans langue précisée\}\}\]\] *\}\} *\}\}</includeonly>", r"{{term|\2|\n|id=\1\n|lang={{{1|}}}\n|cat=\3\n|catfin=\5\n|nocat={{{nocat|}}}\n}}"), ] }
Registre et le reste
[modifier le wikicode]Même chose avec {{registre}}.
- Liste : inclusions du modèle
- Beaucoup trop hétérogène... il est grand temps de réécrire tout ça
fixes['registre'] = { 'regex' : True, 'msg' : { '_default':u"Bot : catégorisation et id paramètres de {{registre}}", }, 'replacements': [ # Avec nom langue (u"\{\{registre\|(.+)\|(.)\}\}<includeonly>\{\{#ifeq:\{\{NAMESPACE\}\}\|\|\{\{#if:\{\{\{nocat\|\}\}\}\|\|\{\{#ifeq:\{\{\{1\|\}\}\}\|nocat\|\|<span id=\"(.+?)\"></span>\[\[Catégorie:(.+?) +\{\{#if:\{\{\{1\|\}\}\} \| ?en \{\{nom langue\| ?\{\{\{1\|\}\}\} ?\}\} ?\| ?sans langue précisée ?\}\}\]\]\}\} ?\}\} ?\}\}</includeonly>", r"{{registre\n|1=\1\n|2=\2\n|id=\3\n|lang={{{1|}}}\n|cat=\4\n|nocat={{{nocat|}}}\n}}"), # Sans nom langue (u"\{\{registre\|(.+)\|(.)\}\}<includeonly>\{\{#ifeq:\{\{NAMESPACE\}\}\|\|\{\{#if:\{\{\{nocat\|\}\}\}\|\|\{\{#ifeq:\{\{\{1\|\}\}\}\|nocat\|\|<span id=\"(.+?)\"></span>\[\[Catégorie:(.+?) +\{\{#if:\{\{\{1\|\}\}\} \| ?en \{\{ ?\{\{\{1\|\}\}\} ?\}\} ?\| ?sans langue précisée ?\}\}\]\]\}\} ?\}\} ?\}\}</includeonly>", r"{{registre\n|1=\1\n|2=\2\n|id=\3\n|lang={{{1|}}}\n|cat=\4\n|nocat={{{nocat|}}}\n}}"), {{registre|Vieilli|V}}<includeonly>{{#if: {{{nocat|}}}||{{#ifeq:{{{1|}}}|nocat||<span id="vieilli"></span>{{#ifeq:{{NAMESPACE}}||[[Catégorie:Termes vieillis {{#if:{{{1|}}}|en {{{{{1|}}}}}|sans langue précisée}}]]}} }} }}</includeonly> # Sans nom langue, id avant (u"<span id=\"(.+?)\">\{\{registre\|(.+)\|(.)\}\}</span><includeonly>\{\{#ifeq:\{\{NAMESPACE\}\}\|\|\{\{#if:\{\{\{nocat\|\}\}\}\|\|\{\{#ifeq:\{\{\{1\|\}\}\}\|nocat\|\|\[\[Catégorie:(.+?) +\{\{#if:\{\{\{1\|\}\}\} \| ?en \{\{ ?\{\{\{1\|\}\}\} ?\}\} ?\| ?sans langue précisée ?\}\}\]\]\}\} ?\}\} ?\}\}</includeonly>", r"{{registre\n|1=\2\n|2=\3\n|id=\1\n|lang={{{1|}}}\n|cat=\4\n|nocat={{{nocat|}}}\n}}"), # Meilleure catégorie (u"\[\[Catégorie:Modèles de contexte\|", r"[[Catégorie:Modèles de registre|"), ] }
Août 2013
[modifier le wikicode]Modèle T
[modifier le wikicode]Certaines pages utilisent encore les modèles de langue nus pour les traductions à la place de T (essentiellement parce qu'elles n'ont aucun contenu). D'autres utilisent ces modèles pour autre chose comme les -drv-int-, mais c'est un autre modèle qu'il faudra utiliser.
- Liste : références à {{en}}
- Script : replace.py -fix:tradt
fixes['tradt'] = { 'regex' : True, 'msg' : { '_default':u"Bot : Traductions sans modèle {{T}}", }, 'replacements': [ # Protection des trad- et trad-- (u"\{\{trad--", r"{{tradMOINSMOINS"), (u"\{\{trad-", r"{{tradMINUS"), # Cas où la traduction est juste [[traduction]]... (u"\* \{\{en\}\} ?: \[\[traduction\]\]", r"* {{T|en}} :"), # Ligne répétée de nombreuses fois (u"(\{\{-trad-\}\}[^\-]+)\* ?\{\{([^\|\}]+)\}\} :", r"\1* {{T|\2}} :"), (u"(\{\{-trad-\}\}[^\-]+)\* ?\{\{([^\|\}]+)\}\} :", r"\1* {{T|\2}} :"), # Déprotection (u"\{\{tradMINUS", r"{{trad-"), (u"\{\{tradMOINSMOINS", r"{{trad--"), ] }
- NB : le remplacement est répliqué pour modifier les lignes s'il y en a plusieurs.
- Fait :
- 587 pages changées via en
- 44 pages via de
- 30 pages via io
- Il en reste, à faire quand il n'y aura plus qu'eux
Modèle L
[modifier le wikicode]Pour les sections {{-drv-int-}}, {{-faux-amis-}} et {{-noms-vern-}}, on a aussi des listes de langue mais sans catégorisation particulière. Pour ceux-ci il existe le modèle {{L}} qui a le même rôle que {{L}} dans les traductions.
- Liste : références à {{-drv-int-}},
{{-faux-amis-}}et {{-noms-vern-}} - Script : replace.py -fix:langl
fixes['langl'] = { 'regex' : True, 'msg' : { '_default':u"Bot : Modèles de langue en liste remplacés par le modèle {{L}}", }, 'replacements': [ (u"(\{\{-(drv-int|noms-vern|n-vern|dial)-\}\}[^\-]+)\*\s*[Ff]rançais\s*:", r"\1* {{L|fr}} :"), (u"(\{\{-(drv-int|noms-vern|n-vern|dial)-\}\}[^\-]+)\*\s*[Aa]nglais\s*:", r"\1* {{L|en}} :"), (u"(\{\{-(drv-int|noms-vern|n-vern|dial)-\}\}[^\-]+)\*\s*[Aa]llemand\s*:", r"\1* {{L|de}} :"), (u"(\{\{-(drv-int|noms-vern|n-vern|dial)-\}\}[^\-]+)\*\s*[Ii]talien\s*:", r"\1* {{L|it}} :"), (u"(\{\{-(drv-int|noms-vern|n-vern|dial)-\}\}[^\-]+)\*\s*[Ee]spagnol\s*:", r"\1* {{L|es}} :"), # Ligne répétée de nombreuses fois (u"(\{\{-(drv-int|noms-vern|n-vern|dial)-\}\}[^\-]+)\*\s*\{\{([^\|\}]+)\}\}\s*:", r"\1* {{L|\3}} :"), ], }
- NB : le remplacement est répliqué pour modifier les lignes s'il y en a plusieurs.
- NB2 : il y a un modèle catégorisant {{F}} pour les faux-amis. J'exclus ce cas pour le moment.
- NB3 : sachant que {{-noms-vern-}} est utilisé bizarrement, je ne vais pas parcourir les pages qui en contiennent pour le moment.
- 5748 pages modifiées.
- Reste quelques pages avec le nom de la langue en toutes lettres (!) à répertorier et remplacer plus tard.
Modèle tmef
[modifier le wikicode]Le modèle {{M|tmef}} est inutilement abrégé : autant le remplacer par le nom complet et compréhensible : {{M|titre mis en forme}}.
- Liste : références à {{M|tmef}}.
- Script : python pwb.py replace.py -ref:Template:tmef -log "{{tmef|" "{{titre mis en forme" -summary:"Bot : Modèle tmef remplacé par le nom complet titre mis en forme"
- NB : utilisation de la version à jour (git), car j'ai eu un bug avec la vielle version svn non mise à jour (qui ne marchera peut-être plus ?). La nouvelle version s'utilise avec "pwb.py".
- 30 pages modifiées.
Décembre 2013
[modifier le wikicode]Modèles désuets de code langue
[modifier le wikicode]Il faudrait changer les modèles de Catégorie:Modèles de base de code langue vers Catégorie:Modèles désuets de code langue, en ajoutant une catégorie spéciale pour les repérer (Catégorie:Utilisations de modèles désuets de code langue) (màj : les modèles étant utilisés dans des liens, on ne peut pas catégoriser ainsi) et un bandeau {{modèle désuet de code langue}}.
- Liste : Catégorie:Modèles de base de code langue
- Script : replace.py -fix:old_lang_code
fixes['old_lang_code'] = { 'regex' : True, 'msg' : { '_default':u"Bot : nom de langue avec {{nom langue}} + bandeau et catégorie de modèle obsolètes", }, 'replacements': [ (u"^.+<noinclude>\[\[Catégorie:Modèles de base de code langue\|.+\]\]</noinclude>", u"{{nom langue|{{subst:PAGENAME}}}}<noinclude>{{modèle désuet de code langue}}</noinclude>"), ], }
- Commentaires : la majorité des pages sont sous le format décrit. Certaines autres sont écrites différemment (écrites et modifiées à la main). Je relancerais une version du script qui réécrit toute l’entrée, avec vérification manuelle systématique pour être sûr de ne pas effacer quelque chose d'important.
- Certaines pages dans ce cas ont des interwikis (ajoutés à la main). Ceux-ci ne servent pas à grand-chose.
- Certaines pages de code langue sont protégées, ce qui m’oblige à arrêter le bot, déprotéger la page et relancer le bot.
- Fini (4496 changements) : il reste quelques pages à nettoyer à la main, soit parce qu’elles ont des infos à garder quelque part, soit parce que ce ne sont pas des codes de langue (à mettre ailleurs).
Modèles désuets de section de langue
[modifier le wikicode]Il faudrait changer les modèles de Catégorie:Modèles de code langue (trompeuse) vers Catégorie:Modèles désuets de section de langue, en ajoutant une catégorie spéciale pour les repérer (Catégorie:Utilisations de modèles désuets de section de langue) et un bandeau {{modèle désuet de section de langue}}.
- Liste : Catégorie:Modèles de code langue
- Script : replace.py -fix:old_lang_section
fixes['old_lang_section'] = { 'regex' : True, 'msg' : { '_default':u"Bot : utilisation des noms de langue depuis le module:langues/data + catégorie de modèle obsolètes", }, 'replacements': [ (u"[\r\n.]*\{\{=langue=\|.*code=(.+?)[\}\|][\r\n.]*", r"{{langue|\1}}<includeonly>" + u"[[Catégorie:Utilisations de modèles désuets de section de langue|" + r"\1]]</includeonly><noinclude>\n{{" + u"modèle désuet de section de langue|" + r"\1}}</noinclude>"), (u"[\r\n.]*\{\{=langue=\|1=\{\{(.+?)\|type=Nom\}\}\}\}[\r\n.]*", r"{{langue|\1}}<includeonly>" + u"[[Catégorie:Utilisations de modèles désuets de section de langue|" + r"\1]]</includeonly><noinclude>\n{{" + u"modèle désuet de section de langue|" + r"\1}}</noinclude>"), ], }
- Fini : 2214 modèles changés. Il en reste une poignée avec un format moins standard, à trier à la main.
Nouveau modèle de section
[modifier le wikicode]Préparation pour la conversion des modèles de section tels que proposé dans WT:Prise de décision/Rendre toutes les sections modifiables.
- Liste : Toutes les pages de l’espace principal, estimé à plus de deux millions de pages
- Cela va prendre au moins 2 mois.
- Si on met plusieurs bots, ceux-ci pourront passer sur des parties différentes.
- Script : replace.py -fix:sections_S
- L’idée ici est la suivante :
- on crée une liste manuelle des sections normales qui ne sont pas de niveau 3 ;
- les modèles restants de type {{-xxx-|..}} sont supposés être de niveau 3, et sont transformés en === {S|xxx|..}} === ;
- pour convertir les alias en leur nom complet, on utilise les listes de Discussion module:types de mots/analyse/test et Discussion module:section article/analyse/test.
- L’idée ici est la suivante :
fixes['sections_S'] = { 'regex' : True, 'msg' : { '_default':u"Bot : nouveau modèle {{S}} remplaçant toutes les sections sauf les sections de langue (voir [[WT:Prise de décision/Rendre toutes les sections modifiables]])", }, 'replacements': [ # Sections normales # À FAIRE # Sections de types de mots (le reste) (u"\{\{-(.+)-.+\}\}", r"=== {{S|\1}} ==="), # Remplacement des abréviations des types de mot (u"\{\{S\|(prov)\|", u"{{S|proverbe|"), (u"\{\{S\|(symb)\|", u"{{S|symbole|"), (u"\{\{S\|(adverbe int|adv int)\|", u"{{S|adverbe interrogatif|"), (u"\{\{S\|(préf|pref)\|", u"{{S|préfixe|"), (u"\{\{S\|(adjectif pos|adj pos|adj possessif)\|", u"{{S|adjectif possessif|"), (u"\{\{S\|(circon|circonf)\|", u"{{S|circonfixe|"), (u"\{\{S\|(sino|sinog)\|", u"{{S|sinogramme|"), (u"\{\{S\|(onoma|onom)\|", u"{{S|onomatopée|"), (u"\{\{S\|(faute d'orthographe|faute d’orthographe|faute)\|", u"{{S|erreur|"), (u"\{\{S\|(art indéfini|article indéf|art indéf)\|", u"{{S|article indéfini|"), (u"\{\{S\|(numér|num)\|", u"{{S|numéral|"), (u"\{\{S\|(nom science|nom sciences|nom scient)\|", u"{{S|nom scientifique|"), (u"\{\{S\|(class|classif)\|", u"{{S|classificateur|"), (u"\{\{S\|(interj)\|", u"{{S|interjection|"), (u"\{\{S\|(verb pr|verbe pr|verbe pronom)\|", u"{{S|verbe pronominal|"), (u"\{\{S\|(var typo|variante par contrainte typographique|variante typo)\|", u"{{S|variante typographique|"), (u"\{\{S\|(adjectif qualificatif|adj)\|", u"{{S|adjectif|"), (u"\{\{S\|(art défini|article déf|art déf)\|", u"{{S|article défini|"), (u"\{\{S\|(suf|suff)\|", u"{{S|suffixe|"), (u"\{\{S\|(loc-phr)\|", u"{{S|locution phrase|"), (u"\{\{S\|(loc)\|", u"{{S|locution|"), (u"\{\{S\|(pronom réfl|pronom réfléchi|pronom pers)\|", u"{{S|pronom personnel|"), (u"\{\{S\|(pronom rel)\|", u"{{S|pronom relatif|"), (u"\{\{S\|(post|postpos)\|", u"{{S|postposition|"), (u"\{\{S\|(pronom int|pronom inter)\|", u"{{S|pronom interrogatif|"), (u"\{\{S\|(quantif)\|", u"{{S|quantifieur|"), (u"\{\{S\|(rad)\|", u"{{S|radical|"), (u"\{\{S\|(part)\|", u"{{S|particule|"), (u"\{\{S\|(part num|part numérale|particule num)\|", u"{{S|particule numérale|"), (u"\{\{S\|(art part|art partitif|article part)\|", u"{{S|article partitif|"), (u"\{\{S\|(inf)\|", u"{{S|infixe|"), (u"\{\{S\|(conj)\|", u"{{S|conjonction|"), (u"\{\{S\|(nom fam)\|", u"{{S|nom de famille|"), (u"\{\{S\|(interf)\|", u"{{S|interfixe|"), (u"\{\{S\|(adverbe rel|adv rel)\|", u"{{S|adverbe relatif|"), (u"\{\{S\|(pronom dém)\|", u"{{S|pronom démonstratif|"), (u"\{\{S\|(adv pron|adv pr|adverbe pr|adv pronom)\|", u"{{S|adverbe pronominal|"), (u"\{\{S\|(adjectif dém|adj dém|adj démonstratif)\|", u"{{S|adjectif démonstratif|"), (u"\{\{S\|(verb)\|", u"{{S|verbe|"), (u"\{\{S\|(adj num|adj numéral|adjectif num)\|", u"{{S|adjectif numéral|"), (u"\{\{S\|(adj indéfini|adj indéf|adjectif indéf)\|", u"{{S|adjectif indéfini|"), (u"\{\{S\|(nom pr)\|", u"{{S|nom propre|"), (u"\{\{S\|(substantif|nom commun)\|", u"{{S|nom|"), (u"\{\{S\|(pronom pos)\|", u"{{S|pronom possessif|"), (u"\{\{S\|(pronom indéf)\|", u"{{S|pronom indéfini|"), (u"\{\{S\|(adj exclamatif|adj excl|adjectif excl)\|", u"{{S|adjectif exclamatif|"), (u"\{\{S\|(prép)\|", u"{{S|préposition|"), (u"\{\{S\|(aff)\|", u"{{S|affixe|"), (u"\{\{S\|(verb aux|aux|verbe auxiliaire|verbe aux)\|", u"{{S|auxiliaire|"), (u"\{\{S\|(conj coord|conjonction coord)\|", u"{{S|conjonction de coordination|"), (u"\{\{S\|(adj interrogatif|adj int|adjectif int)\|", u"{{S|adjectif interrogatif|"), (u"\{\{S\|(dét)\|", u"{{S|déterminant|"), (u"\{\{S\|(adv)\|", u"{{S|adverbe|"), (u"\{\{S\|(art)\|", u"{{S|article|"), ], }
- Ceci n’est qu’un travail préparatoire.
Nouveau modèle de section
[modifier le wikicode]Préparation pour la conversion des modèles de section tels que proposé dans WT:Prise de décision/Rendre toutes les sections modifiables. Voir planification Utilisateur:Darkdadaah/Planification/Migration modèle S.
- Liste : Toutes les pages de l’espace principal, estimé à près de deux millions cinq cent mille pages
- Script : replace.py -fix:sections_S -namespace:0 -start:! -log
- La liste des remplacements est créée semi-automatiquement par Discussion module:section/analyse/test.
Code
[modifier le wikicode]fixes['sections_S'] = { 'regex' : True, 'msg' : { '_default':u"Bot : nouveau modèle {{S}} remplaçant toutes les sections sauf les sections de langue (voir [[WT:Prise de décision/Rendre toutes les sections modifiables]])", }, 'replacements': [ # Conversion de certains modèles de section non orthodoxes (pas de la forme {{-xxx-}}) (u"\{\{trad-trier\}\}", r"{{-trad-trier-}}"), # Nettoyage de part et d'autre du titre (u"[ \t]*(=+ *\{\{S\|.+\}\} *=+|\{\{-.+-.*\}\})[ \t]*", r"\1"), (u"\n([^\r\n=])[ \t]*(\{\{-.+?-|==+ *\{\{S\|)", r"\n\1\n\2"), # S'il y a quelque chose avant sur la même ligne : sépare (u"(\{\{-.+?-.*\}\}|==+ *\{\{S\|.+\}\} *==+)[ \t]*([^\r\n=]+)", r"\1\n\2"), # S'il y a quelque chose après sur la même ligne : sépare (u"==([^=\r\n]+\r)", r"==\1\n"), # Conversion des anciens modèles (u"\n\{\{-(.+?)-\}\}", r"\n===== {{S|\1}} ====="), # Sections normales : niveau 5 (u"\n\{\{-(.+?)-\|(.*?)\}\}", r"\n === {{S|\1|\2}} ==="), # Types de mots (car avec paramètre) : niveau 3 (u"\{\{S\|flex-(.+?)\|(.+?)\}\}", r"{{S|\1|\2|flexion}}"), # Flexion : maintenant un simple paramètre (numéro 2) (u"\{\{S\|loc-(.+?)\}\}", r"{{S|\1}}"), # Locution : maintenant déduit automatiquement donc inutile # Sections sans modèles : on leur met quand même le modèle pour les repérer (u"==[\t ]*([^{\r\n=]+)[\t ]*==", r" == {{S|\1}} =="), # Sections de titres normaux (u"\n[\t ]*=*[\t ]*\{\{S\|(note)\}\}[\t ]*=*[\t ]*\r", u"\n===== {{S|note}} ====="), (u"\n[\t ]*=*[\t ]*\{\{S\|(vocabulaire[ -]proche|vocabulaire[ -]apparenté|voc|vocabulaire)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|vocabulaire}} ===="), (u"\n=+ *\{\{S\|(etym|étym|étymologie)\}\} *=+", u"\n === {{S|étymologie}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(tropo|troponymes)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|troponymes}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(écrit|écriture)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|écriture}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(dico-sino|sino-dico|dico[ -]sinogrammes)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|dico sinogrammes}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(paro|paronymes)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|paronymes}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(trad|traductions)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|traductions}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(q-syn|quasi-syn|quasi-synonymes)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|quasi-synonymes}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(drv-int|dérivés[ -]int|dérivés[ -]autres[ -]langues)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|dérivés autres langues}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(expr|exp|expressions)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|expressions}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(anto|ant|antonymes)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|antonymes}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(homo|homophones)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|homophones}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(pron|prononciations|prononciation)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|prononciation}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(hyper|hyperonymes)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|hyperonymes}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(décl|déclinaison)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|déclinaison}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(voir|voir[ -]aussi)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|voir aussi}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(compos|composés)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|composés}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(var|variantes)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|variantes}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(holo|holonymes)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|holonymes}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(gent|gentilés)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|gentilés}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(translit|translittérations)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|translittérations}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(tran|trans|transcriptions)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|transcriptions}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(notes)\}\}[\t ]*=*[\t ]*\r", u"\n===== {{S|notes}} ====="), (u"\n[\t ]*=*[\t ]*\{\{S\|(drv|dérivés)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|dérivés}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(app|apr|apparentés[ -]étymologiques|apparentés)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|apparentés}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(ortho-arch|anciennes[ -]ortho|anciennes[ -]orthographes)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|anciennes orthographes}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(conjug|conjugaison)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|conjugaison}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(référence|réf|ref|références)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|références}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(hist|attest|attestations)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|attestations}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(syn|synonymes)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|synonymes}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(abrév|abréviations)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|abréviations}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(dial|variantes[ -]dialectes|variantes[ -]dial|dialectes|var-dial|variantes[ -]dialectales)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|variantes dialectales}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(variantes[ -]orthographiques|var-ortho|variantes[ -]ortho)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|variantes ortho}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(faux-amis)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|faux-amis}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(méro|méronymes)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|méronymes}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(trad[ -]trier|trad-trier|traductions[ -]à[ -]trier)\}\}[\t ]*=*[\t ]*\r", u"\n===== {{S|traductions à trier}} ====="), (u"\n[\t ]*=*[\t ]*\{\{S\|(noms[ -]vern|noms[ -]vernaculaires)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|noms vernaculaires}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(hypo|hyponymes)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|hyponymes}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(cit|citations)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|citations}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(vidéo|image[ -]vidéo)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|image vidéo}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(dimin|diminutifs)\}\}[\t ]*=*[\t ]*\r", u"\n ==== {{S|diminutifs}} ===="), (u"\n[\t ]*=*[\t ]*\{\{S\|(anagr|anagramme|anagrammes)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|anagrammes}} ==="), # Sections de types (u"\n[\t ]*=*[\t ]*\{\{S\|(pronom)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|pronom|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(pronom-adjectif)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|pronom-adjectif|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(copule)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|copule|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(symb|symbole)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|symbole|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(adverbe[ -]int|adv-int|adverbe[ -]interrogatif)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|adverbe interrogatif|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(préf|préfixe)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|préfixe|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(adjectif[ -]pos|adj-pos|adjectif[ -]possessif)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|adjectif possessif|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(circon|circonf|circonfixe)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|circonfixe|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(rafsi)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|rafsi|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(sino|sinog|sinogramme)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|sinogramme|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(onoma|onom|onomatopée)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|onomatopée|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(rad|radical)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|radical|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(faute[ -]d'orthographe|faute[ -]d’orthographe|faute|erreur)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|erreur|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(art-indéf|article[ -]ind|article[ -]indéfini)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|article indéfini|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(numér|num|numéral)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|numéral|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(nom-sciences|nom[ -]scient|nom[ -]science|nom[ -]scientifique)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|nom scientifique|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(class|classif|classificateur)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|classificateur|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(interj|interjection)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|interjection|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(verb-pr|verbe[ -]pr|verbe[ -]pronominal)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|verbe pronominal|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(variante[ -]typo|var-typo|variante[ -]par[ -]contrainte[ -]typographique|variante[ -]typographique)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|variante typographique|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(adjectif[ -]qualificatif|adj|adjectif)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|adjectif|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(article[ -]déf|art-déf|article[ -]défini)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|article défini|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(lettre)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|lettre|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(pré-verbe)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|pré-verbe|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(prov|proverbe)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|proverbe|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(nom[ -]commun|substantif|nom)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|nom|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(pronom[ -]réf|pronom-pers|pronom-per|pronom[ -]réfléchi|pronom-réfl|pronom[ -]personnel)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|pronom personnel|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(pronom-rel|pronom[ -]rel|pronom[ -]relatif)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|pronom relatif|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(post|postpos|postposition)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|postposition|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(pronom[ -]int|pronom-int|pronom[ -]interrogatif)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|pronom interrogatif|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(loc|locution)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|locution|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(pré-nom)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|pré-nom|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(quantif|quantifieur)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|quantificateur|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(suf|suff|suffixe)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|suffixe|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(part|particule)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|particule|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(gismu)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|gismu|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(art-part|article[ -]par|article[ -]partitif)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|article partitif|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(part-num|particule[ -]num|particule[ -]numérale)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|particule numérale|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(conj|conjonction)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|conjonction|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(nom-fam|nom[ -]de[ -]famille)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|nom de famille|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(interf|interfixe)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|interfixe|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(adv-rel|adverbe[ -]rel|adverbe[ -]relatif)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|adverbe relatif|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(pronom[ -]dém|pronom-dém|pronom[ -]démonstratif)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|pronom démonstratif|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(adverbe[ -]pro|adv-pron|adverbe[ -]pronominal)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|adverbe pronominal|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(adj-dém|adjectif[ -]dém|adjectif[ -]démonstratif)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|adjectif démonstratif|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(verb|verbe)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|verbe|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(adjectif[ -]num|adj-num|adjectif[ -]numéral)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|adjectif numéral|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(adjectif[ -]ind|adj-indéf|adjectif[ -]indéfini)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|adjectif indéfini|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(inf|infixe)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|infixe|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(nom-pr|nom[ -]propre)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|nom propre|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(pronom[ -]pos|pronom-pos|pronom[ -]possessif)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|pronom possessif|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(pronom[ -]ind|pronom-indéf|pronom[ -]indéfini)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|pronom indéfini|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(adj-excl|adjectif[ -]exc|adjectif[ -]exclamatif)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|adjectif exclamatif|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(patronyme)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|patronyme|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(prép|préposition)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|préposition|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(prénom)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|prénom|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(aff|affixe)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|affixe|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(phr|loc-phr|locution-phrase|locution[ -]phrase|locution-phrase)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|locution-phrase|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(conj-coord|conjonction[ -]coo|conjonction[ -]de[ -]coordination)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|conjonction de coordination|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(adj-int|adjectif[ -]int|adjectif[ -]interrogatif)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|adjectif interrogatif|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(dét|déterminant)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|déterminant|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(adv|adverbe)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|adverbe|" + r"\2}} ==="), (u"\n[\t ]*=*[\t ]*\{\{S\|(art|article)\|(.+?)\}\}[\t ]*=*[\t ]*\r", u"\n === {{S|article|" + r"\2}} ==="), # Post traitement : espaces avant et après les sections (u"[\r\n]+==", u"\n\n=="), # On met une ligne vide avant, et une seule (u"==[\r\n]+", u"==\n"), # Pas de ligne vide après par contre (donc deux titres successifs ne sont pas espacés) (u"^[\r\n]+", u""), # Éviter les lignes vides en début de page (enlève la ligne vide du premier titre aussi) # Paramètre num toujours à la fin (u"\{\{S\|(.+?)(\|num=[^\|\}]+?)(\|?.*)\}\}", r"{{S|\1\3\2}}"), ], }
- Note : le bot vérifie l’espacement entre les sections, mais dans les cas où seules les lignes sont modifiées, le bot ne fait pas de modification. Modification spéciale de replace.py :
461 # Don't make changes if only cosmetic changes occurred (e.g. deleted or added empty lines) 462 original_text_blank = re.sub(r'[ \s\r\n]+', '', original_text) 463 new_text_blank = re.sub(r'[ \s\r\n]+', '', new_text) 464 #pywikibot.output(original_text_blank) 465 #pywikibot.output(new_text_blank) 466 467 if new_text_blank == original_text_blank: 468 pywikibot.output(u'No changes were necessary (only cosmetic) in %s' 469 % page.title(asLink=True)) 470 break
Jalons
[modifier le wikicode]- 2014-01-11 : Bot lancé. — Dakdada 11 janvier 2014 à 18:11 (UTC)
- 2014-01-11 : Début A-Z
- 2014-01-16 : Début a-z
- 2014-01-21 : 500 000 articles (20%)
- Vitesse de pointe : 55600 articles par jour
- Estimation de fin : fin février à début mars 2014.
- 2014-01-21 : 500 000 articles (20%)
- 2014-01-30 : 1 000 000 d’articles (40%)
- 2014-02-04 : interruption du bot en attendant une décision sur les locutions
- 2014-02-05 : re-lancement du bot en excluant les pages de locution (contenant "{{-loc")
- 2014-02-09 : 50% (1 mois)
- 2014-02-10 : interruption pour mise à jour du code. Relance avec paramètre supplémentaire pour sauter les articles contenant une espace (à partir de patin).
- 2014-02-13 - 2012-02-18 : verbes en re- (~200k articles)
- 2014-03-03 : fin de l'alphabet latin
- 2014-03-06 :
- Correction du script qui ne sautait pas les articles pour les modifications "cosmétiques" avec l'option "-always"
- Alphabet grec : Α à ϻ (déjà fait majoritairement par JackBot)
- Alphabet cyrillique : Ё à ԥ (déjà fait majoritairement par JackBot)
- Dont les 150 000 noms de familles russes (dont flexions)
- 2014-03-08 :
- 2014-03-08 : La passe générale est en fait terminée, puisque JackBot est déjà passé en partie sur les alphabets autres que latin. Il reste environ 15 000 pages utilisant un modèle {{-déf-}}, dont ~7000 en français, 3000 en anglais, etc.
- Je vais maintenant passer le script sur les articles utilisant le modèle -déf- (fait aussi par JackBot)
- Il reste encore :
- Des utilisations "bizarres" des modèles de section {{-étym-}}, {{-pron-}}, {{-syn-}} etc.
- Des utilisations en dehors de l'espace principal (annexes, catégories...)
- Les modèles qui incluent le niveau mais qui ne sont pas marqués comme tel ({{sinogram-noimg}})
- Pire : les modèles qui incluent d'autres modèles de section ({{dial aleut b}})
- 100% estimé : courant mars 2014
Finition
[modifier le wikicode]Tous les anciens modèles sont maintenant dans la catégorie Catégorie:Wiktionnaire:Utilisation d'anciens modèles de section.
Quelques remplacements :
- Catégorie:Formes reconstruites
- J'ai dû modifier le code du gadget Formatage.js pour les modifier à la main
- Modification de la détection de locution automatique aussi pour ne prendre que les sous-pages
- Remplacement normal par bot (457 articles)
- JackBot a corrigé certaines locutions qui devaient rester précisées. Par contre il a utilisé locution=1 au lieu de locution=oui. Une discussion s'en est suivi ici : Wiktionnaire:Wikidémie/mars_2014#Nom_du_paramètre. Pour l'instant, en guise d'homogénéité, je remplace les locution=1 par locution=oui (listées dans Catégorie:Wiktionnaire:Sections avec paramètre locution invalide).
- Remplacement des sections "normales" d'après WT:Wikidémie/mars_2014#Anciens_modèles :
- Script de remplacement des sections normales :
fixes['sect_normales'] = { 'regex' : True, 'msg' : { '_default':u"Bot : Modèles de section -> sections normales", }, 'replacements': [ (u" *\{\{\s*-n(otes?)-\s*\}\} *", r"==== N\1 ===="), (u" *\{\{\s*-(réf|ref|références|references)-\s*\}\} *", u"=== Références ==="), (u" *\{\{\s*-voir-\s*\}\} *", r"=== Voir aussi ==="), ], }
- Modèle:catégorie rime est utilisé dans des centaines de catégories de rimes (vides) et contenait {{-voir-}}. Catégories à supprimer ?
Bot de ménage
[modifier le wikicode]- Je fais tourner le bot régulièrement depuis le tools labs depuis mars 2014, en utilisant le script de remplacement
sections_S
(voir plus haut). - Script relancé le 21 août 2014 après correction de la catégorie surveillée (renommée en Catégorie:Wiktionnaire:Utilisation d’anciens modèles de section en juin). — Dakdada 21 août 2014 à 20:36 (UTC)
- Fréquence changée de 6h à 3h, puisque le nombre de lignes récupérables via l'api est de 500 maximum (6h est trop juste). — Dakdada 23 août 2014 à 13:15 (UTC)