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)); } }
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()); }
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); }