Пример #1
0
 private void Client_UserLeft(object sender, OnUserLeftArgs e)
 {
     if (Settings.AnnounceLeave)
     {
         client.SendMessage(e.Channel, $"{e.Username} {Settings.Messages.mUserLeaves}");
     }
 }
Пример #2
0
        private void ClientOnUserLeft(object sender, OnUserLeftArgs e)
        {
            var user = _db.GetOrCreate(e.Username);

            user.IsActive = false;
            Debug.Log($"[Client] {e.Username} left");
        }
Пример #3
0
            /// <summary>
            /// Remove ActiveUser Entry
            /// and add TimeWatched values
            /// </summary>
            /// <param name="sender">todo: describe sender parameter on RemoveUserFromActiveUsers</param>
            /// <param name="e">todo: describe e parameter on RemoveUserFromActiveUsers</param>
            public async static void RemoveUserFromActiveUsers(object sender, OnUserLeftArgs e)
            {
                using (var context = new Storage.StorageEntities()) {
                    //var twitchID = TwitchApi.Users.GetUser(e.Username);
                    var twitchID = await TwitchAPI.Users.v5.GetUserByName(e.Username);

                    if (twitchID != null && twitchID.Total > 0)
                    {
                        foreach (var userMatch in twitchID.Matches)
                        {
                            if (String.Compare(userMatch.Name, e.Username, true) != 0)
                            {
                                continue;
                            }

                            var user = context.Users.SingleOrDefault(u => String.Compare(u.Id, userMatch.Id) == 0);

                            if (user != null)
                            {
                                var duration = DateTime.Now.Subtract(user.ActiveUsers.JoinedTime.Value);

                                user.TimeWatched.TimeWatched1 += duration.Ticks;

                                context.ActiveUsers.Remove(user.ActiveUsers);

                                context.SaveChanges();
                            }
                        }
                    }
                }
            }
Пример #4
0
            /// <summary>
            /// Remove ActiveUser Entry
            /// and add TimeWatched values
            /// </summary>
            /// <param name="sender">todo: describe sender parameter on RemoveUserFromActiveUsers</param>
            /// <param name="e">todo: describe e parameter on RemoveUserFromActiveUsers</param>
            public async void RemoveUserFromActiveUsers(object sender, OnUserLeftArgs e)
            {
                using (var context = new Storage.DatabaseContext()) {
                    //var twitchID = TwitchApi.Users.GetUser(e.Username);
                    var twitchID = await AivaClient.Instance.TwitchApi.Users.v5.GetUserByNameAsync(e.Username).ConfigureAwait(false);

                    if (twitchID?.Total > 0)
                    {
                        foreach (var userMatch in twitchID.Matches)
                        {
                            if (String.Compare(userMatch.Name, e.Username, true) != 0)
                            {
                                continue;
                            }

                            var user = context.Users.SingleOrDefault(
                                u => u.UsersId == Convert.ToInt32(userMatch.Id));

                            if (user != null)
                            {
                                var duration = DateTime.Now.Subtract(user.ActiveUsers.JoinedTime);

                                user.TimeWatched.Time += duration.Ticks;

                                context.ActiveUsers.Remove(user.ActiveUsers);

                                context.SaveChanges();
                            }
                        }
                    }
                }
            }
Пример #5
0
        private void Client_OnUserLeft(object sender, OnUserLeftArgs e)
        {
            ConnectedUsers.Remove(e.Username);

            _logger.LogWarning($"The user left: {e.Username}");
            _logger.LogWarning($"Total user on channel: {ConnectedUsers.Count}");
        }
Пример #6
0
 public static UserStatusEventArgs ToUserStatusEventArgs(this OnUserLeftArgs src)
 {
     return(new UserStatusEventArgs
     {
         DisplayName = src.Username,
     });
 }
Пример #7
0
 private static void Client_OnUserLeft(object sender, OnUserLeftArgs e)
 {
     TwitchChatForm.Instance.Invoke(new Action(() =>
     {
         TwitchChatForm.Instance.listBox1.Items.Remove(e.Username);
     }));
 }
Пример #8
0
 internal static UserLeftEvent Map(this OnUserLeftArgs from)
 {
     return(new UserLeftEvent
     {
         Channel = from.Channel,
         Username = from.Username
     });
 }
Пример #9
0
 private void Client_OnUserLeft(object sender, OnUserLeftArgs e)
 {
     try
     {
         //GameUser g = ConnectedUsers.FindLast(x => x.UserName == e.Username);
         //g.Disconnection = DateTime.Now;
     }
     catch (Exception ex) { Debug.WriteLine($"Twitch[OnUserJoined]({e.Username}) {ex.Message}"); }
 }
Пример #10
0
        private void Client_OnUserLeft(object sender, OnUserLeftArgs e)
        {
            var chatEvent = new TwitchChatEvent(TwitchChatEventType.UserLeft);

            chatEvent.Username = e.Username;
            chatEvent.Channel  = e.Channel;

            OnChatEvent?.Invoke(chatEvent);
        }
        public void OnUserLeft(object sender, OnUserLeftArgs onUserLeftArgs)
        {
            var LeftUser = TwitchBotGlobalObjects.ChanelData.Watchers.First(user => user.Username == onUserLeftArgs.Username);

            TwitchBotGlobalObjects.ChanelData.Watchers.Remove(LeftUser);
            LeftUser.WatchingTime        = LeftUser.WatchingTime.Add(DateTime.Now - LeftUser.LastConnectToStream);
            LeftUser.LastConnectToStream = DateTime.Now;
            AssistantDb.Instance.SaveChanges();
        }
Пример #12
0
        private void TwitchClient_OnUserLeft(object sender, OnUserLeftArgs e)
        {
            if (Settings.UserBlacklist.Contains(e.Username, StringComparer.OrdinalIgnoreCase))
            {
                return;
            }

            ShowMessage($"{ReplaceNickname(e.Username)} ist weg", Settings.UserLeftNotification);
        }
Пример #13
0
        private void OnUserLeft(object sender, OnUserLeftArgs e)
        {
            if (!e.Channel.Contains(this.channelProvider.Get(), StringComparison.InvariantCultureIgnoreCase))
            {
                return;
            }

            this.messageBus.Send(nameof(TwitchUserLeft), new TwitchUserLeft(e.Username));
        }
Пример #14
0
 private void _TwitchClient_OnUserLeft(object sender, OnUserLeftArgs e)
 {
     UserLeft?.Invoke(this, new ChatUserInfoEventArgs
     {
         ChannelId   = 0,
         ServiceName = "Twitch",
         UserId      = 0,
         UserName    = e.Username
     });
 }
Пример #15
0
        private void LogUserLeftChatToDb(OnUserLeftArgs e)
        {
            TwitchUserAttendanceEvent twitchUserAttendanceEvent = new TwitchUserAttendanceEvent
            {
                TwitchUserDisplayName = e.Username,
                UserLeft = true
            };

            _twitchUserAttendanceEventRepository.CreateAsync(twitchUserAttendanceEvent);
        }
Пример #16
0
 private async void TwitchOnUserLeft(object sender, OnUserLeftArgs e)
 {
     UserEntry user = await Program.Users.GetUserByTwitchUserName(e.Username);
     BotChannel bChan = await Program.Channels.GetTwitchChannelByName(e.Channel);
     if (user != null)
     {
         await Program.BotEvents.RaiseTwitchOnUserLeave(bChan, user);
         return;
     }
 }
Пример #17
0
        /// <summary>
        /// Invokes the user left.
        /// </summary>
        /// <param name="client">The client.</param>
        /// <param name="channel">The channel.</param>
        /// <param name="username">The username.</param>
        public static void InvokeUserLeft(this TwitchClient client, string channel, string username)
        {
            OnUserLeftArgs model = new OnUserLeftArgs()
            {
                Channel  = channel,
                Username = username
            };

            client.RaiseEvent("OnUserLeft", model);
        }
Пример #18
0
        /// <summary>
        /// Remove viewer then disconnected
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void RemoveViewerFromList(object sender, OnUserLeftArgs e)
        {
            var viewer = Viewer.SingleOrDefault(
                u => string.Compare(u.Name, e.Username, true) == 0);

            if (viewer != null)
            {
                Application.Current.Dispatcher.Invoke(() => Viewer.Remove(viewer));
            }
        }
Пример #19
0
 private void Client_OnUserLeft(object sender, OnUserLeftArgs e)
 {
     try
     {
         GetChannelProcessor(e.Channel)?.OnUserLeft(sender, e);
     }
     catch (Exception ex)
     {
         Logger.Instance.Error($"[{0}] Unchaught exception: {ex.Info()}", MethodBase.GetCurrentMethod().Name);
     }
 }
Пример #20
0
        /// <summary>
        /// Remove User from Viewers
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void RemoveViewerFromViewers(object sender, OnUserLeftArgs e)
        {
            var viewer = Viewers.SingleOrDefault(u => u.Name == e.Username);

            if (viewer != null)
            {
                Application.Current.Dispatcher.Invoke(() => {
                    Viewers.Remove(viewer);
                });
            }
        }
Пример #21
0
 private void Client_OnUserLeft(object sender, OnUserLeftArgs e)
 {
     /*var tu = Users.FirstOrDefault(x => x.Username == e.Username);
      *
      * if(tu != null)
      * {
      *  Users.Remove(tu);
      * }
      *
      * Console.WriteLine($"LEFT: {e.Username}");*/
 }
Пример #22
0
 private void Client_OnUserLeft(object sender, OnUserLeftArgs e)
 {
     consoleMessage[1] = "#";
     consoleMessage[3] = e.Username;
     consoleMessage[4] = e.Channel;
     consoleMessage[5] = "Left Channel";
     // TODO:
     // Stop counting user time for the user
     //string message = $"[{DateTime.Now.ToString("MM/dd - HH:mm")} | Twitch] {e.Username} has left #{e.Channel}";
     Program.SendToConsole(consoleMessage);
 }
Пример #23
0
        //on users leaving channel
        public void ClientOnUserLeft(object sender, OnUserLeftArgs e)
        {
            //Console.WriteLine("Left: " + e.Username.ToString());
            //Send(e.Username.ToString() + " left us.");
            if (_main._liveViewers.table.ContainsKey(e.Username))
            {
                _main._liveViewers.table.Remove(e.Username);
            }
            //_logger.Push(e.Users.ToString());

            // UsersMovementBox
        }
Пример #24
0
        private async Task Client_OnUserLeft(object sender, OnUserLeftArgs e)
        {
            Console.WriteLine(
                $"{DateTime.UtcNow.ToString(CultureInfo.InvariantCulture)}: {e.Username} left the channel {e.Channel}");
            var entity = new ChannelActivityEntity
            {
                PartitionKey = e.Channel,
                RowKey       = DateTime.UtcNow.ToString(Constants.DATETIME_FORMAT).Replace(":", string.Empty).Replace("-", string.Empty).Replace(".", string.Empty),
                Activity     = StreamActivity.UserLeft.ToString(),
                Viewer       = e.Username
            };

            await AddEntityToStorage(entity);
        }
Пример #25
0
        private async Task Client_OnUserLeft(object sender, OnUserLeftArgs e)
        {
            var date = DateTime.UtcNow;

            _logger.LogInformation($"{date.ToRowKeyString()}: {e.Username} left the channel {e.Channel}");
            var entity = new ChannelActivityEntity
            {
                PartitionKey = e.Channel,
                RowKey       = date.ToRowKeyString(),
                Activity     = StreamActivity.UserLeft.ToString(),
                Viewer       = e.Username
            };

            await Common.AddEntityToStorage(_tableClient, entity, _streamingTable).ConfigureAwait(false);

            await _zapierClient.AddChannelEvent(Constants.ZAPIER_EVENTTYPE_MESSAGE, entity).ConfigureAwait(false);
        }
Пример #26
0
        private void OnTwitchUserLeft(object sender, OnUserLeftArgs e)
        {
            if (e.Username == _configuration.GetSection("twitch")["username"])
            {
                return;
            }

            _logger.LogInformation("Processing user left event of: {User} from Channel {Channel}", e.Username, e.Channel);

            foreach (var userLeftHandler in _userLeftHandlers)
            {
                if (userLeftHandler.ProcessEvent(_twitchInteractor, e.Username, e.Channel))
                {
                    _logger.LogInformation("Processed user left event of {User} from Channel {Channel}, with handler {UserLeftHandler}", e.Username, e.Channel, userLeftHandler.GetType().Name);
                    return;
                }
            }

            _logger.LogWarning("Processing user left event of {User} from Channel {Channel} failed, no handler was available.", e.Username, e.Channel);
        }
Пример #27
0
        protected virtual void OnUserLeft(object sender, OnUserLeftArgs args)
        {
            if (args.Channel.Trim().ToLower() == _serverDTO.Username.Trim().ToLower())
            {
                Task.Run(async() =>
                {
                    try
                    {
                        var usersOnline = (await _twitchNetService.GetUsersOnlineAsync(this)).ToList();

                        if (usersOnline.Any(s => s.Username.Trim().ToLower() == args.Username.Trim().ToLower()))
                        {
                            var user = usersOnline.First(s => s.Username.Trim().ToLower() == args.Username.Trim().ToLower());
                            usersOnline.Remove(user);

                            user.Dispose();

                            await _twitchNetService.CreateUsersOnlineAsync(this, usersOnline.ToArray());

                            await FireConnectionServerUserEventAsync(sender, new ConnectionServerUserEventArgs
                            {
                                ConnectionServerEventType = ConnectionServerEventType.DisconnectedFromServer,
                                ConnectionEventType       = ConnectionEventType.DisconnectedFromTwitch,
                                Server = this,
                                User   = user,
                            });
                        }
                    }
                    catch (Exception ex)
                    {
                        await FireErrorEventAsync(sender, new ErrorBotServerUserEventArgs
                        {
                            Bot       = _bot,
                            Exception = ex,
                            Server    = this,
                            Username  = args.Username,
                        });
                    }
                });
            }
        }
 private void OnLeft(object sender, OnUserLeftArgs e)
 {
     ConsoleHelper.WriteLine($"{e.Username} left the chat.");
 }
Пример #29
0
 private void TwitchClient_OnUserLeft(object sender, OnUserLeftArgs e)
 {
     allViewers.UserLeft(e.Username);
 }
Пример #30
0
 private void OnUserLeft(object sender, OnUserLeftArgs e)
 {
 }