Difference between revisions 13869130 and 13904720 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ère 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) # Modèles du site à traiter limit6=91623 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[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 = 783 # non traités #Modele[783] = u'spécialement' #ki alpin'⏎ Modele[784] = u'T' # Modèles régionaux, pb du nocat pour les prononciationsski de fond' Modele[7845] = u'Afrique du Sudréseau' Modele[7856] = u'Algériecanoë-kayak' Modele[7867] = u'Allemagnecanoë' Modele[7878] = u'Alsacescol' Modele[7889] = u'Amérique centrale'⏎ obsolète' limit5 = 790 # non traités #Modele[789] = u'Amérique du Nord'⏎ spécialement' #Modele[790] = u'Amérique du Sud'T' # Modèles régionaux, pb du nocat pour les prononciations Modele[791] = u'Amérique latine' Modele[792] = u'Anjou' Modele[793] = u'Antilles' Modele[794] = u'Aquitaine' Modele[795] = u'Argentine' Modele[796] = u'Australie' Modele[797] = u'Autriche' (contracted; show full)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' ⏎ Modele[915] = u'Afrique du Sud' Modele[916] = u'Algérie' Modele[917] = u'Allemagne' Modele[918] = u'Alsace' Modele[919] = u'Amérique centrale' Modele[920] = u'Amérique du Nord' Modele[921] = u'Amérique du Sud' # 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) 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 11 0913" return except wikipedia.IsRedirectLockedPage: print "IsRedirectLocked l 11126" return except wikipedia.LockedPage: print "LockedIsRedirectPage: PageBegin = page.get(get_redirect=True) TxtTmp = u'<!--\n Redirection créée par le robot User:DaftBot.\n La création automatique de la page ciblée est prévue prochainement.\n-->' if PageBegin.find(TxtTmp) != -1: summary = u'[[Catégorie:Redirections à remplacer]]' PageBegin = PageBegin[0:PageBegin.find(TxtTmp)] + summary + PageBegin[PageBegin.find(TxtTmp)+len(TxtTmp):len(PageBegin)] sauvegarde(page,PageBegin, summary) else: print "IsRedirect l 11159" 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)] (contracted; show full) PageTemp = PageTemp[0:PageTemp.find(u'{{Annexe|Couleurs en français}}')] + u'{{Thésaurus|fr|couleur}}' + PageTemp[PageTemp.find(u'{{Annexe|Couleurs en français}}')+len(u'{{Annexe|Couleurs en français}}'):len(PageTemp)] 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'{{-chiffre-') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{-chiffre-')] + u'{{-numéral-' + PageTemp[PageTemp.find(u'{{-chiffre-')+len(u'{{-chiffre-'):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, 13) NouveauModele = range(1, 13) 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' AncienModele[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'=' + 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)]⏎ if PageTemp.find(u'{{-nom-sciences-|conv}}') != -1 and PageTemp.find(u'[[Catégorie:Noms scientifiques]]') != -1: PageTemp = PageTemp[0:PageTemp.find(u'[[Catégorie:Noms scientifiques]]')] + PageTemp[PageTemp.find(u'[[Catégorie:Noms scientifiques]]')+len(u'[[Catégorie:Noms scientifiques]]'):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(PageHS)-1] + u']],') == -1: PageTemp = PageTemp[0:PageTemp.find(u'{{-homo-}}\n*[[' + PageHS[0:len(PageHS)-1] + u']]')] + PageTemp[PageTemp.find(u'{{-homo-}}\n*[[' + PageHS[0:len(PageHS)-1] + u']]')+len(u'{{-homo-}}\n*[[' + PageHS[0:len(PageHS)-1] + u']]')+1:len(PageTemp)] elif 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(PageHS)-1] + u']],') == -1: PageTemp = PageTemp[0:PageTemp.find(u'{{-homo-}}\n* [[' + PageHS[0:len(PageHS)-1] + u']]')] + PageTemp[PageTemp.find(u'{{-homo-}}\n* [[' + PageHS[0:len(PageHS)-1] + u']]')+len(u'{{-homo-}}\n* [[' + PageHS[0:len(PageHS)-1] + u']]')+1:len(PageTemp)] # Gentités et leurs adjectifs if PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'e]], {{fplur}} : [[' + PageHS + u'es]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'e]], {{fplur}} : [[' + PageHS + u'es]])')] + u'{{fr-accord-mixte|}}' + PageTemp[PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'e]], {{fplur}} : [[' + PageHS + u'es]])')+len(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'e]], {{fplur}} : [[' + PageHS + u'es]])'):len(PageTemp)] if PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'e]], {{fplur}} : \'\'\'' + PageHS + u'es]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'e]], {{fplur}} : \'\'\'' + PageHS + u'es]])')] + u'{{fr-accord-mixte|}}' + PageTemp[PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'e]], {{fplur}} : \'\'\'' + PageHS + u'es]])')+len(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'e]], {{fplur}} : \'\'\'' + PageHS + u'es]])')+1:len(PageTemp)] if PageTemp.find(u'({{p}} : [[' + PageHS + u']], {{f}} : [[' + PageHS + u'e]], {{fplur}} : [[' + PageHS + u'es]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : [[' + PageHS + u']], {{f}} : [[' + PageHS + u'e]], {{fplur}} : [[' + PageHS + u'es]])')] + u'{{fr-accord-s|}}' + PageTemp[PageTemp.find(u'({{p}} : [[' + PageHS + u']], {{f}} : [[' + PageHS + u'e]], {{fplur}} : [[' + PageHS + u'es]])')+len(u'({{p}} : [[' + PageHS + u']], {{f}} : [[' + PageHS + u'e]], {{fplur}} : [[' + PageHS + u'es]])'):len(PageTemp)] if PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u'\'\'\', {{f}} : \'\'\'' + PageHS + u'e]], {{fplur}} : \'\'\'' + PageHS + u'es]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u'\'\'\', {{f}} : \'\'\'' + PageHS + u'e]], {{fplur}} : \'\'\'' + PageHS + u'es]])')] + u'{{fr-accord-s|}}' + PageTemp[PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u'\'\'\', {{f}} : \'\'\'' + PageHS + u'e]], {{fplur}} : \'\'\'' + PageHS + u'es]])')+len(u'({{p}} : \'\'\'' + PageHS + u'\'\'\', {{f}} : \'\'\'' + PageHS + u'e]], {{fplur}} : \'\'\'' + PageHS + u'es]])'):len(PageTemp)] if PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'le]], {{fplur}} : [[' + PageHS + u'les]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'le]], {{fplur}} : [[' + PageHS + u'les]])')] + u'{{fr-accord-el|}}' + PageTemp[PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'le]], {{fplur}} : [[' + PageHS + u'les]])')+len(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'le]], {{fplur}} : [[' + PageHS + u'les]])'):len(PageTemp)] if PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'le]], {{fplur}} : \'\'\'' + PageHS + u'les]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'le]], {{fplur}} : \'\'\'' + PageHS + u'les]])')] + u'{{fr-accord-el|}}' + PageTemp[PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'le]], {{fplur}} : \'\'\'' + PageHS + u'les]])')+len(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'le]], {{fplur}} : \'\'\'' + PageHS + u'les]])')+1:len(PageTemp)] if PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'ne]], {{fplur}} : [[' + PageHS + u'nes]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'ne]], {{fplur}} : [[' + PageHS + u'nes]])')] + u'{{fr-accord-en|}}' + PageTemp[PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'ne]], {{fplur}} : [[' + PageHS + u'nes]])')+len(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'ne]], {{fplur}} : [[' + PageHS + u'nes]])'):len(PageTemp)] if PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'ne]], {{fplur}} : \'\'\'' + PageHS + u'nes]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'ne]], {{fplur}} : \'\'\'' + PageHS + u'nes]])')] + u'{{fr-accord-en|}}' + PageTemp[PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'ne]], {{fplur}} : \'\'\'' + PageHS + u'nes]])')+len(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'ne]], {{fplur}} : \'\'\'' + PageHS + u'nes]])')+1:len(PageTemp)] if PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'te]], {{fplur}} : [[' + PageHS + u'tes]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'te]], {{fplur}} : [[' + PageHS + u'tes]])')] + u'{{fr-accord-et|}}' + PageTemp[PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'te]], {{fplur}} : [[' + PageHS + u'tes]])')+len(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'te]], {{fplur}} : [[' + PageHS + u'tes]])'):len(PageTemp)] if PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'te]], {{fplur}} : \'\'\'' + PageHS + u'tes]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'te]], {{fplur}} : \'\'\'' + PageHS + u'tes]])')] + u'{{fr-accord-et|}}' + PageTemp[PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{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)]⏎ # 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)] (contracted; show full) 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'{{R:DAF8}}\n\n{{Import:DAF8}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{R:DAF8}}\n\n{{Import:DAF8}}')] + PageTemp[PageTemp.find(u'{{R:DAF8}}\n\n{{Import:DAF8}}')+len(u'{{R:DAF8}}\n\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: (contracted; show full) 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')] #print PageEnd[PageEnd.rfind(u'\n'):len(PageEnd)].encode(config.console_encoding, 'replace') PageEnd = PageEnd + TradCourante + TradSuivantes PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'\n')+1] PageTemp = PageTemp[PageTemp.find(u'\n')+1:len(PageTemp)] #print(PageEnd.encode(config.console_encoding, 'replace')) #print(PageTemp.encode(config.console_encoding, 'replace')) PageTemp = PageEnd + PageTemp PageEnd = u'' #raw_input(PageTemp.encode(config.console_encoding, 'replace')) if PageTemp.find(u'{{-nom-sciences-|conv}}') != -1 and PageTemp.find(u'[[Catégorie:Noms scientifiques]]') != -1: PageTemp = PageTemp[0:PageTemp.find(u'[[Catégorie:Noms scientifiques]]')] + PageTemp[PageTemp.find(u'[[Catégorie:Noms scientifiques]]')+len(u'[[Catégorie:Noms scientifiques]]'):len(PageTemp)] # Repasse derrière Piedbot 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(PageHS)-1] + u']],') == -1: PageTemp = PageTemp[0:PageTemp.find(u'{{-homo-}}\n*[[' + PageHS[0:len(PageHS)-1] + u']]')] + PageTemp[PageTemp.find(u'{{-homo-}}\n*[[' + PageHS[0:len(PageHS)-1] + u']]')+len(u'{{-homo-}}\n*[[' + PageHS[0:len(PageHS)-1] + u']]')+1:len(PageTemp)] elif 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(PageHS)-1] + u']],') == -1: PageTemp = PageTemp[0:PageTemp.find(u'{{-homo-}}\n* [[' + PageHS[0:len(PageHS)-1] + u']]')] + PageTemp[PageTemp.find(u'{{-homo-}}\n* [[' + PageHS[0:len(PageHS)-1] + u']]')+len(u'{{-homo-}}\n* [[' + PageHS[0:len(PageHS)-1] + u']]')+1:len(PageTemp)] # Gentités et leurs adjectifs if PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'e]], {{fplur}} : [[' + PageHS + u'es]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'e]], {{fplur}} : [[' + PageHS + u'es]])')] + u'{{fr-accord-mixte|}}' + PageTemp[PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'e]], {{fplur}} : [[' + PageHS + u'es]])')+len(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'e]], {{fplur}} : [[' + PageHS + u'es]])'):len(PageTemp)] if PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'e]], {{fplur}} : \'\'\'' + PageHS + u'es]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'e]], {{fplur}} : \'\'\'' + PageHS + u'es]])')] + u'{{fr-accord-mixte|}}' + PageTemp[PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'e]], {{fplur}} : \'\'\'' + PageHS + u'es]])')+len(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'e]], {{fplur}} : \'\'\'' + PageHS + u'es]])')+1:len(PageTemp)] if PageTemp.find(u'({{p}} : [[' + PageHS + u']], {{f}} : [[' + PageHS + u'e]], {{fplur}} : [[' + PageHS + u'es]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : [[' + PageHS + u']], {{f}} : [[' + PageHS + u'e]], {{fplur}} : [[' + PageHS + u'es]])')] + u'{{fr-accord-s|}}' + PageTemp[PageTemp.find(u'({{p}} : [[' + PageHS + u']], {{f}} : [[' + PageHS + u'e]], {{fplur}} : [[' + PageHS + u'es]])')+len(u'({{p}} : [[' + PageHS + u']], {{f}} : [[' + PageHS + u'e]], {{fplur}} : [[' + PageHS + u'es]])'):len(PageTemp)] if PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u'\'\'\', {{f}} : \'\'\'' + PageHS + u'e]], {{fplur}} : \'\'\'' + PageHS + u'es]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u'\'\'\', {{f}} : \'\'\'' + PageHS + u'e]], {{fplur}} : \'\'\'' + PageHS + u'es]])')] + u'{{fr-accord-s|}}' + PageTemp[PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u'\'\'\', {{f}} : \'\'\'' + PageHS + u'e]], {{fplur}} : \'\'\'' + PageHS + u'es]])')+len(u'({{p}} : \'\'\'' + PageHS + u'\'\'\', {{f}} : \'\'\'' + PageHS + u'e]], {{fplur}} : \'\'\'' + PageHS + u'es]])'):len(PageTemp)] if PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'le]], {{fplur}} : [[' + PageHS + u'les]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'le]], {{fplur}} : [[' + PageHS + u'les]])')] + u'{{fr-accord-el|}}' + PageTemp[PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'le]], {{fplur}} : [[' + PageHS + u'les]])')+len(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'le]], {{fplur}} : [[' + PageHS + u'les]])'):len(PageTemp)] if PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'le]], {{fplur}} : \'\'\'' + PageHS + u'les]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'le]], {{fplur}} : \'\'\'' + PageHS + u'les]])')] + u'{{fr-accord-el|}}' + PageTemp[PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'le]], {{fplur}} : \'\'\'' + PageHS + u'les]])')+len(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'le]], {{fplur}} : \'\'\'' + PageHS + u'les]])')+1:len(PageTemp)] if PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'ne]], {{fplur}} : [[' + PageHS + u'nes]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'ne]], {{fplur}} : [[' + PageHS + u'nes]])')] + u'{{fr-accord-en|}}' + PageTemp[PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'ne]], {{fplur}} : [[' + PageHS + u'nes]])')+len(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'ne]], {{fplur}} : [[' + PageHS + u'nes]])'):len(PageTemp)] if PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'ne]], {{fplur}} : \'\'\'' + PageHS + u'nes]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'ne]], {{fplur}} : \'\'\'' + PageHS + u'nes]])')] + u'{{fr-accord-en|}}' + PageTemp[PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'ne]], {{fplur}} : \'\'\'' + PageHS + u'nes]])')+len(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'ne]], {{fplur}} : \'\'\'' + PageHS + u'nes]])')+1:len(PageTemp)] if PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'te]], {{fplur}} : [[' + PageHS + u'tes]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'te]], {{fplur}} : [[' + PageHS + u'tes]])')] + u'{{fr-accord-et|}}' + PageTemp[PageTemp.find(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'te]], {{fplur}} : [[' + PageHS + u'tes]])')+len(u'({{p}} : [[' + PageHS + u's]], {{f}} : [[' + PageHS + u'te]], {{fplur}} : [[' + PageHS + u'tes]])'):len(PageTemp)] if PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'te]], {{fplur}} : \'\'\'' + PageHS + u'tes]])') != -1: PageTemp = PageTemp[0:PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{f}} : \'\'\'' + PageHS + u'te]], {{fplur}} : \'\'\'' + PageHS + u'tes]])')] + u'{{fr-accord-et|}}' + PageTemp[PageTemp.find(u'({{p}} : \'\'\'' + PageHS + u's\'\'\', {{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) if pageAnagr.exists(): if pageAnagr.namespace() !=0 and anagramme != u'Utilisateur:JackBot/test': return else: try: PageTempAnagr = pageAnagr.get() except wikipedia.NoPage: return except wikipedia.IsRedirectPage: return except wikipedia.LockedPage: return if PageTempAnagr.find(u'{{langue|fr}}') != -1:⏎ ⏎ # Classement des sections modifiables """PageEnd = u'' while PageTemp.find(u'{{langue|') != -1: PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'{{langue|')+len(u'{{langue|')] PageTemp = PageTemp[PageTemp.find(u'{{langue|')+len(u'{{langue|'):len(PageTemp)] if PageTemp.find(u'{{langue|') != -1: # Rangement des paragraphes par ordre alphabétique de langue dans PageEnd langue1 = PageTemp[0:PageTemp.find(u'}')] if langue1.find(u'|') != -1: langue1 = langue1[0:langue1.find(u'|')] if langue1 != u'': #print(langue1) # ca pt Langue1 = Page(site,u'Modèle:' + langue1) try: PageTemp2 = Langue1.get() except wikipedia.NoPage: 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' if PageTemp.find(u'\n== {{langue|') != -1: ParagCourant = PageEnd[PageEnd.rfind(u'\n'):len(PageEnd)] + PageTemp[0:PageTemp.find(u'\n== {{langue|')] PageTemp = PageTemp[PageTemp.find(u'\n== {{langue|'):len(PageTemp)] elif PageTemp.find(u'\n=={{langue|') != -1: ParagCourant = PageEnd[PageEnd.rfind(u'\n'):len(PageEnd)] + PageTemp[0:PageTemp.find(u'\n=={{langue|')] PageTemp = PageTemp[PageTemp.find(u'\n=={{langue|'):len(PageTemp)] else: ParagCourant = PageEnd[PageEnd.rfind(u'\n'):len(PageEnd)] + PageTemp PageTemp = u'' PageEnd = PageEnd[0:PageEnd.rfind(u'\n')] ParagSuivants = u'' #raw_input (ParagCourant.encode(config.console_encoding, 'replace')) # Comparaison du paragraphe courant avec le précédent, et rangement dans ParagSuivants de ce qui doit le suivre while PageEnd.rfind(u'{{langue|') != -1 and PageEnd.rfind(u'{{langue|') < PageEnd.rfind(u'}}') and PageEnd.rfind(u'{{langue|') != PageEnd.rfind(u'{{langue|fr'): langue2 = PageEnd[PageEnd.rfind(u'{{langue|')+len(u'{{langue|'):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: print "NoPage l 1607 : " + langue2 return except wikipedia.ServerError: print "ServerError l 1610 : " + langue2 return except wikipedia.IsRedirectPage: print u'Redirection l 1613 : ' + langue2 return except wikipedia.BadTitle: print u'BadTitle l 1616 : ' + langue2 return if PageTemp3.find(u'<noinclude>') != -1: langue2 = CleDeTri(PageTemp3[0:PageTemp3.find(u'<noinclude>')]) print langue2 # espagnol catalan if langue2 > langue: summary = summary + ', section ' + langue2 + u' > ' + langue print langue2 + u' > ' + langue ParagSuivants = PageEnd[PageEnd.rfind(u'{{langue|'):len(PageEnd)] + ParagSuivants PageEnd = PageEnd[0:PageEnd.rfind(u'{{langue|')] ParagSuivants = PageEnd[PageEnd.rfind(u'\n'):len(PageEnd)] + ParagSuivants else: ParagCourant = PageEnd[PageEnd.rfind(u'{{langue|'):len(PageEnd)] + ParagCourant PageEnd = PageEnd[0:PageEnd.rfind(u'{{langue|')] ParagCourant = PageEnd[PageEnd.rfind(u'\n'):len(PageEnd)] + ParagCourant #raw_input (ParagCourant.encode(config.console_encoding, 'replace')) catalan, espagnol, portugais PageEnd = PageEnd[0:PageEnd.rfind(u'\n')] else: print u'l 1629' return #raw_input (PageEnd.encode(config.console_encoding, 'replace')) PageEnd = PageEnd + ParagCourant + ParagSuivants else: print u'l 1634' return PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'{{langue|')] PageTemp = PageTemp[PageTemp.find(u'{{langue|'):len(PageTemp)] #raw_input (PageTemp.encode(config.console_encoding, 'replace')) else: PageEnd = PageEnd + PageTemp PageTemp = u'' #print(PageEnd.encode(config.console_encoding, 'replace')) #print(PageTemp.encode(config.console_encoding, 'replace')) PageTemp = PageEnd + PageTemp PageEnd = u''""" # 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 and len(PageHS) < 7: # sinon trop long ( > 1 h par page) 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(): if pageAnagr.namespace() !=0 and anagramme != u'Utilisateur:JackBot/test': return else: try: PageTempAnagr = pageAnagr.get() except wikipedia.NoPage: return except wikipedia.IsRedirectPage: return except wikipedia.LockedPage: return if PageTempAnagr.find(u'{{langue|fr}}') != -1:⏎ ListeAnagrammes = ListeAnagrammes + u'* [[' + anagramme + u']]\n' if ListeAnagrammes != u'': position = PageTemp.find(u'{{langue|fr}}')+len(u'{{langue|fr}}') PageTemp2 = PageTemp[position:len(PageTemp)] if PageTemp2.find(u'{{-voir-}}') != -1 and ((PageTemp2.find(u'{{langue|') != -1 and PageTemp2.find(u'{{-voir-}}') < PageTemp2.find(u'{{langue|')) or PageTemp2.find(u'{{langue|') == -1): PageTemp = PageTemp[0:position+PageTemp2.find(u'{{-voir-}}')] + u'{{-anagr-}}\n\n' + ListeAnagrammes + PageTemp[position+PageTemp2.find(u'{{-voir-}}'):len(PageTemp)] elif PageTemp2.find(u'{{-réf-}}') != -1 and ((PageTemp2.find(u'{{langue|') != -1 and PageTemp2.find(u'{{-réf-}}') < PageTemp2.find(u'{{langue|')) or PageTemp2.find(u'{{langue|') == -1): PageTemp = PageTemp[0:position+PageTemp2.find(u'{{-réf-}}')] + u'{{-anagr-}}\n\n' + ListeAnagrammes + PageTemp[position+PageTemp2.find(u'{{-réf-}}'):len(PageTemp)] elif PageTemp2.find(u'== {{langue|') != -1 and ((PageTemp2.find(u'[[Catégorie:') != -1 and PageTemp2.find(u'== {{langue|') < PageTemp2.find(u'[[Catégorie:')) or PageTemp2.find(u'[[Catégorie:') == -1): PageTemp = PageTemp[0:position+PageTemp2.find(u'== {{langue|')] + u'{{-anagr-}}\n\n' + ListeAnagrammes + PageTemp[position+PageTemp2.find(u'== {{langue|'):len(PageTemp)] elif PageTemp2.find(u'=={{langue|') != -1 and ((PageTemp2.find(u'[[Catégorie:') != -1 and PageTemp2.find(u'=={{langue|') < PageTemp2.find(u'[[Catégorie:')) or PageTemp2.find(u'[[Catégorie:') == -1): PageTemp = PageTemp[0:position+PageTemp2.find(u'=={{langue|')] + u'{{-anagr-}}\n' + ListeAnagrammes + PageTemp[position+PageTemp2.find(u'=={{langue|'):len(PageTemp)] elif PageTemp2.find(u'{{clé de tri') != -1: PageTemp = PageTemp[0:position+PageTemp2.find(u'{{clé de tri')] + u'{{-anagr-}}\n' + ListeAnagrammes + PageTemp[position+PageTemp2.find(u'{{clé de tri'):len(PageTemp)] elif PageTemp2.find(u'[[Catégorie:') != -1: PageTemp = PageTemp[0:position+PageTemp2.find(u'[[Catégorie:')] + u'{{-anagr-}}\n' + ListeAnagrammes + PageTemp[position+PageTemp2.find(u'[[Catégorie:'):len(PageTemp)] else: # Avant interwikis ^w^wikt^b^n^s^q if re.compile('\[\[[a-z][^wsq]+:[^\[\]\n]+\]\]').search(PageTemp): try: i1 = re.search('\[\[[a-z][^wsq]+:[^\[\]\n]+\]\]',PageTemp).start() # ATTENTION à [[wikt:... PageTemp = PageTemp[:i1] + u'{{-anagr-}}\n' + ListeAnagrammes + PageTemp[i1:] except: print u'pb regex interwiki' else: PageTemp = PageTemp + u'{{-anagr-}}\n' + ListeAnagrammes'''⏎ \n' + ListeAnagrammes + PageTemp[position+PageTemp2.find(u'=={{langue|'):len(PageTemp)] elif PageTemp2.find(u'{{clé de tri') != -1: PageTemp = PageTemp[0:position+PageTemp2.find(u'{{clé de tri')] + u'{{-anagr-}}\n\n' + ListeAnagrammes + PageTemp[position+PageTemp2.find(u'{{clé de tri'):len(PageTemp)] elif PageTemp2.find(u'[[Catégorie:') != -1: PageTemp = PageTemp[0:position+PageTemp2.find(u'[[Catégorie:')] + u'{{-anagr-}}\n\n' + ListeAnagrammes + PageTemp[position+PageTemp2.find(u'[[Catégorie:'):len(PageTemp)] else: # Avant interwikis if PageTemp.find(u'[[en:') or PageTemp.find(u'[[ko:') or PageTemp.find(u'[[vi:') != -1: regex = ur'\[\[(.+?)(?:\]\]\n)' # copié de pywikipedia mais pas infaillible, d'où le [[en:... if re.compile(regex).search(PageTemp): try: PageTemp = PageTemp[0:re.search(regex,PageTemp).end()] + u'\n{{-anagr-}}\n' + ListeAnagrammes + u'\n' + PageTemp[re.search(regex,PageTemp).end():len(PageTemp)] except: print u'pb regex interwiki' else: PageTemp = PageTemp + u'\n\n{{-anagr-}}\n' + ListeAnagrammes else: PageTemp = PageTemp + u'\n\n{{-anagr-}}\n' + ListeAnagrammes # Remplacement des 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, 13) NouveauModele = range(1, 13) 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' AncienModele[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'=' + 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)]⏎ # Ajouts des codes langues EstCodeLangue = u'false' trad = u'false' codelangue = None position = 1 p = 1 while position > -1: # On sauvegarde la partie traitée d'une page provisoire dans une page finale jusqu'à disparition de la première (contracted; show full) PageEnd = PageEnd + PageTemp[0:position] + "|" + codelangue + "|" + PageTemp[position+5:position+10] + "}}" else: PageEnd = PageEnd + PageTemp[0:position] + "|" + codelangue + "}}" 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 modèltexte 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] + "}}"PageTemp.find(u'}}')+2] 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": (contracted; show full) # Traitement des modifications d'un compte def crawlerUser(username): gen = pagegenerators.UserContributionsGenerator(username) for Page in pagegenerators.PreloadingGenerator(gen,100): modification(Page.title()) # Toutes les redirections def crawlerRedirects(): for Page in site.allpages(start=u'', namespace=0, includeredirects='only'): 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,100): #print (Page.title().encode(config.console_encoding, 'replace')) modification(Page.title()) def trim(s): (contracted; show full) 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'') TraitementLiens = crawlerLink(u'Modèle:(',u'') TraitementLiens = crawlerLink(u'Modèle:R:DAF8',u'homme') TraitementCategorie = crawlerCat(u'Catégorie:Appels de modèles incorrects:pron conv',True,u'') TraitementFichier = crawlerFile('articles_list.txt') TraitementRedirections = crawlerRedirects() 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=13904720.
![]() ![]() 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.
|