public bool insertString(string WS, string Page) { wiki site = getWiki(WS); Page = Page.Replace("_", " "); if (site != null) { if (WS == "all" || channels.Contains(site.channel)) { IWatch currpage = null; lock (pages) { foreach (IWatch iw in pages) { if (iw.Channel == site.channel && iw.Page == Page) { currpage = iw; break; } } } if (Page.Contains("*")) { if (!Page.EndsWith("*") || Page.Replace("*", "") == "") { core.irc._SlowQueue.DeliverMessage(messages.get("rcfeed8", channel.Language), channel.Name); return(true); } } if (pages.Contains(currpage)) { core.irc._SlowQueue.DeliverMessage(messages.get("rcfeed9", channel.Language), channel.Name); return(true); } lock (pages) { pages.Add(new IWatch(site, Page, site.channel)); } core.irc._SlowQueue.DeliverMessage(messages.get("rcfeed10", channel.Language), channel.Name); Module.SetConfig(channel, "HTML.Update", true); Save(); return(true); } core.irc._SlowQueue.DeliverMessage(messages.get("rcfeed11", channel.Language), channel.Name); return(false); } core.irc._SlowQueue.DeliverMessage(messages.get("rcfeed12", channel.Language), channel.Name); return(false); }
public bool removeString(string WS, string Page) { Page = Page.Replace("_", " "); wiki site = null; site = getWiki(WS); if (site != null) { if (WS == "all" || channels.Contains(site.channel)) { IWatch currpage = null; lock (pages) { foreach (IWatch iw in pages) { if (iw.Page == Page && site.channel == iw.Channel) { currpage = iw; break; } } } if (pages.Contains(currpage)) { while (!writable) { System.Threading.Thread.Sleep(100); } pages.Remove(currpage); Module.SetConfig(channel, "HTML.Update", true); Save(); core.irc._SlowQueue.DeliverMessage(messages.get("rcfeed4", channel.Language), channel.Name); return(true); } core.irc._SlowQueue.DeliverMessage(messages.get("rcfeed5", channel.Language), channel.Name); return(true); } core.irc._SlowQueue.DeliverMessage( messages.get("rcfeed6", channel.Language), channel.Name); return(false); } core.irc._SlowQueue.DeliverMessage( messages.get("rcfeed7", channel.Language), channel.Name); return(false); }
/// <summary> /// New channel to watch by a bot /// </summary> /// <param name="target">Object to send output to</param> /// <param name="name">Name of wiki</param> /// <returns></returns> public static bool InsertChannel(config.channel target, string name) { try { wiki web = null; if (Loaded == false) { core.irc._SlowQueue.DeliverMessage(messages.get("rcfeed13", target.Language), target.Name); return(false); } foreach (wiki site in wikiinfo) { if (name == site.name) { web = site; break; } } if (web == null) { core.irc._SlowQueue.DeliverMessage(messages.get("rcfeed1", target.Language), target.Name); return(false); } if (channels.Contains(web.channel)) { core.irc._SlowQueue.DeliverMessage(messages.get("rcfeed2", target.Language), target.Name); return(false); } channels.Add(web.channel); WD.WriteLine("JOIN " + web.channel); WD.Flush(); File.WriteAllText(channeldata, ""); foreach (string x in channels) { File.AppendAllText(channeldata, x + "\n"); } } catch (Exception f) { core.handleException(f, "RC"); } return(true); }
/// <summary> /// Remove /// </summary> /// <param name="target">Object to get output back to</param> /// <param name="WikiName">Name of site</param> /// <returns></returns> public static bool DeleteChannel(config.channel target, string WikiName) { wiki W = null; if (Loaded == false) { core.irc._SlowQueue.DeliverMessage(messages.get("rcfeed13", target.Language), target.Name); return(false); } try { foreach (wiki site in wikiinfo) { if (WikiName == site.name) { W = site; break; } } if (W == null) { core.irc._SlowQueue.DeliverMessage(messages.get("rcfeed1", target.Language), target.Name); return(false); } if (!channels.Contains(W.channel)) { core.irc._SlowQueue.DeliverMessage(messages.get("rcfeed3", target.Language), target.Name); return(false); } channels.Remove(W.channel); Send("PART " + W.channel); WD.Flush(); File.WriteAllText(channeldata, ""); foreach (string x in channels) { File.AppendAllText(channeldata, x + "\n"); } } catch (Exception f) { core.handleException(f, "RC"); } return(true); }
public IWatch(wiki site, string page, string channel) { Channel = channel; Page = page; URL = site; }
/// <summary> /// 增删改等触发的事件 /// </summary> private void wikiEventModule_After(wiki repair, AuditEventArgs eventArgs) { //todo:可以在这里处理动态、通知、积分 }