Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        /// <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);
        }
Пример #4
0
        /// <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);
        }
Пример #5
0
 public IWatch(wiki site, string page, string channel)
 {
     Channel = channel;
     Page = page;
     URL = site;
 }
Пример #6
0
 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:可以在这里处理动态、通知、积分
 }