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}'"); }
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!"); }