当前位置: 首页>>代码示例>>C#>>正文


C# Channel.RetrieveObject方法代码示例

本文整理汇总了C#中Channel.RetrieveObject方法的典型用法代码示例。如果您正苦于以下问题:C# Channel.RetrieveObject方法的具体用法?C# Channel.RetrieveObject怎么用?C# Channel.RetrieveObject使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Channel的用法示例。


在下文中一共展示了Channel.RetrieveObject方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Extension_DumpHtml

 public override string Extension_DumpHtml(Channel channel)
 {
     string HTML = "";
     DebugLog("Getting html for " + channel.Name);
     try
     {
         if (GetConfig(channel, "RC.Enabled", false))
         {
             RecentChanges rc = (RecentChanges)channel.RetrieveObject("RC");
             if (rc != null)
             {
                 HTML = rc.ToTable();
             }
             else
             {
                 Syslog.ErrorLog("NULL rc for " + channel.Name);
             }
         }
         else
         {
             DebugLog("RC is disabled for " + channel.Name, 2);
         }
     }
     catch (Exception fail)
     {
         HandleException(fail);
     }
     return HTML;
 }
开发者ID:benapetr,项目名称:wikimedia-bot,代码行数:29,代码来源:ModuleRC.cs

示例2: Hook_Channel

 public override void Hook_Channel(Channel channel)
 {
     if (channel.RetrieveObject("rss") == null)
     {
         channel.RegisterObject(new Feed(channel), "rss");
     }
 }
开发者ID:benapetr,项目名称:wikimedia-bot,代码行数:7,代码来源:Module.cs

示例3: Extension_DumpHtml

 public override string Extension_DumpHtml(Channel channel)
 {
     string HTML = "";
     if (GetConfig(channel, "Rss.Enable", false))
     {
         Feed list = (Feed)channel.RetrieveObject("rss");
         if (list == null)
         {
             return "";
         }
         if (GetConfig(channel, "Rss.Enable", false) != true)
         {
             return HTML;
         }
         HTML += "<h4>Rss feed</h4><br />";
         HTML += "\n<br />\n<h4>Rss</h4>\n<br />\n\n<table class=\"infobot\" width=100% border=1>";
         HTML += "<tr><th>Name</th><th>URL</th><th>Text</th><th>Enabled</th></tr>";
         lock (list.RssProviders)
         {
             foreach (Feed.Subscription feed in list.RssProviders)
             {
                 HTML += "\n<tr><td>" + feed.Name + "</td><td><a href=\"" + feed.URL + "\">" + feed.URL + "</a></td><td>" + feed.template + "</td><td>" + (!feed.disabled) + "</td></tr>";
             }
         }
         HTML += "</table>\n";
     }
     return HTML;
 }
开发者ID:benapetr,项目名称:wikimedia-bot,代码行数:28,代码来源:Module.cs

示例4: Extension_DumpHtml

 public override string Extension_DumpHtml(Channel channel)
 {
     string HTML = "";
     Infobot info = (Infobot)channel.RetrieveObject("Infobot");
     if (info != null)
     {
         List<Infobot.InfobotKey> list = new List<Infobot.InfobotKey>();
         List<Infobot.InfobotAlias> aliases = new List<Infobot.InfobotAlias>();
         lock (info)
         {
             if (GetConfig(channel, "Infobot.Sorted", false))
             {
                 list = info.SortedItem();
             }
             else
             {
                 list.AddRange(info.Keys);
             }
             aliases.AddRange(info.Aliases);
         }
         string JSON_blob = Newtonsoft.Json.JsonConvert.SerializeObject(list);
         JSON_blob += "\n\n" + Newtonsoft.Json.JsonConvert.SerializeObject(aliases);
         string JSON_file = Configuration.Paths.DumpDir + "/" + channel.Name + "_dump.js";
         File.WriteAllText(JSON_file, JSON_blob);
         HTML += "JSON blob: <a href=\"" + System.Web.HttpUtility.UrlEncode(channel.Name) + "_dump.js\">open</a>";
         HTML += "\n<table border=1 class=\"infobot\" width=100%>\n<tr><th width=10%>Key</th><th>Value</th></tr>\n";
         if (list.Count > 0)
         {
             foreach (Infobot.InfobotKey Key in list)
             {
                 HTML += Core.HTML.AddKey(Key.Key, Key.Text);
             }
         }
         HTML += "</table>\n";
         HTML += "<h4>Aliases</h4>\n<table class=\"infobot\" border=1 width=100%>\n";
         lock (info)
         {
             foreach (Infobot.InfobotAlias data in info.Aliases)
             {
                 HTML += Core.HTML.AddLink(data.Name, data.Key);
             }
         }
         HTML += "</table><br />\n";
     }
     return HTML;
 }
开发者ID:benapetr,项目名称:wikimedia-bot,代码行数:46,代码来源:Plugin.cs

示例5: Hook_PRIV

        public override void Hook_PRIV(Channel channel, libirc.UserInfo invoker, string message)
        {
            if (message.StartsWith(Configuration.System.CommandPrefix + "RC-"))
            {
                if (channel.SystemUsers.IsApproved(invoker, "recentchanges-remove"))
                {
                    if (GetConfig(channel, "RC.Enabled", false))
                    {
                        string[] a = message.Split(' ');
                        if (a.Length < 3)
                        {
                            IRC.DeliverMessage(messages.Localize("Feed8", channel.Language, new List<string> { invoker.Nick }), channel.Name);
                            return;
                        }
                        string wiki = a[1];
                        string Page = a[2];
                        RecentChanges rc = (RecentChanges)channel.RetrieveObject("RC");
                        if (rc != null)
                        {
                            rc.RemovePage(wiki, Page);
                        }
                        return;
                    }
                    IRC.DeliverMessage(messages.Localize("Feed3", channel.Language), channel);
                    return;
                }
                if (!channel.SuppressWarnings)
                {
                    IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), channel);
                }
                return;
            }

            if (message.StartsWith(Configuration.System.CommandPrefix + "RC+ "))
            {
                if (channel.SystemUsers.IsApproved(invoker, "recentchanges-add"))
                {
                    if (GetConfig(channel, "RC.Enabled", false))
                    {
                        string[] a = message.Split(' ');
                        if (a.Length < 3)
                        {
                            IRC.DeliverMessage(messages.Localize("Feed4", channel.Language) + invoker.Nick + messages.Localize("Feed5", channel.Language), channel);
                            return;
                        }
                        string wiki = a[1];
                        string Page = a[2];
                        if (wiki.Contains("_"))
                        {
                            IRC.DeliverMessage("Underscore in wiki name is not supported, new format is for example: en.wikipedia.org instead of en_wikipedia", channel);
                            return;
                        }
                        RecentChanges rc = (RecentChanges)channel.RetrieveObject("RC");
                        if (rc != null)
                        {
                            rc.MonitorPage(wiki, Page);
                        }
                        return;
                    }
                    IRC.DeliverMessage(messages.Localize("Feed3", channel.Language), channel);
                    return;
                }
                if (!channel.SuppressWarnings)
                {
                    IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), channel);
                }
                return;
            }
        }
开发者ID:benapetr,项目名称:wikimedia-bot,代码行数:69,代码来源:ModuleRC.cs

示例6: Hook_ChannelDrop

 public override void Hook_ChannelDrop(Channel chan)
 {
     RecentChanges rc = (RecentChanges)chan.RetrieveObject("RC");
     if (rc != null && RecentChanges.recentChangesList.Contains(rc))
         RecentChanges.recentChangesList.Remove(rc);
     if (File.Exists(Variables.ConfigurationDirectory + Path.DirectorySeparatorChar + chan.Name + ".list"))
     {
         Log("Removing db of " + chan.Name + " RC feed");
         File.Delete(Variables.ConfigurationDirectory + Path.DirectorySeparatorChar + chan.Name + ".list");
     }
 }
开发者ID:benapetr,项目名称:wikimedia-bot,代码行数:11,代码来源:ModuleRC.cs

示例7: Hook_Channel

 public override void Hook_Channel(Channel channel)
 {
     if (channel.RetrieveObject("RC") == null)
     {
         channel.RegisterObject(new RecentChanges(channel), "RC");
     }
 }
开发者ID:benapetr,项目名称:wikimedia-bot,代码行数:7,代码来源:ModuleRC.cs

示例8: Hook_SetConfig

 public override bool Hook_SetConfig(Channel chan, libirc.UserInfo invoker, string config, string value)
 {
     bool _temp_a;
     switch (config)
     {
         case "infobot-trim-white-space-in-name":
             if (bool.TryParse(value, out _temp_a))
             {
                 SetConfig(chan, "Infobot.Trim-white-space-in-name", _temp_a);
                 IRC.DeliverMessage(messages.Localize("configuresave", chan.Language, new List<string> { value, config }), chan.Name);
                 chan.SaveConfig();
                 return true;
             }
             IRC.DeliverMessage(messages.Localize("configure-va", chan.Language, new List<string> { config, value }), chan.Name);
             return true;
         case "infobot-auto-complete":
             if (bool.TryParse(value, out _temp_a))
             {
                 SetConfig(chan, "Infobot.auto-complete", _temp_a);
                 IRC.DeliverMessage(messages.Localize("configuresave", chan.Language, new List<string> { value, config }), chan.Name);
                 chan.SaveConfig();
                 return true;
             }
             IRC.DeliverMessage(messages.Localize("configure-va", chan.Language, new List<string> { config, value }), chan.Name);
             return true;
         case "infobot-sorted":
             if (bool.TryParse(value, out _temp_a))
             {
                 SetConfig(chan, "Infobot.Sorted", _temp_a);
                 IRC.DeliverMessage(messages.Localize("configuresave", chan.Language, new List<string> { value, config }), chan.Name);
                 chan.SaveConfig();
                 return true;
             }
             IRC.DeliverMessage(messages.Localize("configure-va", chan.Language, new List<string> { config, value }), chan.Name);
             return true;
         case "infobot-help":
             if (bool.TryParse(value, out _temp_a))
             {
                 SetConfig(chan, "Infobot.Help", _temp_a);
                 IRC.DeliverMessage(messages.Localize("configuresave", chan.Language, new List<string> { value, config }), chan.Name);
                 chan.SaveConfig();
                 return true;
             }
             IRC.DeliverMessage(messages.Localize("configure-va", chan.Language, new List<string> { config, value }), chan.Name);
             return true;
         case "infobot-case":
             if (bool.TryParse(value, out _temp_a))
             {
                 SetConfig(chan, "Infobot.Case", _temp_a);
                 IRC.DeliverMessage(messages.Localize("configuresave", chan.Language, new List<string> { value, config }), chan.Name);
                 chan.SaveConfig();
                 Infobot infobot = (Infobot)chan.RetrieveObject("Infobot");
                 if (infobot != null)
                 {
                     infobot.Sensitive = _temp_a;
                 }
                 return true;
             }
             IRC.DeliverMessage(messages.Localize("configure-va", chan.Language, new List<string> { config, value }), chan.Name);
             return true;
     }
     return false;
 }
开发者ID:benapetr,项目名称:wikimedia-bot,代码行数:63,代码来源:Plugin.cs

示例9: Hook_PRIV

        public override void Hook_PRIV(Channel channel, libirc.UserInfo invoker, string message)
        {
            // "\uff01" is the full-width version of "!".
            if ((message.StartsWith("!") || message.StartsWith("\uff01")) && GetConfig(channel, "Infobot.Enabled", true))
            {
                while (Unwritable)
                {
                    Thread.Sleep(10);
                }
                Unwritable = true;
                Infobot.InfoItem item = new Infobot.InfoItem
                {
                    Channel = channel,
                    Name = "!" + message.Substring(1),
                    User = invoker,
                };
                jobs.Add(item);
                Unwritable = false;
            }

            Infobot infobot = null;

            if (message.StartsWith(Configuration.System.CommandPrefix))
            {
                infobot = (Infobot)channel.RetrieveObject("Infobot");
                if (infobot == null)
                {
                    Syslog.Log("Object Infobot in " + channel.Name + " doesn't exist", true);
                }
                if (GetConfig(channel, "Infobot.Enabled", true))
                {
                    if (infobot != null)
                    {
                        infobot.Find(message, channel);
                        infobot.RSearch(message, channel);
                    }
                }
            }

            if (Snapshots)
            {
                if (message.StartsWith(Configuration.System.CommandPrefix + "infobot-recovery "))
                {
                    if (channel.SystemUsers.IsApproved(invoker, PermissionRestoreSnapshot))
                    {
                        string name = message.Substring("@infobot-recovery ".Length);
                        if (!GetConfig(channel, "Infobot.Enabled", true))
                        {
                            IRC.DeliverMessage("Infobot is not enabled in this channel", channel, libirc.Defs.Priority.Low);
                            return;
                        }
                        if (infobot != null)
                        {
                            infobot.RecoverSnapshot(channel, name);
                        }
                        return;
                    }
                    if (!channel.SuppressWarnings)
                    {
                        IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), channel, libirc.Defs.Priority.Low);
                    }
                    return;
                }

                if (message.StartsWith(Configuration.System.CommandPrefix + "infobot-snapshot "))
                {
                    if (channel.SystemUsers.IsApproved(invoker, PermissionSnaphot))
                    {
                        string name = message.Substring("@infobot-snapshot ".Length);
                        if (!GetConfig(channel, "Infobot.Enabled", true))
                        {
                            IRC.DeliverMessage("Infobot is not enabled in this channel", channel, libirc.Defs.Priority.Low);
                            return;
                        }
                        if (infobot != null)
                        {
                            infobot.CreateSnapshot(channel, name);
                        }
                        return;
                    }
                    if (!channel.SuppressWarnings)
                    {
                        IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), channel, libirc.Defs.Priority.Low);
                    }
                    return;
                }

                if (message.StartsWith(Configuration.System.CommandPrefix + "infobot-set-raw "))
                {
                    if (channel.SystemUsers.IsApproved(invoker, PermissionAdd))
                    {
                        string name = message.Substring("@infobot-set-raw ".Length);
                        if (!GetConfig(channel, "Infobot.Enabled", true))
                        {
                            IRC.DeliverMessage("Infobot is not enabled in this channel", channel, libirc.Defs.Priority.Low);
                            return;
                        }
                        if (infobot != null)
                        {
                            infobot.SetRaw(name, invoker.Nick, channel);
//.........这里部分代码省略.........
开发者ID:benapetr,项目名称:wikimedia-bot,代码行数:101,代码来源:Plugin.cs

示例10: Hook_Channel

 public override void Hook_Channel(Channel channel)
 {
     Syslog.Log("Loading " + channel.Name);
     if (channel == null)
     {
         Syslog.Log("NULL");
     }
     if (Snapshots)
     {
         try
         {
             if (Directory.Exists(SnapshotsDirectory + Path.DirectorySeparatorChar + channel.Name) == false)
             {
                 Syslog.Log("Creating directory for infobot for " + channel.Name);
                 Directory.CreateDirectory(SnapshotsDirectory + Path.DirectorySeparatorChar + channel.Name);
             }
         }
         catch (Exception fail)
         {
             Core.HandleException(fail, "infobot");
         }
     }
     if (channel.RetrieveObject("Infobot") == null)
     {
         // sensitivity
         bool cs = GetConfig(channel, "Infobot.Case", true);
         channel.RegisterObject(new Infobot(getDB(ref channel), channel, this, cs), "Infobot");
     }
 }
开发者ID:benapetr,项目名称:wikimedia-bot,代码行数:29,代码来源:Plugin.cs

示例11: Hook_PRIV

        public override void Hook_PRIV(Channel channel, libirc.UserInfo invoker, string message)
        {
            if (GetConfig(channel, "Statistics.Enabled", false))
            {
                Statistics st = (Statistics)channel.RetrieveObject("Statistics");
                if (st != null)
                {
                    st.Stat(invoker.Nick, message, invoker.Host);
                }
            }

            if (message == Configuration.System.CommandPrefix + "statistics-off")
            {
                if (channel.SystemUsers.IsApproved(invoker, "admin"))
                {
                    if (!GetConfig(channel, "Statistics.Enabled", false))
                    {
                        IRC.DeliverMessage(messages.Localize("StatE2", channel.Language), channel);
                        return;
                    }
                    SetConfig(channel, "Statistics.Enabled", false);
                    channel.SaveConfig();
                    IRC.DeliverMessage(messages.Localize("Stat-off", channel.Language), channel);
                    return;
                }
                if (!channel.SuppressWarnings)
                {
                    IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), channel);
                }
                return;
            }

            if (message == Configuration.System.CommandPrefix + "statistics-reset")
            {
                if (channel.SystemUsers.IsApproved(invoker, "admin"))
                {
                    Statistics st = (Statistics)channel.RetrieveObject("Statistics");
                    if (st != null)
                    {
                        st.Delete();
                    }
                    IRC.DeliverMessage(messages.Localize("Statdt", channel.Language), channel);
                    return;
                }
                if (!channel.SuppressWarnings)
                {
                    IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), channel);
                }
                return;
            }

            if (message == Configuration.System.CommandPrefix + "statistics-on")
            {
                if (channel.SystemUsers.IsApproved(invoker, "admin"))
                {
                    if (GetConfig(channel, "Statistics.Enabled", false))
                    {
                        IRC.DeliverMessage(messages.Localize("StatE1", channel.Language), channel);
                        return;
                    }
                    SetConfig(channel, "Statistics.Enabled", true);
                    channel.SaveConfig();
                    IRC.DeliverMessage(messages.Localize("Stat-on", channel.Language), channel);
                    return;
                }
                if (!channel.SuppressWarnings)
                {
                    IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), channel.Name);
                }
            }
        }
开发者ID:benapetr,项目名称:wikimedia-bot,代码行数:71,代码来源:Statistics.cs

示例12: Hook_Channel

 public override void Hook_Channel(Channel channel)
 {
     if (channel.RetrieveObject("Statistics") == null)
     {
         channel.RegisterObject(new Statistics(channel), NAME);
     }
 }
开发者ID:benapetr,项目名称:wikimedia-bot,代码行数:7,代码来源:Statistics.cs

示例13: Extension_DumpHtml

 public override string Extension_DumpHtml(Channel channel)
 {
     StringBuilder builder = new StringBuilder();
     if (GetConfig(channel, "Statistics.Enabled", false))
     {
         Statistics list = (Statistics) channel.RetrieveObject(NAME);
         if (list != null)
         {
             builder.AppendLine("<br />");
             builder.AppendLine("<h4>Most active users :)</h4>");
             builder.AppendLine("<br />");
             builder.AppendLine();
             builder.AppendLine("<table class=\"infobot\" width=100% border=1>");
             builder.AppendLine(
                 "<tr><td>N.</td><th>Nick</th><th>Messages (average / day)</th><th>Number of posted messages</th><th>Active since</th></tr>");
             int id = 0;
             int totalms = 0;
             DateTime startime = DateTime.Now;
             lock (list.data)
             {
                 list.data.Sort();
                 list.data.Reverse();
                 foreach (Statistics.list user in list.data)
                 {
                     id++;
                     totalms += user.messages;
                     if (id > 100)
                     {
                         continue;
                     }
                     if (startime > user.logging_since)
                     {
                         startime = user.logging_since;
                     }
                     TimeSpan uptime = DateTime.Now - user.logging_since;
                     float average = (user.messages/(float) (uptime.Days + 1));
                     if (user.URL != "")
                     {
                         builder.AppendFormat(
                             "<tr><td>{0}.</td><td><a target=\"_blank\" href=\"{1}\">{2}</a></td><td>{3}</td><td>{4}</td><td>{5}</td></tr>\n",
                             id, user.URL, user.user, average, user.messages, user.logging_since
                             );
                     }
                     else
                     {
                         builder.AppendFormat("<tr><td>{0}.</td><td>{1}</td><td>{2}</td><td>{3}</td><td>{4}</td></tr>\n",
                                            id, user.user, average, user.messages, user.logging_since);
                     }
                     builder.AppendLine();
                 }
             }
             TimeSpan uptime_total = DateTime.Now - startime;
             float average2 = (float) totalms/(1 + uptime_total.Days);
             builder.AppendFormat("<tr><td>N/A</td><th>Total:</th><th>{0}</th><th>{1}</th><td>N/A</td></tr>\n", average2, totalms);
             builder.AppendLine();
             builder.AppendLine("</table>");
         }
     }
     return builder.ToString();
 }
开发者ID:benapetr,项目名称:wikimedia-bot,代码行数:60,代码来源:Statistics.cs

示例14: Hook_PRIV

 public override void Hook_PRIV(Channel channel, libirc.UserInfo invoker, string message)
 {
     if (message.StartsWith(Configuration.System.CommandPrefix + "rss- "))
     {
         if (channel.SystemUsers.IsApproved(invoker, "trust"))
         {
             string item = message.Substring("@rss+ ".Length);
             Feed feed = (Feed)channel.RetrieveObject("rss");
             if (feed != null)
             {
                 feed.RemoveItem(item);
             }
             return;
         }
         if (!channel.SuppressWarnings)
         {
             IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), channel.Name);
         }
     }
     if (message.StartsWith(Configuration.System.CommandPrefix + "rss-setstyle "))
     {
         if (channel.SystemUsers.IsApproved(invoker, "trust"))
         {
             string item = message.Substring("@rss-setstyle ".Length);
             if (item.Contains(" "))
             {
                 string id = item.Substring(0, item.IndexOf(" "));
                 string ur = item.Substring(item.IndexOf(" ") + 1);
                 Feed feed = (Feed)channel.RetrieveObject("rss");
                 if (feed != null)
                 {
                     feed.StyleItem(id, ur);
                 }
                 return;
             }
             if (item != "")
             {
                 Feed feed = (Feed)channel.RetrieveObject("rss");
                 if (feed != null)
                 {
                     feed.StyleItem(item, "");
                 }
                 return;
             }
             if (!channel.SuppressWarnings)
             {
                 IRC.DeliverMessage(messages.Localize("Rss5", channel.Language), channel.Name);
             }
         }
         else
         {
             if (!channel.SuppressWarnings)
             {
                 IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), channel.Name);
             }
         }
     }
     if (message.StartsWith(Configuration.System.CommandPrefix + "rss-search+ "))
     {
         if (channel.SystemUsers.IsApproved(invoker, "trust"))
         {
             string item = message.Substring("@rss-search+ ".Length);
             Feed feed = (Feed)channel.RetrieveObject("rss");
             if (feed != null)
             {
                 lock (feed.ScannerMatches)
                 {
                     if (feed.ScannerMatches.Contains(item))
                     {
                         IRC.DeliverMessage("This item is already being searched", channel);
                         return;
                     }
                     IRC.DeliverMessage("This item is now searched", channel);
                     feed.ScannerMatches.Add(item);
                     return;
                 }
             }
             IRC.DeliverMessage("Error, this channel doesn't have RC feed", channel);
             return;
         }
         if (!channel.SuppressWarnings)
         {
             IRC.DeliverMessage(messages.Localize("PermissionDenied", channel.Language), channel, libirc.Defs.Priority.Low);
         }
     }
     if (message.StartsWith(Configuration.System.CommandPrefix + "rss-search- "))
     {
         if (channel.SystemUsers.IsApproved(invoker, "trust"))
         {
             string item = message.Substring("@rss-search+ ".Length);
             Feed feed = (Feed)channel.RetrieveObject("rss");
             if (feed != null)
             {
                 lock (feed.ScannerMatches)
                 {
                     if (feed.ScannerMatches.Contains(item))
                     {
                         feed.ScannerMatches.Remove(item);
                         IRC.DeliverMessage("This item was removed", channel);
                         return;
//.........这里部分代码省略.........
开发者ID:benapetr,项目名称:wikimedia-bot,代码行数:101,代码来源:Module.cs


注:本文中的Channel.RetrieveObject方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。