James Lu
ffec80ee45
tests/: update for new multi-net config format
2015-07-09 18:42:38 -07:00
James Lu
8576778ddc
Make the 'bot' conf block available in Irc() as irc.botdata
...
Protocol modules shouldn't read conf directly, so that we can override the config in testing.
2015-07-08 13:56:17 -07:00
James Lu
8f75c5363c
Move all the FakeIRC stuff to classes.py, update FakeIRC with the ability to get hook data
2015-07-07 18:07:20 -07:00
James Lu
33d23893f8
pr/inspircd: update channel TS when receiving remote FJOIN with lower TS
2015-07-06 19:00:20 -07:00
James Lu
8bed47e7bb
pr/inspircd: handlers for FTOPIC and TOPIC (ref #31 ); make handle_nick return 'newnick' instead of 'target' as arg
2015-07-06 15:33:23 -07:00
James Lu
b22f674785
Support prefix modes (+qaohv); refactor applyModes to apply in place; add removeuser() to IrcChannel
...
Closes #16 .
2015-07-05 12:48:39 -07:00
James Lu
dafeff6324
Add channel mode handling (more testing needed)
...
Closes #28 .
2015-07-05 00:20:45 -07:00
James Lu
0c8a30323a
proto/inspircd: raise ProtocolError instead of calling sys.exit on errors
2015-07-03 18:07:01 -07:00
James Lu
c686523a6e
Add pseudoserver spawning, adapting _sendFromServer and spawnClient accordingly.
...
Now you can spawn multiple servers for a multi-server botnet!
Also, create proto.isInternalServer() / utils.isServerName() checkers.
Closes #22 .
2015-06-21 15:03:58 -07:00
James Lu
aeb53a14e3
Make IrcUser.modes a set
2015-06-20 20:58:25 -07:00
James Lu
379f442a14
Add basic user mode tracking ( Closes #10 )
2015-06-20 20:36:35 -07:00
James Lu
70480b8830
Make IrcChannel.users a set and add part handling
...
This should be everything needed for basic channel enumeration: closes #13 .
2015-06-07 09:43:13 -07:00
James Lu
4b9e7b1937
Fix #17 (netsplit quits)
...
copy() all the things! Also purge empty channels on quit.
2015-06-07 09:33:35 -07:00
James Lu
6680942424
More code and broken shenanigans
...
- plugins/commands.py: add admin-only eval command
- add IrcChannel class and basic channel (FJOIN/QUIT) handling
- Move SQUIT/QUIT handling code to a shared removeClient function
- Unfortunately, this causes a regression where the users and channels indexes aren't purged on a netsplit :(
2015-06-06 23:06:33 -07:00
James Lu
c33d5922c6
Turn spawn pseudoclient and JOIN into its own functions, and move IrcUser/IrcServer to its own module
...
These classes are protocol independent, so we may as well split them for future protocol modules.
2015-06-06 22:17:45 -07:00