예제 #1
0
파일: BotHost.cs 프로젝트: ploxolq/Kahla
 public BotHost(
     BotCommander <T> botCommander,
     BotLogger botLogger,
     SettingsService settingsService,
     KahlaLocation kahlaLocation,
     FriendshipService friendshipService,
     HomeService homeService,
     VersionService versionService,
     AuthService authService,
     EventSyncer <T> eventSyncer,
     ProfileContainer profileContainer,
     BotFactory <T> botFactory)
 {
     _botCommander      = botCommander.InjectHost(this);
     _botLogger         = botLogger;
     _settingsService   = settingsService;
     _kahlaLocation     = kahlaLocation;
     _friendshipService = friendshipService;
     _homeService       = homeService;
     _versionService    = versionService;
     _authService       = authService;
     _eventSyncer       = eventSyncer;
     _profileContainer  = profileContainer;
     _botFactory        = botFactory;
 }
예제 #2
0
 public ConfigDebugger(Config config, DebuggerOptions options = null, BotLogger logger = null)
 {
     this.config      = config;
     this.options     = options ?? new DebuggerOptions();
     this.logger      = logger ?? new BotLogger();
     logger.NewEntry += OnNewEntry;
 }
예제 #3
0
 public ReqCommandHandler(
     BotLogger botLogger,
     EventSyncer <T> eventSyncer)
 {
     _botLogger   = botLogger;
     _eventSyncer = eventSyncer;
 }
예제 #4
0
 public BotCommander(
     CommandFactory <T> commandFactory,
     BotLogger botLogger)
 {
     _commandFactory = commandFactory;
     _botLogger      = botLogger;
 }
예제 #5
0
파일: StartUp.cs 프로젝트: LXKing/Kahla
        public StartUp(
            ConversationService conversationService,
            FriendshipService friendshipService,
            AuthService authService,
            HomeService homeService,
            KahlaLocation kahlaLocation,
            BotLogger botLogger,
            IEnumerable <BotBase> bots,
            VersionService versionService,
            SettingsService settingsService,
            AES aes)
        {
            var bot = BotConfigurer.SelectBot(bots, settingsService, botLogger);

            bot.BotLogger           = botLogger;
            bot.AES                 = aes;
            bot.ConversationService = conversationService;
            bot.FriendshipService   = friendshipService;
            bot.HomeService         = homeService;
            bot.KahlaLocation       = kahlaLocation;
            bot.AuthService         = authService;
            bot.VersionService      = versionService;
            bot.SettingsService     = settingsService;
            _bot = bot;
        }
예제 #6
0
        public static BotBase SelectBot(
            IEnumerable <BotBase> bots,
            SettingsService settingsService,
            BotLogger botLogger)
        {
            var builtBots = bots.ToList();
            int code      = settingsService.Read().BotCoreIndex;

            if (code < 0)
            {
                botLogger.LogWarning("Select your bot:\n");
                for (int i = 0; i < builtBots.Count; i++)
                {
                    botLogger.LogInfo($"\t{i.ToString()} {builtBots[i].GetType().Name}");
                }
                while (true)
                {
                    botLogger.LogInfo($"Select bot:");
                    var codeString = Console.ReadLine().Trim();
                    if (!int.TryParse(codeString, out code) || code >= builtBots.Count)
                    {
                        botLogger.LogDanger($"Invalid item!");
                        continue;
                    }
                    break;
                }
                settingsService.Save(code);
            }
            return(builtBots[code]);
        }
예제 #7
0
 public ConvCommandHandler(
     AES aes,
     EventSyncer <T> eventSyncer,
     BotLogger botLogger)
 {
     _aes         = aes;
     _eventSyncer = eventSyncer;
     _botLogger   = botLogger;
 }
예제 #8
0
        public BotBuilder(IUnityContainer container)
        {
            _logger = ResolveLogger(container);

            _bot        = container.Resolve <Bot>();
            _bot.Logger = _logger;

            _logger.Info("Bot resolved");
        }
예제 #9
0
 public BotSelector(
     IEnumerable <BotBase> bots,
     SettingsService settingsService,
     BotLogger botLogger)
 {
     _bots            = bots;
     _settingsService = settingsService;
     _botLogger       = botLogger;
 }
예제 #10
0
 public void RunOnLeaveChannelCallback(UserActionUponChannel information)
 {
     BotLogger.LogMessage($"{information.Username} left the channel: #{information.Channel}");
     foreach (var callback in this.Callbacks_LeaveChannel)
     {
         if (callback(information) == CallbackAction.SKIP_OTHERS)
         {
             break;
         }
     }
 }
예제 #11
0
 public void RunOnChannelMessageCallbacks(ChannelMessageEvent channelMessage)
 {
     BotLogger.LogMessage($"#{channelMessage.Channel} <{channelMessage.Username}> {channelMessage.Message}");
     foreach (var callback in this.Callbacks_ChannelMessage)
     {
         if (callback(channelMessage) == CallbackAction.SKIP_OTHERS)
         {
             break;
         }
     }
 }
예제 #12
0
 public void RunOnSubGiftCallback(GiftEvent giftevent)
 {
     BotLogger.LogMessage(giftevent.Message);
     foreach (var callback in this.Callbacks_SubGift)
     {
         if (callback(giftevent) == CallbackAction.SKIP_OTHERS)
         {
             break;
         }
     }
 }
예제 #13
0
 public void RunOnRaidingCallbacks(RaidingEvent raidingEvent)
 {
     BotLogger.LogMessage(raidingEvent.Message);
     foreach (var callback in this.Callbacks_RaidingEvent)
     {
         if (callback(raidingEvent) == CallbackAction.SKIP_OTHERS)
         {
             break;
         }
     }
 }
예제 #14
0
        public TranslateBot(
            BingTranslator bingTranslator,
            BotLogger botLogger)
        {
            _bingTranslator = bingTranslator;
            _botLogger      = botLogger;
            _botLogger.LogWarning("Please enter your bing API key:");
            var key = Console.ReadLine();

            _bingTranslator.Init(key);
        }
예제 #15
0
 public void RunOnRitualEvent(RitualEvent ritualEvent)
 {
     BotLogger.LogMessage(ritualEvent.EventMessage);
     foreach (var callback in this.Callbacks_RitualEvent)
     {
         if (callback(ritualEvent) == CallbackAction.SKIP_OTHERS)
         {
             break;
         }
     }
 }
예제 #16
0
 public SayCommandHandler(
     ConversationService conversationService,
     BotLogger botLogger,
     EventSyncer <T> eventSyncer,
     AES aes)
 {
     _conversationService = conversationService;
     _botLogger           = botLogger;
     _eventSyncer         = eventSyncer;
     _aes = aes;
 }
예제 #17
0
 public void RunOnBitsEvent(BitsEvent bitsEvent)
 {
     BotLogger.LogMessage($"{bitsEvent.Username} sent {bitsEvent.NumberOfBits} bits!");
     foreach (var callback in this.Callbacks_BitsEvent)
     {
         if (callback(bitsEvent) == CallbackAction.SKIP_OTHERS)
         {
             break;
         }
     }
 }
예제 #18
0
        public override Task OnBotInit()
        {
            var profilestring = JsonConvert.SerializeObject(Profile, Formatting.Indented);

            Console.WriteLine(profilestring);

            BotLogger.LogWarning("Please enter your bing API key:");
            var key = Console.ReadLine();

            _bingTranslator.Init(key);
            return(Task.CompletedTask);
        }
예제 #19
0
        public void RunCallbacks(string data)
        {
            long start = DateTime.Now.Millisecond;

            foreach (var callback in ToplevelCallback)
            {
                callback(data);
            }
            long deltaTime = DateTime.Now.Millisecond - start;

            BotLogger.LogDebug($"It took: {deltaTime}ms to run callbacks.");
        }
예제 #20
0
        public void RunOnSubscribeCallback(SubscriptionEvent subEvent)
        {
            var re_subscribed = (subEvent.Subtype == "sub") ? "subscribed" : "resubscribed";

            BotLogger.LogMessage($"{subEvent.Username} {re_subscribed} the channel: #{subEvent.Channel}");
            foreach (var callback in this.Callbacks_Subscrition)
            {
                if (callback(subEvent) == CallbackAction.SKIP_OTHERS)
                {
                    break;
                }
            }
        }
예제 #21
0
 public EventSyncer(
     ConversationService conversationService,
     FriendshipService friendshipService,
     BotLogger botLogger,
     BotFactory <T> botFactory,
     AES aes)
 {
     _conversationService = conversationService;
     _friendshipService   = friendshipService;
     _botLogger           = botLogger;
     _botFactory          = botFactory;
     _aes = aes;
 }
예제 #22
0
 public StartUp(
     BotListener botListener,
     BotCommander botCommander,
     BotLogger botLogger,
     EchoBot bot,
     TranslateBot translateBot)
 {
     _botListener  = botListener;
     _botCommander = botCommander;
     _botLogger    = botLogger;
     _echoBot      = bot;
     _translateBot = translateBot;
 }
예제 #23
0
        public override Task OnBotStarting()
        {
            var key = SettingsService["BingTranslateAPIKey"] as string;

            if (string.IsNullOrWhiteSpace(key))
            {
                BotLogger.LogWarning("Please enter your bing API key:");
                key = Console.ReadLine();
            }
            _bingTranslator.Init(key);
            SettingsService["BingTranslateAPIKey"] = key;
            return(Task.CompletedTask);
        }
예제 #24
0
 public BotListener(
     HomeService homeService,
     BotLogger botLogger,
     KahlaLocation kahlaLocation,
     AuthService authService,
     ConversationService conversationService,
     FriendshipService friendshipService,
     AES aes)
 {
     _homeService         = homeService;
     _botLogger           = botLogger;
     _kahlaLocation       = kahlaLocation;
     _authService         = authService;
     _conversationService = conversationService;
     _friendshipService   = friendshipService;
     _aes = aes;
 }
예제 #25
0
 public BotHost(
     BotCommander <T> botCommander,
     BotLogger botLogger,
     SettingsService settingsService,
     KahlaLocation kahlaLocation,
     FriendshipService friendshipService,
     AuthService authService,
     EventSyncer <T> eventSyncer,
     ProfileContainer profileContainer,
     BotFactory <T> botFactory,
     IEnumerable <IHostedService> backgroundJobs)
 {
     _botCommander      = botCommander.InjectHost(this);
     _botLogger         = botLogger;
     _settingsService   = settingsService;
     _kahlaLocation     = kahlaLocation;
     _friendshipService = friendshipService;
     _authService       = authService;
     _eventSyncer       = eventSyncer;
     _profileContainer  = profileContainer;
     _botFactory        = botFactory;
     _backgroundJobs    = backgroundJobs;
 }
예제 #26
0
 public WeatherCommand(ITelegramBotClient botClient, BotLogger logger, WeatherService weatherService)
     : base(botClient, logger)
 {
     WeatherService = weatherService;
 }
예제 #27
0
 public RateCommand(ITelegramBotClient botClient, BotLogger logger, RateService rateService)
     : base(botClient, logger)
 {
     RateService = rateService;
 }
예제 #28
0
 protected BaseCommand(ITelegramBotClient botClient, BotLogger logger)
 {
     Logger = logger;
     Client = botClient;
 }
예제 #29
0
 protected override void OnInitialized()
 {
     options = VolatileSettings.DebuggerOptions;
     logger  = VolatileSettings.DebuggerLog;
 }
예제 #30
0
 public HelpCommandHandler(BotLogger botLogger)
 {
     _botLogger = botLogger;
 }