/// <summary> /// The tool for generationg zalgo text /// </summary> /// <param name="input">Text for processing</param> /// <param name="fuckUpMode">F**k Up mode</param> /// <param name="fuckUpPosition">F**k Up position</param> static void Main(string input, FuckUpMode fuckUpMode = FuckUpMode.Normal, FuckUpPosition fuckUpPosition = FuckUpPosition.All) { Console.OutputEncoding = Encoding.UTF8; if (string.IsNullOrEmpty(input)) { Console.WriteLine("Input must not be null"); return; } var res = new ZalgoString(input, fuckUpMode, fuckUpPosition); TextCopy.Clipboard.SetText(res); Console.WriteLine("Text copied to buffer"); }
private static string Convert(string source, FuckUpMode mode, FuckUpPosition position) { if (string.IsNullOrWhiteSpace(source)) { return(source); } StringBuilder result = new StringBuilder(source.Length); int sourceLength = source.Length; var addUpCharsCount = 0; var addMidCharsCount = 0; var addDownCharsCount = 0; for (int i = 0; i < sourceLength; i++) { if (IsZalgoChar(source[i])) { continue; } result.Append(source[i]); if (source[i] == '\r' || source[i] == '\n') { continue; } switch (mode) { case FuckUpMode.Min: addUpCharsCount = RandomNumber(8); addMidCharsCount = RandomNumber(2); addDownCharsCount = RandomNumber(8); break; case FuckUpMode.Normal: addUpCharsCount = RandomNumber(10); addMidCharsCount = RandomNumber(4); addDownCharsCount = RandomNumber(10); break; case FuckUpMode.Max: addUpCharsCount = RandomNumber(12); addMidCharsCount = RandomNumber(6); addDownCharsCount = RandomNumber(12); break; } var isUpLine = (position & FuckUpPosition.Up) == FuckUpPosition.Up; var isMidLine = (position & FuckUpPosition.Middle) == FuckUpPosition.Middle; var isBotLine = (position & FuckUpPosition.Bot) == FuckUpPosition.Bot; if (isUpLine) { for (int j = 0; j < addUpCharsCount; j++) { result.Append(GetZalgoChar(ZalgoChars.ZalgoUp)); } } if (isMidLine) { for (int j = 0; j < addMidCharsCount; j++) { result.Append(GetZalgoChar(ZalgoChars.ZalgoMid)); } } if (isBotLine) { for (int j = 0; j < addDownCharsCount; j++) { result.Append(GetZalgoChar(ZalgoChars.ZalgoDown)); } } } return(result.ToString()); }
public ZalgoString(string source, FuckUpMode mode = FuckUpMode.Normal, FuckUpPosition position = FuckUpPosition.Middle) { _zalgoString = Convert(source, mode, position); }