Difference between revisions 14011399 and 14094237 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) Gère des modèles {{voir}} en début de page. # Importation des modules import catlib, pagegenerators, os, codecs, urllib, re, collections, socket from wikipedia import * # Déclaration language = "fr" family = "wiktionary" mynick = "JackBot" site = getSite(language,family) # Modèles du site à traiter limit6=9278 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[114] = u'-symb-' Modele[115] = u'-inf-' Modele[116] = u'-onoma-' Modele[117] = u'-onoma-' Modele[118] = u'-flex-loc-verbe-' Modele[119] = u'-class-' Modele[120] = u'-sinogramme-' limit1 = 121Modele[121] = u'-prénom-' Modele[122] = u'-flex-prénom-' limit1 = 123 # Paragraphes avec modèle catégorisant # http://fr.wiktionary.org/wiki/Cat%C3%A9gorie:Mod%C3%A8les_de_contexte Modele[121] = u'-trad-' Modele[122] = u'-drv-int-'⏎ Modele[123] = u'-étym-' Modele[124] = u'-exp-' Modele[125] = u'-faux-amis-' Modele[126] = u'-gent-' 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-' #notes 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-' Modele[142] = u'-sous-esp-' Modele[143] = u'-syll-' Modele[144] = u'-syn-' Modele[145] = u'-noms-vern-' Modele[146] = u'-drv-' Modele[147] = u'-trans-' Modele[148] = u'-translit-' Modele[149] = u'-tropo-' Modele[150] = u'-var-' Modele[151] = u'-voc-' Modele[152] = u'-voir-' Modele[153] = u'-pron-' Modele[154] = u'-abrév-' Modele[155] = u'-anagr-' Modele[156] = u'-ant-' Modele[157] = u'-apr-' Modele[158] = u'-cit-' Modele[159] = u'-compos-' Modele[160] = u'-conjug-' Modele[161] = u'-décl-' Modele[162] = u'-dial-' limit2 = 163 # Paragraphes sans modèle catégorisant Modele[163] = u'titre alt' Modele[164] = u'titre mis en forme'Modele[163] = u'-trad-' Modele[164] = u'-drv-int-' limit2 = 165 # Paragraphes sans modèle catégorisant, {{voir| et {{voir/ sont gérés individuellement Modele[165] = u'titre incorrect' Modele[166] = u'formater' Modele[167] = u'suppression' Modele[168] = u'supp' Modele[169] = u'PàS' Modele[170] = u'vérifier' #Modele[171] = u'voir' # et u'voir/' sont gérés individuellement limit3 = 172 # Paragraphes sans modèle catégorisant pouvant contenir des modèles Modele[172] = u'ébauche-trans' Modele[173] = u'ébauche-déf' Modele[174] = u'ébauche-étym' Modele[175] = u'ébauche-pron' Modele[176] = u'ébauche-étym-nom-scientifique' Modele[177] = u'ébauche-exe' Modele[178] = u'ébauche-pron' Modele[179] = u'ébauche-syn' Modele[180] = u'ébauche' limit4 = 181 # ébauches # http://fr.wiktionary.org/wiki/Cat%C3%A9gorie:Mod%C3%A8les_de_domaine_d%E2%80%99utilisation Modele[181] = u'déterminé' Modele[182] = u'didactique' Modele[183] = u'dim-lex' Modele[184] = u'diminutif' Modele[185] = u'diplomatie' Modele[186] = u'informatique' Modele[187] = u'diptote' Modele[188] = u'élatif' Modele[189] = u'ellipse' Modele[190] = u'enclitique'Modele[171] = u'voir' Modele[172] = u'(' Modele[173] = u')' Modele[174] = u'trad-début' Modele[175] = u'trad-fin' Modele[176] = u'm' Modele[177] = u'f' Modele[178] = u'n' Modele[179] = u'c' Modele[180] = u'mf' Modele[181] = u'mf?' Modele[182] = u'préciser' Modele[183] = u'?' Modele[184] = u'doute' Modele[185] = u'trad' Modele[186] = u'trad+' Modele[187] = u'trad-' Modele[188] = u'trad--' Modele[189] = u'titre alt' Modele[190] = u'titre mis en forme' limit3 = 191 # Paragraphes sans modèle catégorisant pouvant contenir des modèles # http://fr.wiktionary.org/wiki/Cat%C3%A9gorie:Mod%C3%A8les_de_domaine_d%E2%80%99utilisation Modele[191] = u'enfantin' Modele[192] = u'épithète' Modele[193] = u'euphémisme' Modele[194] = u'ex-rare' Modele[195] = u'exagératif' Modele[196] = u'expression' Modele[197] = u'familier' (contracted; show full)Modele[594] = u'antiq' Modele[595] = u'litt' Modele[596] = u'mythol' Modele[597] = u'opti' Modele[598] = u'geog' Modele[599] = u'hyperb' Modele[600] = u'gastron' Modele[601] = u' préciser' Modele[602] = u'?didactique' Modele[602] = u'déterminé' Modele[603] = u'td' Modele[604] = u'tr-dir' Modele[605] = u'tr-indir' Modele[606] = u'trad' Modele[607] = u'trad+' Modele[609] = u'trad-' Modele[610] = u'trad--dim-lex' Modele[607] = u'diminutif' Modele[608] = u'diplomatie' Modele[609] = u'informatique' Modele[610] = u'diptote' Modele[611] = u'alpi' Modele[612] = u'anat' Modele[613] = u'anthro' Modele[614] = u'archi' Modele[615] = u'angl' Modele[616] = u'vaudou' Modele[617] = u'maintenance' Modele[618] = u'phyton' Modele[619] = u'phytonimie' Modele[620] = u'déterminé' Modele[621] = u'indéterminé' Modele[622] = u'dét' Modele[623] = u'indét' Modele[624] = u'affectueux' Modele[625] = u'glaciol' Modele[626] = u'fanta' Modele[627] = u'anal' Modele[628] = u'dénombrable' Modele[629] = u'déndén' Modele[625] = u'dénombrable' Modele[626] = u'affectueux' Modele[627] = u'glaciol' Modele[628] = u'fanta' Modele[629] = u'anal' Modele[630] = u'indénombrable' Modele[631] = u'indén' Modele[632] = u'nominatif' Modele[633] = u'nomin' Modele[634] = u'accusatif' Modele[635] = u'accus' Modele[636] = u'datif' Modele[637] = u'génitif' Modele[638] = u'génit' Modele[639] = u'vocatif' Modele[640] = u'vocat' Modele[641] = u'ablatif' Modele[642] = u'ablat' Modele[643] = u'allatif' Modele[644] = u'instrumental' Modele[645] = u'locat' Modele[646] = u'locatif' Modele[647] = u'prépositionnel' Modele[648] = u'indéclinable' Modele[649] = u'indécl' Modele[650] = u'ppart' Modele[651] = u'génitif' Modele[652] = u'psychol' Modele[653] = u'psycho' Modele[654] = u'chim' Modele[655] = u'injur' Modele[656] = u'mycol' Modele[657] = u'myco' Modele[658] = u'Internet' Modele[659] = u'Écossliturgie' Modele[660] = u'diplomatie' Modele[661] = u'tauromachie' Modele[662] = u'germanisme' Modele[663] = u'squelette' Modele[664] = u'muscle' Modele[665] = u'gymnastique' Modele[666] = u'boxe' Modele[667] = u'douteéverbal' Modele[668] = u'liturgiesuperlatif' Modele[669] = u'réflexif' Modele[670] = u'r' Modele[671] = u'irrég' Modele[672] = u'irrégulier' Modele[673] = u'arts martiaux' Modele[674] = u'hydraulique' Modele[675] = u'Commonwealthpar analogie' Modele[676] = u'genre' Modele[677] = u'minéral' Modele[678] = u'iron' Modele[679] = u'ironie' Modele[680] = u'plais' Modele[681] = u'très rare' Modele[682] = u'didact' Modele[683] = u'algèbre' Modele[684] = u'acronyme' Modele[685] = u'allatif' Modele[686] = u'analogie' Modele[687] = u'très très rare' Modele[688] = u'physiol' Modele[689] = u'reproduction' Modele[690] = u'repro' Modele[691] = u'presse' Modele[692] = u'Pays-Bas' Modele[693] = u'meuble' Modele[694] = u'Jamaïmeuble' Modele[693] = u'ellipse' Modele[694] = u'enclitique' Modele[695] = u'néol' Modele[696] = u'archaïsme' Modele[697] = u'nom' Modele[698] = u'indéc' Modele[699] = u'vétérinaire' Modele[700] = u'reli' Modele[701] = u'entom' Modele[702] = u'entomol' Modele[703] = u'pharmacie' Modele[704] = u'pharmacol' Modele[705] = u'athlétisme' Modele[706] = u'athlé' Modele[707] = u'christianisme' Modele[708] = u'conjugaison' Modele[709] = u'1ergroupe' Modele[710] = u'2egroupe' Modele[711] = u'3egroupe' Modele[712] = u'dénominal de' Modele[713] = u'déverbal de' Modele[714] = u'superlatif de' Modele[715] = u'narratol' Modele[716] = u'passif' Modele[717] = u'très-rare' Modele[718] = u'extrêmement rare' Modele[719] = u'jardi' Modele[720] = u'sociol' Modele[721] = u'papeterie' Modele[722] = u'papèterie' Modele[723] = u'Sénégal' Modele[724] = u'geol' Modele[725] = u'fami' Modele[726] = u'tind' Modele[727] = u'pédol' Modele[728] = u'biophysique' Modele[729] = u'psychia' Modele[730] = u'paléontol' Modele[731] = u'horticulture' Modele[732] = u'probabilités' Modele[733] = u'théorie des graphes' Modele[734] = u'graphe' Modele[735] = u'dessin' Modele[736] = u'-prénom-' Modele[737] = u'-flex-prénom-' Modele[738] = u'(' Modele[739] = u')' Modele[740] = u'trad-début' Modele[741] = u'trad-finrécip' Modele[737] = u'réciproque' Modele[738] = u'CB' Modele[739] = u'mah-jong' Modele[740] = u'mahjong' Modele[741] = u'majong' Modele[742] = u'reliure' Modele[743] = u'gravure' Modele[744] = u'livre' Modele[745] = u'canoe' Modele[746] = u'footing' Modele[747] = u'jogging' Modele[748] = u'running' Modele[749] = u'course à pied' Modele[750] = u'Mexique'⏎ Modele[750] = u'programmation' Modele[751] = u'prog' Modele[752] = u'jeux vidéo' Modele[753] = u'judo' Modele[754] = u'gén-indén' Modele[755] = u'Liban' Modele[756] = u'caténatif' Modele[757] = u'fam.' Modele[758] = u'm' Modele[759] = u'f' Modele[760] = u'n' Modele[761] = u'c' Modele[762] = u'mf' Modele[763] = u'mf?' Modele[764] = u'impers' Modele[765] = u'impersonnel' #Modele[766] = u'région' #Modele[767] = u'régio' #Modele[767] = u'régional' Modele[768] = u'CB' Modele[769] = u'mah-jong' Modele[770] = u'mahjong' Modele[771] = u'majongski alpin' Modele[758] = u'ski de fond' Modele[759] = u'canoë-kayak' Modele[760] = u'canoë' Modele[761] = u'artillerie' Modele[762] = u'fonderie' Modele[763] = u'réseau' Modele[764] = u'impers' Modele[765] = u'impersonnel' Modele[766] = u'scol' Modele[767] = u'obsolète' Modele[768] = u'surf' Modele[769] = u'édition' Modele[770] = u'fortification' Modele[771] = u'dentisterie' Modele[772] = u'réseau' Modele[773] = u'réseaux informatiques' Modele[774] = u'déverbal' Modele[775] = u'superlatifkaraté' Modele[775] = u'argot militaire' 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' Modele[783] = u'ski alpin' Modele[784] = u'ski de fond' Modele[785] = u'réseau' Modele[786] = u'canoë-kayak' Modele[787] = u'canoë' Modele[788] = u'scol' Modele[789] = u'obsolète' Modele[789] = u'surf' Modele[790] = u'édition' Modele[791] = u'fortification' Modele[792] = u'dentisterie' Modele[793] = u'artillerie' Modele[794] = u'fonderie'argot polytechnicien' Modele[781] = u'élatif' Modele[782] = u'joaillerie' limit4 = 783 # ébauches Modele[783] = u'ébauche-trans' Modele[784] = u'ébauche-déf' Modele[785] = u'ébauche-étym' Modele[786] = u'ébauche-pron' Modele[787] = u'ébauche-étym-nom-scientifique' Modele[788] = u'ébauche-exe' Modele[789] = u'ébauche-pron' Modele[790] = u'ébauche-syn' Modele[791] = u'ébauche'⏎ limit5 = 795 # non traités #Modele[] = u'spécialement' #Modele[] = u'T'⏎ #Modele[] = u'région' #Modele[] = u'régio' #Modele[] = u'régional' # Modèles régionaux, pb du nocat pour les prononciations Modele[795] = u'Argentine' Modele[796] = u'Australie' Modele[797] = u'Autriche' Modele[798] = u'Auvergne' Modele[799] = u'Baléares' (contracted; show full)Modele[918] = u'Alsace' Modele[919] = u'Amérique centrale' Modele[920] = u'Amérique du Nord' Modele[921] = u'Amérique du Sud' Modele[922] = u'Amérique latine' Modele[923] = u'Anjou' Modele[924] = u'Antilles' Modele[925] = u'Aquitaine' ⏎ Modele[926] = u'Japon' # 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 PageHS.find(u'é') != -1: PagesCleTotal = PagesCleTotal + u'|' + PageHS[0:PageHS.find(u'é')] + u'e' + PageHS[PageHS.find(u'é')+1:len(PageHS)] if PageHS.find(u'è') != -1: PagesCleTotal = PagesCleTotal + u'|' + PageHS[0:PageHS.find(u'è')] + u'e' + PageHS[PageHS.find(u'è')+1:len(PageHS)] if PagesCleTotal.find(CleDeTri(PageHS)) == -1 and PageTemp.find(u'{{langue|eo}}') == -1: PagesCleTotal = PagesCleTotal + u'|' + CleDeTri(PageHS) # Filtre des pages de la liste "à voir" PagesCleRestant = PagesCleTotal + u'|' PagesCleTotal = u'' PagesVoir = u'' while PagesCleRestant != u'': HS = u'False' PageCourante = PagesCleRestant[0:PagesCleRestant.find(u'|')] (contracted; show full) # 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: 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 and PageTemp.find(u'{{-verb-pr-|fr}}') == -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)] summary = summary + u', {{clé de tri}} inutile'⏎ 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: PageTemp = PageTemp[0:PageTemp.find(u'[[Category:')] + u'\n{{clé de tri|' + ClePage + u'}}\n' + PageTemp[PageTemp.find(u'[[Category:'):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{{clé de tri|' + ClePage + u'}}\n' + PageTemp[re.search(regex,PageTemp).end():len(PageTemp)] except: print u'pb regex interwiki' else: PageTemp = PageTemp + u'\n\n{{clé de tri|' + ClePage + u'}}\n' else:""" PageTemp = PageTemp + u'\n\n{{clé de tri|' + ClePage + u'}}\n' else: PageTemp2 = PageTemp[PageTemp.find(u'{{clé de tri'):len(PageTemp)] ClePage = PageTemp2[PageTemp2.find(u'|')+1:PageTemp2.find(u'}}')] 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)] summary = summary + u', {{clé de tri}} inutile'|'):len(PageTemp)] ClePage = PageTemp2[0:PageTemp2.find(u'}}')] if CleDeTri(PageHS) != ClePage: if PageTemp.find(u'{{langue|fr}}') != -1 or PageTemp.find(u'{{langue|eo}}') != -1 or PageTemp.find(u'{{langue|en}}') != -1 or PageTemp.find(u'{{langue|es}}') != -1 or PageTemp.find(u'{{langue|de}}') != -1 or PageTemp.find(u'{{langue|pt}}') != -1 or PageTemp.find(u'{{langue|it}}') != -1: 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|')+PageTemp2.find(u'}}'):len(PageTemp)] else: print (u'Fausse cle de tri') #print (PageHS.encode(config.console_encoding, 'replace')) #print (ClePage.encode(config.console_encoding, 'replace')) # 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 = PageTemp[0:PageTemp.find(u'\n{{colonnes|')] + u'\n{{(}}' + PageTemp[PageTemp.find(u'\n{{colonnes|')+len(u'\n{{colonnes|'):len(PageTemp)] else: break while PageTemp.find(u'}}1=') != -1: PageTemp = PageTemp[0:PageTemp.find(u'}}1=')] + PageTemp[PageTemp.find(u'}}1=')+len(u'}}1='):len(PageTemp)] ⏎ while PageTemp.find(u' ') != -1: PageTemp = PageTemp[0:PageTemp.find(u' ')] + PageTemp[PageTemp.find(u' ')+1:len(PageTemp)] while PageTemp.find(u'\n\n\n') != -1: PageTemp = PageTemp[0:PageTemp.find(u'\n\n\n')] + PageTemp[PageTemp.find(u'\n\n\n')+1:len(PageTemp)] while PageTemp.find(u'\n #*') != -1: PageTemp = PageTemp[0:PageTemp.find(u'\n #*')+1] + PageTemp[PageTemp.find(u'\n #*')+2:len(PageTemp)] while PageTemp.find(u'\n #:') != -1: PageTemp = PageTemp[0:PageTemp.find(u'\n #:')+1] + PageTemp[PageTemp.find(u'\n #:')+2:len(PageTemp)] PageEnd = u'' while PageTemp.find(u'\n#:') != -1: PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'\n#:')+2] if PageEnd.rfind(u'{{langue|') == PageEnd.rfind(u'{{langue|fr}}'): PageTemp = u'*' + PageTemp[PageTemp.find(u'\n#:')+len(u'\n#:'):len(PageTemp)] else: PageTemp = u':' + PageTemp[PageTemp.find(u'\n#:')+len(u'\n#:'):len(PageTemp)] 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'[[Annexe:Couleurs en français]]') != -1: 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'{{Annexe|Couleurs en français}}') != -1: (contracted; show full) 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)] if PageTemp.find(u'{{-nom-ni-') != -1: PageEnd = PageTemp[0:PageTemp.find(u'{{-nom-ni-')+len(u'{{-nom-')] PageTemp = PageTemp[PageTemp.find(u'{{-nom-ni-')+len(u'{{-nom-ni-'):len(PageTemp)] PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'\n')+1] PageTemp = PageTemp[PageTemp.find(u'\n')+1:len(PageTemp)] PageTemp = PageEnd + PageTemp[0:PageTemp.find(u'\n')] + u' {{tsolyáni-ni}}' + PageTemp[PageTemp.find(u'\n'):len(PageTemp)] if summary.find(u'tsolyáni') != -1: summary = summary + u', correction du tsolyáni' if PageTemp.find(u'{{-nom-nn-') != -1: PageEnd = PageTemp[0:PageTemp.find(u'{{-nom-nn-')+len(u'{{-nom-')] PageTemp = PageTemp[PageTemp.find(u'{{-nom-nn-')+len(u'{{-nom-nn-'):len(PageTemp)] PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'\n')+1] PageTemp = PageTemp[PageTemp.find(u'\n')+1:len(PageTemp)] PageTemp = PageEnd + PageTemp[0:PageTemp.find(u'\n')] + u' {{tsolyáni-nn}}' + PageTemp[PageTemp.find(u'\n'):len(PageTemp)] if summary.find(u'tsolyáni') != -1: summary = summary + u', correction du tsolyáni' if PageTemp.find(u'{{-nom-nu-') != -1: PageEnd = PageTemp[0:PageTemp.find(u'{{-nom-nu-')+len(u'{{-nom-')] PageTemp = PageTemp[PageTemp.find(u'{{-nom-nu-')+len(u'{{-nom-nu-'):len(PageTemp)] PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'\n')+1] PageTemp = PageTemp[PageTemp.find(u'\n')+1:len(PageTemp)] PageTemp = PageEnd + PageTemp[0:PageTemp.find(u'\n')] + u' {{tsolyáni-nu}}' + PageTemp[PageTemp.find(u'\n'):len(PageTemp)] if summary.find(u'tsolyáni') != -1: summary = summary + u', correction du tsolyáni' if PageTemp.find(u'{{-nom-npl-') != -1: PageEnd = PageTemp[0:PageTemp.find(u'{{-nom-npl-')] + u'{{-flex-nom-' PageTemp = PageTemp[PageTemp.find(u'{{-nom-npl-')+len(u'{{-nom-npl-'):len(PageTemp)] PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'\n')+1] PageTemp = PageTemp[PageTemp.find(u'\n')+1:len(PageTemp)] PageTemp = PageEnd + PageTemp[0:PageTemp.find(u'\n')] + u' {{tsolyáni-npl}}' + PageTemp[PageTemp.find(u'\n'):len(PageTemp)] if summary.find(u'tsolyáni') != -1: summary = summary + u', correction du tsolyáni' # Modèles trop courts while PageTemp.find(u'{{fp}}') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{fp}}')+4] + u'lur' + PageTemp[PageTemp.find(u'{{fp}}')+4:len(PageTemp)] 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)] ⏎ ⏎ # 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)-(contracted; show full) 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'[http://') != -1: PageTemp = PageTemp[0:PageTemp.find(u'[http://')+1] + PageTemp[PageTemp.find(u'[http://')+6:len(PageTemp)] while PageTemp.find(u'[https://') != -1: PageTemp = PageTemp[0:PageTemp.find(u'[https://')+1] + PageTemp[PageTemp.find(u'[https://')+7:len(PageTemp)] ⏎ ⏎ ''' while PageTemp.find(u'{{dét|') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{dét|')] + u'déterminé' + PageTemp[PageTemp.find(u'{{dét|')+len(u'{{dét|'):len(PageTemp)] while PageTemp.find(u'{{dén|') != -1: PageTemp = PageTemp[0:PageTemp.find(u'{{dén|')] + u'dénombrable' + PageTemp[PageTemp.find(u'{{dén|')+len(u'{{dén|'):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'}')] (contracted; show full) 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 socket.gethostname() != u'"willow'": 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') (contracted; show full) 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 #print(PageEnd.encode(config.console_encoding, 'replace')[0:1000]) #print(PageTemp.encode(config.console_encoding, 'replace')[0:1000]) #raw_input(codelangue) ⏎ ''' Eliminer les {{e}}... while PageTemp.find(u'}}') != -1 and PageTemp.find(u'}}') != PageTemp.find(u'}} ') and PageTemp.find(u'}}') != PageTemp.find(u'}}\n') 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'{{') != -1 and PageTemp.find(u'{{')-1 != PageTemp.find(u' {{') and PageTemp.find(u'{{')-1 != PageTemp.find(u'\n{{'): PageTemp = PageTemp[0:PageTemp.find(u'{{')] + u' ' + PageTemp[PageTemp.find(u'{{'):len(PageTemp)] # Fonctionne au clavier mais pas en .find ni avec « », ni test = u'« ', ni «, ni test.encode : #hexa /u... ? print (str(PageTemp.find(u'«')) + u' = ' + str(PageTemp.find(u'« '))) print (str(PageTemp.find(u'»')) + u' = ' + str(PageTemp.find(u' »')+1)) #raw_input ("alors") if PageHS != u'«' and PageTemp.find(u'«') != -1 and PageTemp.find(u'«') != PageTemp.find(u'« '): PageTemp = PageTemp[0:PageTemp.find(u'«')+1] + u' ' + PageTemp[PageTemp.find(u'«')+1:len(PageTemp)] if PageHS != u'»' and PageTemp.find(u'»') != -1 and PageTemp.find(u'»')-1 != PageTemp.find(u' »'): PageTemp = PageTemp[0:PageTemp.find(u'»')] + u' ' + PageTemp[PageTemp.find(u'»'):len(PageTemp)] if PageTemp[PageTemp.find(u'«'):PageTemp.find(u'«')+1] != u' ': PageTemp = PageTemp[0:PageTemp.find(u'«')+1] + u' ' + PageTemp[PageTemp.find(u'«')+1:len(PageTemp)] if PageTemp[PageTemp.find(u'»')-1:PageTemp.find(u'»')] != u' ': PageTemp = PageTemp[0:PageTemp.find(u'»')] + u' ' + PageTemp[PageTemp.find(u'»'):len(PageTemp)]''' # Recherche de chaque modèle⏎ position = PageTemp.find(u'{{') # On cherche chaque modèle if position < 0: break if position == PageTemp.find(u'{{caractère}}'): codelangue = u'conv' EstCodeLangue = u'false' elif position == PageTemp.find(u'{{='): PageTemp2 = PageTemp[position+3:len(PageTemp)] if PageTemp2.find("}}") < PageTemp2.find("|") or PageTemp2.find("|") == -1: (contracted; show full) if PageTemp2.find(u'|') < PageTemp2.find(u'}}') and PageTemp2.find(u'|') != -1: if PageTemp2[0:PageTemp2.find(u'|')] == PageHS: PageTemp = PageTemp[0:position] + PageTemp[position+1+PageTemp2.find(u'|'):len(PageTemp)] else: if PageTemp2[0:PageTemp2.find(u'}}')] == PageHS: PageTemp = PageTemp[0:position] + PageTemp[position+1+PageTemp2.find(u'}}'):len(PageTemp)] ⏎ # Nettoyage des doublons (tester avec ophtalmologie dans adelphe) '''PageTemp2 = PageTemp[position+1:len(PageTemp)] if codelangue and PageTemp2.find(PageTemp[0:position]) != -1 and PageTemp2.find(u'\n') != -1 and PageTemp2.find(u' {{' + PageTemp[0:position] + u'|' + codelangue + u'}}') < PageTemp2.find(u'\n'): PageTemp = PageTemp[0:position+1+PageTemp2.find(u' {{' + PageTemp[0:position] + u'|' + codelangue + u'}}')] + PageTemp[position+1+PageTemp2.find(u' {{' + PageTemp[0:position] + u'|' + codelangue + u'}}')+len(u' {{' + PageTemp[0:position] + u'|' + codelangue + u'}}'):len(PageTemp)] elif PageTemp2.find(PageTemp[0:position]) != -1 and PageTemp2.find(u'\n') != -1 and PageTemp2.find(u' {{' + PageTemp[0:position] + u'}}') < PageTemp2.find(u'\n'): PageTemp = PageTemp[0:position+1+PageTemp2.find(u' {{' + PageTemp[0:position] + u'}}')] + PageTemp[0:position+1+PageTemp2.find(u' {{' + PageTemp[0:position] + u'}}')+len(u' {{' + PageTemp[0:position] + u'}}'):len(PageTemp)] '''⏎ #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 (contracted; show full) if codelangue != "" and codelangue is not None: if PageTemp[position:position+2] == u'}}' or PageTemp[position:position+4] == u'fr}}': PageEnd = PageEnd + PageTemp[0:position] + "||" + codelangue + "}}" PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] else: while PageTemp.find(u'{{') < PageTemp.find(u'}}') and PageTemp.find(u'{{') != -1: # On saute les différents modèles inclus PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'}}')+2] PageTemp = PageTemp[PageTemp.find(u'}}')+2:len(PageTemp)] if PageTemp.find("|") > PageTemp.find(u'}}') or PageTemp.find(u'|') == -1: position = PageTemp.find("}}") else: position = PageTemp.find("|") PageTemp2 = PageTemp[position+1:len(PageTemp)] #raw_input(PageTemp.encode(config.console_encoding, 'replace'))⏎ if PageTemp2.find(u'|') != -1 and PageTemp2.find(u'|') < PageTemp2.find(u'}}'): # Code langue déjà renseigné break elif PageTemp.find(u'|') != -1 and PageTemp.find(u'|') < PageTemp.find(u'}}'): PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'}}')] + u'|' + codelangue + "}}" PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] else: PageEnd = PageEnd + PageTemp[0:PageTemp.find(u'}}')] + u'||' + codelangue + "}}" PageTemp = PageTemp[PageTemp.find("}}")+2:len(PageTemp)] #raw_input(PageTemp.encode(config.console_encoding, 'replace')) break else:⏎ break elif Modele[p] == u'perfectif' or Modele[p] == u'perf' or Modele[p] == u'imperfectif' or Modele[p] == u'imperf' or Modele[p] == u'déterminé' or Modele[p] == u'dét' or Modele[p] == u'indéterminé' or Modele[p] == u'indét': if (EstCodeLangue == "false") or PageEnd.rfind(u'(') > PageEnd.rfind(u')'): # Si on est dans des parenthèses (contracted; show full) 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:PageTemp.find(u'}}')+2] elif p < limit4: # ébauche : catégorisée quel que soit EstCodeLangue if codelangueParagraphe avec code langue if EstCodeLangue == "true": PageEnd = PageEnd + PageTemp[0:position] + "|" + codelangue + "}}" else: PageEnd = PageEnd + PageTemp[0:position] + "|nocat=1}}" elif p < limit5: # Paragraphe avec code langue if EstCodeLangue == "true"ébauche : catégorisée quel que soit EstCodeLangue if codelangue: PageEnd = PageEnd + PageTemp[0:position] + "|" + codelangue + "}}" else: PageEnd = PageEnd + PageTemp[0:position] + "|nocat=1}}" else: # Paragraphe régional if PageEnd.rfind(u'{{') != -1: PageEnd2 = PageEnd[0:PageEnd.rfind(u'{{')] if EstCodeLangue == "true" and (PageEnd2.rfind(u'{{') != PageEnd2.rfind(u'{{pron|') or PageEnd.rfind(u'{{pron|') < PageEnd.rfind(u'\n') or PageEnd2.rfind(u'{{pron|') == -1) and ((PageTemp.find(u'{{') != PageTemp.find(u'{{pron|') or PageTemp.find(u'{{pron|') > PageT(contracted; show full) except: print PageHS.encode(config.console_encoding, 'replace') + u' ' + langue.encode(config.console_encoding, 'replace') + u' ' + troisieme else: if PageHS[len(PageHS)-len(premier):len(PageHS)] == premier or PageHS[len(PageHS)-len(ppron):len(PageHS)] == ppron: try: i1 = re.search(u'{{\-verb[e]*\-[pr\-]*\|[ ]*' + langue + u'.*}}\n.*\'\'\'',PageEnd).end() PageEnd = PageEnd[:i1] + u' {{pron||' + langue + u'}} {{conj|grp=1|' + langue + u'}}' + PageEnd[i1:] except: print PageHS.encode(config.console_encoding, 'replace') + u' ' + langue.encode(config.console_encoding, 'replace') + u' sans {{pron}}' elif PageHS[len(PageHS)-len(premier):len(PageHS)] == deuxieme or PageHS[len(PageHS)-len(ppron):len(PageHS)] == dpron: try: i1 = re.search(u'{{\-verb[e]*\-[pr\-]*\|[ ]*' + langue + u'.*}}\n[^\[]*\'\'\'',PageEnd).end() PageEnd = PageEnd[:i1] + u' {{pron||' + langue + u'}} {{conj|grp=2|' + langue + u'}}' + PageEnd[i1:] except: print PageHS.encode(config.console_encoding, 'replace') + u' ' + langue.encode(config.console_encoding, 'replace') + u' sans {{pron}}' elif PageHS[len(PageHS)-len(premier):len(PageHS)] == troisieme or PageHS[len(PageHS)-len(ppron):len(PageHS)] == tpron: try: i1 = re.search(u'{{\-verb[e]*\-[pr\-]*\|[ ]*' + langue + u'.*}}\n[^\[]*\'\'\'',PageEnd).end()⏎ if PageEnd[i1:].find(u'{{conj') != -1 and PageEnd[i1:].find(u'{{conj') < PageEnd[i1:].find(u'\n') and (PageEnd[i1:].find(u'{{pron') == -1 or PageEnd[i1:].find(u'{{pron') > PageEnd[i1:].find(u'\n')): PageEnd = PageEnd[:i1] + u' {{pron||' + langue + u'}}' + PageEnd[i1:] elif PageEnd[i1:].find(u'{{pron') != -1 and PageEnd[i1:].find(u'{{pron') < PageEnd[i1:].find(u'\n') and (PageEnd[i1:].find(u'{{conj') == -1 or PageEnd[i1:].find(u'{{conj') > PageEnd[i1:].find(u'\n')): PageTemp2 = PageEnd[i1:][PageEnd[i1:].find(u'{{pron'):len(PageEnd[i1:])] PageEnd = PageEnd[:i1] + PageEnd[i1:][0:PageEnd[i1:].find(u'{{pron')+PageTemp2.find(u'}}')+2] + u' {{conj|grp=1|' + langue + u'}}' + PageEnd[i1:][PageEnd[i1:].find(u'{{pron')+PageTemp2.find(u'}}')+2:len(PageEnd[i1:])] elif (PageEnd[i1:].find(u'{{pron') == -1 or PageEnd[i1:].find(u'{{pron') > PageEnd[i1:].find(u'\n')) and (PageEnd[i1:].find(u'{{conj') == -1 or PageEnd[i1:].find(u'{{conj') > PageEnd[i1:].find(u'\n')): PageEnd = PageEnd[:i1] + u' {{pron||' + langue + u'}} {{conj|grp=1|' + langue + u'}}' + PageEnd[i1:] except: print PageHS.encode(config.console_encoding, 'replace') + u' ' + langue.encode(config.console_encoding, 'replace') + u' sans {{pron}}' elif PageHS[len(PageHS)-len(premier):len(PageHS)] == deuxieme or PageHS[len(PageHS)-len(ppron):len(PageHS)] == dpron: try: i1 = re.search(u'{{\-verb[e]*\-[pr\-]*\|[ ]*' + langue + u'.*}}\n[^\[]*\'\'\'',PageEnd).end() if PageEnd[i1:].find(u'{{conj') != -1 and PageEnd[i1:].find(u'{{conj') < PageEnd[i1:].find(u'\n') and (PageEnd[i1:].find(u'{{pron') == -1 or PageEnd[i1:].find(u'{{pron') > PageEnd[i1:].find(u'\n')): PageEnd = PageEnd[:i1] + u' {{pron||' + langue + u'}}' + PageEnd[i1:] elif PageEnd[i1:].find(u'{{pron') != -1 and PageEnd[i1:].find(u'{{pron') < PageEnd[i1:].find(u'\n') and (PageEnd[i1:].find(u'{{conj') == -1 or PageEnd[i1:].find(u'{{conj') > PageEnd[i1:].find(u'\n')): PageTemp2 = PageEnd[i1:][PageEnd[i1:].find(u'{{pron'):len(PageEnd[i1:])] PageEnd = PageEnd[:i1] + PageEnd[i1:][0:PageEnd[i1:].find(u'{{pron')+PageTemp2.find(u'}}')+2] + u' {{conj|grp=2|' + langue + u'}}' + PageEnd[i1:][PageEnd[i1:].find(u'{{pron')+PageTemp2.find(u'}}')+2:len(PageEnd[i1:])] elif (PageEnd[i1:].find(u'{{pron') == -1 or PageEnd[i1:].find(u'{{pron') > PageEnd[i1:].find(u'\n')) and (PageEnd[i1:].find(u'{{conj') == -1 or PageEnd[i1:].find(u'{{conj') > PageEnd[i1:].find(u'\n')): PageEnd = PageEnd[:i1] + u' {{pron||' + langue + u'}} {{conj|grp=2|' + langue + u'}}' + PageEnd[i1:] except: print PageHS.encode(config.console_encoding, 'replace') + u' ' + langue.encode(config.console_encoding, 'replace') + u' sans {{pron}}' elif PageHS[len(PageHS)-len(premier):len(PageHS)] == troisieme or PageHS[len(PageHS)-len(ppron):len(PageHS)] == tpron: try: i1 = re.search(u'{{\-verb[e]*\-[pr\-]*\|[ ]*' + langue + u'.*}}\n[^\[]*\'\'\'',PageEnd).end() if PageEnd[i1:].find(u'{{conj') != -1 and PageEnd[i1:].find(u'{{conj') < PageEnd[i1:].find(u'\n') and (PageEnd[i1:].find(u'{{pron') == -1 or PageEnd[i1:].find(u'{{pron') > PageEnd[i1:].find(u'\n')): PageEnd = PageEnd[:i1] + u' {{pron||' + langue + u'}}' + PageEnd[i1:] elif PageEnd[i1:].find(u'{{pron') != -1 and PageEnd[i1:].find(u'{{pron') < PageEnd[i1:].find(u'\n') and (PageEnd[i1:].find(u'{{conj') == -1 or PageEnd[i1:].find(u'{{conj') > PageEnd[i1:].find(u'\n')): PageTemp2 = PageEnd[i1:][PageEnd[i1:].find(u'{{pron'):len(PageEnd[i1:])] PageEnd = PageEnd[:i1] + PageEnd[i1:][0:PageEnd[i1:].find(u'{{pron')+PageTemp2.find(u'}}')+2] + u' {{conj|grp=3|' + langue + u'}}' + PageEnd[i1:][PageEnd[i1:].find(u'{{pron')+PageTemp2.find(u'}}')+2:len(PageEnd[i1:])] elif (PageEnd[i1:].find(u'{{pron') == -1 or PageEnd[i1:].find(u'{{pron') > PageEnd[i1:].find(u'\n')) and (PageEnd[i1:].find(u'{{conj') == -1 or PageEnd[i1:].find(u'{{conj') > PageEnd[i1:].find(u'\n')):⏎ PageEnd = PageEnd[:i1] + u' {{pron||' + langue + u'}} {{conj|grp=3|' + langue + u'}}' + PageEnd[i1:] except: print PageHS.encode(config.console_encoding, 'replace') + u' ' + langue.encode(config.console_encoding, 'replace') + u' sans {{pron}}' '''# Recherche de bug if PageEnd.find(u'{{trad-début|{{') != -1: (contracted; show full) PageT = PageT + "a" key = "yes" elif 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 + "b" key = "yes" elif 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'Č' or PageTitre[lettre:lettre+1] == u'Ƈ' or PageTitre[lettre:lettre+1] == u'Ȼ': # ĉ -> cx en espéranto PageT = PageT + "cPageT = PageT + "c" key = "yes" elif PageTitre[lettre:lettre+1] == u'ĉ': PageT = PageT + "cx" key = "yes" elif 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'ȸ(contracted; show full) PageT = PageT + "e" key = "yes" elif PageTitre[lettre:lettre+1] == u'ƒ' or PageTitre[lettre:lettre+1] == u'Ƒ': PageT = PageT + "f" key = "yes" elif PageTitre[lettre:lettre+1] == u'ĝ' or: PageT = PageT + "gx" key = "yes" elif 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'Ǥ' or PageTitre[lettre:lettre+1] == u'Ǧ' or PageTitre[lettre:lettre+1] == u'Ǵ': PageT = PageT + "g" key = "yes" elif PageTitre[lettre:lettre+1] == u'ĥ' or: PageT = PageT + "hx" key = "yes" elif 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 + "h" key = "yes" (contracted; show full)= u'Ǐ' or PageTitre[lettre:lettre+1] == u'Ȉ' or PageTitre[lettre:lettre+1] == u'Ȋ' or PageTitre[lettre:lettre+1] == u'ij' or PageTitre[lettre:lettre+1] == u'IJ' 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 + "i" key = "yes" elif PageTitre[lettre:lettre+1] == u'ĵ' or: PageT = PageT + "jx" key = "yes" elif 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 + "j" key = "yes" (contracted; show full)] == 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 + "r" key = "yes" elif PageTitre[lettre:lettre+1] == u'ŝ': PageT = PageT + "sx" key = "yes"⏎ elif 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'Š' or PageTitre[lettre:lettre+1] == u'Ʃ' or PageTitre[lettre:lettre+1] == u'Ș' or PageTitre[lettre:lettre+1] == u'ß': PageT = PageT + "s" key = "yes" elif 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'Ʈ' or PageTitre[lettre:lettre+1] == u'Ț' or PageTitre[lettre:lettre+1] == u'Ⱦ' or PageTitre[lettre:lettre+1] == u'ⱦ': PageT = PageT + "t" key = "yes" elif PageTitre[lettre:lettre+1] == u'ŭ': PageT = PageT + "ux" key = "yes"⏎ elif 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'ǚ' or PageTitre[lettre:lettre+1] == u'ǜ' or PageTitre[lettre:lettre+1] == u'ǟ' or PageTitre[lettre:lettre+1] == u'ǡ' or PageTitre[let(contracted; show full) if key == "yes": while PageT[0:1] == u' ': PageT = PageT[1:len(PageT)] return PageT else: #raw_input(PageTitre.encode(config.console_encoding, 'replace')) return PageTitre def trim(s): return s.strip(" \t\n\r\0\x0B") def rec_anagram(counter): # Copyright http://www.siteduzero.com/forum-83-541573-p2-exercice-generer-tous-les-anagrammes.html if sum(counter.values()) == 0: yield '' else: for c in counter: if counter[c] != 0: counter[c] -= 1 for _ in rec_anagram(counter): yield c + _ counter[c] += 1 def anagram(word): return rec_anagram(collections.Counter(word))⏎ ⏎ # Lecture du fichier articles_list.txt (au même format que pour replace.py) def crawlerFile(source): if source: PagesHS = open(source, 'r') while 1: PageHS = PagesHS.readline() fin = PageHS.find("\t") PageHS = PageHS[0:fin] (contracted; show full) # 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): return s.strip(" \t\n\r\0\x0B") def rec_anagram(counter): # Copyright http://www.siteduzero.com/forum-83-541573-p2-exercice-generer-tous-les-anagrammes.html if sum(counter.values()) == 0: yield '' else: for c in counter: if counter[c] != 0: counter[c] -= 1 for _ in rec_anagram(counter): yield c + _ counter[c] += 1 def anagram(word): return rec_anagram(collections.Counter(word))⏎ # Permet à tout le monde de stopper le bot en lui écrivant def ArretDUrgence(): page = Page(site,u'User talk:' + mynick) if page.exists(): PageTemp = u'' try: PageTemp = page.get() except wikipedia.NoPage: return except wikipedia.IsRedirectPage: return except wikipedia.LockedPage: return 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": if not summary: summary = u'[[Wiktionnaire:Structure des articles|Autoformatage]]' try: PageCourante.put(Contenu, summary) except wikipedia.NoPage: print "NoPage l 3784en sauvegarde" return except wikipedia.IsRedirectPage: print "NoPage l 3787IsRedirectPage en sauvegarde" return except wikipedia.LockedPage: print "NoPage l 3790LockedPage en sauvegarde" return except pywikibot.EditConflict: print "NoPage l 3793EditConflict en sauvegarde" return except wikipedia.ServerError: print "NoPage l 3796ServerError en sauvegarde" return except wikipedia.BadTitle: print "NoPage l 3799BadTitle en sauvegarde" 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'') 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:=langue=',u'') TraitementLiens = crawlerLink(u'Modèle:trad-',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'chinois') 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=14094237.
![]() ![]() 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.
|