Exemple #1
0
        private async Task InternalStart()
        {
            _teamSpeakClient = new TeamSpeakClient(_settings.Teamspeak.Host, _settings.Teamspeak.Port);
            _logger.LogInformation("Starting teamspeak client...");
            await _teamSpeakClient.Connect();

            await _teamSpeakClient.Login(_settings.Teamspeak.Username, _settings.Teamspeak.Key);

            _logger.LogInformation("Teamspeak bot connected");

            await _teamSpeakClient.UseServer(1);

            _logger.LogInformation("Server changed");

            var me = await _teamSpeakClient.WhoAmI();

            _logger.LogInformation($"Connected using username {me.NickName}");

            _nicknamesCache.Clear();
            var clients = await _teamSpeakClient.GetClients();

            foreach (var client in clients)
            {
                _nicknamesCache.AddOrUpdate(client.Id, client.NickName, (i, s) => client.NickName);
            }

            await _teamSpeakClient.RegisterServerNotification();

            _teamSpeakClient.Subscribe <ClientEnterView>(UserEntered);
            _teamSpeakClient.Subscribe <ClientLeftView>(UserLeft);
            _system.Actor <TelegramMessageChannel>().Tell(new MessageArgs <string>(_settings.Telegram.HostGroupId, "[TEAMSPEAK_ACTOR] I'm alive"));
        }
        public async Task <IActionResult> BotPage()
        {
            try
            {
                var bot = await _actorSystem.Actor <TeamspeakActor>().ResolveOne(TimeSpan.Zero);

                return(View(!bot.IsNobody()));
            }
            catch (ActorNotFoundException)
            {
                return(View(false));
            }
        }
Exemple #3
0
        public ActionResult PostAlert([FromRoute] int chatId, Alert alert)
        {
            var messageChannel = _actorSystem.Actor <TelegramMessageChannel>();

            var body = GenerateBody(alert);

            messageChannel.Tell(new MessageArgs <string>(chatId, body));

            return(Ok());
        }
Exemple #4
0
        public IActionResult PostMessage([FromForm] TextMessage message)
        {
            if (message.Text != null)
            {
                var messageChannel = _actorSystem.Actor <TelegramMessageChannel>();
                messageChannel.Tell(new MessageArgs <string>(_settings.Telegram.HostGroupId, message.Text));
            }

            return(View("MessagesPage"));
        }
 protected override async Task ExecuteAsync(CancellationToken stoppingToken)
 {
     while (!stoppingToken.IsCancellationRequested)
     {
         try
         {
             _actorSystem.Actor <TeamspeakActor>().Tell(new Pulse());
         }
         catch (Exception e)
         {
             _logger.LogInformation(e, "Error occured during pulsing TS server");
         }
         await Task.Delay(TimeSpan.FromMinutes(1), stoppingToken);
     }
 }
 private void OnMessage(object sender, MessageEventArgs e)
 {
     _logger.Info("Message arrived '{0}' from {1}", e.Message.Text, e.Message.From.Id);
     _system.Actor <TelegramMessageRouter>().Tell(e.Message);
 }