3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-12-27 13:12:45 +01:00
Commit Graph

181 Commits

Author SHA1 Message Date
James Lu
4b27ebbee4 Irc: make sorting in joinModes() an option, and explicitly enable it in WHOIS output
This prevents mode lists from being sorted when they really shouldn't be, such as when relaying mode changes ("+qo nick nick" became +oq nick nick").
2016-07-31 21:45:38 -07:00
James Lu
d911045dca Merge branch 'devel' of github.com:GLolol/PyLink into devel 2016-07-31 20:11:06 -07:00
James Lu
168f9f972d classes: more tweaks to updateTS()
Really fixes #295. Closes #298.
2016-07-30 21:25:28 -07:00
James Lu
1ef89560e2 core: rename IrcUser.identified attribute to IrcUser.account 2016-07-29 20:16:05 -07:00
James Lu
891039dba2 Merge branch 'master' into devel 2016-07-29 14:44:54 -07:00
James Lu
2326f8b818 Irc: fix TS handling comparing against the wrong TS on outgoing sjoin()
Closes #295.
2016-07-29 14:44:25 -07:00
James Lu
13c0e50358 Irc: make certfile/keyfile optional
This was never required for S2S links to work... Why did I think that?
2016-07-28 22:49:05 -07:00
James Lu
f4922743fc core: SID and hostname options are now optional (#282)
Hostname defaults to a fallback hardcoded in world.fallback_hostname, while SID defaults to None (protocol modules have to deal with this themselves)
2016-07-28 22:23:59 -07:00
James Lu
f45cb3a583 classes: Drop FakeIRC, FakeProto 2016-07-28 22:03:44 -07:00
James Lu
852bd74c3b core: enumerate our server after calling proto.connect()
This gives protocol modules a chance to manipulate their SID before it's added to the internal server list, replacing hacks previously used by the Nefarious and Clientbot modules.

This is the first step to sid-less servers :)
2016-07-28 21:50:51 -07:00
James Lu
c410de2fad Make server config validation protocol specific
Closes #282.
2016-07-28 21:34:00 -07:00
James Lu
4e3d209831 Irc: rework TS handling again
(cherry picked from commit 0e535a916c)
2016-07-28 20:20:35 -07:00
James Lu
0e535a916c Irc: rework TS handling again 2016-07-26 23:30:55 -07:00
James Lu
795c163a69 Irc: use int values for ircmatch casemapping
The ircmatch version with casemapping variables hasn't been released on pip yet.

(cherry picked from commit 39675e15e8)
2016-07-23 21:52:23 -07:00
James Lu
39675e15e8 Irc: use int values for ircmatch casemapping
The ircmatch version with casemapping variables hasn't been released on pip yet.
2016-07-23 21:51:26 -07:00
James Lu
c6fcdd854c parseModes: give prefix modes precedence over mode types 2016-07-21 19:11:19 -07:00
James Lu
eef54cd77d classes: Move ISUPPORT-style PREFIX and capabilities handling to Protocol 2016-07-20 23:59:22 -07:00
James Lu
de618393c0 Fix SQUIT handling from 2f1a338 2016-07-20 23:55:34 -07:00
James Lu
154421ffde Move SQUIT abstraction into core 2016-07-20 23:55:34 -07:00
James Lu
1770058e1b Move ts6_common.parseTS6Args to ts6_common.parsePrefixedArgs 2016-07-20 23:55:34 -07:00
James Lu
3381dda884 Throw specific errors for missing ircmatch/setuptools libraries 2016-07-19 17:44:22 -07:00
James Lu
51457f3550 Irc: treat unicode case sensitively in toLower() 2016-07-13 13:38:56 -07:00
James Lu
35a9d7ccba Irc: move self.aborted.clear() to connect() 2016-07-13 00:38:19 -07:00
James Lu
58d71b0907 classes.Protocol: use a lock with updateTS to ensure thread-safety
Closes #274.
2016-07-12 22:08:01 -07:00
James Lu
2a08ae98b0 Irc: consistently sort getPrefixModes output 2016-07-11 15:21:17 -07:00
James Lu
c1cd6f42a0 updateTS: Fix mode tracking again
It looks like we actually do need to track whether we're sending or receiving modes. This time, do so /properly/.
2016-07-10 21:36:18 -07:00
James Lu
50d30d4e20 Irc: implement exttarget inversion (#170) 2016-07-07 11:18:06 -07:00
James Lu
183a4cbd75 core: add extban support in matchHost, and $account matching (#170)
The following forms are supported in $account, with groups separated by a
literal colon. All account and network name matching is currently case sensitive:

$account -> Returns True (a match) if the target is registered.
$account:accountname -> Returns True if the target's account name matches the one given, and the target is connected to the local network..
$account:accountname:netname -> Returns True if both the target's account name and origin network name match the ones given.
$account:*:netname -> Matches all logged in users on the given network.
2016-07-07 00:26:52 -07:00
James Lu
d3877b0194 Irc: introduce matchHost() wrapper around ircmatch
This makes the latter a core dependency. Refactor changehost and opercmds plugins to take advantage of this new core function.
2016-07-06 23:11:36 -07:00
James Lu
e0f050c195 Irc: add getFriendlyName() abstraction
Closes #260.
2016-07-06 22:30:21 -07:00
James Lu
f8ca65cabc Irc: warn when applyModes target doesn't exist
This can happen when a network disconnects while spawnClient is setting modes on a newly spawned client, for example...
2016-07-05 00:42:00 -07:00
James Lu
72c48502c6 Generate __init__.py with package version on runtime
Closes #259. This removes world.version and replaces it with pylinkirc.__version__ where the former was used.
2016-07-03 00:26:03 -07:00
James Lu
e63a1bc739 Irc: remove leading 'pylinkirc.protocols.' from protoname values 2016-07-03 00:12:23 -07:00
James Lu
cc40cacb7a Irc.joinModes(): sort mode list before formatting 2016-06-30 19:52:06 -07:00
James Lu
1ac1e3eca6 Irc: fix wrong target for reply() 2016-06-30 18:36:40 -07:00
James Lu
02405c36b5 core, fantasy: redo handling of noticed and/or private replies
New behaviour for command responses in general: FANTASY commands reply in channel as PRIVMSG, while all commands sent in PM reply as private notices.

- The old irc.called_by is now irc.called_in (PLACE last command was called)
- irc.called_by is now used to store the CALLER of the last command
- notice=True/False toggle is dropped from ServiceBot.call_cmd()
- New private=True/False option added to ServiceBot.reply() and irc.reply(), which controls whether replies should be sent privately or not.
2016-06-30 18:22:45 -07:00
James Lu
e4b400042e core: make maxnicklen optional, defaulting it to 30 2016-06-27 22:39:18 -07:00
James Lu
9374bccb6f Merge remote-tracking branch 'origin/master' into devel 2016-06-27 21:47:55 -07:00
James Lu
0fbf9e165c Irc: forcibly disable SSLv2 and SSLv3 2016-06-26 10:02:27 -07:00
James Lu
9d7fb4ed70 updateTS: fix typo in error message 2016-06-25 14:00:26 -07:00
James Lu
fbeb3a3747 protocols: fix ts actually defaulting to None in sjoin() 2016-06-25 13:56:24 -07:00
James Lu
9ea6769c54 parseModes: allow type str as modestring 2016-06-25 13:08:49 -07:00
James Lu
5e16eeea41 updateTS: skip applying modes if there aren't any 2016-06-25 12:54:56 -07:00
James Lu
f009a739bc Merge remote-tracking branch 'origin/master' into devel 2016-06-25 11:36:55 -07:00
James Lu
51f1506f90 updateTS: remove mentions of 'outbound' variable from logging 2016-06-25 11:34:14 -07:00
James Lu
4c00479d78 Irc: lower ping frequency & timeout to 90/180
180*3 seconds is equivalent to 9 minutes. That's a long time for a dead network to stay connected.
2016-06-24 18:14:03 -07:00
James Lu
167963ddc4 updateTS: fix handling for outbound modes
Outgoing and incoming modes should be handled the same way - we're only dealing with a "received TS" which could originate from PyLink (sjoin() in protocols) OR the uplink.
2016-06-24 13:24:44 -07:00
James Lu
7f829ba0ec updateTS: apply TS on channel regardless of whether mode changes pass 2016-06-24 13:15:26 -07:00
James Lu
f2b139c828 core: make inbound SJOINs also respect the updateTS() rules 2016-06-22 22:28:15 -07:00
James Lu
6b8e80cd5b core/protocols: add modes option in sjoin(), TS6 BMASK, and mode TS rules in updateTS()
Closes #249.
Closes #250.
2016-06-22 21:34:16 -07:00