35 Commits

Author SHA1 Message Date
Vgr E. Barry
e161325d01 Remove 'channels' from the user interface
We don't use it, as the only places where we'd need to, it's only one channel, and the surrounding code needs to add the user to the channel and vice-versa, so that's pretty pointless.
2016-11-10 10:44:38 -05:00
Vgr E. Barry
52b28b4317 Fix case-sensitiveness on weird IRCds 2016-11-08 17:04:32 -05:00
Vgr E. Barry
d090e573b7 Greatly improve channel handling
This also does some more bits of rudimentary user handling, but most of it still remains to be done.

Note: This adds DEV_PREFIX to botconfig and LOG_PREFIX to settings (var), make sure to properly update your bot!
2016-11-02 22:31:54 -04:00
Vgr E. Barry
5c9b13ce87 Improve NOTICE handling
The `notice` parameter is now keyword-only, and the handler now uses `functools.partial` instead of a lambda function.
2016-10-31 20:59:52 -04:00
jacob1
ead74e0fe5 log !fwarn add/set/del to LOG_CHANNEL, if set 2016-08-17 23:55:22 -04:00
Vgr E. Barry
6460eb6804 Define methods in IRCClient instead of using a decorator
Mypy doesn't like it.
2016-08-13 12:33:20 -04:00
skizzerz
1b7b2f6799 Make discrimination based on case ilegel
All hostmask and account comparisons are now case-insensitive (nicks
still aren't, related to #217 -- changing nick sensitivity would break
everything in numerous places).

Also, refactor some things into other files where it makes sense to do
so, because putting unrelated things into the same commit is fun.
2016-07-27 17:03:34 -05:00
nyuszika7h
9ea9a1a317 Fix modelines in other files 2016-05-11 16:09:19 +02:00
Ryan Schmidt
fe451962cd Fix spurious error when ending night as shaman and dying.
An artifact of how we run commands means that we try to run the rest of
the "give" command handlers even after the first (shaman) one ended night.
As such, check the phase and if it's different, stop trying to execute
command handlers.

This has a small race condition where the error this fixes can happen
anyway, but since it's purely a visual error I think that's fine. Better
than happening all of the time, at least.
2016-05-10 15:37:57 -07:00
nyuszika7h
c6a5cea715 Log connection, end of MOTD and joining channels in normal mode 2015-11-27 17:37:04 +01:00
Vgr E. Barry
b28d4bf6e3 Properly fix the error handler 2015-11-04 12:41:47 -05:00
jacob1
e77ad447ef fixes to nightmares 2015-10-30 18:03:43 -04:00
jacob1
0ac28c290b fix bot not being able to connect to some strange networks 2015-10-04 00:14:30 -04:00
nyuszika7h
aaddfb5a93 Fix never reached condition 2015-09-09 18:07:34 +02:00
nyuszika7h
8a90145474 Case-insensitively compare the bot's nick when checking for PMs
Closes #161.
2015-09-06 11:46:49 +02:00
Emanuel Barry
f55492e6c8 Unconditionally print traceback
In debug mode traceback could go unprinted.
2015-08-27 18:17:45 -04:00
Emanuel Barry
b3f30bbd91 Improve error handler
Now it will only pastebin the error when it has finished gathering it
all.
2015-08-27 10:02:56 -04:00
Vgr E.Barry
38b7ef81e2 Add proper error handling. Closes #151
All exceptions, if not caught, are unconditionally sent to `sys.stderr`.
We only need to use our own custom class with some modifications and we
can intercept all errors, even those in threads (which #151 was about).
The only real downside from this practice is that `cli` is not
accessible to us when the errors happen, so I used a hack to set it on
an instance variable. If anyone can find a better solution, please step
forward. For the time being, this will have to do.

If for some obscure reason this class breaks, `sys.__stderr__` holds the
original `sys.stderr`
2015-08-06 12:29:47 -04:00
Vgr E.Barry
7c9b5ce51b Fix decorators 2015-07-31 13:29:26 -04:00
skizzerz
e27fd8c1fa Fix connect hooks
Apparently having multiple hooks on the same thing is just horribly
broken, even though we do it in other places. This only fixes the issue
on connecting as that one is the most severe, but the other cases will
need to be fixed as well (or the underlying issue preventing it from
working needs to be fixed).
2015-07-29 03:14:10 -05:00
skizzerz
dbb80a940e Fix issues related to undernet (and in general)
- Now possible to use the bot without it having a registered account by
  blanking NICKSERV_IDENTIFY_COMMAND
- Now possible to configure who ChanServ is as well as the command it
  uses to op up in channel (blank to prevent it from auto-opping).
  Example configuration provided for undernet
- Properly autojoin channels even if there isn't an MOTD
2015-07-28 22:35:47 -05:00
nyuszika7h
32ab792e2f Use the specified username for NickServ identify 2015-07-27 14:19:46 +02:00
nyuszika7h
21060b2bfb Add an option to change NickServ's name and the identify command 2015-07-27 13:08:52 +02:00
nyuszika7h
f849eb35c2 Remove debug print 2015-06-21 00:19:56 +02:00
nyuszika7h
7887b6b2d8 Looks like that op request wasn't so redundant.
I misread the code.
2015-06-15 20:36:43 +02:00
nyuszika7h
6f62831b8a Join all channels at once and remove redundant op request 2015-06-15 20:21:55 +02:00
nyuszika7h
452c1b1ede Fix capability negotiation to be more sane (and IRCv3.2-compliant) 2015-06-15 20:20:28 +02:00
nyuszika7h
dd2d82392d Reorganize imports 2015-06-15 15:20:27 +02:00
Vgr E.Barry
5383ea75f8 Fix error if bot uses temporary nickname 2015-06-08 19:04:22 -04:00
Vgr E.Barry
4382d91008 Modify hook handling 2015-06-04 10:55:53 -04:00
Vgr E.Barry
f1285d2237 Tweak the decorators to no longer have mangled __call__ 2015-06-03 11:09:26 -04:00
Vgr E.Barry
ca2e901d58 Mass overhaul to the decorators 2015-06-01 16:37:22 -04:00
nyuszika7h
4b01eb2990 notify_error: Don't send a duplicate message if DEV_CHANNEL is the current channel 2015-04-16 18:52:57 +02:00
nyuszika7h
599ad45544 Reorganize imports 2015-04-07 12:01:59 +02:00
Vgr E.Barry
378334478c Move files around and update references 2015-04-04 07:39:54 -04:00