Difference between revisions 14153660 and 14176687 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. (contracted; show full) #print CleDeTri(PageHS) #print ClePage summary = summary + u', {{clé de tri}} corrigée' PageTemp = PageTemp[0:PageTemp.find(u'{{clé de tri|')+len(u'{{clé de tri|')] + CleDeTri(PageHS) + PageTemp[PageTemp.find(u'{{clé de tri|')+len(u'{{clé de tri|')+PageTemp2.find(u'}}'):len(PageTemp)] while PageTemp.find(u'\n{clé de tri') != -1: PageTemp = PageTemp[0:PageTemp.find(u'\n{clé de tri')+1] + u'{' + PageTemp[PageTemp.find(u'\n{clé de tri'):len(PageTemp)]⏎ # 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) PageTemp = PageEnd + PageTemp PageEnd = u'' '''while PageTemp.find(u'#*') != -1 and PageTemp.find(u'#*') != PageTemp.find(u'#*\'\'') and PageTemp.find(u'#*') != PageTemp.find(u'#* \'\''): PageTemp = PageTemp[0:PageTemp.find(u'#*')+2] + u'\'\'' + PageTemp[PageTemp.find(u'#*')+2:len(PageTemp)]''' while PageTemp.find(u'\n# [[' + PageHS + u'|') != -1: PageTemp = PageTemp[0:PageTemp.find(u'\n# [[' + PageHS + u'|')+len(u'\n# [[')] + u'#fr' + PageTemp[PageTemp.find(u'\n# [[' + PageHS + u'|')+len(u'\n# [[' + PageHS):len(PageTemp)]⏎ ⏎ # Retrait des espaces intégrés au modèle while PageTemp.find(u'|pinv= ') != -1: PageTemp = PageTemp[0:PageTemp.find(u'|pinv= ')+len(u'|pinv=')] + PageTemp[PageTemp.find(u'|pinv= ')+len(u'|pinv= '):len(PageTemp)] while PageTemp.find(u'|pinv=. ') != -1: PageTemp = PageTemp[0:PageTemp.find(u'|pinv=. ')+len(u'|pinv=.')] + PageTemp[PageTemp.find(u'|pinv=. ')+len(u'|pinv=. '):len(PageTemp)] (contracted; show full) while PageTemp.find(u'{{mp}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{mp}}')+4] + u'lur' + PageTemp[PageTemp.find(u'{{mp}}')+4:len(PageTemp)] while PageTemp.find(u'{{np}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{np}}')+4] + u'lur' + PageTemp[PageTemp.find(u'{{np}}')+4:len(PageTemp)] ⏎ ⏎ while PageTemp.find(u'{{mascul}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{mascul}}')] + u'{{au masculin}}' + PageTemp[PageTemp.find(u'{{mascul}}')+len(u'{{mascul}}'):len(PageTemp)] while PageTemp.find(u'{{fémin}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{fémin}}')] + u'{{au féminin}}' + PageTemp[PageTemp.find(u'{{fémin}}')+len(u'{{fémin}}'):len(PageTemp)] while PageTemp.find(u'{{femin}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{femin}}')] + u'{{au féminin}}' + PageTemp[PageTemp.find(u'{{femin}}')+len(u'{{femin}}'):len(PageTemp)] while PageTemp.find(u'{{sing}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{sing}}')] + u'{{au singulier}}' + PageTemp[PageTemp.find(u'{{sing}}')+len(u'{{sing}}'):len(PageTemp)] while PageTemp.find(u'{{plur}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{plur}}')] + u'{{au pluriel}}' + PageTemp[PageTemp.find(u'{{plur}}')+len(u'{{plur}}'):len(PageTemp)] while PageTemp.find(u'{{pluri}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{pluri}}')] + u'{{au pluriel}}' + PageTemp[PageTemp.find(u'{{pluri}}')+len(u'{{pluri}}'):len(PageTemp)] while PageTemp.find(u'{{mascul|') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{mascul|')] + u'{{au masculin|' + PageTemp[PageTemp.find(u'{{mascul|')+len(u'{{mascul|'):len(PageTemp)] while PageTemp.find(u'{{fémin|') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{fémin|')] + u'{{au féminin|' + PageTemp[PageTemp.find(u'{{fémin|')+len(u'{{fémin|'):len(PageTemp)] while PageTemp.find(u'{{femin|') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{femin|')] + u'{{au féminin|' + PageTemp[PageTemp.find(u'{{femin|')+len(u'{{femin|'):len(PageTemp)] while PageTemp.find(u'{{sing|') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{sing|')] + u'{{au singulier|' + PageTemp[PageTemp.find(u'{{sing|')+len(u'{{sing|'):len(PageTemp)] while PageTemp.find(u'{{plur|') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{plur|')] + u'{{au pluriel|' + PageTemp[PageTemp.find(u'{{plur|')+len(u'{{plur|'):len(PageTemp)] while PageTemp.find(u'{{pluri|') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{pluri|')] + u'{{au pluriel|' + PageTemp[PageTemp.find(u'{{pluri|')+len(u'{{pluri|'):len(PageTemp)] # Faux homophones : lemme et sa flexion if PageTemp.find(u'{{-flex-') != -1 and PageHS[len(PageHS)-1:len(PageHS)] == u's' and PageTemp.find(u'{{-homo-}}\n*[[' + PageHS[0:len(PageHS)-1] + u']]\n*') == -1 and PageTemp.find(u'{{-homo-}}\n*[[' + PageHS[0:len(PageHS)-1] + u']]') != -1 and PageTemp.find(u'{{-homo-}}\n*[[' + PageHS[0:len(PageHS)-1] + u']] ') == -1 and PageTemp.find(u'{{-homo-}}\n*[[' + PageHS[0:len(Pag(contracted; show full) PageTemp = PageEnd + PageTemp PageEnd = u''""" # Ajout des anagrammes francophones (prévoir si {{lien|}} pour les autres) if socket.gethostname() != "willow" and socket.gethostname() != "yarrow" and socket.gethostname() != "nightshade": if PageTemp.find(u'{{-anagr-}}') == -1 and PageHS.find(u' ') == -1 and PageTemp.find(u'{{langue|fr}}') != -1 and len(PageHS) < 7: # sinon trop long ( > 1 h par page) #print socket.gethostname() anagrammes = anagram(PageHS) ListeAnagrammes = u'' for anagramme in anagrammes: if anagramme != PageHS: pageAnagr = Page(site,anagramme) #print anagramme.encode(config.console_encoding, 'replace') if pageAnagr.exists(): (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')) # 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 (contracted; show full) PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'}}')+2] PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] else: if PageTemp.find(u'|nocat=1') != -1: PageTemp = PageTemp[0:PageTemp.find(u'|nocat=1')] + PageTemp[PageTemp.find(u'|nocat=1')+len(u'|nocat=1'):len(PageTemp)] PageTemp = u'|' + codelangue + PageTemp break ⏎ ⏎ elif Modele[p] == u'-prénom-' or Modele[p] == u'-flex-prénom-': # Modèle à trois paramètres : codelangue, num et genre EstCodeLangue == "true" if PageTemp.find("genre=") != -1 and PageTemp.find("genre=") < PageTemp.find("}}") and (PageTemp.find("num=") == -1 or PageTemp.find("num=") > PageTemp.find("}}")): if PageTemp.find("genre=") > position+1: # genre= est après le code langue PageEnd = PageEnd + Modele[p] + u'|' + codelangue + PageTemp[PageTemp.find("genre=")-1:PageTemp.find(u'}}')+2] PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] break else: # genre= est avant un éventuel code langue PageTemp2 = PageTemp[position+1:len(PageTemp)] if (PageTemp2.find(u'|') != -1) and (PageTemp2.find(u'|') < PageTemp2.find(u'}}')): # il y a un code langue PageEnd = PageEnd + PageTemp[0:position+PageTemp2.find(u'|')+2] + codelangue + u'}}' PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] break else: # Pas de code langue PageEnd = PageEnd + PageTemp[0:position+1+PageTemp2.find(u'}}')] + u'|' + codelangue + u'}}' PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] break elif PageTemp.find("genre=") != -1 and PageTemp.find("genre=") < PageTemp.find("}}") and PageTemp.find("num=") != -1 and PageTemp.find("num=") < PageTemp.find("}}"): if PageTemp.find("genre=") < PageTemp.find("num="): # en travaux (recalculer les num) break else: # en travaux (recalculer les num) break elif PageTemp.find("num=") != -1 and PageTemp.find("num=") < PageTemp.find("}}") and (PageTemp.find("genre=") == -1 or PageTemp.find("genre=") > PageTemp.find("}}")): if PageTemp.find("num=") > position+1: # num= est après le code langue PageEnd = PageEnd + Modele[p] + u'|' + codelangue + PageTemp[PageTemp.find("num=")-1:PageTemp.find(u'}}')+2] PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] break else: # num= est avant un éventuel code langue PageTemp2 = PageTemp[position+1:len(PageTemp)] if (PageTemp2.find(u'|') != -1) and (PageTemp2.find(u'|') < PageTemp2.find(u'}}')): # il y a un code langue PageEnd = PageEnd + PageTemp[0:position+PageTemp2.find(u'|')+2] + codelangue + u'}}' PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] break else: # Pas de code langue PageEnd = PageEnd + PageTemp[0:position+1+PageTemp2.find(u'}}')] + u'|' + codelangue + u'}}' PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] break break PageEnd = PageEnd + PageTemp[0:position] + "|" + codelangue + "}}" PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] break elif Modele[p] == u'source': if PageTemp.find(u'{{w|') != -1 and PageTemp.find(u'{{w|') < PageTemp.find(u'}}'): PageTemp2 = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'}}')+2+PageTemp2.find(u'}}')+2] PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)+PageTemp2.find(u'}}')+2] break (contracted; show full) PageEnd = PageEnd + u'trad-fin' else: PageEnd = PageEnd + u')' PageTemp = PageTemp[position:len(PageTemp)] break if p < limit1: # Si on est dans le paragraphe définition EstCodeLangue = "true" if PageTemp[position+1:position+4] == "num" and PageTemp[position+1:position+5] != "num}": PageEnd = PageEnd + PageTemp[0:position+6] + "|" + codelangue + "}}" elif PageTemp[position+4:position+7] == "num" and PageTemp[position+4:position+8] != "num}": PageEnd = PageEnd + PageTemp[0:position] + "|" + codelangue + "|" + PageTemp[position+4:position+9] + "}}" 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 + "}}"# Tous ces modèles peuvent facultativement contenir |clé= et |num=, les prénoms et -flex-prénom- |genre= PageTemp2 = PageTemp[position+1:len(PageTemp)] position2 = 0 while PageTemp2.find(u'|') != -1 and PageTemp2.find(u'|') < PageTemp2.find(u'}}'): if (PageTemp2.find(u'=') == -1 or PageTemp2.find(u'=') > PageTemp2.find(u'|')) and PageTemp2[0:PageTemp2.find(u'|')] != codelangue: summary = summary + u', ' + Modele[p] + u'|' + PageTemp2[0:PageTemp2.find(u'|')] + u' -> ' + Modele[p] + u'|' + codelangue PageTemp = PageTemp[0:position+1+position2] + codelangue + PageTemp[position+1+position2+len(PageTemp2[0:PageTemp2.find(u'|')]):len(PageTemp2)] PageTemp2 = PageTemp[position+1:len(PageTemp)] position2 = position2 + PageTemp2.find(u'|')+1 PageTemp2 = PageTemp2[PageTemp2.find(u'|')+1:len(PageTemp2)] if (PageTemp2.find(u'=') == -1 or PageTemp2.find(u'=') > PageTemp2.find(u'}}')) and PageTemp2[0:PageTemp2.find(u'}}')] != codelangue: summary = summary + u', ' + Modele[p] + u'|' + PageTemp2[0:PageTemp2.find(u'}}')] + u' -> ' + Modele[p] + u'|' + codelangue PageTemp = PageTemp[0:position+1+position2] + codelangue + PageTemp[position+1+position2+len(PageTemp2[0:PageTemp2.find(u'}}')]):len(PageTemp2)] # Clé de tri propre à une langue if PageTemp.find(u'|clé=') == -1 or PageTemp.find(u'|clé=') > PageTemp.find(u'}}'): if codelangue == u'ru': if PageHS.find(u'ё') !=-1: PageTemp = PageTemp[0:PageTemp.find(u'}}')] + u'|clé=' + PageHS.replace(u'ё',u'е€') + PageTemp[PageTemp.find(u'}}'):len(PageTemp)] if PageHS.find(u'ӕ') !=-1: PageTemp = PageTemp[0:PageTemp.find(u'}}')] + u'|clé=' + PageHS.replace(u'ӕ',u'а€') + PageTemp[PageTemp.find(u'}}'):len(PageTemp)] elif codelangue == u'os': if PageHS.find(u'ё') !=-1: PageTemp = PageTemp[0:PageTemp.find(u'}}')] + u'|clé=' + PageHS.replace(u'ё',u'е€') + PageTemp[PageTemp.find(u'}}'):len(PageTemp)] if PageHS.find(u'ӕ') !=-1: PageTemp = PageTemp[0:PageTemp.find(u'}}')] + u'|clé=' + PageHS.replace(u'ӕ',u'а€') + PageTemp[PageTemp.find(u'}}'):len(PageTemp)] # Digrammes if PageHS.find(u'гъ') !=-1: PageTemp = PageTemp[0:PageTemp.find(u'}}')] + u'|clé=' + PageHS.replace(u'гъ',u'г€') + PageTemp[PageTemp.find(u'}}'):len(PageTemp)] if PageHS.find(u'дж') !=-1: PageTemp = PageTemp[0:PageTemp.find(u'}}')] + u'|clé=' + PageHS.replace(u'дж',u'д€') + PageTemp[PageTemp.find(u'}}'):len(PageTemp)] if PageHS.find(u'дз') !=-1: PageTemp = PageTemp[0:PageTemp.find(u'}}')] + u'|clé=' + PageHS.replace(u'дз',u'д€') + PageTemp[PageTemp.find(u'}}'):len(PageTemp)] if PageHS.find(u'къ') !=-1: PageTemp = PageTemp[0:PageTemp.find(u'}}')] + u'|clé=' + PageHS.replace(u'къ',u'к€') + PageTemp[PageTemp.find(u'}}'):len(PageTemp)] if PageHS.find(u'пъ') !=-1: PageTemp = PageTemp[0:PageTemp.find(u'}}')] + u'|clé=' + PageHS.replace(u'пъ',u'п€') + PageTemp[PageTemp.find(u'}}'):len(PageTemp)] if PageHS.find(u'тъ') !=-1: PageTemp = PageTemp[0:PageTemp.find(u'}}')] + u'|clé=' + PageHS.replace(u'тъ',u'т€') + PageTemp[PageTemp.find(u'}}'):len(PageTemp)] if PageHS.find(u'хъ') !=-1: PageTemp = PageTemp[0:PageTemp.find(u'}}')] + u'|clé=' + PageHS.replace(u'хъ',u'х€') + PageTemp[PageTemp.find(u'}}'):len(PageTemp)] if PageHS.find(u'цъ') !=-1: PageTemp = PageTemp[0:PageTemp.find(u'}}')] + u'|clé=' + PageHS.replace(u'цъ',u'ц€') + PageTemp[PageTemp.find(u'}}'):len(PageTemp)] if PageHS.find(u'чъ') !=-1: PageTemp = PageTemp[0:PageTemp.find(u'}}')] + u'|clé=' + PageHS.replace(u'чъ',u'ч€') + PageTemp[PageTemp.find(u'}}'):len(PageTemp)] PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'}}')+2] elif p < limit2: # Paragraphe sans code langue EstCodeLangue = "false" trad = u'false' PageEnd = PageEnd + PageTemp[0:position] + "}}" elif p < limit3: # Paragraphe sans code langue contenant un texte EstCodeLangue = "false" trad = u'false' (contracted; show full) TraitementLiens = crawlerLink(u'Modèle:trad',u'') TraitementLiens = crawlerLink(u'Modèle:-',u'') TraitementCategorie = crawlerCat(u'Catégorie:Appels de modèles incorrects:fr-verbe-flexion incomplet',False,u'') TraitementLiens = crawlerLink(u'Modèle:-ortho-alt-',u'') TraitementLiens = crawlerLink(u'Modèle:=langue=',u'') TraitementLiens = crawlerLink(u'Modèle:trad-',u'') ''' TraitementCategorie = crawlerCat(u'Catégorie:ossète',False,u'') TraitementCategorie = crawlerCat(u'Catégorie:russe',False,u'') TraitementLiens = crawlerLink(u'Modèle:mascul',u'') TraitementLiens = crawlerLink(u'Modèle:fémin',u'') TraitementLiens = crawlerLink(u'Modèle:femin',u'') TraitementLiens = crawlerLink(u'Modèle:sing',u'') TraitementLiens = crawlerLink(u'Modèle:plur',u'') TraitementLiens = crawlerLink(u'Modèle:pluri',u'')⏎ ⏎ TraitementPage = modification(u'Utilisateur:JackBot/test') TraitementLiens = crawlerLink(u'Modèle:R:DAF8',u'homme') TraitementFichier = crawlerFile('articles_list.txt') TraitementLiensCategorie = crawlerCatLink(u'Modèles de code langue',u'') TraitementCategorie = crawlerCat(u'Catégorie:Appels de modèles incorrects',True) TraitementRecherche = crawlerSearch(u'chinoislé de tri') TraitementUtilisateur = crawlerUser(u'Utilisateur:JackBot') TraitementRedirections = crawlerRedirects() 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=14176687.
![]() ![]() 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.
|