Exemplo n.º 1
0
        private void SetupDefaultServices(CompositionContainer mefContainer)
        {
            if (mefContainer.GetExportedValueOrDefault <IResponseParser>() == null)
            {
                mefContainer.ComposeExportedValue <IResponseParser>(new ResponseParser());
            }

            if (mefContainer.GetExportedValueOrDefault <IBotServices>() == null)
            {
                mefContainer.ComposeExportedValue <IBotServices>(new SlackSendQueueService());
            }

            if (mefContainer.GetExportedValueOrDefault <IBotState>() == null)
            {
                mefContainer.ComposeExportedValue <IBotState>(new BotState());
            }

            if (mefContainer.GetExportedValueOrDefault <ISlackApi>() == null)
            {
                mefContainer.ComposeExportedValue <ISlackApi>(SlackApi.Create(this.apiKey));
            }

            if (mefContainer.GetExportedValueOrDefault <IBackOffStrategy>() == null)
            {
                mefContainer.ComposeExportedValue <IBackOffStrategy>(new BackOffRetry());
            }

            if (mefContainer.GetExportedValueOrDefault <ILog>() == null)
            {
                mefContainer.ComposeExportedValue <ILog>(LogManager.GetLogger(typeof(ISlackBot)));
            }
        }
Exemplo n.º 2
0
        public void CreatesWithDefaultRequestHandler()
        {
            var subject = SlackApi.Create("xxx");

            Assert.NotNull(subject);
            Assert.NotNull(subject.Api);
            Assert.NotNull(subject.Auth);
            Assert.NotNull(subject.Channels);
            Assert.NotNull(subject.Chat);
            Assert.NotNull(subject.Emoji);
            Assert.NotNull(subject.Files);
            Assert.NotNull(subject.Groups);
            Assert.NotNull(subject.Im);
            Assert.NotNull(subject.Oauth);
            Assert.NotNull(subject.Reactions);
            Assert.NotNull(subject.Rtm);
            Assert.NotNull(subject.Search);
            Assert.NotNull(subject.Stars);
            Assert.NotNull(subject.Team);
            Assert.NotNull(subject.Users);
        }
Exemplo n.º 3
0
        public void CreatesWithProvidedRequestHandler()
        {
            var requestHandler = new Mock <IRequestHandler>();
            var subject        = SlackApi.Create(requestHandler.Object);

            Assert.NotNull(subject);
            Assert.NotNull(subject.Api);
            Assert.NotNull(subject.Auth);
            Assert.NotNull(subject.Channels);
            Assert.NotNull(subject.Chat);
            Assert.NotNull(subject.Emoji);
            Assert.NotNull(subject.Files);
            Assert.NotNull(subject.Groups);
            Assert.NotNull(subject.Im);
            Assert.NotNull(subject.Oauth);
            Assert.NotNull(subject.Reactions);
            Assert.NotNull(subject.Rtm);
            Assert.NotNull(subject.Search);
            Assert.NotNull(subject.Stars);
            Assert.NotNull(subject.Team);
            Assert.NotNull(subject.Users);
        }
Exemplo n.º 4
0
        private static void Main(string[] args)
        {
            Console.WriteLine("Are you sure you want to continue? This will delete all your slack files [Y/N]", Color.Green);
            var key = Console.ReadLine();

            if (key != "Y" && key != "N")
            {
                Console.WriteLine("Value does not match options. Your options are Y / N", Color.Red);
                Console.WriteLine("Press any key to exit...", Color.Red);
                Console.ReadKey();
                return;
            }

            if (key == "N")
            {
                Console.WriteLine("You chose not to continue", Color.Red);
                Console.WriteLine("Press any key to exit...", Color.Red);
                Console.ReadKey();
                return;
            }

            Console.WriteLine("Paste your slack api key please.", Color.Green);
            Console.WriteLine("Your api key can be obtained by requesting a token with the legacy token generator", Color.Yellow);

            Process.Start(LegacyTokenGeneratorUrl);

            var apiKey = Console.ReadLine();

            if (string.IsNullOrEmpty(apiKey))
            {
                Console.WriteLine("You didn't paste anything", Color.Red);
                Console.WriteLine("Press any key to exit... ", Color.Red);
                Console.ReadKey();
                return;
            }

            var slackApi = SlackApi.Create(apiKey);
            var whoAmI   = slackApi.Auth.Test();

            if (!whoAmI.Ok)
            {
                Console.WriteLine("Api key you passed does not work", Color.Red);
                Console.WriteLine("Press any key to exit...", Color.Red);
                Console.ReadKey();
                return;
            }

            Console.WriteLine("You are: {0}. Continue deleting your files? [Y/N]", whoAmI.User, Color.Green);

            key = Console.ReadLine();
            if (key != "Y" && key != "N")
            {
                Console.WriteLine("Value does not match options. Your options are Y / N", Color.Red);
                Console.WriteLine("Press any key to exit...", Color.Red);
                Console.ReadKey();
                return;
            }

            if (key == "N")
            {
                Console.WriteLine("You chose not to continue", Color.Red);
                Console.WriteLine("Press any key to exit... ", Color.Red);
                Console.ReadKey();
                return;
            }

            var myfiles = slackApi.Files.List(new FilesListRequest
            {
                User = whoAmI.UserId,
            });

            if (!myfiles.Ok)
            {
                Console.WriteLine("Could not access you files list", Color.Red);
                Console.WriteLine("Press any key to exit...", Color.Red);
                Console.ReadKey();
                return;
            }

            if (myfiles.Files.Count == 0)
            {
                Console.WriteLine("You don't have any files", Color.Green);
            }

            else
            {
                Console.WriteLine("You have {0} files. Proceed deleting them", myfiles.Files.Count, Color.Yellow);

                var error = 0;

                foreach (var file in myfiles.Files)
                {
                    Console.WriteLine("Deleting {0}", file.Name, Color.Green);
                    try
                    {
                        slackApi.Files.Delete(file.Id);
                    }
                    catch
                    {
                        Console.WriteLine("Could not delete {0}", file.Name, Color.Red);
                        error++;
                    }
                }

                if (error == 0)
                {
                    Console.WriteLine("All your files were erased", Color.Green);
                }
                else
                {
                    var remainingFiles = slackApi.Files.List(new FilesListRequest
                    {
                        User = whoAmI.UserId,
                    });

                    Console.WriteLine("Some files could not be removed:", Color.Red);
                    if (remainingFiles.Ok)
                    {
                        foreach (var file in remainingFiles.Files)
                        {
                            Console.WriteLine(file.Name, Color.Red);
                        }
                    }
                }
            }

            Console.WriteLine("Press any key to exit...", Color.Yellow);
            Console.ReadKey();
        }