Difference between revisions 12555161 and 13869130 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 limit6=9146 Modele = range(1, limit6+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-' (contracted; show full)Modele[774] = u'déverbal' Modele[775] = u'superlatif' Modele[776] = u'combat' Modele[777] = u'sports de combat' Modele[778] = u'capoeira' Modele[779] = u'aïkido' Modele[780] = u'karaté' Modele[781] = u'argot militaire' Modele[782] = u'argot polytechnicien'⏎ limit5 = 7813 # non traités #Modele[] = u'spécialement' #Modele[] = u'T' # 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' Modele[788] = u'Amérique centrale' Modele[789] = u'Amérique du Nord' Modele[790] = u'Amérique du Sud' Modele[791] = u'Amérique latine' (contracted; show full)Modele[905] = u'CA' Modele[906] = u'US' Modele[907] = u'USA' Modele[908] = u'UK' Modele[909] = u'GB' Modele[910] = u'AU' Modele[911] = u'NZ' Modele[912] = u'IE' ⏎ Modele[913] = u'Acadie' Modele[914] = u'Afrique' # 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)Template[64] = u'{{figuratively ' TemplateFR[64] = u'{{figuré' Template[65] = u'{{trans-see' TemplateFR[65] = u'{{cf' # Modification du wiki def modification(PageHS): #summary = u'[[Wiktionnaire:Structure des articles|Autoformatage]]'⏎ print(PageHS.encode(config.console_encoding, 'replace')) PageEnd = u''⏎ page = Page(site,PageHS) if page.exists(): if page.namespace() !=0 and PageHS != u'Utilisateur:JackBot/test': return else: try: PageBegin = page.get() except wikipedia.NoPage: ⏎ print "NoPage l 1109"⏎ return except wikipedia.IsRedirectPage: ⏎ print "IsRedirect l 1112"⏎ return except wikipedia.LockedPage: return else:⏎ print "Locked l 1115" return else: print "NoPage l 1118" return PageTemp = PageBegin while PageTemp.find(u'{{ ') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{ ')+2] + PageTemp[PageTemp.find(u'{{ ')+3:len(PageTemp)] if PageTemp.find(u'{{formater') != -1 or PageTemp.find(u'{{supp') != -1: ⏎ print "Page en suppression"⏎ return # Traductions des modèles des autres Wiktionnaires for p in range(1,LimitTemplate): while PageTemp.find(Template[p]) != -1: PageTemp = PageTemp[0:PageTemp.find(Template[p])] + TemplateFR[p] + PageTemp[PageTemp.find(Template[p])+len(Template[p]):len(PageTemp)] # Ajout des {{voir}} if PageTemp.find(u'{{voir|') == -1 and PageTemp.find(u'{{voir/') == -1: PageVoir = u'' # Liste de toutes les pages potentiellement "à voir" (contracted; show full) PageTempMod = PageTempModBegin if PageTempMod.find(PageHS) == -1: PageTempMod = PageTempMod[0:PageTempMod.find(u'}}')] + u'|' + PageHS + PageTempMod[PageTempMod.find(u'}}'):len(PageTempMod)] if PageTempMod.find(PageVoir) == -1: PageTempMod = PageTempMod[0:PageTempMod.find(u'}}')] + u'|' + PageVoir + PageTempMod[PageTempMod.find(u'}}'):len(PageTempMod)] if PageTempMod != PageTempModBegin: sauvegarde(pageMod,PageTempMod , summary) PagesCleRestant = u'' break # Filtre des doublons if PagesVoir != u'': PagesVoir = PagesVoir + u'|' while PagesVoir.find(u'|') != -1: if PagesCleTotal.find(PagesVoir[0:PagesVoir.find(u'|')]) == -1: PagesCleTotal = PagesCleTotal + u'|' + PagesVoir[0:PagesVoir.find(u'|')] PagesVoir = PagesVoir[PagesVoir.find(u'|')+1:len(PagesVoir)] #raw_input(PagesCleTotal.encode(config.console_encoding, 'replace')) # Balayage de toutes les pages "à voir" if PagesCleTotal != u'': while PagesCleTotal[0:1] == u'|': PagesCleTotal = PagesCleTotal[1:len(PagesCleTotal)] if PagesCleTotal != PageHS: PagesCleRestant = PagesCleTotal + u'|' while PagesCleRestant.find(u'|') != -1: HS = u'False' PageCourante = PagesCleRestant[0:PagesCleRestant.find(u'|')] if PageCourante == u'': break PagesCleRestant = PagesCleRestant[PagesCleRestant.find(u'|')+1:len(PagesCleRestant)] PageCle = Page(site,PageCourante) try: PageTempCleBegin = PageCle.get() except wikipedia.NoPage: HS = u'True' except wikipedia.IsRedirectPage: HS = u'True'⏎ if HS == u'False': PageTempCle = PageTempCleBegin if PageTempCle.find(u'{{voir|') != -1: if PagesCleTotal.find(u'|' + PageCourante) != -1: PageTempCle2 = PageTempCle[PageTempCle.find(u'{{voir|')+len(u'{{voir|'):len(PageTempCle)] PageTempCle = PageTempCle[0:PageTempCle.find(u'{{voir|')+len(u'{{voir|')] + PagesCleTotal[0:PagesCleTotal.find(u'|' + PageCourante)] + PagesCleTotal[PagesCleTotal.find(u'|' + PageCourante)+len(u'|' + PageCourante):len(PagesCleTotal)] + PageTempCle[PageTempCle.find(u'{{voir|')+len(u'{{voir|')+PageTempCle2.find(u'}}'):len(PageTempCle)] else: # Cas du premier PageTempCle2 = PageTempCle[PageTempCle.find(u'{{voir|')+len(u'{{voir'):len(PageTempCle)] PageTempCle = PageTempCle[0:PageTempCle.find(u'{{voir|')+len(u'{{voir|')] + PagesCleTotal[len(PageCourante):len(PagesCleTotal)] + PageTempCle[PageTempCle.find(u'{{voir|')+len(u'{{voir')+PageTempCle2.find(u'}}'):len(PageTempCle)] if PageTempCle != PageTempCleBegin: if PageCourante == PageHS: PageTemp = PageTempCle else: sauvegarde(PageCle,PageTempCle, summary) else: if PagesCleTotal.find(u'|' + PageCourante) != -1: PageTempCle = u'{{voir|' + PagesCleTotal[0:PagesCleTotal.find(u'|' + PageCourante)] + PagesCleTotal[PagesCleTotal.find(u'|' + PageCourante)+len(u'|' + PageCourante):len(PagesCleTotal)] + u'}}\n' + PageTempCle else: # Cas du premier PageTempCle = u'{{voir' + PagesCleTotal[len(PageCourante):len(PagesCleTotal)] + u'}}\n' + PageTempCle if PageCourante == PageHS: PageTemp = PageTempCle else: sauvegarde(PageCle,PageTempCle, summary) elif PageTemp.find(u'{{voir|') != -1: PageTemp2 = PageTemp[PageTemp.find(u'{{voir|'):len(PageTemp)] if PageTemp2.find(u'|' + PageHS + u'|') != -1 and PageTemp2.find(u'|' + PageHS + u'|') < PageTemp2.find(u'}}'): PageTemp = PageTemp[0:PageTemp.find(u'{{voir|') + PageTemp2.find(u'|' + PageHS + u'|')] + PageTemp[PageTemp.find(u'{{voir|') + PageTemp2.find(u'|' + PageHS + u'|')+len(u'|' + PageHS):len(PageTemp)] if PageTemp2.find(u'|' + PageHS + u'}') != -1 and PageTemp2.find(u'|' + PageHS + u'}') < PageTemp2.find(u'}}'): PageTemp = PageTemp[0:PageTemp.find(u'{{voir|') + PageTemp2.find(u'|' + PageHS + u'}')] + PageTemp[PageTemp.find(u'{{voir|') + PageTemp2.find(u'|' + PageHS + u'}')+len(u'|' + PageHS):len(PageTemp)] # 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)] # Clés de tri if PageTemp.find(u'{{clé de tri') == -1 and PageTemp.find(u'{{clef de tri') == -1: ClePage = CleDeTri(PageHS) if ClePage != u'' and ClePage != PageHS: if PageTemp.find(u'[[Catégorie:') != -1: PageTemp = PageTemp[0:PageTemp.find(u'[[Catégorie:')] + u'\n{{clé de tri|' + ClePage + u'}}\n' + PageTemp[PageTemp.find(u'[[Catégorie:'):len(PageTemp)] elif PageTemp.find(u'[[Category:') != -1: (contracted; show full) if CleDeTri(PageHS) != ClePage: print (u'Fausse clé de tri dans :') print (PageHS.encode(config.console_encoding, 'replace')) print (ClePage.encode(config.console_encoding, 'replace')) 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)] summary = summary + u', {{clé de tri}} inutile'⏎ if PageTemp.find(u'{{clé de tri|' + PageHS.lower() + u'}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{clé de tri|' + PageHS.lower() + u'}}')] + PageTemp[PageTemp.find(u'{{clé de tri|' + PageHS.lower() + u'}}')+len(u'{{clé de tri|' + PageHS.lower() + u'}}'):len(PageTemp)] ⏎ # Nettoyage des doublons while PageTemp.find(u'{{R:DAF8}}\n{{Import:DAF8}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{R:DAF8}}\n{{Import:DAF8}}')] + PageTemp[PageTemp.find(u'{{R:DAF8}}\n{{Import:DAF8}}')+len(u'{{R:DAF8}}\n'):len(PageTemp)] while PageTemp.find(u'{{Import:DAF8}}\n{{R:DAF8}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{Import:DAF8}}\n{{R:DAF8}}')+len(u'{{Import:DAF8}}')] + PageTemp[PageTemp.find(u'{{Import:DAF8}}\n{{R:DAF8}}')+len(u'{{Import:DAF8}}\n{{R:DAF8}}'):len(PageTemp)] while PageTemp.find(u'{{R:Littré}}\n{{Import:Littré}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{R:Littré}}\n{{Import:Littré}}')] + PageTemp[PageTemp.find(u'{{R:Littré}}\n{{Import:Littré}}')+len(u'{{R:Littré}}\n'):len(PageTemp)] while PageTemp.find(u'{{Import:Littré}}\n{{R:Littré}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{Import:Littré}}\n{{R:Littré}}')+len(u'{{Import:Littré}}')] + PageTemp[PageTemp.find(u'{{Import:Littré}}\n{{R:Littré}}')+len(u'{{Import:Littré}}\n{{R:Littré}}'):len(PageTemp)]⏎ summary = summary + u', {{clé de tri}} inutile'⏎ # Remplacements consensuels while PageTemp.find(u' ') != -1: PageTemp = PageTemp[0:PageTemp.find(u' ')] + u' ' + PageTemp[PageTemp.find(u' ')+len(u' '):len(PageTemp)] while PageTemp.find(u'à') != -1: PageTemp = PageTemp[0:PageTemp.find(u'à')] + u'à' + PageTemp[PageTemp.find(u'à')+len(u'à'):len(PageTemp)] (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[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]){{PAGENAME}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{PAGENAME}}')] + u'{{subst:PAGENAME}}' + PageTemp[PageTemp.find(u'{{PAGENAME}}')+len(u'{{PAGENAME}}'):len(PageTemp)] summary = summary + u', {{subst:PAGENAME}}' 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)] while PageTemp.find(u'\n{{WP') != -1: PageTemp = PageTemp[0:PageTemp.find(u'\n{{WP')+1] + u'*' + PageTemp[PageTemp.find(u'\n{{WP')+1:len(PageTemp)] (contracted; show full) while PageTemp.find(u'{{figuré|fr}} {{métaphore|fr}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{figuré|fr}} {{métaphore|fr}}')] + u'{{figuré|fr}}' + PageTemp[PageTemp.find(u'{{figuré|fr}} {{métaphore|fr}}')+len(u'{{figuré|fr}} {{métaphore|fr}}'):len(PageTemp)] while PageTemp.find(u'{{PAGENAME}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{PAGENAME}}')] + u'{{subst:PAGENAME}}' + PageTemp[PageTemp.find(u'{{PAGENAME}}')+len(u'{{PAGENAME}}'):len(PageTemp)]⏎ while PageTemp.find(u'{{trad/zh') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{trad/zh')] + u'{{trad/défaut' + PageTemp[PageTemp.find(u'{{trad/zh')+len(u'{{trad/zh'):len(PageTemp)] while PageTemp.find(u'{{{{T|trad') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{{{T|trad')+2] + PageTemp[PageTemp.find(u'{{{{T|trad')+6:len(PageTemp)] while PageTemp.find(u'|type=du nom') != -1: (contracted; show full) while PageTemp.find(u'{{-car-}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{-car-}}')] + u'{{caractère}}' + PageTemp[PageTemp.find(u'{{-car-}}')+len(u'{{-car-}}'):len(PageTemp)] while PageTemp.find(u'{{-note-|s=s}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{-note-|s=s}}')] + u'{{-notes-}}' + PageTemp[PageTemp.find(u'{{-note-|s=s}}')+len(u'{{-note-|s=s}}'):len(PageTemp)] ⏎ ⏎ # Codes langues while PageTemp.find(u'=prv=') != -1: PageTemp = PageTemp[0:PageTemp.find(u'=prv=')] + u'langue|oc' + PageTemp[PageTemp.find(u'=prv=')+len(u'=prv='):len(PageTemp)] AncienModele = range(1, 113) NouveauModele = range(1, 113) AncienModele[1] = u'ko-hanja' NouveauModele[1] = u'ko-Hani' AncienModele[2] = u'be-x-old' NouveauModele[2] = u'be-tarask' AncienModele[3] = u'zh-min-nan' NouveauModele[3] = u'nan' AncienModele[4] = u'lsf' NouveauModele[4] = u'fsl' AncienModele[5] = u'arg' NouveauModele[5] = u'an' AncienModele[6] = u'nav' NouveauModele[6] = u'nv' AncienModele[7] = u'prv' NouveauModele[7] = u'oc' AncienModele[8] = u'nds-NL' NouveauModele[8] = u'nds-nl' AncienModele[9] = u'gsw-FR' NouveauModele[9] = u'gsw-fr' for p in range(1,10AncienModele[10] = u'zh-sc' NouveauModele[10] = u'zh-Hans' AncienModele[11] = u'roa-rup' NouveauModele[11] = u'rup' for p in range(1,12): while PageTemp.find(u'|' + AncienModele[p] + u'|') != -1: PageTemp = PageTemp[0:PageTemp.find(u'|' + AncienModele[p] + u'|')+1] + NouveauModele[p] + PageTemp[PageTemp.find(u'|' + AncienModele[p] + u'|')+len(u'|' + AncienModele[p] + u'|')-1:len(PageTemp)] while PageTemp.find(u'|' + AncienModele[p] + u'}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'|' + AncienModele[p] + u'}')+1] + NouveauModele[p] + PageTemp[PageTemp.find(u'|' + AncienModele[p] + u'}')+len(u'|' + AncienModele[p] + u'}')-1:len(PageTemp)] while PageTemp.find(u'{' + AncienModele[p] + u'|') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{' + AncienModele[p] + u'|')+1] + NouveauModele[p] + PageTemp[PageTemp.find(u'{' + AncienModele[p] + u'|')+len(u'{' + AncienModele[p] + u'|')-1:len(PageTemp)] while PageTemp.find(u'{' + AncienModele[p] + u'}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{' + AncienModele[p] + u'}')+1] + NouveauModele[p] + PageTemp[PageTemp.find(u'{' + AncienModele[p] + u'}')+len(u'{' + AncienModele[p] + u'}')-1:len(PageTemp)] while PageTemp.find(u'lang=sgs') != -1: # {{WP|lang= PageTemp = PageTemp[0:PageTemp.find(u'lang=sgs')] + u'lang=bat-smg' + PageTemp[PageTemp.find(u'lang=sgs')+len(u'lang=sgs'):len(PageTemp)] # URL de références while PageTemp.find(u'{{-réf-}}\n{{R:DAF8}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{R:DAF8}}')] + u'*' + PageTemp[PageTemp.find(u'{{R:DAF8}}'):len(PageTemp)] while PageTemp.find(u'{{-réf-}}\n{{Import:DAF8}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{Import:DAF8}}')] + u'*' + PageTemp[PageTemp.find(u'{{Import:DAF8}}'):len(PageTemp)] while PageTemp.find(u'{{-réf-}}\n{{Import:Littré}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{Import:Littré}}')] + u'*' + PageTemp[PageTemp.find(u'{{Import:Littré}}'):len(PageTemp)] while PageTemp.find(u'=' + AncienModele[p] + u'}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'=' + AncienModele[p] + u'}')+1] + NouveauModele[p] + PageTemp[PageTemp.find(u'=' + AncienModele[p] + u'}')+len(u'=' + AncienModele[p] + u'}')-1:len(PageTemp)] while PageTemp.find(u'{{WP|lang=sgs') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{WP|lang=sgs')] + u'{{WP|lang=bat-smg' + PageTemp[PageTemp.find(u'{{WP|lang=sgs')+len(u'{{WP|lang=sgs'):len(PageTemp)] # URL de références : elles ne contiennent pas les diacritiques des {{PAGENAME}} while PageTemp.find(u'[http://www.sil.org/iso639-3/documentation.asp?id=') != -1: PageTemp2 = PageTemp[PageTemp.find(u'[http://www.sil.org/iso639-3/documentation.asp?id=')+len(u'[http://www.sil.org/iso639-3/documentation.asp?id='):len(PageTemp)] PageTemp = PageTemp[0:PageTemp.find(u'[http://www.sil.org/iso639-3/documentation.asp?id=')] + u'{{R:SIL|' + PageTemp2[0:PageTemp2.find(u' ')] + u'}}' + PageTemp2[PageTemp2.find(u']')+1:len(PageTemp2)] summary = summary + u', ajout de {{R:SIL}}'⏎ while PageTemp.find(u'[http://www.cnrtl.fr/definition/') != -1: PageTemp2 = PageTemp[PageTemp.find(u'[http://www.cnrtl.fr/definition/')+len(u'[http://www.cnrtl.fr/definition/'):len(PageTemp)] PageTemp = PageTemp[0:PageTemp.find(u'[http://www.cnrtl.fr/definition/')] + u'{{R:TLFi|' + PageTemp2[0:PageTemp2.find(u' ')] + u'}}' + PageTemp2[PageTemp2.find(u']')+1:len(PageTemp2)] ⏎ PageTemp = PageEnd + PageTemp PageEnd = u'' summary = summary + u', ajout de {{R:TLFi}}' while PageTemp.find(u'[http://www.mediadico.com/dictionnaire/definition/') != -1: PageTemp2 = PageTemp[PageTemp.find(u'[http://www.mediadico.com/dictionnaire/definition/')+len(u'[http://www.mediadico.com/dictionnaire/definition/'):len(PageTemp)] PageTemp = PageTemp[0:PageTemp.find(u'[http://www.mediadico.com/dictionnaire/definition/')] + u'{{R:Mediadico|' + PageTemp2[0:PageTemp2.find(u'/1')] + u'}}' + PageTemp2[PageTemp2.find(u']')+1:len(PageTemp2)] summary = summary + u', ajout de {{R:Mediadico}}' while PageTemp.find(u'{{R:DAF8}}\n{{Import:DAF8}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{R:DAF8}}\n{{Import:DAF8}}')] + PageTemp[PageTemp.find(u'{{R:DAF8}}\n{{Import:DAF8}}')+len(u'{{R:DAF8}}\n'):len(PageTemp)] summary = summary + u', doublon {{R:DAF8}}' while PageTemp.find(u'{{Import:DAF8}}\n{{R:DAF8}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{Import:DAF8}}\n{{R:DAF8}}')+len(u'{{Import:DAF8}}')] + PageTemp[PageTemp.find(u'{{Import:DAF8}}\n{{R:DAF8}}')+len(u'{{Import:DAF8}}\n{{R:DAF8}}'):len(PageTemp)] summary = summary + u', doublon {{R:DAF8}}' while PageTemp.find(u'{{R:Littré}}\n{{Import:Littré}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{R:Littré}}\n{{Import:Littré}}')] + PageTemp[PageTemp.find(u'{{R:Littré}}\n{{Import:Littré}}')+len(u'{{R:Littré}}\n'):len(PageTemp)] summary = summary + u', doublon {{R:Littré}}' while PageTemp.find(u'{{Import:Littré}}\n{{R:Littré}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{Import:Littré}}\n{{R:Littré}}')+len(u'{{Import:Littré}}')] + PageTemp[PageTemp.find(u'{{Import:Littré}}\n{{R:Littré}}')+len(u'{{Import:Littré}}\n{{R:Littré}}'):len(PageTemp)] summary = summary + u', doublon {{R:Littré}}' while PageTemp.find(u'{{-réf-}}\n{{R:DAF8}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{R:DAF8}}')] + u'*' + PageTemp[PageTemp.find(u'{{R:DAF8}}'):len(PageTemp)] while PageTemp.find(u'{{-réf-}}\n{{Import:DAF8}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{Import:DAF8}}')] + u'*' + PageTemp[PageTemp.find(u'{{Import:DAF8}}'):len(PageTemp)] while PageTemp.find(u'{{-réf-}}\n{{Import:Littré}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{Import:Littré}}')] + u'*' + PageTemp[PageTemp.find(u'{{Import:Littré}}'):len(PageTemp)]⏎ # Classement des traductions PageEnd = u''⏎ while PageTemp.find(u'{{T|') != -1: PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'{{T|')] PageTemp = PageTemp[PageTemp.find(u'{{T|'):len(PageTemp)] # Rangement de la ligne de la traduction par ordre alphabétique de la langue dans PageEnd langue1 = PageTemp[PageTemp.find(u'{{T|')+4:PageTemp.find(u'}')] if langue1.find(u'|') != -1: langue1 = langue1[0:langue1.find(u'|')] if langue1 != u'': Langue1 = Page(site,u'Modèle:' + langue1) try: PageTemp2 = Langue1.get() except wikipedia.NoPage: return except wikipedia.IsRedirectPage: return except wikipedia.ServerError: return except wikipedia.BadTitle: ⏎ print "NoPage l 1521 : " + langue1 return except wikipedia.IsRedirectPage: PageTemp2 = Langue1.getRedirectTarget().title() + u'<noinclude>' except wikipedia.ServerError: print "ServerError l 1527 : " + langue1 return except wikipedia.BadTitle: print "BadTitle l 1530 : " + langue1⏎ return if PageTemp2.find(u'<noinclude>') != -1: langue = CleDeTri(PageTemp2[0:PageTemp2.find(u'<noinclude>')]) langue2 = u'zzz' TradCourante = PageEnd[PageEnd.rfind(u'\n'):len(PageEnd)] + PageTemp[0:PageTemp.find(u'\n')] TradSuivantes = u'' PageEnd = PageEnd[0:PageEnd.rfind(u'\n')] PageTemp = PageTemp[PageTemp.find(u'\n'):len(PageTemp)] while PageEnd.rfind(u'{{') != PageEnd.rfind(u'{{-trad-') and PageEnd.rfind(u'{{') != PageEnd.rfind(u'{{trad-début') and PageEnd.rfind(u'{{') != PageEnd.rfind(u'{{trad-fin') and PageEnd.rfind(u'{{') != PageEnd.rfind(u'{{trad-trier') and langue2 > langue and PageEnd.rfind(u'{{T') != PageEnd.rfind(u'{{T|conv') and PageEnd.rfind(u'{{') != PageEnd.rfind(u'{{(') and (PageEnd.rfind(u'{{') > PageEnd.rfind(u'|nocat') or PageEnd.rfind(u'|nocat') == -1): langue2 = PageEnd[PageEnd.rfind(u'{{T|')+len(u'{{T|'):len(PageEnd)] langue2 = langue2[0:langue2.find(u'}}')] if langue2.find(u'|') != -1: langue2 = langue2[0:langue2.find(u'|')] Langue2 = Page(site,u'Modèle:' + langue2) try: PageTemp3 = Langue2.get() except wikipedia.NoPage: return except wikipedia.ServerError: return except wikipedia.IsRedirectPage: print u'Redirection de⏎ print "NoPage l 1546 : " + langue2 return except wikipedia.ServerError: print "ServerError l 1549 : " + langue2 return except wikipedia.IsRedirectPage: print u'Redirection l 1552 : ' + langue2 return if PageTemp3.find(u'<noinclude>') != -1: langue2 = CleDeTri(PageTemp3[0:PageTemp3.find(u'<noinclude>')]) if langue2 > langue: summary = summary + ', traduction ' + langue2 + u'>' + langue⏎ #print langue2 + u' > ' + langue if PageEnd.rfind(u'\n') > PageEnd.rfind(u'trad-début'): TradSuivantes = PageEnd[PageEnd.rfind(u'\n'):len(PageEnd)] + TradSuivantes PageEnd = PageEnd[0:PageEnd.rfind(u'\n')] else: # Cas de la première de la liste TradCourante = PageEnd[PageEnd.rfind(u'\n'):len(PageEnd)] + TradCourante PageEnd = PageEnd[0:PageEnd.rfind(u'\n')] (contracted; show full);\'\', {{f}} : \'\'\'' + PageHS + u'te]], {{fplur}} : \'\'\'' + PageHS + u'tes]])')+len(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'te]], {{fplur}} : \'\'\'' + PageHS + u'tes]])')+1:len(PageTemp)] ''' Anagrammes beaucoup trop long ( > 1 h par page), tester if len(PageHS) < 5 dans les vraies pages : # Ajout des anagrammes francophones (prévoir si {{lien|}} pour les autres) if PageTemp.find(u'{{-anagr-}}') == -1 and PageHS.find(u' ') == -1 and PageTemp.find(u'{{langue|fr}}') != -1: anagrammes = anagram(PageHS) ListeAnagrammes = u'' for anagramme in anagrammes: print anagramme pageAnagr = Page(site,anagramme) (contracted; show full) PageTemp = PageTemp[0:PageTemp.find(u' .')] + PageTemp[PageTemp.find(u' .')+1:len(PageTemp)] else: while PageTemp.find(u' ,') != -1: PageTemp = PageTemp[0:PageTemp.find(u' ,')] + PageTemp[PageTemp.find(u' ,')+1:len(PageTemp)] while PageTemp.find(u' .') != -1: PageTemp = PageTemp[0:PageTemp.find(u' .')] + PageTemp[PageTemp.find(u' .')+1:len(PageTemp)] 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)] summary = summary + ', {{=' + codelangue + u'=}} -> {{langue|' + codelangue + u'}}'⏎ 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: (contracted; show full) 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)] while PageTemp.find(" }}") < PageTemp.find("}}") and PageTemp.find(" }}") != -1: PageTemp = PageTemp[0:PageTemp.find(" }}")] + PageTemp[PageTemp.find(" }}")+1:len(PageTemp)] # Modèles imbriqués (contracted; show full) #print (PageEnd.encode(config.console_encoding, 'replace')[0:1000]) #print (PageTemp[0:position].encode(config.console_encoding, 'replace')) # Comparaison avec chaque modèle connu dans Modele[p] 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)⏎ Si on est dans un modèle spécial, le traiter, sinon par catégorie de génériques if not codelangue and (p < limit1 or p >= limit3): PageEnd = u'{{formater|Code langue manquant dans ' + Modele[p] + u'}}\n' + PageBegin summary = u'Page à formater manuellement' sauvegarde(page,PageEnd, summary)⏎ 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,limit6): if Modele[p2] == ModeleT or Modele[p2] == ModeleT[0:1].lower() + ModeleT[1:len(ModeleT)]: if EstCodeLangue == "false": PageEnd = PageEnd + Modele[p2] + "|nocat=1}}" (contracted; show full) elif PageTemp2[0:PageTemp2.find(u'|')] == u'ko-hanja': PageTemp = PageTemp[0:PageTemp.find(u'ko-hanja')] + u'ko' + PageTemp[PageTemp.find(u'ko-hanja')+len(u'ko-hanja'):len(PageTemp)] elif PageTemp2[0:PageTemp2.find(u'|')] == u'ko-Hani': PageTemp = PageTemp[0:PageTemp.find(u'ko-Hani')] + u'ko' + PageTemp[PageTemp.find(u'ko-Hani')+len(u'ko-Hani'):len(PageTemp)] elif PageTemp2[0:PageTemp2.find(u'|')] == u'yue': PageTemp = PageTemp[0:PageTemp.find(u'yue')] + u'zh-yue' + PageTemp[PageTemp.find(u'yue')+len(u'yue'):len(PageTemp)]⏎ if PageTemp2[0:PageTemp2.find(u'|')] == u'mo': break # Bug du site fermé, voir [[chat]] # Connexions aux Wiktionnaires des traductions PageTemp2 = PageTemp[position+1:len(PageTemp)] PageTemp3 = PageTemp2[PageTemp2.find(u'|')+1:len(PageTemp2)] if PageTemp2[0:PageTemp2.find(u'|')] == "": break elif PageTemp3.find(u'}}') == "" or not PageTemp3.find(u'}}'): break (contracted; show full) '''# Recherche de bug if PageEnd.find(u'{{trad-début|{{') != -1: txtfile = codecs.open(u'articles_listed.txt', 'a', 'utf-8') txtfile.write(u'* [[' + PageHS + u']]\n') txtfile.close()''' if PageEnd != PageBegin: sauvegarde(page,PageEnd , summary) def CleDeTri(PageTitre): PageT = u'' key = "false" for lettre in range(0,len(PageTitre)): # Latin if PageTitre[lettre:lettre+1] == u'à' or PageTitre[lettre:lettre+1] == u'Á' or PageTitre[lettre:lettre+1] == u'á' or PageTitre[lettre:lettre+1] == u'â' or PageTitre[lettre:lettre+1] == u'ä' or PageTitre[lettre:lettre+1] == u'ā' or PageTitre[lettre:lettre+1] == u'ă' or PageTitre[lettre:lettre+1] == u'ą' (contracted; show full)tre:lettre+1] == u'Ȍ' or PageTitre[lettre:lettre+1] == u'Ȏ' or PageTitre[lettre:lettre+1] == u'Ȫ' or PageTitre[lettre:lettre+1] == u'Ȭ' or PageTitre[lettre:lettre+1] == u'Ȯ' or PageTitre[lettre:lettre+1] == u'Ȱ' or PageTitre[lettre:lettre+1] == u'ɔ' or PageTitre[lettre:lettre+1] == u'ở' or PageTitre[lettre:lettre+1] == u'Ở' or PageTitre[lettre:lettre+1] == u'ợ' or PageTitre[lettre:lettre+1] == u'Ợ' or PageTitre[lettre:lettre+1] == u'ò' or PageTitre[lettre:lettre+1] == u'ó': PageT = PageT + "o" key = "yes" elif PageTitre[lettre:lettre+1] == u'œ' or PageTitre[lettre:lettre+1] == u'Œ': PageT = PageT + "oe" key = "yes" elif PageTitre[lettre:lettre+1] == u'ƥ' or PageTitre[lettre:lettre+1] == u'Ƥ': PageT = PageT + "p" (contracted; show full) except wikipedia.ServerError: return except wikipedia.BadTitle: return except pywikibot.EditConflict: return if PageTemp != u"{{/Stop}}": pywikibot.output (u"\n*** \03{lightyellow}Arrêt d'urgence demandé\03{default} ***") exit(0) def sauvegarde(PageCourante, Contenu , summary): ArretDUrgence() result = "ok" #print(Contenu.encode(config.console_encoding, 'replace')[0:4000]) #[len(Contenu)-2000:len(Contenu)]) # #result = raw_input("Sauvegarder ? (o/n)") if result != "n" and result != "no" and result != "non": try: PageCourante.put(Contenu, summary) except wikipedia.NoPage: return except wikipedia.IsRedirectPage: return except wikipedia.LockedPage: return except pywikibot.EditConflict: return except wikipedia.ServerError: return except wikipedia.BadTitle: return # Lancement 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'') TraitementLiensCategorie = crawlerCatLink(u'Modèles de code langue',u'') ''' TraitementLiens = crawlerLink(u'Modèle:(',u'éclipser') 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'') #TraitementLiens = crawlerLink(u'Modèle:prv',u'') #TraitementLiens = crawlerLink(u'Modèle:gsw-FR',u'') 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'')⏎ if not summary: summary = u'[[Wiktionnaire:Structure des articles|Autoformatage]]' try: PageCourante.put(Contenu, summary) except wikipedia.NoPage: print "NoPage l 3784" return except wikipedia.IsRedirectPage: print "NoPage l 3787" return except wikipedia.LockedPage: print "NoPage l 3790" return except pywikibot.EditConflict: print "NoPage l 3793" return except wikipedia.ServerError: print "NoPage l 3796" return except wikipedia.BadTitle: print "NoPage l 3799" return # Lancement TraitementPage = modification(u'déferlable') ''' 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:=langue=',u'') TraitementLiens = crawlerLink(u'Modèle:(',u'') TraitementLiens = crawlerLink(u'Modèle:-flex-nom-',u'') TraitementLiens = crawlerLink(u'Modèle:trad-début',u'') TraitementLiens = crawlerLink(u'Modèle:clé de tri',u'') TraitementLiensCategorie = crawlerCatLink(u'Modèles de code langue',u'') 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=13869130.
![]() ![]() 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.
|