public async Task <Task> Start() { if (_bot == null) { _botLogger.LogDanger("You can't start bot listener without a bot!"); return(Task.CompletedTask); } var server = AskServerAddress(); _kahlaLocation.UseKahlaServer(server); if (!await TestKahlaLive()) { return(Task.CompletedTask); } await OpenSignIn(); var code = await AskCode(); await SignIn(code); await DisplayMyProfile(); var websocketAddress = await GetWSAddress(); _botLogger.LogInfo($"Your account channel: {websocketAddress}"); return(MonitorEvents(websocketAddress)); }
public async Task Connect(Action <string> onGetWebsocket = null) { _botLogger.LogWarning("Establishing the connection to Kahla..."); await ReleaseMonitorJob(); var server = AskServerAddress(); _settingsService["ServerAddress"] = server; _kahlaLocation.UseKahlaServer(server); if (!await TestKahlaLive(server)) { return; } if (!await SignedIn()) { await OpenSignIn(); var code = await AskCode(); await SignIn(code); } else { _botLogger.LogSuccess("\nYou are already signed in! Welcome!"); } await RefreshUserProfile(); var websocketAddress = await GetWsAddress(); // Trigger on request. var requests = (await _friendshipService.MyRequestsAsync()) .Items .Where(t => !t.Completed); foreach (var request in requests) { await BuildBot.OnFriendRequest(new NewFriendRequestEvent { Request = request }); } // Trigger group connected. var friends = (await _friendshipService.MineAsync()); foreach (var group in friends.Groups) { await BuildBot.OnGroupConnected(group); } onGetWebsocket?.Invoke(websocketAddress); }
public async Task <Task> Connect() { var server = AskServerAddress(); SettingsService.Save(server); KahlaLocation.UseKahlaServer(server); if (!await TestKahlaLive()) { return(Task.CompletedTask); } if (!await SignedIn()) { await OpenSignIn(); var code = await AskCode(); await SignIn(code); } else { BotLogger.LogSuccess($"You are already signed in! Welcome!"); } await RefreshUserProfile(); await OnBotInit(); var websocketAddress = await GetWSAddress(); BotLogger.LogInfo($"Listening to your account channel: {websocketAddress}"); var requests = (await FriendshipService.MyRequestsAsync()) .Items .Where(t => !t.Completed); foreach (var request in requests) { await OnFriendRequest(new NewFriendRequestEvent { RequestId = request.Id, Requester = request.Creator, RequesterId = request.CreatorId, }); } return(MonitorEvents(websocketAddress)); }