James Lu
7d321e2e6c
inspircd: only send services_login hooks if the user exists
...
With SASL, services_login can be called before the user is registered. We should ignore that because the actual accountname is still bursted later.
2016-07-08 12:08:13 -07:00
James Lu
de7533a46e
automode: more explicit check for the modebot UID being available
2016-07-07 22:57:31 -07:00
James Lu
ba53d63d37
ServiceBot: make sure all the defaultdict(set) instances are SEPARATE
...
Bit of a Python oddity here - If you initialize a class like defaultdict in a class constructor, the same instance is used for all instances of the class?
This fixes all service bots joining the same channel, when they really shouldn't be.
2016-07-07 22:56:05 -07:00
James Lu
7a7b590295
corecommands: quick fix for 'reload' not updating things
...
The real issue is the 'unload' doesn't seem to cleanly unload things anymore. (Even though that was a pretty bad hack in the first place)
That needs to be cleaned up in the next release.
2016-07-07 22:48:38 -07:00
James Lu
f97f2d2fda
automode: call unregisterService() on unload
2016-07-07 22:41:51 -07:00
James Lu
4f26a29196
utils: unregisterService should be case insensitive
2016-07-07 22:41:39 -07:00
James Lu
df41dabb71
relay: drop prefix modes if the target doesn't have a relay clone yet
...
This fixes modes like ('+v', None) from being accidentally sent by Relay, when Automode happens to set modes before all relay clients are spawned.
2016-07-07 22:16:34 -07:00
James Lu
00766041f3
plugins: make DB save delay configurable
2016-07-07 22:16:21 -07:00
James Lu
db3517b43a
automode: only those with admin login can change access entries
2016-07-07 21:57:36 -07:00
James Lu
4999ecd11f
Integrate services_support and automode
...
New hook: PYLINK_SERVICE_JOIN
2016-07-07 21:54:59 -07:00
James Lu
b3310eaf78
relay: also send internal hook for services login, for integration with automode
2016-07-07 21:43:25 -07:00
James Lu
0d502095c5
relay: integrate with automode by sending relay JOINs as a hook
2016-07-07 21:38:12 -07:00
James Lu
2be4811673
automode: separate matching into a separate function & listen for services login changes
2016-07-07 21:31:36 -07:00
James Lu
552070132d
automode: implement JOIN handler for a new working ACL system!
...
Closes #170 .
2016-07-07 21:23:06 -07:00
James Lu
d365f04199
Automode plugin stub ( #204 )
...
This supports adding/removing/listing entries and saving them to a DB, but no modes are set yet.
2016-07-07 21:06:28 -07:00
James Lu
14b30b26c0
exttargets: $pylinkacc matcher
...
Closes #170 .
2016-07-07 12:10:09 -07:00
James Lu
1cec67725a
exttargets: add $channel matcher ( #170 )
2016-07-07 12:00:23 -07:00
James Lu
1a8976afb6
exttargets: add $server matcher ( #170 )
2016-07-07 11:26:11 -07:00
James Lu
50d30d4e20
Irc: implement exttarget inversion ( #170 )
2016-07-07 11:18:06 -07:00
James Lu
ae2eefc73e
opercmds: actually make 'checkban' oper-only
2016-07-07 11:18:06 -07:00
James Lu
7dda8ebe58
exttargets: add $ircop matcher ( #170 )
2016-07-07 11:18:06 -07:00
James Lu
724ab0a45e
exttargets: match account names case insensitively
2016-07-07 11:18:06 -07:00
James Lu
3e28856944
exttargets: fix typo in comment
2016-07-07 00:41:31 -07:00
James Lu
c034877d04
exttargets: $account scenario 3 matching should require logged in status
2016-07-07 00:29:52 -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
2b88c8d630
opercmds/changehost: actually commit changes mentioned in last commit
2016-07-06 23:47:31 -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
37e1c7d538
opercmds: fix typo in help.
2016-07-06 22:36:29 -07:00
James Lu
ec0f2714e2
opercmds: format KILL reasons properly in kill()
2016-07-06 22:36:06 -07:00
James Lu
e0f050c195
Irc: add getFriendlyName() abstraction
...
Closes #260 .
2016-07-06 22:30:21 -07:00
James Lu
3f1ad01ac6
Add update.sh: Updates a locally installed copy of PyLink and runs it.
2016-07-05 13:29:01 -07:00
James Lu
9f0121e102
.gitignore: add __init__.py
2016-07-05 13:28:45 -07:00
James Lu
3b80802d1a
protocols: rewrite encapsulated commands implicitly
...
Closes #182 .
2016-07-05 13:27:31 -07:00
James Lu
ed6293e54a
nefarious: define access_sort() as a static method
2016-07-05 00:42:17 -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
5ef135d888
nefarious: use handle_kill (with kill path support) from ircs2s_common
...
Ref #239 .
2016-07-05 00:31:24 -07:00
James Lu
bfa69815b4
protocols: split things common between nefarious and ts6_common into a new ircs2s_common module
2016-07-05 00:24:23 -07:00
James Lu
26f4a9c276
nefarious: fix 'changedmodes' type inconsistency causing crashes
2016-07-05 00:13:33 -07:00
James Lu
d549e2ae47
protocols: format kills properly in ts6_common.handle_kill() ( #239 )
...
This separates the kill handling for InspIRCd and other TS6 protocols, as InspIRCd pre-formats kills when they are sent.
2016-07-05 00:08:02 -07:00
James Lu
3457da16bd
protocols: Move kill() into ts6_common, and make unreal.py use it
...
Ref #239 . protocols/unreal was hardcoding a killpath, lazy me...
2016-07-04 23:43:11 -07:00
James Lu
d0b7d44f1a
ts6: implement kill paths in outgoing KILL ( #239 )
2016-07-04 23:43:11 -07:00
James Lu
81fca49738
relay: hide disconnected networks from LINKED output
...
Closes #258 .
2016-07-03 12:40:23 -07:00
James Lu
08b2eb7c45
0.9.0-dev1
2016-07-03 12:09:22 -07:00
James Lu
7c5b87f4d2
setup: unconditionally write __init__.py; mark builds with unretrievable version as -dirty
...
Ref #259 .
2016-07-03 00:43:06 -07:00
James Lu
a9a6c22044
setup.py: fix fallback version import path
2016-07-03 00:29:31 -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
bcc84b8618
core: remove references to plugins/protocols_folder ( #259 )
2016-07-02 23:58:21 -07:00
James Lu
c58c4d4a9c
example-conf: capitalize our nick by default
2016-07-02 22:18:10 -07:00
James Lu
8704114fa0
control: copy world.networkobjects to prevent RuntimeError
...
i.e.: RuntimeError: dictionary changed size during iteration
2016-07-01 22:20:24 -07:00