3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-12-30 14:42:50 +01:00
Commit Graph

67 Commits

Author SHA1 Message Date
James Lu
d19cabf16c pr/insp: save irc.max{nick|chan}len correctly as integers 2015-07-12 14:00:52 -07:00
James Lu
c655d975a6 pr/insp: remove isNick check in spawnClient 2015-07-12 14:00:33 -07:00
James Lu
f8a7bc6033 pr/insp: use TS6SIDGenerator in spawnServer if no SID is explicitly given 2015-07-11 20:21:10 -07:00
James Lu
eae0aa5aa8 pr/insp: Add missing killServer/killClient functions 2015-07-09 19:05:37 -07:00
James Lu
08a187aee6 pr/insp: add updateClient() and FIDENT/FHOST/FNAME handlers
updateClient: Changes the <field> field of <target> PyLink PseudoClient <client numeric>.
2015-07-09 17:04:24 -07:00
James Lu
96c3ea2d82 pr/insp: add topic/invite/knockClient commands
Closes #34.
2015-07-09 16:32:29 -07:00
James Lu
c8f12f2ab1 move messaging functions to protocol (#35)
Closes #36.
2015-07-09 16:23:20 -07:00
James Lu
f01269287e pr/insp: remove checks for valid nick/channel; they're done in plugins now 2015-07-08 23:00:50 -07:00
James Lu
20772e5429 inspircd.nickClient: allow nick 0 to equal the target user's UID 2015-07-08 21:17:34 -07:00
James Lu
049b7f5049 pr/insp: add modeServer, modeClient commands
Closes #32.
2015-07-08 18:23:32 -07:00
James Lu
cbfabb2ba1 pr/insp: add OPERTYPE command handler
This is sent by InspIRCd for oper ups; there is no MODE command for it.
2015-07-08 18:03:08 -07:00
James Lu
b92a9ce950 pr/insp: fix handle_mode setting modes on the wrong client 2015-07-08 15:10:09 -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
2d4d8dd247 tests and stuff 2015-07-08 13:35:20 -07:00
James Lu
85e6a1aea2 pr/insp: more tests for hooks, etc 2015-07-07 20:59:35 -07:00
James Lu
a177a58ae7 pr/insp: fix some bugs in spawnClient 2015-07-07 17:46:56 -07:00
James Lu
7fb60c1ffa pr/inspircd: finish off handlers (add KNOCK, INVITE, NOTICE)
Closes #18.
Closes #31.
2015-07-07 15:31:12 -07:00
James Lu
098b29ae2d Correction: it is legal for a server name to end with '.', but it can't start with it 2015-07-07 14:31:47 -07:00
James Lu
cfc840ebb3 Actually implement 'nick', 'ident', and 'loglevel' config options 2015-07-07 12:14:55 -07:00
James Lu
7f6c8b0e52 pr/inspircd: enforce minimum protocol version of 1202
We're using InspIRCd 2.0+ specific features (SAVE, CAPAB CHAN/USERMODES), so this is required.
Source: https://wiki.inspircd.org/List_of_protocol_changes_between_versions#Version_1202
2015-07-07 10:55:14 -07:00
James Lu
4cc7781f0d pr/insp: send oldnick in handle_nick hook
Since hooks are only called after processing is done by the protocol module, plugins would have no way of knowing what the old nick of the user was.
2015-07-06 19:44:55 -07:00
James Lu
d833be5f4b pr/insp: smarter spawnClient() with kwargs; implement conf['bot']['prefix']
Red #26.
2015-07-06 19:42:09 -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
74339d1038 Fix joinModes, and use it in protocol/inspircd's joinClient
In short, PyLink should be sending FJOINs to channels with the modes that it already has (or what we believe it has). This prevents clearing mode lists when PyLink's channel TS is slightly earlier than the IRCd's.
2015-07-06 12:28:10 -07:00
James Lu
f1e26b6c55 Fix tests for FakeIRC and update comment style 2015-07-05 22:59:55 -07:00
James Lu
211decd2aa everything: Improve logging 2015-07-05 13:44:48 -07:00
James Lu
54dff7a15a Convert print() calls to log calls, Round 1 2015-07-05 13:29:18 -07:00
James Lu
f06bcc7928 Merge commit 'bd755e137ffa034007a77d75fbd00d21e759163e' into wip/logger-module
Conflicts:
	proto.py
2015-07-05 13:22:17 -07:00
James Lu
bd755e137f pr/inspircd: fix a typo in removeClient 2015-07-05 13:07:18 -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
d62a413c50 fix last commit 2015-07-05 12:40:34 -07:00
James Lu
2ecaab1586 pr/inspircd: catch KeyError only in the function lookup, not the function call!
This suppressed KeyErrors in execution... BAD
2015-07-05 12:38:55 -07:00
James Lu
dafeff6324 Add channel mode handling (more testing needed)
Closes #28.
2015-07-05 00:20:45 -07:00
James Lu
8b93b78d13 Support modes with arguments in our modestring parsers
Closes #27.
2015-07-04 23:49:28 -07:00
James Lu
3749e642f2 pr/inspircd: fix typo in handle_mode 2015-07-04 23:47:27 -07:00
James Lu
3e86cbdd33 Better protocol capability negotiation
Respect our uplink's supported c/umodes, NICKLEN, and max channel name lengths.
2015-07-04 23:12:00 -07:00
James Lu
35346d7990 pr/inspircd: part messages are optional... 2015-07-04 19:08:58 -07:00
James Lu
d23d34e316 Refactor hooks to send parsed arguments instead of raw args
ref #18.

- Command handlers that support hooks will now return parsed args, which are then sent to the hooks
- Hook commands are now stored in uppercase letters, consistent with the IRC spec
2015-07-04 19:00:29 -07:00
James Lu
b6f489fa9c add tests for KILL, KICK, UID, and SERVER handlers
todo: rewrite the MODE handling so it doesn't suck, and test those too
2015-07-04 12:34:33 -07:00
James Lu
8ea62c31de tests for spawnServer and SQUIT, make server name case-insensitive 2015-07-04 11:57:21 -07:00
James Lu
942f97352d test kick/nickClient; make kickClient update channel userlist... 2015-07-03 23:48:28 -07:00
James Lu
d6341109be inspircd: bug fixes found by testing
- Lowercase all channel names consistently, to prevent duplicates
- Store uidgen as an attribute of Irc, so each Irc instance gets its own set of UID generators
- Raise an error in handle_part of the user doesn't exist in the channel.
2015-07-03 23:31:57 -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
0f4d3df757 inspircd.py: spawnServer tweaks
- Send ENDBURST from the server, not its uplink
- Check to make sure SID is 3 characters long...
2015-07-03 17:10:32 -07:00
James Lu
072cc72602 defaultdict for channels, fix user tracking in {join|part}Client, isInternal* to utils
- collections.defaultdict for simpler channel handling
- proto/inspircd: fix join/partClient not updating the channel's user list
- move isInternal* to utils
2015-06-23 19:29:53 -07:00
James Lu
6370ad492f Add basic command hooks (ref #18) 2015-06-23 19:08:43 -07:00
James Lu
28e7b52ef4 utils.TS6UIDGenerator: initialize SID variable once per instance 2015-06-22 16:51:42 -07:00
James Lu
6a69ed0459 proto/inspircd: handle RSQUIT for removing PyLink leaves 2015-06-21 17:07:31 -07:00
James Lu
ab1a946364 proto/inspircd: fix ping reply syntax
Although InspIRCd doesn't seem to care, the correct PONG syntax is:

-> :<our sid> PONG <our sid> <their sid>,

and not

-> :<our sid> PONG <our sid>,

which was used prior to this commit.
2015-06-21 15:04:19 -07:00