public void ToggleMaillist(UUID client, int level, string[] additionalArgs, Destinations source, UUID agentKey, string agentName) { OCBotMemory ocb = OCBotMemory.Memory; OCBotMemory.MailList ML = ocb.MailingLists[additionalArgs[0]]; List <OCBotMemory.MailListMember> Members = ML.Members; foreach (OCBotMemory.MailListMember Member in Members) { if (Member.MemberID == agentKey) { // Flip status OCBotMemory.MailListMember M = Member; M.FlipOpt(); ML.Members.Remove(Member); ML.Members.Add(M); ocb.MailingLists[additionalArgs[0]] = ML; ocb.Save(); MHE(source, client, "Successfully flipped your opt-in status to " + tf(M.OptOut)); return; } } MHE(source, client, "Could not locate entry in that mailing list"); }
public void AddListMember(UUID client, int level, string[] additionalArgs, Destinations source, UUID agentKey, string agentName) { // Create the new mailing list OCBotMemory ocb = OCBotMemory.Memory; UUID add_member = UUID.Parse(additionalArgs[1]); // Lets check data OCBotMemory.MailList ML = ocb.MailingLists[additionalArgs[0]]; List <OCBotMemory.MailListMember> Members = ML.Members; if (Members == null) { Members = new List <OCBotMemory.MailListMember>(); } foreach (OCBotMemory.MailListMember Member in Members) { if (Member.MemberID == add_member) { MHE(source, client, "This member is already added to the list"); if (ocb.BlacklistMailingList.Contains(add_member)) { MHE(source, client, "If this person is having trouble getting mailing list notifications, have them opt back into mailing lists. They are currently opted out of all mailing list functionality."); } return; } } OCBotMemory.MailListMember NewMember = new OCBotMemory.MailListMember(); NewMember.OptOut = false; NewMember.Informed = false; NewMember.MemberID = add_member; Members.Add(NewMember); ML.Members = Members; ocb.MailingLists[additionalArgs[0]] = ML; MHE(source, client, "Added."); ocb.Save(); }
public void ReplaceMailListMembers(UUID client, int level, string[] additionalArgs, Destinations source, UUID agentKey, string agentName) { // Create the new mailing list OCBotMemory ocb = OCBotMemory.Memory; MHE(source, client, "Stand by.."); OCBotMemory.MailList ML = ocb.MailingLists[additionalArgs[0]]; if (ML.MailListOwner != agentKey) { MHE(source, client, "PERMISSION ERROR: You are not the MailList Owner. Please only edit mailing lists you own or have created yourself"); return; } List <OCBotMemory.MailListMember> Members = new List <OCBotMemory.MailListMember>(); string sURL = additionalArgs[1]; WebRequest WR = WebRequest.Create(sURL); WebResponse resp = WR.GetResponse(); Stream S = resp.GetResponseStream(); StreamReader SR = new StreamReader(S); string CSV = SR.ReadToEnd(); string[] CSVList = new string[] { ",", ", " }; string[] listData = CSV.Split(CSVList, StringSplitOptions.RemoveEmptyEntries); foreach (string D in listData) { OCBotMemory.MailListMember NewMember = new OCBotMemory.MailListMember(); NewMember.Informed = false; NewMember.OptOut = false; NewMember.MemberID = UUID.Parse(D); Members.Add(NewMember); } ML.Members = Members; ocb.MailingLists[additionalArgs[0]] = ML; ocb.Save(); MHE(source, client, "Mailing list member list completely replaced by CSV contents"); }
public void Dispatch(UUID client, int level, string[] additionalArgs, Destinations source, UUID agentKey, string agentName) { OCBotMemory ocb = OCBotMemory.Memory; OCBotMemory.MailList ML = ocb.MailingLists[additionalArgs[0]]; List <OCBotMemory.MailListMember> Members = ML.Members; Console.WriteLine("Enter foreach with " + Members.Count.ToString() + " members"); for (int i = 0; i < Members.Count; i++) { OCBotMemory.MailListMember Member = Members[i]; Console.WriteLine("ENTER Blacklist check for " + Member.MemberID.ToString()); if (ocb.BlacklistMailingList.Contains(Member.MemberID)) { // Totally ignore sending a message to this user. } else { string PreparedStatement = ML.PrepMsg; if (Member.Informed) { bool CanSend = true; if (ML.AllowOptOut) { if (Member.OptOut) { CanSend = false; } } if (CanSend) { MHE(Destinations.DEST_AGENT, Member.MemberID, ML.PrepMsg); } } else { bool CanSend = true; if (ML.AllowOptOut) { if (Member.OptOut) { CanSend = false; } } if (CanSend) { MHE(Destinations.DEST_AGENT, Member.MemberID, ML.PrepMsg + "\n \n[I see this is the first time you are receiving a message on this mailing list]\n[If you want to opt out from this mailing list, you can send the command: maillist_opt [list_name]]\n[If you want to opt out from all mailing lists you can send: maillist_off/maillist_on]"); Console.WriteLine("Begin replace"); Member.setInformed(); ML.Members[i] = Member; Console.WriteLine("Replaced maillist entry"); } } } Console.WriteLine("EXIT Blacklist Check for " + Member.MemberID.ToString()); } Console.WriteLine("Foreach complete"); MHE(Destinations.DEST_AGENT, ML.MailListOwner, ML.PrepMsg); ML.PrepFrom = UUID.Zero; ML.PrepMsg = ""; ML.PrepState = 0; ocb.MailingLists[additionalArgs[0]] = ML; ocb.Save(); }