mikaela.github.io/pages/bot.markdown

191 lines
7.4 KiB
Markdown
Raw Normal View History

---
layout: page
permalink: /bot.html
sitemap: false
excerpt: "A little about my IRC bot. Useful links, why it doesn't reply to me, how to make it recognize me, what does it actually do?"
---
2015-04-14 20:39:31 +02:00
*Please read also [rules of my channels.](https://mikaela.info/channel.html)*
* [Web interface](https://bot.mikaela.info)
* [Plugin documentation](https://bot.mikaela.info/plugindoc/)
2015-06-19 09:45:23 +02:00
## Limnoria
2015-04-14 20:39:31 +02:00
2015-06-19 09:45:23 +02:00
My bot is [Limnoria] which is currently the most popular [Supybot] fork
that is still under active development and it has merged in features of
another popular fork, [Gribble].
My role with [Limnoria] was Finnish translator and IRC support and I also
made minor changes to make some default configuration variables more sane.
2015-06-19 09:48:54 +02:00
Most of [documentation] since [Supybot] and before my leaving is also
2015-06-19 09:45:23 +02:00
written by me.
* [Blog: Leaving Limnoria]({% post_url 2015-03-25-leaving-bots-life %})
* [Blog: My background on Limnoria]({% post_url 2015-05-18-life-bot-background %})
[Supybot]:https://github.com/Supybot/Supybot
[Limnoria]:https://github.com/ProgVal/Limnoria
[Gribble]:https://github.com/nanotube/supybot_fixes
2015-06-19 09:48:54 +02:00
[documentation]:https://limnoria-doc.readthedocs.org/en/latest/
2015-06-19 09:45:23 +02:00
## Usage
2015-08-22 15:42:47 +02:00
### Addressing the bot
The following table opens where the bot will reply to in channel. In PM
the bot replies to everything *(without prefix)*.
<table border="1">
<tr>
<th>Replies to</th>
<th>Examples</th>
<th>Changeable per-channel</th>
</tr>
<tr>
<td>prefix characters: <code>%</code> <code>+</code>
<code>!</code></td>
<td>+ping</code> <code>%ping</code> <code>+ping</code></td>
<td>yes</td>
</tr>
<tr>
<td>nick in the beginning and end</td>
<td><code>bot: ping</code> <code>ping, bot</code></td>
<td>Yes (not nick), but why?</td>
</tr>
<tr>
<td> prefix strings: <code>msb1</code> & <code>msb2</code>
(for legacy reasons) and <code>__</code></td>
<td><code>msb1ping<code> <code>msb2ping</code>
<code>__ping</code></td>
<td>yes</td>
</tr>
<tr>
<td>MessageParser (in the middle of line): <code>__</code> &
<code>__()</code></td>
<td><code>Does the bot work? __ping</code> for single-worded
commands and <code>what is Linux? __(wiki Linux)</code> for
commands with multiple words.</td>
2015-08-22 16:21:34 +02:00
<td><strong><em>no</em></strong> (too difficult, but
possible)</td>
</tr>
</table>
For checking the channel specific prefixes, refer to the following
commands. They can be used in channel (if you know the prefix) or PM.
<table border="1">
<tr>
<th>Prefix</th>
<th>Command</th>
</tr>
<tr>
<td>Prefix characters</td>
2015-08-22 16:21:34 +02:00
<td><code>channel reply.whenAddressedBy.chars</code></td>
</tr>
<tr>
<td>Nick (beginning & end)</td>
2015-08-22 16:21:34 +02:00
<td><code>channel reply.whenAddressedBy.nick</code> &
<code>channel reply.whenAddressedBy.nick.atEnd</code>
</tr>
<td>prefix strings</td>
2015-08-22 16:21:34 +02:00
<td><code>channel reply.whenAddressedBy.strings</code>
</tr>
</table>
2015-08-22 15:42:47 +02:00
2015-06-19 09:45:23 +02:00
### Quick start
Use `list` command to get list of plugins, `list <plugin>` to get list of
commands in plugin, `help <plugin> <command>` to get usage instructions
2015-06-19 09:48:54 +02:00
for \<command\> in \<plugin\>.
2015-06-19 09:45:23 +02:00
If the bot tells you `(X more messages)`, use the `more` command to see
more output.
There are also default plugins which means that when you use only
`<command>` the command is automatically understood as `<plugin> <command>`
for example `tell` is configured to be `later tell` which tells text
to nick next time it's seen. If `command` exists only in one plugin,
it's gets turned to `<plugin> <command>` automatically.
In case command exists in multiple plugins, the bot will tell you that
the command exists in multiple plugins and asks you to specify the plugin
before it.
## Users
The bot doesn't allow anyone to register and I will register channel ops
manually on the channels the bot is on. Users are primarily identified by
NickServ account, but on networks where there are no services it's required
to use hostmasks.
Requirements for getting account:
* being op on channel where the bot is on or similar good reason
* having NickServ account
* or on networks where there are no services hostmask that you can be
identified with
* static host
* identd
2015-06-19 09:48:54 +02:00
### Identifying
2015-06-19 09:45:23 +02:00
The bot requires users to have password, but I always set the password
as something from pwgen as I primarily identify users based on NickServ
account or hostmask.
* If you have a password, `/msg <bot> user identify username password`
* Passwords can be asked for me if needed, after getting one, change
it immediately with `/msg <bot> user set password OLDPASSWORD NEWPASSWORD`
* If you use NickServ account:
* Use the `auth` command.
* `/cycle` so extended-join sends your account name to the bot.
* `/kick <bot>` so the bot will automatically rejoin and send whox
requests to the channel receiving your NickServ account.
* [Other methods / Official documentation](https://limnoria-doc.readthedocs.org/en/latest/use/getting_started.html#making-supybot-recognize-you)
## Channels
2015-04-14 20:39:31 +02:00
List of the channels where the bot is on can be seen with /whois. However
this list doesn't include secret/private channels (mode +sp).
The bot can also be requested to join other channels, but I reserve the
right to not join it anywhere or to not register specific channel ops
2015-06-19 09:45:23 +02:00
to the bot.
2015-04-14 20:39:31 +02:00
## What does the bot do?
2015-06-19 09:45:23 +02:00
Currently the bot is primarily spamming my channels with new items in some
2015-04-14 20:39:31 +02:00
RSS feeds. You can find list of the feeds added to the bot at
[the web documentation for RSS plugin](https://bot.mikaela.info/plugindoc/RSS/),
but listing the feeds automatically announced on the channel isn't
possible [yet](https://github.com/ProgVal/Limnoria/issues/1085).
It's also protecting channels from spam using the [AttackProtector plugin.](https://github.com/ProgVal/Supybot-plugins/tree/master/AttackProtector)
2015-05-07 11:38:46 +02:00
The bot also has `ops` command for getting op attention, but it requires
2015-08-22 16:21:34 +02:00
correct prefix to be used.
2015-06-20 15:24:55 +02:00
## Issues you may encounter
*For all known issues [see issue tracker of ProgVal/Limnoria](https://github.com/ProgVal/Limnoria/issues)
this section only lists those that you are likely to see or that others
have asked about from me.*
* [Title is only told for the first link in a message](https://github.com/ProgVal/Limnoria/issues/152)
* [Some commands using hostmasks behave weirdly](https://github.com/ProgVal/Limnoria/issues/281)
* [Users cannot log out](https://github.com/ProgVal/Limnoria/issues/461)
* no idea why they would want to do that though.
* [There is no way to add capabilities to group of users](https://github.com/ProgVal/Limnoria/issues/471)
* [Users cannot change their usernames](https://github.com/ProgVal/Limnoria/issues/616)
* so ping me instead if you need it changed
* [Meta descriptions for links aren't told](https://github.com/ProgVal/Limnoria/issues/650)
* these could be useful with news sites.
* [DNS command doesn't mention CNAMEs/ALIASes](https://github.com/ProgVal/Limnoria/issues/864)
* Internet whois is quite broken [1](https://github.com/ProgVal/Limnoria/issues/993) [2](https://github.com/ProgVal/Limnoria/issues/994)
* [html/javascript redirects aren't followed](https://github.com/ProgVal/Limnoria/issues/1120)
* you will especially see this if you encounter links to my
"URL shortener"
* [RSS: no announced feeds in web interface](https://github.com/ProgVal/Limnoria/issues/1085)