Example #1
0
        /// <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");
        }
Example #2
0
        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());
        }
Example #3
0
 public ZalgoString(string source, FuckUpMode mode = FuckUpMode.Normal, FuckUpPosition position = FuckUpPosition.Middle)
 {
     _zalgoString = Convert(source, mode, position);
 }