示例#1
0
        // [Option(Description = "An optional parameter, with a default value.\nThe number of times to say hello.")]
        // [Range(1, 1000)]
        // public int Count { get; } = 1;

        private void OnExecute()
        {
            Console.WriteLine("");
            Console.WriteLine($"Searching giphy.com API for `{this.Search}`...");

            var client = new GiphyApi(ApiKey);
            var result = client.Search(this.Search);

            if (result == null)
            {
                Console.WriteLine("Oh no. Didn't get any results back. What crazy thing are you searching for?");
                Console.WriteLine("");
                return;
            }

            Console.WriteLine($"Found `{result.Title}` at {result.Url}");
            Console.WriteLine("");

            Console.WriteLine("GIF URL");
            Console.WriteLine($"{result.GifUrl}");
            Console.WriteLine("");
            Console.WriteLine("MARKDOWN:");
            Console.WriteLine($"![{result.Title}]({result.GifUrl})");
            Console.WriteLine("");
            Console.WriteLine("Thanks for using this CLI. Hope you enjoy it.");
            Console.WriteLine("Visit https://github.com/DavidDeSloovere/giphy-cli for comments, issues, ...");
            Console.WriteLine("");
        }
示例#2
0
        private void OnExecute()
        {
            if (!this.Markdown)
            {
                Console.WriteLine("");
                Console.WriteAscii("GIPHY CLI");
                Console.WriteLine("");
                Console.WriteLine($"Searching giphy.com API for `{this.Search}`...");
                Console.WriteLine("");
            }

            var client = new GiphyApi(ApiKey);
            var result = client.Search(this.Search);

            if (result == null)
            {
                Console.WriteLine("Oh no. Didn't get any results back. What crazy thing are you searching for?");
                Console.WriteLine("");
                return;
            }

            var markdownText = $"![{result.Title}]({result.GifUrl})";

            if (this.Markdown)
            {
                Console.WriteLine(markdownText);
                return;
            }

            var gifUrlText = $"{result.GifUrl}";

            Console.WriteLine($"> Found `{result.Title}`");
            Console.WriteLine($"{result.Url}");
            Console.WriteLine("");

            Console.WriteLine("> GIF URL");
            Console.WriteLine(gifUrlText);
            Console.WriteLine("");

            Console.WriteLine("> MARKDOWN");
            Console.WriteLine(markdownText);
            Console.WriteLine("");

            if (Environment.GetEnvironmentVariable("TERM_PROGRAM") == "iTerm.app")
            {
                Console.Write("\u001B]1337");
                Console.Write(";File=;inline=1:");
                using (var httpClient = new HttpClient())
                {
                    var bytes = httpClient.GetByteArrayAsync(result.GifUrl).GetAwaiter().GetResult();
                    Console.Write(Convert.ToBase64String(bytes));
                }
                Console.Write("\u0007");
                Console.WriteLine("");
            }

            Console.WriteLine("");
            // Awesome lib: https://github.com/shibayan/Sharprompt
            var value = Sharprompt.Prompt.Select <ActionSelectOptions>("What should I do next?");

            switch (value)
            {
            case ActionSelectOptions.OpenGiphyCom:
                OpenBrowser(result.Url);
                break;

            case ActionSelectOptions.CopyUrl:
                ClipboardService.SetText(gifUrlText);
                break;

            case ActionSelectOptions.CopyMarkdown:
                ClipboardService.SetText(markdownText);
                break;
            }

            Console.WriteLine("");
            Console.WriteLine("Thanks for using the Giphy CLI for .NET. Visit https://github.com/DavidDeSloovere/giphy-cli for comments, issues, ...");
        }