internal SlackReporter(string baseUrl, SlackReporterOptions options)
        {
            _baseUrl = baseUrl;
            Options  = options;

            var r = Call <AuthTestResponse>("auth.test", new Dictionary <string, string>());

            PrintDiagnosticsMessage($"Logged in as [{r.UserId}] '{r.User}' from [{r.TeamId}] '{r.Team}'");
        }
Пример #2
0
        public static void Main(string[] args)
        {
            if (args.Length < 2)
            {
                WriteLine("Invalid command line args!");
                WriteLine("Usage:");
                WriteLine("program.exe ACCESS_TOKEN CHANNEL_OR_USERNAME");
                Environment.Exit(-1);
                return;
            }

            var options = new SlackReporterOptions
            {
                AccessToken             = args[0],
                Channel                 = args[1],
                Username                = "******",
                Icon                    = SlackIcon.Emoji(":information_source:"),
                DeleteMessageAfterwards = true
            };

            SlackReporter.DiagnosticsMessage += (_, e) => WriteLine($"[diag] {e.Message}");

            var reporter = options.CreateReporter();

            WriteLine("Posting initial status message");
            using (var message = reporter.BeginMessage("`[          ]` Preparing some long-term operation..."))
            {
                for (var i = 0; i < MAX_STEPS; i++)
                {
                    Task.Delay(MAX_STEPS).Wait();

                    var text = "`[";

                    var j = 0;
                    for (; j < i; j++)
                    {
                        text += '#';
                    }
                    for (; j < MAX_STEPS; j++)
                    {
                        text += ' ';
                    }

                    text += "]` ";
                    text += OPERATIONS[i % OPERATIONS.Length];

                    WriteLine($"Updating status message ({i + 1}/{MAX_STEPS})");
                    message.Update(text);
                }

                Task.Delay(MAX_STEPS).Wait();
                WriteLine("Deleting status message");
            }

            WriteLine("Done!");
        }