Difference between revisions 10718435 and 10776165 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)Modele[127] = u'-hist-' Modele[128] = u'-holo-' Modele[129] = u'-homo-' Modele[130] = u'-hyper-' Modele[131] = u'-hypo-' Modele[132] = u'-image-' Modele[133] = u'-méro-' #Modele[134] = u'-note-' Modele[135] = u'-var-ortho-' Modele[136] = u'-ortho-arch-' Modele[137] = u'-paro-' Modele[138] = u'-vidéo-' Modele[139] = u'-q-syn-' Modele[140] = u'-réf-' Modele[141] = u'-sino-dico-' (contracted; show full) 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)] ⏎ while PageTemp.find(u'<sup/>') != -1: PageTemp = PageTemp[0:PageTemp.find(u'<sup/>')] + u'</sup>' + PageTemp[PageTemp.find(u'<sup/>')+len(u'<sup/>'):len(PageTemp)] while re.compile('{{T\|.*\n\n\*[ ]*{{T\|').search(PageTemp): i1 = re.search(u'{{T\|.*\n\n\*[ ]*{{T\|',PageTemp).end() PageTemp = PageTemp[:i1][0:PageTemp[:i1].rfind(u'\n')-1] + PageTemp[:i1][PageTemp[:i1].rfind(u'\n'):len(PageTemp[:i1])] + PageTemp[i1:]⏎ while PageTemp.find(u'ʼ') != -1: PageTemp = PageTemp[0:PageTemp.find(u'ʼ')] + u'ʼ' + PageTemp[PageTemp.find(u'ʼ')+len(u'ʼ'):len(PageTemp)] 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)] (contracted; show full) PagesHS.close() # Traitement d'une catégorie def crawlerCat(category,recursif,apres): modifier = u'False' cat = catlib.Category(site, category) pages = cat.articlesList(False) for Page in pagegenerators.PreloadingGenerator(pages,100 0): if not apres or apres == u'' or modifier == u'True': modification(Page.title()) #crawlerLink(Page.title()) elif Page.title() == apres: modifier = u'True' if recursif == True: subcat = cat.subcategories(recurse = True) for subcategory in subcat: pages = subcategory.articlesList(False) for Page in pagegenerators.PreloadingGenerator(pages,1000): modification(Page.title()) # Traitement des pages liées def crawlerLink(pagename,apres): modifier = u'False'⏎ #pagename = unicode(arg[len('-links:'):], 'utf-8') page = wikipedia.Page(site, pagename) gen = pagegenerators.ReferringPageGenerator(page) #gen = pagegenerators.NamespaceFilterPageGenerator(gen, namespaces) for Page in pagegenerators.PreloadingGenerator(gen,1000): #print(Page.title().encode(config.console_encoding, 'replace')) if not apres or apres == u'' or modifier == u'True': modification(Page.title()) #crawlerLink(Page.title()) elif Page.title() == apres: modifier = u'True' # Traitement d'une recherche def crawlerSearch(pagename): gen = pagegenerators.SearchPageGenerator(pagename, namespaces = "0") for Page in pagegenerators.PreloadingGenerator(gen,1000): modification(Page.title()) # Traitement des modifications récentes def crawlerRC(): gen = pagegenerators.RecentchangesPageGenerator() for Page in pagegenerators.PreloadingGenerator(gen,1000): modification(Page.title()) # Traitement des modifications d'un compte def crawlerUser(username): gen = pagegenerators.UserContributionsGenerator(username) for Page in pagegenerators.PreloadingGenerator(gen,1000): modification(Page.title()) # Traitement de toutes les pages du site def crawlerAll(start): gen = pagegenerators.AllpagesPageGenerator(start,namespace=0,includeredirects=False) for Page in pagegenerators.PreloadingGenerator(gen,1000): #print (Page.title().encode(config.console_encoding, 'replace')) modification(Page.title())⏎ ⏎ def trim(s): return s.strip(" \t\n\r\0\x0B") # Permet à tout le monde de stopper le bot en lui écrivant def ArretDUrgence(): arrettitle = ''.join(u'Discussion utilisateur:' + mynick) arretpage = pywikibot.Page(pywikibot.getSite(), arrettitle) gen = iter([arretpage]) arret = arretpage.get() if arret != u"{{/Stop}}": pywikibot.output(u"\n*** \03{lightyellow}Arrêt d'urgence demandé\03{default} ***") exit(0) def sauvegarde(PageCourante, Contenu): ArretDUrgence() try: result = "ok" #print(Contenu.encode(config.console_encoding, 'replace')[0:4000]) #result = raw_input("Sauvegarder ? (o/n)") if result != "n" and result != "no" and result != "non": PageCourante.put(Contenu, summary) except wikipedia.NoPage: print "No page" return except wikipedia.IsRedirectPage: print "Redirect page" return except wikipedia.LockedPage: print "Protected page" return except pywikibot.EditConflict: print "Edit conflict" return # Lancement TraitementCategoryie = crawlerCat(u'Catégorie:Wiktionnaire:Codes langue manquants',True,u'') TraitementCategoryie = 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'') TraitementCategoryie = crawlerCat(u'Catégorie:Appels de modèles incorrects:fr-verbe-flexion incomplet',False) ''' TraitementLiens = crawlerLink(u'Modèle:(',u'bugle') TraitementLiens = crawlerLink(u'Modèle:-flex-nom-') TraitementLiens = crawlerLink(u'Modèle:clé de tri') TraitementFile,u'') ''' TraitementFichier = crawlerFile('articles_listed.txt') TraitementWordPage = modification(u'Utilisateur:JackBot/test') TraitementCategoryie = 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=10776165.
![]() ![]() 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.
|