Log in | Back to darenet.org

Topic Masking Guide

m (Topic snarfing)
 
(11 intermediate revisions not shown)
Line 1: Line 1:
-
Topic masks allow you to set a specific pattern that ChanServ will force all topics to follow; however, before we go further into detail, let's talk about wildcards as you will need a firm understanding of them to effectively use ChanServ's topic masking feature.
+
Topic masks allow you to force topics to follow a set pattern. To effectively use C's topic masking feature, you'll need a firm understanding of "wildcards", which we'll discuss in the next section of this guide.
==Wildcards==
==Wildcards==
-
A wildcard is character that may be substituted for any of a defined subset of all possible characters. Whether the wildcard character represents a single character or a string of characters must be specified. ChanServ supports the following wildcard characters:
+
The great Wikipedia defines a wildcard as ''a character that may be substituted for any of a defined subset of all possible characters''. In other words, the wildcard acts as a place holder. It'll be substituted for any other character or several characters. C supports two wildcards:
-
* '''*''' - multi-character wildcard
+
* '''*''' - (asterisk) - substitutes for zero or more characters
-
* '''?''' - single-character wildcard
+
* '''?''' - (question mark) - substitutes for one character
-
These two wildcards operate in the same fashion as they did in DOS or Unix, if you remember using them in either of these environments. Likewise, if you have ever used wildcards in channel bans, it's the same concept.
+
These two wildcards operate in the same fashion as they did in DOS or UNIX, if you have used them in either of these environments. Likewise, if you have ever used wildcards in channel bans or exemptions, same concept.
-
For simplicity, we will only use the multi-character wildcard (*) in this guide.
+
To keep things simple, we will only use the asterisk "'''*'''" wildcard in this guide.
===Example===
===Example===
Line 16: Line 16:
In Linux, to delete a file, you might execute the following command:
In Linux, to delete a file, you might execute the following command:
-
<code>rm OldNotes.*</code>
+
<code>rm notes.*</code>
-
The command shown above would delete all files called OldNotes that had any extension. Thus, OldNotes.png, OldNotes.txt, OldNotes.pdf, OldNotes.doc, etc. would be deleted; therefore, the wildcard '''*''' essentially means anything, OldNotes.anything.
+
The above command would delete all files called "notes", regardless of extension. Thus, notes.png, notes.txt, notes.pdf, notes.doc, etc. would all be deleted; therefore, the asterisk ('''*''') wildcard essentially means anything, notes.anything.
==Setting your channel topic==
==Setting your channel topic==
-
Now that we have a firm grasp of what wildcards are, and what they do, let's apply them to topic masking.
+
Now that we understand wildcards, let's apply them to topic masking. We'll start with an example.
-
Let's say we wanted to set the following topic on channel #darenet:
+
We want to set the following topic in the channel #darenet:
-
<font color="navy">'''<code>Welcome to the DareNET IRC Network's Main Channel. NEWS: Like us on Facebook, http://www.facebook.com/darenet</code>'''</font>
+
'''<code>Welcome to the DareNET lobby! NEWS: Like us on Facebook, http://www.facebook.com/darenet</code>'''
-
However, we would also like to prevent everything before '''NEWS:''' from being changed, but allow anything to be added after it whenever someone uses ChanServ's TOPIC command. We can easily do this by using topic masking.
+
However, we also want to be able to update what follows "NEWS:" without having to retype everything that comes before it every time we change the topic with exciting new information. Topic masking makes this easy! In other words, we want to be able to do something like:
-
 
+
-
To help illustrate what we mean, here's an example:
+
<pre><NiTeMaRe> .topic Happy Holidays!
<pre><NiTeMaRe> .topic Happy Holidays!
-
* ChanServ changes topic to Welcome to the DareNET IRC Network's Main Channel. NEWS: Happy Holidays!</pre>
+
* C changes topic to Welcome to the DareNET lobby! NEWS: Happy Holidays!</pre>
-
Notice that our topic remained the same, except for the part after '''NEWS:''', which was replaced with what NiTeMaRe typed. This method of topic alteration is what we refer to as topic masking. Cool, right? So how did we achieve this? Well, we took advantage of the wildcard '''*''' to set our topic mask in the way that would satisfy our needs.
+
You'll notice only the part after "NEWS:" changed from our original topic, which was replaced with what NiTeMaRe typed. This method of topic alteration is what we call topic masking. Cool, right? So how did we achieve this? By taking advantage of wildcards -- the asterisk ('''*''') wildcard to be exact.
-
Using ChanServ's SET TOPICMASK command, we set the following topic mask:
+
Using C's SET TOPICMASK command, we set the following topic mask:
-
<code>/msg ChanServ SET #darenet TOPICMASK Welcome to the DareNET IRC Network's Main Channel. NEWS: *</code>
+
'''<code>/msg C SET #darenet TOPICMASK <font color="navy">Welcome to the DareNET lobby! NEWS: *</font></code>'''
-
Notice that we used the multi-character wildcard '''*''' after ''NEWS:'', which lets ChanServ know to allow anything here.
+
Notice that we used the asterisk ('''*''') wildcard after "NEWS:". This tells C to allow anything here, substituting it with whatever we supply with the TOPIC command.
-
==Locking Your Topic==
+
===Topic snarfing===
-
As the channel owner, you may have noticed that users on the channel's userlist with an access level of at least 200 can change the channel's topic. You can change the minimum access level needed to change a channel's topic by using ChanServ's SET ENFTOPIC command.
+
There is one small "gotcha" to be aware of. By default, C will ignore the topic mask when channel owner's change the topic, replacing the entire topic. You can prevent this by telling C you do not want to override the topic mask by changing the channel's TOPICSNARF level to one higher than your own, such as 501.
-
Let's say we wanted to restrict topic changes to those with an access level of 300 or above on #darenet, we would use the following command:
+
To do this, use C's SET TOPICSNARF command. For example:
-
 
+
-
<code>/msg ChanServ SET #darenet ENFTOPIC 300</code>
+
-
 
+
-
Now ChanServ will only allow those with an access level of at least 300 on #darenet to change the topic. Whenever one of them uses ChanServ's TOPIC command, ChanServ will substitute the given string (text) in the topic where our wildcard was placed, as shown in our earlier example.
+
-
 
+
-
You can view the current topic mask and enforce topic level for a channel by using ChanServ's SET command.
+
-
 
+
-
===Topic snarfing===
+
-
As the channel owner, you may have noticed that even though you set a topic mask for your channel, changing your topic still replaces the entire message. This is because ChanServ grants you override for changing the topic, allowing you to change it in its entirety. To prevent this, you must tell ChanServ that you do not want to override the topic mask.
+
'''<code>/msg C SET #darenet TOPICSNARF 501</code>
-
To achieve this, you must set the TOPICSNARF level for the channel to one higher than your own, such as 501. You can do this by using: <code>.SET TOPICSNARF 501</code>
+
Now C will honor the topic mask whenever you change the channel topic.
==Confused?==
==Confused?==
-
If you still aren't too sure on how topic masking works after reading this guide, that's okay! Our support staff in [http://webchat.darenet.org?channels=support #support] will be more than happy to answer any questions you may have.
+
If you still aren't quite sure how topic masking works after reading this guide, that's okay. Stop by [http://webchat.darenet.org?channels=help #help] where we'll be more than happy to answer any questions you may have.
[[Category:All]] [[Category:Documentation]]
[[Category:All]] [[Category:Documentation]]

Current revision as of 17:16, 11 October 2012

Topic masks allow you to force topics to follow a set pattern. To effectively use C's topic masking feature, you'll need a firm understanding of "wildcards", which we'll discuss in the next section of this guide.

In This Guide:

Wildcards

The great Wikipedia defines a wildcard as a character that may be substituted for any of a defined subset of all possible characters. In other words, the wildcard acts as a place holder. It'll be substituted for any other character or several characters. C supports two wildcards:

  • * - (asterisk) - substitutes for zero or more characters
  • ? - (question mark) - substitutes for one character

These two wildcards operate in the same fashion as they did in DOS or UNIX, if you have used them in either of these environments. Likewise, if you have ever used wildcards in channel bans or exemptions, same concept.

To keep things simple, we will only use the asterisk "*" wildcard in this guide.

Example

In Linux, to delete a file, you might execute the following command:

rm notes.*

The above command would delete all files called "notes", regardless of extension. Thus, notes.png, notes.txt, notes.pdf, notes.doc, etc. would all be deleted; therefore, the asterisk (*) wildcard essentially means anything, notes.anything.

Setting your channel topic

Now that we understand wildcards, let's apply them to topic masking. We'll start with an example.

We want to set the following topic in the channel #darenet:

Welcome to the DareNET lobby! NEWS: Like us on Facebook, http://www.facebook.com/darenet

However, we also want to be able to update what follows "NEWS:" without having to retype everything that comes before it every time we change the topic with exciting new information. Topic masking makes this easy! In other words, we want to be able to do something like:

<NiTeMaRe> .topic Happy Holidays!
* C changes topic to Welcome to the DareNET lobby! NEWS: Happy Holidays!

You'll notice only the part after "NEWS:" changed from our original topic, which was replaced with what NiTeMaRe typed. This method of topic alteration is what we call topic masking. Cool, right? So how did we achieve this? By taking advantage of wildcards -- the asterisk (*) wildcard to be exact.

Using C's SET TOPICMASK command, we set the following topic mask:

/msg C SET #darenet TOPICMASK Welcome to the DareNET lobby! NEWS: *

Notice that we used the asterisk (*) wildcard after "NEWS:". This tells C to allow anything here, substituting it with whatever we supply with the TOPIC command.

Topic snarfing

There is one small "gotcha" to be aware of. By default, C will ignore the topic mask when channel owner's change the topic, replacing the entire topic. You can prevent this by telling C you do not want to override the topic mask by changing the channel's TOPICSNARF level to one higher than your own, such as 501.

To do this, use C's SET TOPICSNARF command. For example:

/msg C SET #darenet TOPICSNARF 501

Now C will honor the topic mask whenever you change the channel topic.

Confused?

If you still aren't quite sure how topic masking works after reading this guide, that's okay. Stop by #help where we'll be more than happy to answer any questions you may have.