Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public void Run()
- {
- var s = api.Groups.GetLongPollServer(groupId);
- while (true)
- {
- var poll = api.Groups.GetBotsLongPollHistory(
- new BotsLongPollHistoryParams()
- { Server = s.Server, Ts = s.Ts, Key = s.Key, Wait = 1 });
- if (poll?.Updates == null) continue;
- foreach (var upd in poll.Updates)
- {
- if (upd.MessageNew == null)
- continue;
- if (upd.MessageNew.Message.Action != null)
- {
- if (upd.MessageNew.Message.Action.Type == MessageAction.ChatInviteUser || upd.MessageNew.Message.Action.Type == MessageAction.ChatInviteUserByLink)
- {
- if (upd.MessageNew.Message.Action.MemberId.Value == -(long)groupId)
- {
- api.Messages.Send(
- new MessagesSendParams
- {
- PeerId = upd.MessageNew.Message.PeerId.Value,
- RandomId = _rand.Next(),
- Message = @"Привет! Я Таноши, и я делюсь аниме картинками. Для разблокировки всех моих возможностей сделай меня админом :з
- По-умолчанию я рассылаю картинки раз в 30 минут, но изменить это можно командой 'тб интер <периодичность>'
- Помощь по боту - vk.com/@tanoshibot-help",
- Attachments = new List<MediaAttachment> { new GayArticle() }
- }
- );
- continue;
- }
- else
- {
- api.Messages.Send(
- new MessagesSendParams
- {
- PeerId = upd.MessageNew.Message.PeerId.Value,
- RandomId = _rand.Next(),
- Message = @"Привет! Я Таноши, и я делюсь аниме картинками.
- Помощь по боту - vk.com/@tanoshibot-help",
- Attachments = new List<MediaAttachment> { new GayArticle() }
- }
- );
- continue;
- }
- }
- }
- string text = upd.MessageNew.Message.Text;
- OnUserMessage(upd.MessageNew.Message.PeerId, upd.MessageNew.Message.FromId, text);
- string[] args = text.Split(' ');
- var chat = GetChatData(upd.MessageNew.Message.PeerId.Value);
- chat.MessagesTotal++;
- chat.CharactersTotal += text.Length;
- if (!prefixes.Contains(args[0].ToLower()))
- continue;
- string cmd = args[1].ToLower();
- if (args.Count() < 2)
- continue;
- string[] picCommands = { "p", "п", "пик", "пикча", "картинка", "аниме", "pic", "picture" };
- string[] statCommands = { "s", "с", "стат", "стата", "статистика", "stat", "statistic" };
- string[] gstatCommands = { "гс", "глобалстата", "юзерстата", "глобал", "globalstat", "userstat", "gs" };
- string[] intervCommands = { "i", "и", "интервал", "интер", "период", "periodicity", "period", "interval", "inter" };
- bool commandSent = true;
- if (picCommands.Contains(cmd))
- SendRandomPictureTo(upd.MessageNew.Message.PeerId);
- else if (statCommands.Contains(cmd))
- SendStatsTo(upd.MessageNew.Message.PeerId, upd.MessageNew.Message.FromId);
- else if (gstatCommands.Contains(cmd))
- SendGStatsTo(upd.MessageNew.Message.PeerId, upd.MessageNew.Message.FromId);
- else if (intervCommands.Contains(cmd) && args.Count() > 2)
- SetIntervalInChat(upd.MessageNew.Message.PeerId, upd.MessageNew.Message.FromId, uint.Parse(args[2]));
- else if (cmd == "статчат" || cmd == "сч")
- SendChatStatsTo(upd.MessageNew.Message.PeerId, upd.MessageNew.Message.FromId);
- else if (cmd == "админ")
- SendAdminTo(upd.MessageNew.Message.PeerId, upd.MessageNew.Message.FromId);
- else if (cmd == "кик")
- {
- if (args.Count() > 2)
- {
- try
- {
- ProcessKick(upd.MessageNew.Message.PeerId, long.Parse(GetInt(args[2].Substring(3))), upd.MessageNew.Message.FromId);
- } catch(Exception)
- {
- var spl = args[2].Split('/');
- ProcessKick(upd.MessageNew.Message.PeerId, api.Utils.ResolveScreenName(spl[spl.Count()-1]).Id, upd.MessageNew.Message.FromId);
- }
- }
- else
- {
- if (upd.MessageNew.Message.ReplyMessage.Id.HasValue)
- {
- ProcessKick(upd.MessageNew.Message.PeerId, upd.MessageNew.Message.ReplyMessage.FromId, upd.MessageNew.Message.FromId);
- }
- else
- {
- api.Messages.Send(
- new MessagesSendParams
- {
- PeerId = upd.MessageNew.Message.PeerId.Value,
- RandomId = _rand.Next(),
- Message = @"Укажите кого нужно кикнуть"
- }
- );
- }
- }
- }
- else if(cmd == "инфо")
- {
- api.Messages.Send(
- new MessagesSendParams
- {
- PeerId = upd.MessageNew.Message.PeerId,
- RandomId = _rand.Next(),
- Message = $"[Информация]\n" +
- $"Бесед с Таноши: {Database.Chats.Count()}\n" +
- $"Юзеров, написавших хоть раз: {Database.Users.Count() / 2}",
- Attachments = new List<MediaAttachment> { new GayArticle() }
- }
- );
- foreach (var u in Database.Users)
- {
- Console.WriteLine($"{u.VkID} - {u.LastMessage} - {u.CharactersTotal}");
- }
- }
- else
- commandSent = false;
- Console.WriteLine(commandSent);
- var user = GetUserData(upd.MessageNew.Message.FromId.Value);
- var userl = GetLocalUserData(upd.MessageNew.Message.FromId.Value, upd.MessageNew.Message.PeerId.Value);
- if (commandSent)
- {
- user.CommandsTotal++;
- userl.CommandsTotal++;
- chat.CommandsTotal++;
- Database.SaveChanges();
- }
- else
- {
- api.Messages.Send(
- new MessagesSendParams
- {
- PeerId = upd.MessageNew.Message.PeerId.Value,
- RandomId = _rand.Next(),
- Message = @"Прости, я тебя не понял.
- Мои команды - vk.com/@tanoshibot-help"
- }
- );
- }
- }
- s.Ts = poll.Ts;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement