James Lu
508253af7e
relay: switch to Channel.is_op_plus()
2017-07-11 02:23:13 -07:00
James Lu
f203abdeb0
relay: move iteration over all networks into a wrapper function
...
First part of #471 .
2017-07-10 23:09:00 -07:00
James Lu
a43076e815
relay: rename isRelayClient to is_relay_client
2017-07-10 22:38:25 -07:00
James Lu
2f87aa63e9
relay: remove double iteration when firing the PYLINK_RELAY_JOIN hook
2017-07-10 22:36:43 -07:00
James Lu
bd19468825
automode: rename internal functions to snake case
2017-07-10 22:10:55 -07:00
James Lu
4df101c40c
automode: fix alias definitions
2017-07-10 22:10:47 -07:00
James Lu
79db7b2124
automode: fix $ircop exttarget name in setacc examples
...
(cherry picked from commit 24caf36230
)
2017-07-10 22:07:11 -07:00
James Lu
59a4ecdcb9
automode: rewrap help for SET
...
(cherry picked from commit 499e94e0a5
)
2017-07-10 22:07:09 -07:00
James Lu
24caf36230
automode: fix $ircop exttarget name in setacc examples
2017-07-10 22:06:41 -07:00
James Lu
499e94e0a5
automode: rewrap help for SET
2017-07-10 22:06:08 -07:00
James Lu
bf24bac9c9
ServiceBot: replace 'alias' option with 'aliases' & condense multiple add_cmds calls into one
2017-07-10 21:59:29 -07:00
Mitchell Cooper
100089f6b8
add alias argument where appropriate in plugins
2017-07-09 21:19:08 -04:00
James Lu
f7dfc38688
relay: only initialize channels that are relevant to the called network in initialize_all()
...
Previously, this would quite often hit channel names that simply don't exist on the target network.
2017-07-07 14:20:24 -07:00
James Lu
3b091f9e20
relay: remove a useless logging line
2017-07-07 13:43:30 -07:00
James Lu
d2d76baad8
relay: more detailed logging when the spawn_* condition times out
2017-07-07 13:32:04 -07:00
James Lu
990a928602
relay: re-add 'CLAIM #channel -'
...
This was mistakenly removed in d51c399351
due to a merge conflict, oops...
(cherry picked from commit 62669c085d
)
2017-07-02 22:07:58 -07:00
James Lu
62669c085d
relay: re-add 'CLAIM #channel -'
...
This was mistakenly removed in d51c399351
due to a merge conflict, oops...
2017-07-02 22:06:50 -07:00
James Lu
f0fab0c0ad
games: remove 'fml'
...
This is a blocking command which can potentially freeze the server given enough network interruption.
It will likely be reintroduced later on in some sort of "Websites" plugin, possibly in the contrib repository.
2017-07-02 21:18:32 -07:00
James Lu
f800c9f7c2
Merge branch 'wip/irc-explosion-2' into devel ( #475 )
...
This brings in a major refactor of the IRC/protocol stack, to start off 2.0-dev.
2017-07-02 21:16:06 -07:00
James Lu
f2b644e2bb
relay: be more verbose in 'grabbing spawnlocks' messages
2017-07-02 12:36:33 -07:00
James Lu
60788e4ba5
relay_clientbot: remove dark blue from the random colours list
...
It's difficult to read on clients configurated to use a dark background. Reported by @MrBenC
2017-07-01 18:06:50 -07:00
James Lu
a204d2b2db
core: convert IrcUser calls to User
2017-06-30 21:44:31 -07:00
James Lu
7d68c03101
various: convert sortPrefixes/getPrefixModes calls to snake case
2017-06-30 21:40:05 -07:00
James Lu
61ed209abb
coremods, plugins: migrate to snake case for protocol communication
2017-06-30 21:30:20 -07:00
James Lu
0c7fb861f1
classes, relay, ircs2s_c: tweak/remove various debug statements
2017-06-29 23:19:21 -07:00
James Lu
10bca676fc
coremods, plugins: migrate to snake case
2017-06-29 23:01:39 -07:00
James Lu
85fbc9ea9d
relay_clientbot: use isinstance(obj, dict) & cleanup imports ( #410 )
2017-06-29 18:08:41 -07:00
James Lu
8eebcb0b06
relay_clientbot: drop colour from network names by default
2017-06-29 18:07:40 -07:00
James Lu
4696519bad
plugins: migrate irc.proto calls to irc
2017-06-25 02:09:59 -07:00
James Lu
60a0bcdc7a
Rename config option log:stdout -> log:console
...
Closes #386 .
2017-06-02 08:42:32 -07:00
James Lu
76ecc60675
servprotect: only track kills and saves to PyLink clients
...
why wasn't this done before...
2017-05-20 15:02:04 -07:00
James Lu
89f9b46ec0
relay: demote "PM from server" warnings to debug
...
InspIRCd's m_chanlog.so sends these on purpose, so it's best not to warn about this "feature" endlessly...
2017-05-15 21:32:41 -07:00
James Lu
a5b3011ea4
networks: clear the 'remote command used' state and break if overriding account/reply target fails
2017-05-12 19:58:03 -07:00
James Lu
084f58b499
automode: remove extraneous +'s from mode lists
...
Closes #447 .
2017-05-12 19:41:55 -07:00
James Lu
04f88df385
Actually use 'irc' in main() and die() as a keyword argument (per docs)
2017-05-12 19:19:52 -07:00
James Lu
24b5fd92ef
relay: don't error if the pylink service is gone (e.g. during shutdown)
2017-05-07 13:58:11 -07:00
James Lu
5c7752a203
relay: stop execution if spawn lock acquire fails
...
Also, make the lock timeout a consistent, global variable.
(partial merge of commit e24bc54bbcefc40bf73a197de2dc24f7cd42cf79)
2017-05-04 21:18:02 -07:00
James Lu
d51c399351
Revert "relay: add locks in db read/writes (thread safety)"
...
Unfortunately, this made relay prone to freezing the entire PyLink server.
This reverts commit 2b4943a780
.
2017-05-04 18:53:07 -07:00
James Lu
79e2d20d9d
commands: remove extraneous private=True from showchan
2017-04-27 07:28:26 -07:00
James Lu
0e6d33a668
networks.remote: suppress errors if restoring remoteirc.pseudoclient.account
...
This should rarely happen, but can be purposely caused by causing the remote network to disconnect through 'remote'.
2017-04-09 15:21:19 -07:00
James Lu
709b1d2ead
commands: show TS on networks without has-ts as well
2017-04-09 14:54:16 -07:00
James Lu
bf1d7812e2
clientbot: track channel modes and TS on join
...
Closes #345 .
2017-04-09 14:49:19 -07:00
James Lu
ad4fe1924b
networks: show an error instead of silently failing if the command is empty
2017-03-31 17:13:04 -07:00
James Lu
0749a42ef6
networks.remote: add recursion checks to prevent bad queries from crashing the server
...
For example, 'remote net1 remote net2 echo hi' was problematic if the source network was 'net1'.
It's a good thing this command is restricted by default...
2017-03-31 16:40:26 -07:00
James Lu
9d9b01839c
Split Irc.reply() into _reply() to make 'networks.remote' actually thread-safe
...
Previously, the Irc.reply_lock check was in the reply() function itself: replacing it with another function checking for the same lock would delay execution,
but then run the wrong reply() code if another module used irc.reply() while 'remote' was executing.
2017-03-31 16:25:28 -07:00
James Lu
4cd71d12ef
fantasy: don't trigger when the fantasy prefix is followed by a space
...
This prevents false positives such as "& that", "@ person", etc.
2017-03-28 22:00:41 -07:00
James Lu
d425cb9d47
relay: fix case sensitivity in channel TS check
2017-03-28 08:08:39 -07:00
James Lu
ff0eda1fba
networks: flip **kwargs position to fix Python 3.4 support
...
Reported by @koaxirc.
2017-03-27 15:00:01 -07:00
James Lu
ce0c84266e
fantasy: make responding to nick a per-service configuration option ( #343 )
...
This also renames the "respondtonick" option to "respond_to_nick", deprecating the former name.
2017-03-26 14:03:31 -07:00
James Lu
af3b350498
networks.remote: fix "unknown service" error format
2017-03-24 01:10:56 -07:00
James Lu
6c4e042307
networks.remote: break if the target network is the same as the source ( #437 )
...
_remote_reply() otherwise gets sent into a loop when remoteirc and irc is the same here.
2017-03-24 01:08:01 -07:00
James Lu
490f21ff9f
networks.remote: override remoteirc.reply() to send replies back to the caller
...
Closes #437 .
2017-03-24 00:59:48 -07:00
James Lu
0f472c8959
networks.remote: add an optional --service option to call commands for other services.
2017-03-24 00:25:19 -07:00
James Lu
90d3ac3cf6
relay: skip message prefixing when forwarding a message for a service client ( #403 )
2017-03-23 23:53:48 -07:00
James Lu
f188b29911
plugins: migrate to server capabilities
2017-03-23 23:37:24 -07:00
James Lu
ad00fdfa53
relay: migrate normalizeHost, normalizeNick to protocol capabilities
2017-03-23 23:12:59 -07:00
James Lu
21670a5d51
relay: migrate most protocol checks to protocol capabilities
...
Some things I left out include modesync and op status checking on LINK, since these are pretty specific to Clientbot IRC.
2017-03-23 22:52:11 -07:00
James Lu
3ffbbe60ff
global: configurable output format
2017-03-13 13:39:30 -07:00
James Lu
cfe72e2cd0
global: set loopback=False on messages to prevent duplicating them via relay
2017-03-13 13:29:04 -07:00
James Lu
0a57c084bb
global: only send to connected networks
2017-03-13 13:23:22 -07:00
James Lu
a3dff204d3
global: remove extraneous metadata
...
Core plugins do not need to track authors and version, because git does that for us.
2017-03-13 13:21:11 -07:00
Ken Spencer
7e6ad089c0
plugins: add global notice plugin
2017-03-13 12:30:06 -04:00
James Lu
716ac681b6
exec: add 'pieval' and 'peval' to evaluate expressions pretty-printed
2017-03-11 22:47:30 -08:00
James Lu
bf42109d81
Split fantasy prefix definitions into service-specific blocks
...
Closes #426 .
This makes the pylink::prefix (aka bot::prefix) option only affect the main PyLink bot, and deprecates the pylink::prefixes::<...> options.
As the bot: config block is no longer checked, this commit depends on commit 45ed5b962e215763f7659631d1b98a5031dbab92 (ref #343 ) to alias it to conf::pylink.
2017-03-10 23:47:07 -08:00
James Lu
b09565a723
bots, opercmds: add a "Done" reply to most commands as they finish
2017-03-09 20:50:14 -08:00
James Lu
ebd5b77576
relay: normalize channel case in 'link'
...
(regression from commit 93c9b6289c
)
Reported by @koaxirc.
2017-03-09 20:42:38 -08:00
James Lu
e8bf1d08bc
handlers, fantasy: migrate away from irc.botdata ( #273 )
2017-03-05 00:10:33 -08:00
James Lu
733d7d7c87
exec: add ieval command using the isolated local scope
2017-03-04 22:05:03 -08:00
James Lu
42ba1775d7
exec: add irc, source, and args to isolated locals scopes
...
This allows basic things like irc.reply() to work in 'iexec'.
2017-03-04 21:59:42 -08:00
James Lu
4df8567fa6
Irc: move PYLINK_DISCONNECT firing and connected.clear() into disconnect() ( #421 )
...
This may prevent extra irc.connected.clear() calls from messing with the was_connected state.
2017-02-25 22:06:43 -08:00
James Lu
cd65da75c6
relay: only announce disconnects if the last connection was successful
2017-02-24 21:42:58 -08:00
James Lu
cd3d795296
relay: implement optional network disconnect announcements
...
Closes #421 .
2017-02-24 21:15:40 -08:00
James Lu
c03f2d772c
relay: allow dropping messages from user-less clients
...
This adds two new options, both defaulting to True:
- relay:accept_weird_senders (global)
- servers:<name>:relay_weird_senders (per-server)
Closes #404 .
2017-02-24 19:16:01 -08:00
James Lu
f432f6f082
relay: don't allow linking to channels when the home network is down
...
This check can be overridden via --force, and should stop unreliable TS checks from appearing instead
Closes #419 .
2017-02-21 21:58:32 -08:00
James Lu
93c9b6289c
relay: switch to IRCParser in 'link' and add a --force option to skip TS checks
...
Closes #416 .
2017-02-21 21:52:22 -08:00
James Lu
bf702575be
servprotect: fix a syntax error
2017-02-21 21:49:41 -08:00
James Lu
02faa3fcb6
relay: more verbosity in TS-related link errors
2017-02-21 21:14:03 -08:00
Ken Spencer
a8fe353ba4
servprotect: make length and age configurable ( #417 )
...
Fixes #395
2017-02-21 17:02:26 -08:00
James Lu
0c88602d1f
fantasy: check for nick prefix case insensitively
2017-02-18 21:21:32 -08:00
James Lu
a9d2a2c4bc
relay, handlers: rewrite oper WHOIS replies to show the target's home network
2017-02-18 13:51:45 -08:00
James Lu
3c98ef172e
relay: use the new Irc.getFullNetworkName() where applicable
2017-02-18 13:33:35 -08:00
James Lu
902b246f96
bots: allow specifying channel prefixes (e.g. @+) in 'join'
...
This functionality should really be merged with what ServiceBot does, but whatever...
2017-02-13 17:01:09 -08:00
James Lu
0b0efbaf9f
relay: less ambiguous error if a relay channel doesn't exist on the caller network
2017-02-05 21:47:11 -08:00
James Lu
6e94375ed9
relay: clarify/revise help text for 'claim'
2017-02-05 21:43:53 -08:00
James Lu
18826ad5c6
exec: add 'iexec' to run code in an isolated, persistent local scope
2017-02-05 20:26:40 -08:00
James Lu
a3a5569156
exec: print a "Done" after executing code
2017-02-05 20:14:30 -08:00
James Lu
dcacfb0c10
relay: catch RuntimeError in spawnRelayServer as well
...
This is raised when a network runs out of SIDs, for example.
2017-02-03 18:06:49 -08:00
James Lu
b5cf2e8a4e
stats: add an --all option to 'uptime', and check for disconnected networks
2017-01-30 00:18:50 -08:00
James Lu
efded33f4a
stats: oops, use the right Irc object
2017-01-30 00:08:40 -08:00
James Lu
de99be720e
stats: prettier formatting for the uptime command
...
Closes #381 .
2017-01-30 00:06:42 -08:00
James Lu
1c19d82f53
Merge branch 'wip/stats' into devel
2017-01-29 23:31:43 -08:00
James Lu
8901ed72ee
relay: s/spawnIfMissing/spawn_if_missing/g
2017-01-29 22:18:05 -08:00
James Lu
fa30d3c732
relay: rework fallback message routing to be less annoying ( #384 )
...
- PRIVMSGs from users not spawned on a network are sent via the main PyLink client in the format "<$orignick/$network> <$text>"
- <PyLink> <user/net> blah blah
- NOTICEs from users use the same format above, and are routed from the relay subserver representing the network that the message originated from
- Notice(somenet.relay): <user/net> blah blah
- PRIVMSGs from servers are blocked, because they aren't valid on all IRCds and are fairly obscure anyways (suggestsions/improvements welcome)
- NOTICEs from servers are forwarded as raw text, from the relay subserver representing the origin network
- Notice(somenet.relay): some server announcement
2017-01-29 20:21:45 -08:00
James Lu
e936b9cfd2
relay: add a spawn_if_missing option to get_remote_sid()
2017-01-29 20:20:39 -08:00
James Lu
d6a6d069bc
Move 'mkpasswd' to the commands plugin
2017-01-22 16:42:46 -08:00
James Lu
c20c144222
automode, relay: remove unused imports
2017-01-21 12:01:41 -08:00
James Lu
170738ee10
Revert "automode: bandaid fix for "service already registered" errors on first load"
...
This reverts commit e2a853c98e
.
2017-01-21 11:59:43 -08:00
James Lu
3dd35ba5a1
Add an example services plugin
...
Closes #399 .
2017-01-21 11:59:43 -08:00
James Lu
1fe64cca04
example.py: update to reflect 1.1.x docstring changes ( #307 )
2017-01-21 11:59:43 -08:00
James Lu
d749fbb2ab
ctcp: -that
2017-01-20 22:32:32 -08:00