Difference between revisions 11037637 and 11888950 on frwiktionary[[Catégorie:JackBot]] <source lang=python> #!/usr/bin/env python # coding: utf-8 # Ce script formate les pages du Wiktionnaire, tous les jours après minuit depuis le Toolserver : # 1) Retire certains doublons. # 2) Ajoute les clés de tris, prononciations vides, et certains liens vers les conjugaisons. # 3) Met à jour les liens vers les traductions (modèles trad, trad+, trad-, trad-début et trad-fin), et les classe par ordre alphabétique. # 4) Ajoute les codes langues appropriés dans les modèles du Wiktionnaire du namespace 0 et paragraphes appropriés. # 5) Complète les flexions de verbes à vérifier. # 6) Traduit les importations de en.wikt. # 7) Gestion des modèles {{voir}} en début de page. # Importation des modules import catlib, pagegenerators, os, codecs, urllib, re, collections from wikipedia import * # Déclaration language = "fr" family = "wiktionary" mynick = "JackBot" site = getSite(language,family) summary = u'[[Wiktionnaire:Structure des articles|Autoformatage]]' # Modèles du site à traiter limit56=91307 Modele = range(1, limit56+1) # http://fr.wiktionary.org/wiki/Cat%C3%A9gorie:Mod%C3%A8les_de_type_de_mot_du_Wiktionnaire Modele[1] = u'-adj-' Modele[2] = u'-flex-adj-indéf-' Modele[3] = u'-adj-dém-' Modele[4] = u'-adj-excl-' Modele[5] = u'-adj-indéf-' Modele[6] = u'-adj-int-' (contracted; show full)Modele[115] = u'-inf-' Modele[116] = u'-onoma-' Modele[117] = u'-onoma-' Modele[118] = u'-flex-loc-verbe-' Modele[119] = u'-class-' Modele[120] = u'-sinogramme-' limit1 = 121 # Paragraphes avec modèle catégorisant ⏎ ⏎ # http://fr.wiktionary.org/wiki/Cat%C3%A9gorie:Mod%C3%A8les_de_contexte Modele[121] = u'-trad-' Modele[122] = u'-drv-int-' Modele[123] = u'-étym-' Modele[124] = u'-exp-' Modele[125] = u'-faux-amis-' Modele[126] = u'-gent-' Modele[127] = u'-hist-' (contracted; show full)Modele[157] = u'-apr-' Modele[158] = u'-cit-' Modele[159] = u'-compos-' Modele[160] = u'-conjug-' Modele[161] = u'-décl-' Modele[162] = u'-dial-' limit2 = 163 # Paragraphes sans modèle catégorisant Modele[16 43] = u'ébauchtitre alt' Modele[164] = u'titre mis en forme' Modele[165] = u'ébauche-transtitre incorrect' Modele[166] = u'ébauche-défformater' Modele[167] = u'ébauche-étymsuppression' Modele[168] = u'ébauche-pronsupp' Modele[169] = u'ébauche-étym-nom-scientifiquePàS' Modele[170] = u'vérifier' #Modele[1701] = u'ébauche-exe'voir' # et u'voir/' sont gérés individuellement limit3 = 172 # Paragraphes sans modèle catégorisant pouvant contenir des modèles⏎ Modele[1712] = u'ébauche-prontrans' Modele[1723] = u'ébauche-syn' limit3 = 173déf' Modele[174] = u'b-pl-courébauche-étym' Modele[175] = u'cardinalébauche-pron' Modele[176] = u'comparatif' Modele[177] = u'contemporain' Modele[178] = u'courant' Modele[179] = u'dérision' Modele[180] = u'désuet'ébauche-étym-nom-scientifique' Modele[177] = u'ébauche-exe' Modele[178] = u'ébauche-pron' Modele[179] = u'ébauche-syn' Modele[180] = u'ébauche' limit4 = 181 # ébauches # http://fr.wiktionary.org/wiki/Cat%C3%A9gorie:Mod%C3%A8les_de_domaine_d%E2%80%99utilisation Modele[181] = u'déterminé' Modele[182] = u'didactique' Modele[183] = u'dim-lex' Modele[184] = u'diminutif' Modele[185] = u'diplomatie' Modele[186] = u'informatique' Modele[187] = u'diptote' (contracted; show full)Modele[232] = u'poétique' Modele[233] = u'populaire' Modele[234] = u'propre' Modele[235] = u'proverbial' Modele[236] = u'rare' Modele[237] = u'sigle' Modele[238] = u'soutenu' #Modele[239] = u'spécialemendésuet' Modele[240] = u'saccusatif' Modele[241] = u'sdatif' Modele[242] = u'très familier' Modele[243] = u'vieilli' Modele[244] = u'vulgaire' Modele[245] = u'wiki' Modele[246] = u'popu' Modele[247] = u'vx' Modele[248] = u'dés' Modele[249] = u'fam' Modele[250] = u'péj' Modele[251] = u'vulg' # http://fr.wiktionary.org/wiki/Cat%C3%A9gorie:Mod%C3%A8les_de_domaine_d%E2%80%99utilisation⏎ Modele[252] = u'télé' Modele[253] = u'administration' Modele[254] = u'aéronautique' Modele[255] = u'agriculture' Modele[256] = u'alpinisme' Modele[257] = u'anatomie' Modele[258] = u'anthropologie' Modele[259] = u'architecture' (contracted; show full)Modele[421] = u'typographie' Modele[422] = u'télécommunications' Modele[423] = u'urbanisme' Modele[424] = u'vêtements' Modele[425] = u'virologie' Modele[426] = u'viticulture' Modele[427] = u'zoologie' #Modele[] = 'vérifier' Pas de langue⏎ Modele[428] = u'b-pl-cour' Modele[429] = u'cardinal' Modele[430] = u'comparatif' Modele[431] = u'contemporain' Modele[432] = u'courant' Modele[433] = u'dérision' Modele[434] = u'jazz' Modele[435] = u'tennis de table' Modele[436] = u'volley-ball' Modele[437] = u'volley' Modele[438] = u'badminton' Modele[438] = u'bases de données' Modele[439] = u'BDD' Modele[440] = u'pharma' Modele[441] = u'apiculture' Modele[442] = u'coiffure' Modele[443] = u'astronautique' Modele[444] = u'animaux' Modele[445] = u'plantes' Modele[446] = u'marketing' Modele[447] = u'aphérèse' Modele[448] = u'apocope' Modele[449] = u'argot' Modele[450] = u'b-m-cour' Modele[451] = u'escalade' Modele[452] = u'archéo' Modele[453] = u'armement' Modele[454] = u'astrol' Modele[455] = u'astron' Modele[456] = u'audiovis' Modele[457] = u'automo' Modele[458] = u'aviat' (contracted; show full)Modele[735] = u'dessin' Modele[736] = u'-prénom-' Modele[737] = u'-flex-prénom-' Modele[738] = u'(' Modele[739] = u')' Modele[740] = u'trad-début' Modele[741] = u'trad-fin' #Modele[742] = u'Treliure' Modele[743] = u'gravure' Modele[744] = u'livre' Modele[745] = u'canoe' Modele[746] = u'footing' Modele[747] = u'jogging' Modele[748] = u'running' Modele[749] = u'course à pied' Modele[750] = u'Mexique' Modele[750] = u'programmation' Modele[751] = u'prog' Modele[752] = u'jeux vidéo' Modele[753] = u'judo' Modele[754] = u'gén-indén' Modele[755] = u'reliure' Modele[756] = u'Liban' Modele[757] = u'caténatif' Modele[758] = u'fam.' Modele[759] = u'formater' Modele[760] = u'aphérèse' Modele[761] = u'apocope' Modele[762] = u'argot' Modele[763] = u'b-m-cour' Modele[764] = u'escalade' Modele[760] = u'aphérèse' Modele[761] = u'apocope' Modele[762] = u'argot' Modele[763] = u'b-m-cour' Modele[764] = u'escalade' Modele[765] = u'm' Modele[766] = u'f' Modele[767] = u'n' Modele[768] = u'c' Modele[769] = u'mf' Modele[770] = u'mf?' Modele[770] = u'impers' Modele[771] = u'impersonnel' Modele[772] = u'pharma' Modele[773] = u'apiculture' Modele[774] = u'coiffure' Modele[775] = u'animaux' Modele[776] = u'plantes' Modele[777] = u'astronautique' Modele[779] = u'marketing' Modele[780] = u'région' Modele[781] = u'régio' limit4 = 782⏎ Liban' Modele[756] = u'caténatif' Modele[757] = u'fam.' Modele[758] = u'm' Modele[759] = u'f' Modele[760] = u'n' Modele[761] = u'c' Modele[762] = u'mf' Modele[763] = u'mf?' Modele[764] = u'impers' Modele[765] = u'impersonnel' Modele[766] = u'région' Modele[767] = u'régio' Modele[768] = u'CB' Modele[769] = u'mah-jong' Modele[770] = u'mahjong' Modele[771] = u'majong' Modele[772] = u'réseau' Modele[773] = u'réseaux informatiques' limit5 = 774 # non traités #Modele[] = u'spécialement' #Modele[] = u'T' # Abréviations (python pagegenerators.py -redirectonly:Template:!) Modele[775] = u'US' Modele[776] = u'USA' Modele[777] = u'UK' Modele[778] = u'GB' Modele[779] = u'AU' Modele[780] = u'NZ' Modele[781] = u'IE' # Modèles régionaux, pb du nocat pour les prononciations Modele[782] = u'Acadie' Modele[783] = u'Afrique' Modele[784] = u'Afrique du Sud' Modele[785] = u'Algérie' Modele[786] = u'Allemagne' Modele[787] = u'Alsace' (contracted; show full)Modele[893] = u'Tunisie' Modele[894] = u'Uruguay' Modele[895] = u'Valence' Modele[896] = u'Var' Modele[897] = u'Velay' Modele[898] = u'Venezuela' Modele[899] = u'Viêt Nam' # Abréviations (python pagegenerators.py -redirectonly:Template:!) Modele[900] = u'FR' Modele[901] = u'BE' Modele[902] = u'CH' Modele[903] = u'QC' Modele[904] = u'CA' Modele[905] = u'US' Modele[906] = u'USA' Modele[907] = u'UK' Modele[908] = u'GB' Modele[909] = u'AU' Modele[910] = u'NZ' Modele[911] = u'IE' Modele[912] = u'EUModele[900] = u'EU' Modele[901] = u'FR' Modele[902] = u'BE' Modele[903] = u'CH' Modele[904] = u'QC' Modele[905] = u'CA' # Modèles des autres Wiktionnaires à convertir LimitTemplate = 66 Template = range(1, LimitTemplate+1) TemplateFR = range(1, LimitTemplate+1) Template[1] = u'===Adjective===' TemplateFR[1] = u'{{-adj-}}' (contracted; show full) # Nettoyage if PageTemp.find(u'{{voir}}\n') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{voir}}\n')] + PageTemp[PageTemp.find(u'{{voir}}\n')+len(u'{{voir}}\n'):len(PageTemp)] if PageTemp.find(u'{{voir}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{voir}}')] + PageTemp[PageTemp.find(u'{{voir}}')+len(u'{{voir}}'):len(PageTemp)] if (PageTemp.find(u'{{vérifier') != -1 and (PageTemp.find(u'{{vérifier') < PageTemp.find(u'{{=') and PageTemp.find(u'{{=') != -1) or PageTemp.find(u'{{vérifier') < PageTemp.find(u'{{langue|') and PageTemp.find(u'{{langue|') != -1) or PageTemp.find(u'{{PàS') != -1: PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'==')-1] PageTemp = PageTemp[PageTemp.find(u'==')-1:len(PageTemp)]⏎ ⏎ # Clés de tri if PageTemp.find(u'{{clé de tri}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{clé de tri}}')] + PageTemp[PageTemp.find(u'{{clé de tri}}')+len(u'{{clé de tri}}'):len(PageTemp)] if PageTemp.find(u'{{clé de tri|' + PageHS.lower() + u'}}') != -1: (contracted; show full) while PageTemp.find(u'— {{source|') != -1: PageTemp = PageTemp[0:PageTemp.find(u'— {{source|')] + PageTemp[PageTemp.find(u'— {{source|')+2:len(PageTemp)] while PageTemp.find(u'\n#*') != -1 and PageTemp.find(u'—') != -1: PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'\n#*')+len(u'\n#*')] PageTemp = PageTemp[PageTemp.find(u'\n#*')+len(u'\n#*'):len(PageTemp)] if PageTemp.find(u'—') !=-1 and PageTemp.find(u'—') < PageTemp.find(u'\n'): PageTemp2 = PageTemp[PageTemp.find(u'—')+1:len(PageTemp)] if PageTemp2.find(u'{{') < PageTemp2.find(u'}}'): while PageTemp2.find(u'\'\'') != -1 and PageTemp2.find(u'\'\'') < PageTemp2.find(u'{') and PageTemp2.find(u'\'\'') < PageTemp2.find(u'#*'): PageTemp = PageTemp[0:PageTemp.find(u'—')+1+PageTemp2.find(u'\'\'')] + PageTemp[PageTemp.find(u'—')+1+PageTemp2.find(u'\'\'')+2:len(PageTemp)] PageTemp2 = PageTemp[PageTemp.find(u'—')+1:len(PageTemp2)] while PageTemp[PageTemp.find(u'—')+1:PageTemp.find(u'—')+2] == u' ': PageTemp = PageTemp[0:PageTemp.find(u'—')+1] + PageTemp[PageTemp.find(u'—')+2:len(PageTemp)] PageTemp2 = PageTemp[PageTemp.find(u'—')+1:len(PageTemp2)] PageTemp = PageTemp[0:PageTemp.find(u'—')] + u'\n#*:' + PageTemp[PageTemp.find(u'—')+1:PageTemp.find(u'—')+2].upper() + PageTemp[PageTemp.find(u'—')+2:len(PageTemp)]'''if PageTemp.find(u'—') !=-1 and PageTemp.find(u'—') < PageTemp.find(u'\n'): PageTemp2 = PageTemp[0:PageTemp.find(u'—')] if PageTemp2.rfind(u'{{langue|') != PageTemp2.rfind(u'{{langue|fr'): PageTemp2 = PageTemp[PageTemp.find(u'—')+1:len(PageTemp)] if PageTemp2.find(u'{{') < PageTemp2.find(u'}}'): while PageTemp2.find(u'\'\'') != -1 and PageTemp2.find(u'\'\'') < PageTemp2.find(u'{') and PageTemp2.find(u'\'\'') < PageTemp2.find(u'#*'): PageTemp = PageTemp[0:PageTemp.find(u'—')+1+PageTemp2.find(u'\'\'')] + PageTemp[PageTemp.find(u'—')+1+PageTemp2.find(u'\'\'')+2:len(PageTemp)] PageTemp2 = PageTemp[PageTemp.find(u'—')+1:len(PageTemp2)] while PageTemp[PageTemp.find(u'—')+1:PageTemp.find(u'—')+2] == u' ': PageTemp = PageTemp[0:PageTemp.find(u'—')+1] + PageTemp[PageTemp.find(u'—')+2:len(PageTemp)] PageTemp2 = PageTemp[PageTemp.find(u'—')+1:len(PageTemp2)] PageTemp = PageTemp[0:PageTemp.find(u'—')] + u'\n#*:' + PageTemp[PageTemp.find(u'—')+1:PageTemp.find(u'—')+2].upper() + PageTemp[PageTemp.find(u'—')+2:len(PageTemp)]''' PageTemp = PageEnd + PageTemp PageEnd = u'' #raw_input(PageTemp.encode(config.console_encoding, 'replace')[0:1000]) while PageTemp.find(u'Catégorie:Villes') != -1: PageTemp = PageTemp[0:PageTemp.find(u'Catégorie:Villes')] + u'Catégorie:Localités' + PageTemp[PageTemp.find(u'Catégorie:Villes')+len(u'Catégorie:Villes'):len(PageTemp)] (contracted; show full) codelangue = u'conv' EstCodeLangue = u'false' elif position == PageTemp.find(u'{{='): PageTemp2 = PageTemp[position+3:len(PageTemp)] if PageTemp2.find("}}") < PageTemp2.find("|") or PageTemp2.find("|") == -1: if PageTemp.find("{{=") < PageTemp.find("=}}"): codelangue = PageTemp[PageTemp.find("{{=")+3:PageTemp.find("=}}")] EstCodeLangue = u'true'⏎ else: print u'Problème de section dans ' + PageHS.encode(config.console_encoding, 'replace') return else: codelangue = PageTemp[PageTemp.find("{{=")+3:PageTemp.find("{{=")+3+PageTemp2.find("=|")] EstCodeLangue = u'true'⏎ PageTemp = PageTemp[0:position+2] + u'langue|' + codelangue + PageTemp[position+3+PageTemp2.find("}}"):len(PageTemp)] position = PageTemp.find("}}") elif position == PageTemp.find(u'{{langue|'): #print (PageEnd.encode(config.console_encoding, 'replace')[0:1000]) #raw_input (PageTemp[0:position].encode(config.console_encoding, 'replace'))⏎ PageTemp2 = PageTemp[position+len(u'{{langue|'):len(PageTemp)] if PageTemp2.find("}}") < PageTemp2.find("|") or PageTemp2.find("|") == -1: if PageTemp.find(u'{{langue|') < PageTemp.find("}}"): codelangue = PageTemp[PageTemp.find(u'{{langue|')+len(u'{{langue|'):PageTemp.find("}}")] EstCodeLangue = u'true'⏎ else: PageTemp2 = PageTemp[PageTemp.find(u'}}')+2:len(PageTemp)] codelangue = PageTemp[PageTemp.find(u'{{langue|')+len(u'{{langue|'):PageTemp.find(u'}}')+2+PageTemp2.find(u'}}')] EstCodeLangue = u'true'⏎ else: codelangue = PageTemp[PageTemp.find(u'{{langue|')+len(u'{{langue|'):PageTemp.find(u'{{langue|')+len(u'{{langue|')+PageTemp2.find("}}")] EstCodeLangue = u'true'⏎ position = PageTemp.find("}}") elif position == PageTemp.find(u'{{langue}}'): # Recherche d'un codelangue à préciser PageTemp2 = PageTemp[PageTemp.find(u'}}')+2:len(PageTemp)] PageTemp2 = PageTemp[PageTemp.find(u'{{')+2:len(PageTemp)] PageTemp2 = PageTemp[0:PageTemp.find(u'}}')] if PageTemp2.find("|") != -1: codelangue = PageTemp2[PageTemp2.find("|")+1:len(PageTemp2)] EstCodeLangue = u'true'⏎ PageTemp = PageTemp[0:PageTemp.find(u'{{langue}}')] + u'{{langue|' + codelangue + u'}}' + PageTemp[PageTemp.find(u'{{langue}}')+len(u'{{langue}}'):len(PageTemp)] position = PageTemp.find("}}") position = position + 2 PageEnd = PageEnd + PageTemp[0:position] # Transfert vers la page finale de l'article jusqu'au modèle en traitement exclu PageTemp = PageTemp[position:len(PageTemp)] if PageTemp.find(" }}") < PageTemp.find("}}") and PageTemp.find(" }}") != -1 : # Détermination du caractère délimitant la fin du nom du modèle PageTemp = PageTemp[0:PageTemp.find(" }}")] + PageTemp[PageTemp.find(" }}")+1:len(PageTemp)]while PageTemp.find(" }}") < PageTemp.find("}}") and PageTemp.find(" }}") != -1 : PageTemp = PageTemp[0:PageTemp.find(" }}")] + PageTemp[PageTemp.find(" }}")+1:len(PageTemp)] # Modèles imbriqués if PageTemp.find("}}") > PageTemp.find("{{") and PageTemp.find("{{") != -1 : PageEnd = PageEnd + PageTemp[0:PageTemp.find("}}")+2] PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] break if PageTemp.find("|") > PageTemp.find("}}"): position = PageTemp.find("}}") elif PageTemp.find("|") == -1: position = PageTemp.find("}}") else: position = PageTemp.find("|") # Nettoyage de la ponctuation en français while PageTemp.find(u' ,') != -1 and codelangue == u'fr': PageTemp = PageTemp[0:PageTemp.find(u' ,')] + PageTemp[PageTemp.find(u' ,')+1:len(PageTemp)] while PageTemp.find(u' .') != -1 and codelangue == u'fr': PageTemp = PageTemp[0:PageTemp.find(u' .')] + PageTemp[PageTemp.find(u' .')+1:len(PageTemp)] # Nettoyage de certains modèles if PageTemp[0:position] == u'en-conj-rég': PageTemp2 = PageTemp[position+1:len(PageTemp)] if PageTemp2.find(u'|') < PageTemp2.find(u'}}') and PageTemp2.find(u'|') != -1: if PageTemp2[0:PageTemp2.find(u'|')] == PageHS: PageTemp = PageTemp[0:position] + PageTemp[position+1+PageTemp2.find(u'|'):len(PageTemp)] else: if PageTemp2[0:PageTemp2.find(u'}}')] == PageHS: PageTemp = PageTemp[0:position] + PageTemp[position+1+PageTemp2.find(u'}}'):len(PageTemp)] #raw_input(PageEnd.encode(config.console_encoding, 'replace')[0:1000]) # Comparaison avec chaque modèle connu #print PageTemp[0:position].encode(config.console_encoding, 'replace') for p in range(1,limit5): if Modele[p] == PageTemp[0:position]: #raw_input(codelangue) # Modèles spéciaux if not codelangue: #print(PageTemp.encode(config.console_encoding, 'replace')[0:1000]) #raw_input("codelangue nul") if Modele[p] == u'formater': return elif Modele[p] == u'ébauche': return else: print u'Code langue manquant dans :' print Modele[p].encode(config.console_encoding, 'replace') PageEnd = u'{{formater|Code langue manquantprint (PageEnd.encode(config.console_encoding, 'replace')[0:1000]) #print (PageTemp[0:position].encode(config.console_encoding, 'replace')) # Comparaison avec chaque modèle connu for p in range(1,limit6): if Modele[p] == PageTemp[0:position]: #print (Modele[p].encode(config.console_encoding, 'replace')) # Modèles spéciaux if not codelangue: if p < limit1 or p >= limit3: PageEnd = u'{{formater|Code langue manquant dans ' + Modele[p] + u'}}\n' + PageBegin sauvegarde(page,PageEnd) return if Modele[p] == u'term' or Modele[p] == u'terme' or Modele[p] == u'régio' or Modele[p] == u'région': ModeleT = PageTemp[PageTemp.find("|")+1:PageTemp.find("}}")] for p2 in range(1,limit56): if Modele[p2] == ModeleT or Modele[p2] == ModeleT[0:1].lower() + ModeleT[1:len(ModeleT)]: if EstCodeLangue == "false": PageEnd = PageEnd + Modele[p2] + "|nocat=1}}" else: PageEnd = PageEnd + Modele[p2] + "|" + codelangue + "}}" PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] break break elif Modele[p] == u'pron' or Modele[p] == u'dénominal de' or Modele[p] == u'déverbal de' or Modele[p] == u'superlatif de': # Trie des lettres de l'API if Modele[p] == u'pron': while PageTemp.find(u'\'') != -1 and PageTemp.find(u'\'') < PageTemp.find(u'}}'): PageTemp = PageTemp[0:PageTemp.find("\'")] + u'ˈ' + PageTemp[PageTemp.find(u'\'')+1:len(PageTemp)] while PageTemp.find(u'ε') != -1 and PageTemp.find(u'ε') < PageTemp.find(u'}}'): PageTemp = PageTemp[0:PageTemp.find(u'ε')] + u'ɛ' + PageTemp[PageTemp.find(u'ε')+1:len(PageTemp)] while PageTemp.find(u'ε̃') != -1 and PageTemp.find(u'ε̃') < PageTemp.find(u'}}'): PageTemp = PageTemp[0:PageTemp.find(u'ε̃')] + u'ɛ̃' + PageTemp[PageTemp.find(u'ε̃')+1:len(PageTemp)] if PageTemp[0:8] == u'pron||}}': PageEnd = PageEnd + PageTemp[0:PageTemp.find("}}")] + codelangue + "}}" PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] break elif PageTemp[position:position+3] == u'|}}' or PageTemp[position:position+4] == u'| }}': PageEnd = PageEnd + PageTemp[0:position] + "||" + codelangue + "}}" PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] break elif (PageTemp.find("lang=") != -1 and PageTemp.find("lang=") < PageTemp.find("}}")): PageEnd = PageEnd + PageTemp[0:PageTemp.find("}}")+2] PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] break elif position == PageTemp.find(u'|'): PageTemp2 = PageTemp[position+1:PageTemp.find("}}")] if PageTemp2.find(u'|') == -1: PageEnd = PageEnd + PageTemp[0:PageTemp.find("}}")] + "|" + codelangue + "}}" PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] else: PageEnd = PageEnd + PageTemp[0:PageTemp.find("}}")+2] PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] break elif position == PageTemp.find("}}"): PageEnd = PageEnd + PageTemp[0:position] + "||" + codelangue + "}}" PageTemp = PageTemp[position+2:len(PageTemp)] break else: PageEnd = PageEnd + PageTemp[0:PageTemp.find("}}")] + "|" + codelangue + "}}" PageTemp = PageTemp[PageTemp.find("}}"if codelangue != u'conv': # Trie des lettres de l'API if Modele[p] == u'pron': while PageTemp.find(u'\'') != -1 and PageTemp.find(u'\'') < PageTemp.find(u'}}'): PageTemp = PageTemp[0:PageTemp.find(u'\'')] + u'ˈ' + PageTemp[PageTemp.find(u'\'')+1:len(PageTemp)] while PageTemp.find(u'ˈˈˈ') != -1 and PageTemp.find(u'ˈˈˈ') < PageTemp.find(u'}}'): PageTemp = PageTemp[0:PageTemp.find(u'ˈˈˈ')] + u'\'\'\'' + PageTemp[PageTemp.find(u'ˈˈˈ')+3:len(PageTemp)] while PageTemp.find(u'ε') != -1 and PageTemp.find(u'ε') < PageTemp.find(u'}}'): PageTemp = PageTemp[0:PageTemp.find(u'ε')] + u'ɛ' + PageTemp[PageTemp.find(u'ε')+1:len(PageTemp)] while PageTemp.find(u'ε̃') != -1 and PageTemp.find(u'ε̃') < PageTemp.find(u'}}'): PageTemp = PageTemp[0:PageTemp.find(u'ε̃')] + u'ɛ̃' + PageTemp[PageTemp.find(u'ε̃')+1:len(PageTemp)] if PageTemp[0:8] == u'pron||}}': PageEnd = PageEnd + PageTemp[0:PageTemp.find("}}")] + codelangue + "}}" PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] break elif PageTemp[position:position+3] == u'|}}' or PageTemp[position:position+4] == u'| }}': PageEnd = PageEnd + PageTemp[0:position] + "||" + codelangue + "}}" PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] break elif (PageTemp.find("lang=") != -1 and PageTemp.find("lang=") < PageTemp.find("}}")): PageEnd = PageEnd + PageTemp[0:PageTemp.find("}}")+2] PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] break elif position == PageTemp.find(u'|'): PageTemp2 = PageTemp[position+1:PageTemp.find("}}")] if PageTemp2.find(u'|') == -1: PageEnd = PageEnd + PageTemp[0:PageTemp.find("}}")] + "|" + codelangue + "}}" PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] else: PageEnd = PageEnd + PageTemp[0:PageTemp.find("}}")+2] PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] break elif position == PageTemp.find("}}"): PageEnd = PageEnd + PageTemp[0:position] + "||" + codelangue + "}}" PageTemp = PageTemp[position+2:len(PageTemp)] break else: PageEnd = PageEnd + PageTemp[0:PageTemp.find("}}")] + "|" + codelangue + "}}" PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] break else: PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'}}')+2] PageTemp = PageTemp[PageTemp.find(u'}}')+2:len(PageTemp)] break #elif Modele[p] == u'fr-rég' or Modele[p] == u'fr-inv': synchro de la pronociation avec {{pron| elif Modele[p] == u'm' or Modele[p] == u'f': if trad == u'true' or (codelangue != u'en' and codelangue != u'zh' and codelangue != u'ja' and codelangue != u'ko'): PageEnd = PageEnd + PageTemp[0:PageTemp.find("}}")+2] else: (contracted; show full) elif PageTemp[position+5:position+8] == "num" and PageTemp[position+5:position+9] != "num}": PageEnd = PageEnd + PageTemp[0:position] + "|" + codelangue + "|" + PageTemp[position+5:position+10] + "}}" else: PageEnd = PageEnd + PageTemp[0:position] + "|" + codelangue + "}}" elif p < limit2: # Si on est dans un autre paragraphParagraphe sans code langue EstCodeLangue = "false" trad = u'false' PageEnd = PageEnd + PageTemp[0:position] + "}}" elif p < limit3: # Si on est dans une ébauche PageEnd = PageEnd + PageTemp[0:position] + "|" + codelangue + "}}" elif p < limit4:Paragraphe sans code langue contenant un modèle EstCodeLangue = "false" trad = u'false' if PageTemp.find(u'}}') > PageTemp.find(u'{{') and PageTemp.find(u'{{') != -1: PageTemp2 = PageTemp[PageTemp.find(u'}}')+2:len(PageTemp)] PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'}}')+2+PageTemp2.find(u'}}')+2] PageTemp = PageTemp[PageTemp.find(u'}}')+2+PageTemp2.find(u'}}')+2:len(PageTemp)] break else: PageEnd = PageEnd + PageTemp[0:position] + "}}" elif p < limit4: # ébauche : catégorisée quel que soit EstCodeLangue if codelangue: PageEnd = PageEnd + PageTemp[0:position] + "|" + codelangue + "}}" else: PageEnd = PageEnd + PageTemp[0:position] + "|nocat=1}}" elif p < limit5: # Paragraphe avec code langue if EstCodeLangue == "true": PageEnd = PageEnd + PageTemp[0:position] + "|" + codelangue + "}}" else: PageEnd = PageEnd + PageTemp[0:position] + "|nocat=1}}" else: # Paragraphe régional if PageEnd.rfind(u'{{') != -1: PageEnd2 = PageEnd[0:PageEnd.rfind(u'{{')] if EstCodeLangue == "true" and (PageEnd2.rfind(u'{{') != PageEnd2.rfind(u'{{pron|') or PageEnd.rfind(u'{{pron|') < PageEnd.rfind(u'\n') or PageEnd2.rfind(u'{{pron|') == -1) and ((PageTemp.find(u'{{') != PageTemp.find(u'{{pron|') or PageTemp.find(u'{{pron|') > PageTemp.find(u'\n')) or PageTemp.(contracted; show full) except wikipedia.IsRedirectPage: return except wikipedia.LockedPage: return except pywikibot.EditConflict: return except wikipedia.ServerError: return except wikipedia.BadTitle: return # Lancement TraitementPage = modification(u'Utilisateur:JackBot/test') '''⏎ TraitementCategorie = crawlerCat(u'Catégorie:Wiktionnaire:Codes langue manquants',True,u'') TraitementCategorie = crawlerCat(u'Catégorie:Wiktionnaire:Flexions à vérifier',True,u'') TraitementLiens = crawlerLink(u'Modèle:1ergroupe',u'') TraitementLiens = crawlerLink(u'Modèle:2egroupe',u'') TraitementLiens = crawlerLink(u'Modèle:3egroupe',u'') TraitementLiens = crawlerLink(u'Modèle:trad',u'') TraitementCategorie = crawlerCat(u'Catégorie:Appels de modèles incorrects:fr-verbe-flexion incomplet',False,u'') ⏎ TraitementLiens = crawlerLink(u'Modèle:trad-début',u'putréfaction') TraitementLiens = crawlerLink(u'Modèle:(',u'') TraitementLiens = crawlerLink(u'Modèle:-flex-nom-',u'') TraitementLiens = crawlerLink(u'Modèle:clé de tri',u'')⏎ ⏎ ''' TraitementLiens = crawlerLink(u'Modèle:(',u'impero') TraitementLiens = crawlerLink(u'Modèle:-flex-nom-',u'') TraitementLiens = crawlerLink(u'Modèle:clé de tri',u'') TraitementLiens = crawlerLink(u'Modèle:trad-début',u'') TraitementPage = modification(u'ejicio') TraitementPage = modification(u'Utilisateur:JackBot/test') TraitementFichier = crawlerFile('articles_list.txt') TraitementUtilisateur = crawlerUser(u'User:JackBot') TraitementCategorie = crawlerCat(u'Catégorie:Appels de modèles incorrects',True) TraitementRecherche = crawlerSearch(u'chinois') TraitementUtilisateur = crawlerUser(u'Utilisateur:JackBot') TraitementTout = crawlerAll(u'') while 1: TraitementRC = crawlerRC() ''' </source> All content in the above text box is licensed under the Creative Commons Attribution-ShareAlike license Version 4 and was originally sourced from https://fr.wiktionary.org/w/index.php?diff=prev&oldid=11888950.
![]() ![]() This site is not affiliated with or endorsed in any way by the Wikimedia Foundation or any of its affiliates. In fact, we fucking despise them.
|