diff --git a/main.py b/main.py index f4d4cdb..81843e5 100644 --- a/main.py +++ b/main.py @@ -13,6 +13,9 @@ def checkArguments(): return args.parse_args() def readCipherText(filename): + """ + This read the file passed in argument and return the data of it + """ file = [] with open(filename, 'r') as f: data = f.readlines() @@ -22,20 +25,10 @@ def readCipherText(filename): return file -def main(): - args = checkArguments() - cipherFile = None - - if args.filename: - cipherFile = readCipherText(args.filename) - - if args.stats: - stats(cipherFile) - if args.decrypt: - decryptCaesarText(cipherFile) - - def stats(file=None): + """ + This function get a stats of all letter occurrence in a text + """ if file is None: text = loremtext() else: @@ -60,6 +53,9 @@ def stats(file=None): plt.show() def decryptCaesarText(cipherFile): + """ + This function breach the caesar ciphertext with all key + """ if cipherFile is None: return @@ -73,20 +69,41 @@ def decryptCaesarText(cipherFile): newLine = str() for letter in line: letter = letter.upper() - l = ord(letter) - if l >= letterAToAscii and l <= letterZToAscii: - l = l - letterAToAscii - res = ((l - key) % 26) + letterAToAscii - newLine = newLine + chr(res) - elif l >= letteraToAscii and l <= letterzToAscii: - l = l - letteraToAscii - res = ((l - key) % 26) + letteraToAscii - newLine = newLine + chr(res) + letterAscii = ord(letter) + if letterAscii >= letterAToAscii and letterAscii <= letterZToAscii: + newLetter = getNewLetter(letterAscii, letterAToAscii, key) + elif letterAscii >= letteraToAscii and letterAscii <= letterzToAscii: + newLetter = getNewLetter(letteraToAscii, key) else: - newLine = newLine + letter + newLetter = letter + + newLine = newLine + newLetter + foo.append(newLine) + print(f"key: {key}") print(foo) +def getNewLetter(letterAscii, letterToAscii, key): + """ + This function return the new letter and we substract with the key. + The function return the new letter into a char + """ + letterAscii = letterAscii - letterToAscii + res = ((letterAscii - key) % 26) + letterToAscii + return chr(res) + +def main(): + args = checkArguments() + cipherFile = None + + if args.filename: + cipherFile = readCipherText(args.filename) + + if args.stats: + stats(cipherFile) + if args.decrypt: + decryptCaesarText(cipherFile) + if __name__ == "__main__": main() diff --git a/poem.txt b/poem.txt new file mode 100644 index 0000000..1b1adc2 --- /dev/null +++ b/poem.txt @@ -0,0 +1,139 @@ +Ô saint prêtre ! grande âme ! oh ! je tombe à genoux ! +Jeune, il avait encor de longs jours parmi nous, +Il n'en a pas compté le nombre ; +Il était à cet âge où le bonheur fleurit ; +Il a considéré la croix de Jésus-Christ +Toute rayonnante dans l'ombre. + +Il a dit : — « C'est le Dieu de progrès et d'amour. +Jésus, qui voit ton front croit voir le front du jour. +Christ sourit à qui le repousse. +Puisqu'il est mort pour nous, je veux mourir pour lui ; +Dans son tombeau, dont j'ai la pierre pour appui, +Il m'appelle d'une voix douce. + +« Sa doctrine est le ciel entr'ouvert ; par la main, +Comme un père l'enfant, il tient le genre humain ; +Par lui nous vivons et nous sommes ; +Au chevet des geôliers dormant dans leurs maisons, +Il dérobe les clefs de toutes les prisons +Et met en liberté les hommes. + +« Or il est, loin de nous, une autre humanité +Qui ne le connaît point, et dans l'iniquité +Rampe enchaînée, et souffre et tombe ; +Ils font pour trouver Dieu de ténébreux efforts ; +Ils s'agitent en vain ; ils sont comme des morts +Qui tâtent le mur de leur tombe. + +« Sans loi, sans but, sans guide, ils errent ici-bas. +Ils sont méchants, étant ignorants ; ils n'ont pas +Leur part de la grande conquête. +J'irai. Pour les sauver je quitte le saint lieu. +Ô mes frères, je viens vous apporter mon Dieu, +Je viens vous apporter ma tête ! » — + +Prêtre, il s'est souvenu, calme en nos jours troublés, +De la parole dite aux apôtres : — Allez, +Bravez les bûchers et les claies ! — +Et de l'adieu du Christ au suprême moment : +— Ô vivant, aimez-vous ! aimez. En vous aimant, +Frères, vous fermerez mes plaies. — + +Il s'est dit qu'il est bon d'éclairer dans leur nuit +Ces peuples égarés loin du progrès qui luit, +Dont l'âme est couverte de voiles ; +Puis il s'en est allé, dans les vents, dans les flots, +Vers les noirs chevalets et les sanglants billots, +Les yeux fixés sur les étoiles. + +II. + +Ceux vers qui cet apôtre allait, l'ont égorgé. + +III. + +Oh ! tandis que là-bas, hélas ! chez ces barbares, +S'étale l'échafaud de tes membres chargé, +Que le bourreau, rangeant ses glaives et ses barres, +Frotte au gibet son ongle où ton sang s'est figé ; + +Ciel ! tandis que les chiens dans ce sang viennent boire, +Et que la mouche horrible, essaim au vol joyeux, +Comme dans une ruche entre en ta bouche noire +Et bourdonne au soleil dans les trous de tes yeux ; + +Tandis qu'échevelée, et sans voix, sans paupières, +Ta tête blême est là sur un infâme pieu, +Livrée aux vils affronts, meurtrie à coups de pierres, +Ici, derrière toi, martyr, on vend ton Dieu ! + +Ce Dieu qui n'est qu'à toi, martyr, on te le vole ! +On le livre à Mandrin, ce Dieu pour qui tu meurs ! +Des hommes, comme toi revêtus de l'étole, +Pour être cardinaux, pour être sénateurs, + +Des prêtres, pour avoir des palais, des carrosses, +Et des jardins l'été riant sous le ciel bleu, +Pour argenter leur mitre et pour dorer leurs crosses, +Pour boire de bon vin, assis près d'un bon feu, + +Au forban dont la main dans le meurtre est trempée, +Au larron chargé d'or qui paye et qui sourit, +Grand Dieu ! retourne-toi vers nous, tête coupée ! +Ils vendent Jésus-Christ ! ils vendent Jésus-Christ ! + +Ils livrent au bandit, pour quelques sacs sordides, +L'évangile, la loi, l'autel épouvanté, +Et la justice aux yeux sévères et candides, +Et l'étoile du coeur humain, la vérité ! + +Les bons jetés, vivants, au bagne, ou morts, aux fleuves, +L'homme juste proscrit par Cartouche Sylla, +L'innocent égorgé, le deuil sacré des veuves, +Les pleurs de l'orphelin, ils vendent tout cela ! + +Tout ! la foi, le serment que Dieu tient sous sa garde, +Le saint temple où, mourant, tu dis :Introïbo, +Ils livrent tout ! pudeur, vertu ! — martyr, regarde, +Rouvre tes yeux qu'emplit la lueur du tombeau ; — + +Ils vendent l'arche auguste où l'hostie étincelle ! +Ils vendent Christ, te dis-je ! et ses membres liés ! +Ils vendent la sueur qui sur son front ruisselle, +Et les clous de ses mains, et les clous de ses pieds ! + +Ils vendent au brigand qui chez lui les attire +Le grand crucifié sur les hommes penché ; +Ils vendent sa parole, ils vendent son martyre, +Et ton martyre à toi par-dessus le marché ! + +Tant pour les coups de fouet qu'il reçut à la porte ! +César ! tant pour l'amen, tant pour l'alléluia ! +Tant pour la pierre où vint heurter sa tête morte ! +Tant pour le drap rougi que sa barbe essuya ! + +Ils vendent ses genoux meurtris, sa palme verte, +Sa plaie au flanc, son oeil tout baigné d'infini, +Ses pleurs, son agonie, et sa bouche entrouverte, +Et le cri qu'il poussa : Lamma Sabacthani ! + +Ils vendent le sépulcre ! ils vendent les ténèbres ! +Les séraphins chantant au seuil profond des cieux, +Et la mère debout sous l'arbre aux bras funèbres, +Qui, sentant là son fils, ne levait pas les yeux ! + +Oui, ces évêques, oui, ces marchands, oui, ces prêtres +A l'histrion du crime, assouvi, couronné, +A ce Néron repu qui rit parmi les traîtres, +Un pied sur Thraséas, un coude sur Phryné, + +Au voleur qui tua les lois à coups de crosse, +Au pirate empereur Napoléon dernier, +Ivre deux fois, immonde encor plus que féroce, +Pourceau dans le cloaque et loup dans le charnier, + +Ils vendent, ô martyr, le Dieu pensif et pâle +Qui, debout sur la terre et sous le firmament, +Triste et nous souriant dans notre nuit fatale, +Sur le noir Golgotha saigne éternellement !