Jeremiah Fincher Daniel DiPaolo DocBook translator Supybot Frequently Asked Questions 0.1 18 Feb 2004 Initial Docbook translation 0.2 26 Feb 2004 Changed to Supybot DTD Why does my bot not recognize me or tell me that I don't have the owner capability? Because you've not given it anything to recognize you from! You'll need to identify with the bot (help identify to see how that works) or add your hostmask to your user record (help addhostmask to see how that works) for it to know that you're you. You may wish to note that addhostmask can accept a password; rather than identify, you can send the command addhostmask myOwnerUser [hostmask] myOwnerUserPassword and the bot will add your current hostmask to your owner user (of course, you should change myOwnerUser and myOwnerUserPassword appropriately for your bot). How do I make Supybot op my users? First, you'll have to make sure that your users register with the bot. They can do this with the register command. After they do so, you'll want to add the #channel,op capability to their user. Use the channel addcapability command to do this. After that, your users should be able to use the op command to get ops. If you want your users to be auto-opped when they join the channel, you'll need to load the Enforcer plugin and turn its autoOp configuration variable on. Use the config command to do so. Here's an example of how to do these steps: <jemfinch|lambda> I'm going to make an example session for giving you auto-ops, for our FAQ. <dunk1> ah ok ;] <jemfinch|lambda> First, I need you to register with supybot, using the "register" command (remember to send it in private). <dunk1> done <jemfinch|lambda> what name are you registered under? <dunk1> dunk1 <jemfinch|lambda> ok, cool. <jemfinch|lambda> @channel addcapability dunk1 op <supybot> jemfinch|lambda: The operation succeeded. <jemfinch|lambda> now use the "op" command to get ops. <dunk1> @op — supybot gives channel operator status to dunk1 <dunk1> works! <dunk1> ;] <jemfinch|lambda> @load Enforcer <supybot> jemfinch|lambda: The operation succeeded. <jemfinch|lambda> @config channel supybot.plugins.Enforcer.autoOp On <supybot> jemfinch|lambda: The operation succeeded. <jemfinch|lambda> ok, now cycle the channel (part and then rejoin) <– dunk1 (dunker@freebsd.nl) has left #supybot –> dunk1 (dunker@freebsd.nl) has joined #supybot — supybot gives channel operator status to dunk1 <jemfinch|lambda> cool, thanks :) Can users with the admin capability change configuration variables? Currently, no. Since this is the first release of Supybot that uses the registry, we wanted to stay on the conservative side and require the owner capability for changing all non-channel-related configuration variables. Feel free to make your case to us as to why a certain configuration variable should only require the admin capability instead of the owner capability, and if we agree with you, we'll change it for the next release. Can Supybot do factoids? Supybot most certainly can! In fact, we offer three full-fledged factoids-related plugins! Factoids (written by jemfinch) is Supybot's original factoids-related plugin. It offers full integration with Supybot's nested commands as well as a complete 1:n key to factoid ratio, with lookup by individual number. Factoids also uses a channel-specific database instead of a global database though that's configurable with the supybot.databases.plugins.channelSpecific configuration variable. MoobotFactoids (written by Strike) is much more full-featured, offering users the ability to define factoids in a slightly more user-friendly way, as well as parsing factoids to handle <reply>, <action>, and alternations (defining a factoid “test” as “<reply>(foo|bar|baz)” will make the bot send “foo” or “bar” or “baz” to the channel (without the normal “test is ” at the beginning)). If you're accustomed to Moobot's factoids or Blootbot's factoids, then this is the Factoids plugin for you. Unfortunately, due to the more natural definition syntax (required to be comaptible with Moobot) you can't define Factoids with nested commands; you'll have to evaluate the command first and then copy the result into your factoid definition. Infobot (written by jamessan) is used for Infobot compatibility; if you still want the basic functionality of Infobot, this is the plugin to use. Can I import my Infobot/Blootbot/Moobot factoids into Supybot? As of present, we have no automated way to do so. Strike has written a few scripts for importing a Moobot database into MoobotFactoids, however, so you'll want to talk to him about helping you with that. We're certainly happy to help you convert such databases; if you can provide us with such a database exported to a flat file, we can probably do the rest of the work to write a script that imports it into a database for one of our factoids-related plugins. Do I really have to use separate databases for each channel? Of course not! We default to separate databases for each channel because, well, that's what jemfinch always thought was reasonable. Anyway, if you change the configuration variable supybot.databases.plugins.channelSpecific to False instead of True, for most databases, each channel will share the same database (the exceptions are ChannelStats, Herald, Seen, and WordStats, which are inherently rather channel-based). Karma doesn't seem to work for me. Karma by default doesn't acknowledge karma updates. If you check the karma of whatever you increased/decreased, you'll note that your increment or decrement still took place. If you'd rather Karma acknowledge karma updates, change the supybot.plugins.Karma.response configuration variable to On. I added an alias, but it doesn't work! Take a look at help <alias you added>. If the alias the bot has listed doesn't match what you're giving it, chances re you need to quote your alias in order for the brackets not to be evaluated. For instance, if you're adding an alias to give you a link to your homepage, you need to say: alias add mylink "format concat http://myhost.com/ [urlquote $1]" and not: alias add mylink format concat http://myhost.com/ [urlquote $1] The first version works; the second version will always return the same url. Is there a command that can tell me what capability another command requires? No, there isn't, and there probably never will be. Commands have the flexibility to check any capabilities they wish to check; while this flexibility is useful, it also makes it hard to guess what capability a certain command requires. We could make a solution that would work in a large majority of cases, but it wouldn't (and couldn't!) be absolutely correct in all circumstances, and since we're anal and we hate doing things halfway, we probably won't ever add this partial solution. Besides, is the error message so bad? If we did have such a command, many users would call the command, see that they could perform it, and then run the command, thus doubling the activity in the channel. Is that something you want? How do I make my Supybot connect to multiple servers? Just use the connect command in the Owner plugin. Easy as pie! I found a bug, what do I do? Submit it on Sourceforge through our Sourceforge project page: http://sourceforge.net/tracker/?group_id=58965&atid=489447 . If Sourceforge happens to be down when you try to submit your bug, then post it in the "Supybot Developer Discussion" forum at our forums at http://forums.supybot.org/ . If that doesn't work, email supybot-bugs@lists.sourceforge.net. If that doesn't work, email jemfinch@supybot.org. If that doesn't work, find yourself some carrier pigeons and … hah! You thought I was serious! Anyway, when you submit your bug, we'll need several things. If the bug involved an uncaught exception, we need the traceback (basically the stuff from “Uncaught exception in …” to the next log entry). We'd also like to see the commands that caused the bug, or happened around the time you saw the bug. If the bug involved a database, we'd love to see the database. Remember, it's always worse to send us too little information in a bug report than too much.