|
|
|
@ -9,6 +9,7 @@ module Pancake =
|
|
|
|
|
open DataProcessing |
|
|
|
|
open DataStructuring |
|
|
|
|
open DataServices |
|
|
|
|
open System |
|
|
|
|
|
|
|
|
|
let RequestRandomTextAsync() = |
|
|
|
|
async { |
|
|
|
@ -20,24 +21,49 @@ module Pancake =
|
|
|
|
|
return GenerateMarkovText (PickRandomNumber 2 10) data |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// TODO: Write tests for the validation checks (throws exceptions) |
|
|
|
|
let RequestTextAsync (gibberishLevel: int) (sentences: int) = |
|
|
|
|
async { |
|
|
|
|
let data = |
|
|
|
|
LoadFile (SelectRandomSampleFile()) |
|
|
|
|
|> ApplyStandardSetup |
|
|
|
|
|> SortIntoGroups gibberishLevel |
|
|
|
|
|> GenerateMap |
|
|
|
|
return GenerateMarkovText sentences data |
|
|
|
|
try |
|
|
|
|
if GibberishLevelIsValid gibberishLevel then |
|
|
|
|
if SentencesIsValid sentences then |
|
|
|
|
let data = |
|
|
|
|
LoadFile (SelectRandomSampleFile()) |
|
|
|
|
|> ApplyStandardSetup |
|
|
|
|
|> SortIntoGroups gibberishLevel |
|
|
|
|
|> GenerateMap |
|
|
|
|
return GenerateMarkovText sentences data |
|
|
|
|
else |
|
|
|
|
return raise (ArgumentException("Invalid argument. Must be greater than 0.", "sentences")) |
|
|
|
|
else |
|
|
|
|
return raise (ArgumentException("Invalid argument. Must be between 2 and 20 (inclusive).", "gibberishLevel")) |
|
|
|
|
with |
|
|
|
|
| :? ArgumentException as ex -> |
|
|
|
|
return ex.Message |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// TODO: Write tests for the validation checks (throws exceptions) |
|
|
|
|
let RequestTextFromFileAsync (gibberishLevel: int) (sentences: int) (filePath: string) = |
|
|
|
|
async { |
|
|
|
|
let data = |
|
|
|
|
LoadFile filePath |
|
|
|
|
|> ApplyStandardSetup |
|
|
|
|
|> SortIntoGroups gibberishLevel |
|
|
|
|
|> GenerateMap |
|
|
|
|
return GenerateMarkovText sentences data |
|
|
|
|
try |
|
|
|
|
if GibberishLevelIsValid gibberishLevel then |
|
|
|
|
if SentencesIsValid sentences then |
|
|
|
|
if FilePathIsValid filePath then |
|
|
|
|
let data = |
|
|
|
|
LoadFile filePath |
|
|
|
|
|> ApplyStandardSetup |
|
|
|
|
|> SortIntoGroups gibberishLevel |
|
|
|
|
|> GenerateMap |
|
|
|
|
return GenerateMarkovText sentences data |
|
|
|
|
else |
|
|
|
|
return raise (ArgumentException("Invalid argument. File must be a .txt file and include a valid file path.", "filePath")) |
|
|
|
|
else |
|
|
|
|
return raise (ArgumentException("Invalid argument. Must be greater than 0.", "sentences")) |
|
|
|
|
else |
|
|
|
|
return raise (ArgumentException("Invalid argument. Must be between 2 and 20 (inclusive).", "gibberishLevel")) |
|
|
|
|
with |
|
|
|
|
| :? ArgumentException as ex -> |
|
|
|
|
return ex.Message |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
let RequestAllTemplateFilesAsync () = |
|
|
|
|