mikaela.github.io/pages/irc/bot.markdown

221 lines
8.5 KiB
Markdown

---
layout: page
title: The IRC bot Euforia
permalink: /irc/bot.html
sitemap: true
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?"
redirect_from: /bot.html
published: false
---
_Please read also [rules of my channels.](https://mikaela.info/channel.html)_
**_This page is more or less outdated._**
- [Web interface](https://bot.mikaela.info)
- [Plugin documentation](https://bot.mikaela.info/plugindoc/)
## Limnoria
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 reasonable. Most
of [documentation] since [Supybot] and before my leaving is also written by me.
[supybot]: https://github.com/Supybot/Supybot
[limnoria]: https://github.com/ProgVal/Limnoria
[gribble]: https://github.com/nanotube/supybot_fixes
[documentation]: https://limnoria-doc.readthedocs.org/en/latest/
## Usage
### 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>
<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><code>+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>
<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>
<tr>
<th>Prefix</th>
<th>Command</th>
</tr>
<tr>
<td>Prefix characters</td>
<td><code>channel reply.whenAddressedBy.chars</code></td>
</tr>
<tr>
<td>Nick (beginning & end)</td>
<td><code>channel reply.whenAddressedBy.nick</code> and
<code>channel reply.whenAddressedBy.nick.atEnd</code></td>
</tr>
<tr>
<td>prefix strings</td>
<td><code>channel reply.whenAddressedBy.strings</code></td>
</tr>
</table>
### 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 for
\<command\> in \<plugin\>.
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, identd and static host.
- identd alone is not enough.
### Identifying
_All users have a password in the bot, but I have made them invalid (by adding
`!` in front of the hash in users.conf). If you have password set separately as
said below, it will work._
- If you have a password, `/msg <bot> user identify username password`
- Passwords can be asked from 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
List of the channels where the bot is on can be seen with /whois. However this
list doesn't include secret/private channels (mode +s/+p).
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 to the bot.
## What does the bot do?
Currently the bot is primarily spamming my channels with new items in some 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)
The bot also has `ops` command for getting op attention, but it requires correct
prefix to be used.
## Issues you may encounter
For all known issues, see the issue tracker link below relevant subtopic as this
section only lists those that you are likely to see or that others have asked
about from me.
I am trying to run
[the latest released version of Limnoria.](https://github.com/ProgVal/Limnoria/tags)
External plugins are updated whenever I see need for it, but at least when I
upgrade Limnoria.
### Limnoria issues
- Issue tracker: https://github.com/ProgVal/Limnoria/issues
_Includes Limnoria core and
[included plugins](https://github.com/ProgVal/Limnoria/tree/master/plugins)._
- [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)
- [RSS: no announced feeds in web interface](https://github.com/ProgVal/Limnoria/issues/1085)
- [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"
- [Google says: Error invalid resultSize](https://github.com/ProgVal/Limnoria/issues/1163)
- [Web title & titlesnarfer are broken](https://github.com/ProgVal/Limnoria/issues/1173)
## ProgVal/Supybot-plugins issues
- Issue tracker: https://github.com/ProgVal/Supybot-plugins/issues
_Includes plugins from @ProgVal's/pinkieval's
[plugin repository.](https://github.com/ProgVal/Supybot-plugins)_
- LinkRelay
- [Doesn't sync topics between relayed channels](https://github.com/ProgVal/Supybot-plugins/issues/31)
- [Status of user in the channel isn't shown](https://github.com/ProgVal/Supybot-plugins/issues/60)
- [What the bot says isn't relayed.](https://github.com/ProgVal/Supybot-plugins/issues/288)
- **This is currently the most visible issue on channels where LinkRelay is
used.**