Esempio n. 1
0
        public static void MyIdles(Update update, string[] args)
        {
            var idles = 0;

            using (var db = new WWContext())
            {
                idles = db.GetIdleKills24Hours(update.Message.From.Id).FirstOrDefault() ?? 0;
            }

            var str   = $"{update.Message.From.Id} ({update.Message.From.FirstName})";
            var reply = GetLocaleString("IdleCount", GetLanguage(update.Message.Chat.Id), str, idles);

            try
            {
                var result = Bot.Api.SendTextMessageAsync(update.Message.From.Id, reply).Result;
                if (update.Message.Chat.Type != ChatType.Private)
                {
                    Send(GetLocaleString("SentPrivate", GetLanguage(update.Message.From.Id)), update.Message.Chat.Id);
                }
            }
            catch
            {
                RequestPM(update.Message.Chat.Id);
            }
        }
Esempio n. 2
0
        public static void GetIdles(Update update, string[] args)
        {
            //check user ids and such
            List <long> ids = new List <long>();

            foreach (var arg in args.Skip(1).FirstOrDefault()?.Split(' ') ?? new[] { "" })
            {
                if (int.TryParse(arg, out int id))
                {
                    ids.Add(id);
                }
            }

            //now check for mentions
            foreach (var ent in update.Message.Entities.Where(x => x.Type == MessageEntityType.TextMention))
            {
                ids.Add(ent.User.Id);
            }

            //check for reply
            if (update.Message.ReplyToMessage != null)
            {
                ids.Add(update.Message.ReplyToMessage.From.Id);
            }

            var reply    = "";
            var language = GetLanguage(update.Message.Chat.Id);

            //now get the idle kills
            using (var db = new WWContext())
            {
                foreach (var id in ids)
                {
                    var idles      = db.GetIdleKills24Hours(id).FirstOrDefault() ?? 0;
                    var groupidles = db.GetGroupIdleKills24Hours(id, update.Message.Chat.Id).FirstOrDefault() ?? 0;

                    //get the user
                    ChatMember user = null;
                    try
                    {
                        user = Bot.Api.GetChatMemberAsync(update.Message.Chat.Id, id).Result;
                    }
                    catch
                    {
                        // ignored
                    }

                    var str = $"{id} ({user?.User.FirstName})";
                    reply += GetLocaleString("IdleCount", language, str, idles);
                    reply += " " + GetLocaleString("GroupIdleCount", language, groupidles) + "\n";
                }
            }

            Send(reply, update.Message.Chat.Id);
        }
Esempio n. 3
0
        public static void GetIdles(Update update, string[] args)
        {
            //check user ids and such
            List <int> ids = new List <int>();

            foreach (var arg in args.Skip(1).FirstOrDefault()?.Split(' ') ?? new[] { "" })
            {
                var id = 0;
                if (int.TryParse(arg, out id))
                {
                    ids.Add(id);
                }
            }

            //now check for mentions
            foreach (var ent in update.Message.Entities.Where(x => x.Type == MessageEntityType.TextMention))
            {
                ids.Add(ent.User.Id);
            }

            //check for reply
            if (update.Message.ReplyToMessage != null)
            {
                ids.Add(update.Message.ReplyToMessage.From.Id);
            }

            var reply = "";

            //now get the idle kills
            using (var db = new WWContext())
            {
                foreach (var id in ids)
                {
                    var idles = db.GetIdleKills24Hours(id).FirstOrDefault() ?? 0;
                    //get the user
                    ChatMember user = null;
                    try
                    {
                        user = Bot.Api.GetChatMember(update.Message.Chat.Id, id).Result;
                    }
                    catch
                    {
                        // ignored
                    }

                    reply += $"{id} ({user?.User.FirstName}) has been idle killed {idles} time(s) in the past 24 hours\n";
                }
            }

            Send(reply, update.Message.Chat.Id);
        }
Esempio n. 4
0
        public static void MyIdles(Update update, string[] args)
        {
            bool isgroup = new[] { ChatType.Group, ChatType.Supergroup }.Contains(update.Message.Chat.Type);

            var idles      = 0;
            var groupidles = 0;

            using (var db = new WWContext())
            {
                idles = db.GetIdleKills24Hours(update.Message.From.Id).FirstOrDefault() ?? 0;
                if (isgroup)
                {
                    groupidles = db.GetGroupIdleKills24Hours(update.Message.From.Id, update.Message.Chat.Id).FirstOrDefault() ?? 0;
                }
            }

            var str      = $"{update.Message.From.Id} ({update.Message.From.FirstName})";
            var language = GetLanguage(update.Message.Chat.Id);
            var reply    = GetLocaleString("IdleCount", language, str, idles);

            if (isgroup)
            {
                reply += " " + GetLocaleString("GroupIdleCount", language, groupidles);
            }

            try
            {
                var result = Bot.Api.SendTextMessageAsync(update.Message.From.Id, reply).Result;
                if (update.Message.Chat.Type != ChatType.Private)
                {
                    Send(GetLocaleString("SentPrivate", GetLanguage(update.Message.From.Id)), update.Message.Chat.Id);
                }
            }
            catch
            {
                RequestPM(update.Message.Chat.Id);
            }
        }