public void CommandDM(string[] parsResult, ParamResponse e, TGUpl a) { /* 1) Проверить существования модераторов * 2) Сравнить уровни модераторов * 3) Удалить модератора */ int CureChat = GetChat(e.chatId); Moder CureModer = IsModer(e.UId); if (CureModer.UId == "Null") { NonModder(e, a); return; } Moder DeletModer = IsModer(e.replyMessageUID); if (DeletModer.UId == "Null") { NonModder(e, a); return; } int LVL1 = Int32.Parse(CureModer.MLvl), LVL2 = Int32.Parse(DeletModer.MLvl); if (LVL1 > LVL2) { DelModer(DeletModer); SuccessOp(e, a, " Модератор удалён."); } else { NotEnouthRights(e, a); } }
public void MainModerCommandGCS(string[] parsResult, ParamResponse e, TGUpl a) { string result = ""; for (int i = 0; i < ChCount; i++) { result += ChBot[i].chatName + " ```" + ChBot[i].chatId + "```\n"; } a.SendMessage(result, MainModer.UId); }
//WorkMethods public void AutoWrite() { TGUpl a = new TGUpl(); while (true) { FileWorker.WriteData(this); a.SendMessage("Автосохранение прошло успешно.", MainModer.UId); Thread.Sleep(300000); } }
public void CommandPDDG(string[] parsResult, ParamResponse e, TGUpl a) { if (e.replyMessageText != null && e.replyMessageText != "") { a.SendMessage(ParseDDG(e.replyMessageText), e.chatId); } else { a.SendMessage("Нечего парсить", e.chatId); } }
public void CommandST(string[] parsResult, ParamResponse e, TGUpl a) { /* 1) Проверяем админ ли тот, кто просит установить триггер * 2) Проверяем существует ли такоей триггер. * 3) Проверяем уровень триггера и уровень модератора, если триггер существует * 4) Изменяем триггер, если все проверки удались иначе добавляем новый, если админ */ int CureChat = GetChat(e.chatId); Moder CureModer = IsModer(e.UId); if (CureModer.UId == "Null") { NonModder(e, a); return; } int CureTrigger = this.ChBot[CureChat].GetTrigger(parsResult[1]); if (parsResult[2] == "" && e.replyMessageText == null || parsResult[1] == "") { InvalidData(e, a); return; } if (CureTrigger == -1) { Trigger AT = TForm(parsResult, e, a, CureModer); this.ChBot[CureChat].AddTrigger(AT); SuccessOp(e, a, "Триггер добавлен."); } else { int Mistake; try { Mistake = Int32.Parse(this.ChBot[CureChat].TArray[CureTrigger].TLvl); } catch { this.ChBot[CureChat].TArray[CureTrigger].TLvl = "0"; } if (Int32.Parse(this.ChBot[CureChat].TArray[CureTrigger].TLvl) <= Int32.Parse(CureModer.MLvl)) { Trigger AT = TForm(parsResult, e, a, CureModer); this.ChBot[CureChat].ResetTrigger(AT); SuccessOp(e, a, "Триггер обновлён."); } else { NotEnouthRights(e, a); return; } } }
public void CommandSM(string[] parsResult, ParamResponse e, TGUpl a) { /* 1) Проверить существуют ли одмены * 2) Если новый одмен существует то посылаем на * 3) Если не существует, то сравниваем уровень модера и уровень создавемого. Создаваемый - обязательно меньше * 4) Добавляем модератора или посылаем на */ int CureChat = GetChat(e.chatId); Moder CureModer = IsModer(e.UId); if (CureModer.UId == "Null") { NonModder(e, a); return; } Moder NewModer = IsModer(e.replyMessageUID); if (NewModer.UId != "Null") { AlreadyExist(e, a); return; } int newLVL; if (Int32.TryParse(parsResult[1], out newLVL) == false) { InvalidData(e, a); return; } if (newLVL < 1) { InvalidData(e, a); return; } if (Int32.Parse(CureModer.MLvl) > newLVL) { Moder OnyModer = new Moder(); OnyModer.MLvl = newLVL.ToString(); OnyModer.UId = e.replyMessageUID; OnyModer.UName = e.replyMessageUsername; AddModer(OnyModer); SuccessOp(e, a, " Модератор добавлен."); } else { InvalidData(e, a); return; } }
public void MainModerCommandMT(string[] parsResult, ParamResponse e, TGUpl a) { if (parsResult[2] != "") { a.SendMessage(parsResult[2], parsResult[1]); } else if (e.replyMessageText != null) { a.SendMessage(e.replyMessageText, parsResult[1], e.replyMessageType); } else { InvalidData(e, a); } }
public Chat MakeChat(ParamResponse e, TGUpl a) { Chat NewChat = new Chat(); NewChat.chatId = e.chatId; NewChat.chatName = e.ChatName; NewChat.CInv = new Invintation(); NewChat.TArray = new Trigger[1]; NewChat.TArray[0] = new Trigger(); NewChat.TCount = 0; NewChat.UArray = new User[1]; NewChat.UArray[0] = new User(); NewChat.UCount = 0; return(NewChat); }
public void CommandI(string[] parsResult, ParamResponse e, TGUpl a) { string result = ""; if (e.replyMessageText == null) { result += "Айди чата: " + ((e.chatId == null)?e.ChannelID:e.chatId) + '\n'; result += "Время МСК: " + AnotherMethod.UnixTimeStampToDateTime(long.Parse(e.Date)); } else { result += "Юзернейм: " + e.replyMessageUsername + " id: " + e.replyMessageUID + "\n"; result += "Время сообщения по МСК: " + AnotherMethod.UnixTimeStampToDateTime(long.Parse(e.ReplyMessageDate)); } a.SendMessage(result, e.chatId); }
public void MainModerCommandMTA(string[] parsResult, ParamResponse e, TGUpl a) { for (int i = 0; i < ChCount; i++) { if (parsResult[1] + parsResult[2] != "") { a.SendMessage(parsResult[1] + parsResult[2], ChBot[i].chatId); } else if (e.replyMessageText != null) { a.SendMessage(e.replyMessageText, ChBot[i].chatId, e.replyMessageType); } else { InvalidData(e, a); break; } } }
public void CommandDT(string[] parsResult, ParamResponse e, TGUpl a) { /* 1)Проверить сущ-ние модера * 2)Проверить сущ-ние триггера * 3)Проверить уровни модера и триггера * 4)Удалить триггер */ int CureChat = GetChat(e.chatId); Moder CureModer = IsModer(e.UId); if (CureModer.UId == "Null") { NonModder(e, a); return; } string trigger = (parsResult[1] == "") ? e.replyMessageText : parsResult[1]; int CureTrigger = this.ChBot[CureChat].GetTrigger(trigger); if (CureTrigger == -1) { InvalidData(e, a); return; } int Mistake; try { Mistake = Int32.Parse(this.ChBot[CureChat].TArray[CureTrigger].TLvl); } catch { this.ChBot[CureChat].TArray[CureTrigger].TLvl = "0"; } if (Int32.Parse(this.ChBot[CureChat].TArray[CureTrigger].TLvl) > Int32.Parse(CureModer.MLvl)) { NotEnouthRights(e, a); return; } this.ChBot[CureChat].DeleteTrigger(CureTrigger); SuccessOp(e, a, " Триггер удалён."); }
public void TResponse(string TWord, ParamResponse e, TGUpl a) { int CureChat = GetChat(e.chatId); if (CureChat == -1) { return; } int TId = ChBot[CureChat].GetTrigger(TWord); if (TId != -1) { Trigger send = ChBot[CureChat].TArray[TId]; a.SendMessage(send.TResponse, e.chatId, send.TType, true); if (Semafor.Semafor.BadTrigger == true) { a.SendMessage("Триггер сломан и будет удалён", e.chatId); ChBot[CureChat].DeleteTrigger(TId); Semafor.Semafor.BadTrigger = false; } } }
public void CommandGetInfo(string[] parsResult, ParamResponse e, TGUpl a) { if (e.chatId == MainModer.UId) { string info = "/st - установка триггера\n"; info += "/dt - удаление триггера\n"; info += "/sm lvl - установка модератора\n"; info += "/dm - удаление модератора\n"; info += "/sa - сохранить всё\n"; info += "/gtl - получить список триггеров\n"; info += "/i - информация о чате или сообщении или канале\n"; info += "/gtl_d - список триггеров для администратора\n"; info += "/si - установка приветствий\n"; info += "/gcs - получение списка чатов, где есть бот\n"; info += "/lc - покинуть чат и удалить триггеры этого чата\n"; info += "/get_i - показать приветствие\n"; info += "/p_ddg - парсинг списка отряда из ddg\n"; info += "/Mta - рассылка сообщения во все чаты, куда бот был добавлен после обновления\n"; info += "/get_info - получить информацию\n"; a.SendMessage(info, MainModer.UId); } }
public void CommandSI(string[] parsResult, ParamResponse e, TGUpl a) { int CureChat = GetChat(e.chatId); Moder CureModer = IsModer(e.UId); if (CureModer.UId == "Null") { NonModder(e, a); return; } if (int.Parse(CureModer.MLvl) < 4) { NotEnouthRights(e, a); return; } ChBot[CureChat].CInv = new Invintation(); ChBot[CureChat].CInv.TResponse = ((parsResult[1] != "")?parsResult[1]:e.replyMessageText); ChBot[CureChat].CInv.TType = ((parsResult[2] != "") ? "Message" : e.replyMessageType); ChBot[CureChat].CInv.TLvl = "4"; SuccessOp(e, a, "Приветствие добавлено."); return; }
public static void Handler(ParamResponse e, TGUpl a) { if (polls[0] != null) { int i = 0; for (; i < polls.Length; i++) { if (polls[i].chat_id == e.call_chat_id && polls[i].message_id == e.call_message_id) { polls[i].votes[Int32.Parse(e.call_data)].votes++; break; } } Poll tmp = PollHandler.GetPoll(e.call_chat_id, e.call_message_id); if (tmp.chat_id != null) { a.EditMessage(polls[i].chat_id, polls[i].message_id, polls[i].Text, polls[i].GetMarkup()); } a.answerCallbackQuery(e.call_id); } return; }
public void CommandGTL(string[] parsResult, ParamResponse e, TGUpl a) { int CureChat = GetChat(e.chatId); if (CureChat == -1) { return; } string result = ""; for (int i = 0; i < ChBot[CureChat].TCount; i++) { result += ChBot[CureChat].TArray[i].TWord + '\n'; } if (result != "") { a.SendMessage(result, e.chatId); } else { a.SendMessage("Триггеры не найдены.", e.chatId); } }
public void SayHello(ParamResponse e, TGUpl a) { int CureChat = GetChat(e.chatId); try { if (this.ChBot[CureChat].CInv.TResponse != "" && this.ChBot[CureChat].CInv.TResponse != null) { if (this.ChBot[CureChat].CInv.TType != "Message") { a.SendMessage("@" + e.NewMember, e.chatId); a.SendMessage(this.ChBot[CureChat].CInv.TResponse, e.chatId, this.ChBot[CureChat].CInv.TType); } else { a.SendMessage("@" + e.NewMember + " " + this.ChBot[CureChat].CInv.TResponse, e.chatId, this.ChBot[CureChat].CInv.TType); } } } catch { return; } }
public void CommandRegMe(string[] parsResult, ParamResponse e, TGUpl a) { User Exist = ChBot[GetChat(e.chatId)].GetUser(e.UId); if (Exist.UId == "Null") { int CureChat = GetChat(e.chatId); User NewUser = new User(); NewUser.UId = e.UId; NewUser.UName = e.name; NewUser.MLvl = "0"; NewUser.myOwnTrigger = new Trigger(); NewUser.myOwnTrigger.TLvl = "0"; NewUser.myOwnTrigger.TResponse = ""; NewUser.myOwnTrigger.TType = "Message"; NewUser.myOwnTrigger.TWord = ""; ChBot[CureChat].AddUser(NewUser); SuccessOp(e, a, "Вы зарегистрированы в боте."); } else { InvalidData(e, a); } }
public Trigger TForm(string[] parsResult, ParamResponse e, TGUpl a, Moder CureModer) { Trigger AT = new Trigger(); AT.TLvl = CureModer.MLvl; AT.TWord = parsResult[1]; if (parsResult[2] == "" && e.replyMessageText != null) { AT.TType = e.replyMessageType; AT.TResponse = e.replyMessageText; } else if (e.replyMessageText == null && parsResult[2] != "") { AT.TType = "Message"; AT.TResponse = parsResult[2]; } else { a.SendMessage("Невозможно добавить пустой триггер", e.chatId); AT.TType = null; AT.TResponse = null; } return(AT); }
public void CommandInfo(string[] parsResult, ParamResponse e, TGUpl a) { a.SendMessage(Info, e.chatId); }
public void MainModerCommandRDFTXT(string[] parsResult, ParamResponse e, TGUpl a) { LastDataVersion.ReadFromFileTrigger(); ParseOldTriggersToNew(); a.SendMessage("Успешно", MainModer.UId); }
public void SuccessOp(ParamResponse e, TGUpl a, string arg = "") { a.SendMessage("Успешно!\n" + arg, e.chatId); }
public void AlreadyExist(ParamResponse e, TGUpl a, string that = "Модер") { a.SendMessage(that + " уже существует", e.chatId); }
public void InvalidData(ParamResponse e, TGUpl a) { a.SendMessage("Не правильные параметры команды. Используйте /info для получания справки. ", e.chatId); }
public void NotEnouthRights(ParamResponse e, TGUpl a) { a.SendMessage("У вас недостаточно прав", e.chatId); }
public void NonModder(ParamResponse e, TGUpl a) { a.SendMessage("Вы не являетесь модератором.", e.chatId); }
public void WriteData(TGUpl a) { FileWorker.WriteData(this); a.SendMessage("Успешно сохранено.", MainModer.UId); }
public void CommandCentre(ParamResponse e) { TGUpl a = new TGUpl(); if (e.callback == true) { PollHandler.Handler(e, a); } else { int CureChat = GetChat(e.chatId); if (CureChat == -1) { if (e.UId == MainModer.UId) { this.AddChat(MakeChat(e, a)); } else if (e.UId == e.chatId) { this.AddChat(MakeChat(e, a)); } else { a.LeaveTheGroup(e.chatId); } } string[] parsResult = ParsMessage(e.message); switch (parsResult[0]) { case "/st": CommandST(parsResult, e, a); break; case "/dt": CommandDT(parsResult, e, a); break; case "/sm": CommandSM(parsResult, e, a); break; case "/dm": CommandDM(parsResult, e, a); break; case "/gtl": CommandGTL(parsResult, e, a); break; case "/i": CommandI(parsResult, e, a); break; case "/si": CommandSI(parsResult, e, a); break; case "/p_ddg": CommandPDDG(parsResult, e, a); break; case "/info": CommandInfo(parsResult, e, a); break; case "/get_info": CommandGetInfo(parsResult, e, a); break; case "/reg_me": CommandRegMe(parsResult, e, a); break; case "/mp": a.SendPoll(e.message, e.chatId, e.replyMessageText); break; default: break; } if (e.NewMember != null && e.NewMemberID == TGReq.TGUpl.BotUID) { if (e.UId == MainModer.UId) { this.AddChat(MakeChat(e, a)); } else { a.LeaveTheGroup(e.chatId); } } if (e.NewMember != "" && e.NewMember != null && e.NewMemberID != TGReq.TGUpl.BotUID) { SayHello(e, a); } if (e.MemberQuit != "" && e.MemberQuit != null && e.MemberQuitID == TGReq.TGUpl.BotUID) { a.SendMessage("Бот был исключен из чата " + e.chatId, MainModer.UId); } if (e.UId == MainModer.UId) { switch (parsResult[0]) { case "/gcs": MainModerCommandGCS(parsResult, e, a); break; case "/mt": MainModerCommandMT(parsResult, e, a); break; case "/mta": MainModerCommandMTA(parsResult, e, a); break; case "/rchd": RepairChatData(); break; case "/sa": WriteData(a); break; case "/rdftxt": MainModerCommandRDFTXT(parsResult, e, a); break; default: break; } } TResponse(e.message, e, a); } }