Refactor to move actions to separated files.

dev 0.7.0
KKlochko 2 years ago
parent a56704226b
commit 5919ba8864

@ -0,0 +1,26 @@
(ns cipher-analytical-machine.cli.actions.cracking
(:require
[cipher-analytical-machine.analyzers.caesar :as caesar-analyzers]
[cipher-analytical-machine.symbols.frequencies :as symbol-frequencies])
(:gen-class))
(defn cracking-caesar
[options arguments]
(let [analyzer (:analyzer options)
message (:message options)
symbols (:symbols options)
frequencies symbol-frequencies/english-letter-frequencies]
(cond
(= analyzer "Chi^2")
(caesar-analyzers/get-plaintext message symbols frequencies)
:else
(caesar-analyzers/get-plaintext message symbols frequencies))))
(defn cracking-actions
[options arguments action-type]
(let [cipher (:cipher options)]
(cond
(= cipher "Caesar")
(cracking-caesar options arguments))))

@ -0,0 +1,24 @@
(ns cipher-analytical-machine.cli.actions.cryptography
(:require
[cipher-analytical-machine.ciphers.caesar :as caesar])
(:gen-class))
(defn caesar-actions
[options arguments action-type]
(let [message (:message options)
key (Integer/parseInt (:key options))
symbols (:symbols options)]
(cond
(= action-type :encrypt)
(caesar/encrypt-message message key symbols)
(= action-type :decrypt)
(caesar/decrypt-message message key symbols))))
(defn cryptography-actions
[options arguments action-type]
(let [cipher (:cipher options)]
(cond
(= cipher "Caesar")
(caesar-actions options arguments action-type))))

@ -1,12 +1,11 @@
(ns cipher-analytical-machine.cli.cli (ns cipher-analytical-machine.cli.cli
(:require (:require
[cipher-analytical-machine.cli.file :as file] [cipher-analytical-machine.cli.file :as file]
[cipher-analytical-machine.ciphers.caesar :as caesar]
[cipher-analytical-machine.analyzers.caesar :as caesar-analyzers]
[cipher-analytical-machine.symbols.factories :as sf] [cipher-analytical-machine.symbols.factories :as sf]
[cipher-analytical-machine.symbols.frequencies :as symbol-frequencies]
[cipher-analytical-machine.cli.options :as options] [cipher-analytical-machine.cli.options :as options]
[clojure.string :as cs] [clojure.string :as cs]
[cipher-analytical-machine.cli.actions.cryptography :as cryptography]
[cipher-analytical-machine.cli.actions.cracking :as cracking]
[clojure.tools.cli :refer [parse-opts]]) [clojure.tools.cli :refer [parse-opts]])
(:gen-class)) (:gen-class))
@ -148,51 +147,16 @@
(save-output output options)) (save-output output options))
(println output)) (println output))
(defn cracking-caesar
[options arguments]
(let [analyzer (:analyzer options)
message (:message options)
symbols (:symbols options)
frequencies symbol-frequencies/english-letter-frequencies]
(cond
(= analyzer "Chi^2")
(caesar-analyzers/get-plaintext message symbols frequencies)
(= analyzer "Frequency")
(caesar-analyzers/frequency-analizer-get-plaintext message symbols
(symbol-frequencies/map-to-string frequencies)
(:language options "en")))))
(defn cracking-actions
[options arguments action-type]
(let [cipher (:cipher options)]
(cond
(= cipher "Caesar")
(cracking-caesar options arguments)
)))
(defn crypt-actions
[options arguments action-type]
(let [message (:message options)
key (Integer/parseInt (:key options))
symbols (:symbols options)]
(cond
(= action-type :encrypt)
(caesar/encrypt-message message key symbols)
(= action-type :decrypt)
(caesar/decrypt-message message key symbols))))
(defn actions (defn actions
[options arguments action-type] [options arguments action-type]
(let [options (load-all-options options)] (let [options (load-all-options options)]
(-> (->
(cond (cond
(contains? #{:encrypt :decrypt} action-type) (contains? #{:encrypt :decrypt} action-type)
(crypt-actions options arguments action-type) (cryptography/cryptography-actions options arguments action-type)
(= action-type :cracking) (= action-type :cracking)
(cracking-actions options arguments action-type)) (cracking/cracking-actions options arguments action-type))
(show-and-save-output options)))) (show-and-save-output options))))

Loading…
Cancel
Save