Difference between revisions 14530462 and 14533849 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 de modèles et d'espaces. 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 (dont "nocat=1" si une catégorie le justifie). 5) Complète les flexions de verbes en français à vérifier. 6) Traduit les importations de en.wikt. 7) Gère des modèles {{voir}} en début de page. 8) Ajoute les anagrammes 9) Teste les URL et indique si elles sont brisées 10) Remplace les modèles obsolètes 11) Créer des liens absents : http://fr.wiktionary.org/w/index.php?title=radiateur&diff=prev&oldid=14443668 12) Détecte les modèles à ajouter : http://fr.wiktionary.org/w/index.php?title=cl%C3%A9&diff=prev&oldid=14443625⏎ ⏎ Testé ici : http://fr.wiktionary.org/w/index.php?title=Utilisateur%3AJackBot%2Ftest&diff=14533806&oldid=14533695 ''' # Importation des modules import catlib, pagegenerators, os, codecs, urllib, re, collections, socket, hyperlynx from wikipedia import * # Déclaration (contracted; show full) 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 auxIdentification des Wiktionnaires dhébergeant les traductions SiteExt = u'' PageExterne = u''⏎ 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 elif PageTemp2[0:PageTemp2.find(u'|')] == u'conv': siteTemp = getSite('species', 'species') # Bug species depuis début 2011 try: pageExt = Page(siteTemp,PageTemp3[0:PageTemp3.find(u'}}')]) except wikipedia.NoPage: PageEnd = PageEnd + PageTemp[0:4] + "-" PageTemp = PageTemp[position:len(PageTemp)] break except wikipedia.BadTitle: PageEnd = PageEnd + PageTemp[0:4] + "-" PageTemp = PageTemp[position:len(PageTemp)] break except wikipedia.InvalidTitle: PageEnd = PageEnd + PageTemp[0:4] + "-" PageTemp = PageTemp[position:len(PageTemp)] break if pageExt.exists(): PageEnd = PageEnd + PageTemp[0:4] + "+" PageTemp = PageTemp[position:len(PageTemp)] break else: PageEnd = PageEnd + PageTemp[0:4] + "-" PageTemp = PageTemp[position:len(PageTemp)] break elif PageTemp3.find(u'|') != -1 and PageTemp3.find(u'|') < PageTemp3.find(u'}}'): try: siteTemp = getSite(PageTemp2[0:PageTemp2.find(u'|')],family) except wikipedia.ServerError: PageEnd = PageEnd + PageTemp[0:4] + "--" PageTemp = PageTemp[position:len(PageTemp)] break except wikipedia.NoSuchSite: PageEnd = PageEnd + PageTemp[0:4] + "--" PageTemp = PageTemp[position:len(PageTemp)] break try: pageExt = Page(siteTemp,PageTemp3[0:PageTemp3.find(u'|')]) except wikipedia.BadTitle: PageEnd = PageEnd + PageTemp[0:4] + "-" PageTemp = PageTemp[position:len(PageTemp)] break except wikipedia.InvalidTitle: PageEnd = PageEnd + PageTemp[0:4] + "-" PageTemp = PageTemp[position:len(PageTemp)] break except wikipedia.NoPage: PageEnd = PageEnd + PageTemp[0:4] + "-" PageTemp = PageTemp[position:len(PageTemp)] break if pageExt.exists(): PageEnd = PageEnd + PageTemp[0:4] + "+" PageTemp = PageTemp[position:len(PageTemp)] break else: PageEnd = PageEnd + PageTemp[0:4] + "-" PageTemp = PageTemp[position:len(PageTemp)] break else: try: siteTemp = getSite(PageTemp2[0:PageTemp2.find(u'|')],family) except wikipedia.NoSuchSite: PageEnd = PageEnd + PageTemp[0:4] + "--" PageTemp = PageTemp[position:len(PageTemp)] break try: pageExt = Page(siteTemp,PageTemp3[0:PageTemp3.find(u'}}')]) except wikipedia.BadTitle: PageEnd = PageEnd + PageTemp[0:4] + "-" PageTemp = PageTemp[position:len(PageTemp)] breakSiteExt = getSite('species', 'species') # Bug species depuis début 2011 else: try: SiteExt = getSite(PageTemp2[0:PageTemp2.find(u'|')],family) except wikipedia.ServerError: PageEnd = PageEnd + PageTemp[0:4] + "--" PageTemp = PageTemp[position:len(PageTemp)] break except wikipedia.NoSuchSite: PageEnd = PageEnd + PageTemp[0:4] + "--" PageTemp = PageTemp[position:len(PageTemp)] break if SiteExt != u'': if PageTemp3.find(u'|') != -1 and PageTemp3.find(u'|') < PageTemp3.find(u'}}'): PageExterne = PageTemp3[0:PageTemp3.find(u'|')] else: PageExterne = PageTemp3[0:PageTemp3.find(u'}}')] # Filtre du nom de la page externe if PageExterne != u'': if PageExterne.find(u'<') != -1: PageExterne = PageExterne[:PageExterne.find(u'<')] # Connexions aux Wiktionnaires pour vérifier la présence de la page (sous-entendu dans sa langue maternelle) if SiteExt != u'' and PageExterne != u'': try: pageExt = Page(SiteExt,PageExterne) except wikipedia.NoPage: PageEnd = PageEnd + PageTemp[0:4] + "-" PageTemp = PageTemp[position:len(PageTemp)] break except wikipedia.ServerErrorBadTitle: PageEnd = PageEnd + PageTemp[0:4] + "-" PageTemp = PageTemp[position:len(PageTemp)] break except pywikibot.exceptionswikipedia.InvalidTitle: PageEnd = PageEnd + PageTemp[0:4] + "-" PageTemp = PageTemp[position:len(PageTemp)] break if pageExt.exists(): PageEnd = PageEnd + PageTemp[0:4] + "+" PageTemp = PageTemp[position:len(PageTemp)] break else: PageEnd = PageEnd + PageTemp[0:4] + "-" PageTemp = PageTemp[position:len(PageTemp)] break ⏎ ⏎ elif Modele[p] == u'(': if trad == u'true': PageEnd = PageEnd + u'trad-début' else: PageEnd = PageEnd + u'(' PageTemp = PageTemp[position:len(PageTemp)] break elif Modele[p] == u')': (contracted; show full) 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')) #[len(Contenu)-2000:len(Contenu)]) # #result = raw_input("Sauvegarder ? (o/n) ") if result != "n" and result != "no" and result != "non": if PageCourante.title().find(u'Utilisateur:JackBot/') == -1: ArretDUrgence()⏎ if not summary: summary = u'[[Wiktionnaire:Structure des articles|Autoformatage]]' try: PageCourante.put(Contenu, summary) except wikipedia.NoPage: print "NoPage en sauvegarde" return except wikipedia.IsRedirectPage: print "IsRedirectPage en sauvegarde" return except wikipedia.LockedPage: print "LockedPage en sauvegarde" return except pywikibot.EditConflict: print "EditConflict en sauvegarde" return except wikipedia.ServerError: print "ServerError en sauvegarde" return except wikipedia.BadTitle: print "BadTitle en sauvegarde" return except AttributeError: print "AttributeError en sauvegarde" return # Lancement TraitementLiens = crawlerLink(u'Modèle:moins courant',u'Sénégalais') '''⏎ # Quotidiennement : 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'') 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: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'') TraitementLiens = crawlerLink(u'Modèle:=langue=',u'') TraitementLiens = crawlerLink(u'Modèle:trad-',u'') ''' # Modèles TraitementPage = modification(u'Utilisateur:JackBot/test') TraitementLiens = crawlerLink(u'Modèle:terme',u'') TraitementLiens = crawlerLink(u'Modèle:R:DAF8',u'') TraitementLiens = crawlerLink(u'Modèle:Import:DAF8',u'') TraitementLiensCategorie = crawlerCatLink(u'Modèles de code langue',u'') TraitementCategorie = crawlerCat(u'Catégorie:Appels de modèles incorrects',True) TraitementRecherche = crawlerSearch(u'clé 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=14533849.
![]() ![]() 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.
|