Esempio n. 1
0
 public RpcAria2Helper(TelegramBot telegramBot)
 {
     _telegramBot = telegramBot;
     _serverUri   = new Uri(telegramBot.Config.GetString("Aria2URL"));
     _Aria2Token  = telegramBot.Config.GetString("Aria2Secret");
     _log.TraceAsync("RPCAria2Helper initialisiert.");
 }
        public async void Start()
        {
            Initialize();
            int offset = 0;

            await SendMessageAsync("Bot gestartet.");

            while (!_ct.IsCancellationRequested)
            {
                Update[] updates = await _telebot.GetUpdatesAsync(offset);

                if (updates.Any())
                {
                    await _log.TraceAsync("Update received.");

                    offset = updates.Max(u => u.Id) + 1;
                    foreach (Update update in updates)
                    {
                        await ProcessUpdate(update);
                    }
                }
            }
        }
        private void Initialize()
        {
            LoggingConfiguration logConf = new LoggingConfiguration();

#if DEBUG
            logConf.AddTarget(LogLevel.Trace, LogLevel.Fatal, new StreamingFileTarget());
            logConf.AddTarget(LogLevel.Debug, LogLevel.Fatal, new DebugTarget());
#else
            logConf.AddTarget(LogLevel.Error, LogLevel.Fatal, new StreamingFileTarget());
#endif
            logConf.IsEnabled = true;
            LogManagerFactory.DefaultConfiguration = logConf;
            _log   = (ILoggerAsync)LogManagerFactory.DefaultLogManager.GetLogger <TelegramBot>();
            _ctSrc = new CancellationTokenSource();
            _ct    = _ctSrc.Token;
            _conf  = ResourceLoader.GetForViewIndependentUse("Config");
            _CheckServerStateTimer = ThreadPoolTimer.CreatePeriodicTimer(CheckServerStateTimerElapsedHandler, new TimeSpan(0, 5, 0));
            _telebot     = new TelegramBotClient(_conf.GetString("TelegramToken"));
            _ChatID      = Convert.ToInt64(_conf.GetString("TelegramChatID"));
            _aria2       = new Helpers.RpcAria2Helper(this);
            _serverAwake = false;
            _state       = TelegramBotState.None;
            _log.TraceAsync("Initialize abgeschlossen.");
        }