Пример #1
0
        public SubredditService Start(ILogger logger, IConfiguration configuration, bool dryRun = false, bool processOldPosts = false)
        {
            logger.Information("Application started...");

            if (dryRun)
            {
                logger.Warning("This is a DRYRUN! No actions will be taken!");
            }

            var redditClient = new RedditClient(appId: configuration["AppId"], appSecret: configuration["AppSecret"], refreshToken: configuration["RefreshToken"]);
            var service      = new SubredditService(logger, configuration, redditClient, subredditName: _subredditName, databaseName: _subredditName, processOldPosts: processOldPosts);

            foreach (var handler in GetHandlers(typeof(IPostHandler), logger, service, dryRun))
            {
                service.PostHandlers.Add(handler);
            }

            foreach (var handler in GetHandlers(typeof(ICommentHandler), logger, service, dryRun))
            {
                service.CommentHandlers.Add(handler);
            }

            foreach (var handler in GetHandlers(typeof(IMessageHandler), logger, service, dryRun))
            {
                service.MessageHandlers.Add(handler);
            }

            service.SubscribeToPostFeed();
            service.SubscribeToCommentFeed();
            service.SubscribeToMessageFeed();

            service.RegisterRepeatForCommentAndPostDataPull();

            return(service);
        }
Пример #2
0
        private static void InitializeTestServiceFunctions(ILogger logger, SubredditService service, bool dryRun)
        {
            // chefknives comments
            service.CommentHandlers.Add(new MakerPostCommentHandler(logger, service, dryRun));

            // chefknives posts
            service.PostHandlers.Add(new KnifePicsPostHandler(logger, service, dryRun));
            service.PostHandlers.Add(new MakerPostHandler(logger, service, dryRun));
            service.PostHandlers.Add(new RecommendMePostHandler(logger, service, dryRun));

            // chefknives messages
            //service.MessageHandlers.Add(new MessageHandler(logger, service, dryRun));

            // chefknifeswap posts
            service.PostHandlers.Add(new SwapPostHandler(logger, service, dryRun));

            // ryky comments
            //service.CommentHandlers.Add(new RykyPraiseCommandHandler(logger, service, dryRun));

            service.SubscribeToPostFeed();
            service.SubscribeToCommentFeed();
            service.SubscribeToMessageFeed();

            service.RegisterRepeatForCommentAndPostDataPull();
        }
Пример #3
0
 public SwapPostHandler(ILogger logger, SubredditService service, bool dryRun)
     : base(dryRun)
 {
     _logger  = logger;
     _service = service;
     _flair   = service.Subreddit.Flairs.LinkFlairV2.First(f => f.Text.Equals("Selling"));
 }
Пример #4
0
        private IEnumerable <dynamic> GetHandlers(Type type, ILogger logger, SubredditService service, bool dryRun)
        {
            var handlers = GetType().Assembly.GetTypes()
                           .Where(x => type.IsAssignableFrom(x) && !x.IsInterface && !x.IsAbstract)
                           .ToList();

            foreach (var handler in handlers)
            {
                yield return(Activator.CreateInstance(handler, new object[] { logger, service, dryRun }));
            }
        }
Пример #5
0
        public SubredditService Start(ILogger logger, IConfiguration configuration, bool dryRun = false)
        {
            logger.Information("Application started...");

            if (dryRun)
            {
                logger.Warning("This is a DRYRUN! No actions will be taken!");
            }

            var redditClient = new RedditClient(appId: configuration["AppId"], appSecret: configuration["AppSecret"], refreshToken: configuration["RefreshToken"]);
            var service      = new SubredditService(logger, configuration, redditClient, subredditName: _subredditName, databaseName: "rykybot");

            service.CommentHandlers.Add(new RykyPraiseCommandHandler(logger, service, dryRun));
            service.SubscribeToCommentFeed();

            return(service);
        }
Пример #6
0
 public RykyPraiseCommandHandler(ILogger logger, SubredditService service, bool dryRun)
     : base(dryRun)
 {
     _logger  = logger;
     _service = service;
 }