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
James Lu
b7470c3c42
ctcp: remove puns
2017-01-20 22:31:46 -08:00
James Lu
b1918f5392
Initial pass at a Stats plugin ( #121 , #381 )
2017-01-11 23:35:35 -08:00
James Lu
a2e7a35998
relay: remove incorrect network name in logging for blocked kicks
2017-01-06 22:51:50 -08:00
James Lu
e0bda6b850
relay: also filter out low TS values in burst relaying
2017-01-06 22:48:11 -08:00
James Lu
3e706366bd
relay: on Clientbot networks, don't relay prefix mode changes for the relayer bot
...
Closes #366 .
2017-01-06 16:45:48 -08:00
James Lu
605d242677
automode: remove repeated "Error:" in error messages
2017-01-02 10:11:55 -08:00
James Lu
a340ab15e1
relay: local channel in 'link' is optional
...
Thanks to Digerati for noticing this.
2016-12-29 08:47:35 -08:00
James Lu
614c029538
relay: add missing 'relay.linked' permissions check
2016-12-25 00:31:38 -08:00
James Lu
ec13bae7e6
opercmds: remove pointless source argument from 'kick' and 'kill'
2016-12-24 10:58:03 -08:00
James Lu
77dd8224ae
relay: use built-in hash() for colorizing text
...
This is way faster than md5.
2016-12-21 23:48:40 -08:00
James Lu
c09fce344d
relay: whitelist _ on InspIRCd, UnrealIRCd, Nefarious, clientbot
2016-12-19 00:00:24 -08:00
James Lu
ef8ec03e41
relay: re-add / in hosts for networks that support it
2016-12-18 23:56:47 -08:00
James Lu
3339bf0fe6
relay: rewrite normalizeHost() to whitelist characters instead
2016-12-17 23:47:26 -08:00
James Lu
f9adaa85ca
commands: implement 'logout'
...
Closes #370 .
2016-12-16 19:05:08 -08:00
James Lu
045abfa9c1
commands: add permissions checks to echo, showuser, showchan, and status
2016-12-16 18:31:19 -08:00
James Lu
2de36caea0
commands: fix previous commit
2016-12-09 22:13:32 -08:00
IotaSpencer
b0296933a1
plugins/commands.py: change over to permissions API
2016-12-09 22:13:32 -08:00
IotaSpencer
9199186309
plugins/opercmds.py: change over to permissions API
2016-12-09 22:13:32 -08:00
IotaSpencer
69083cfcfd
plugins/bots.py: change over to permissions API
2016-12-09 22:13:32 -08:00
James Lu
12a8509299
changehost: limit 'applyhosts' to those with the changehost.applyhosts perm
2016-12-09 22:13:32 -08:00
James Lu
60ca5af813
networks: port to the permissions API ( #367 )
2016-12-09 21:55:47 -08:00
James Lu
fb463e3b26
networks.remote: override the login to a valid user, so that permissions can match it
2016-12-09 21:53:54 -08:00
James Lu
34ad79744a
networks: update help for 'disconnect'
...
The 'disconnect' command has been changed to disable autoconnect, but this text was never updated.
2016-12-09 21:51:57 -08:00
James Lu
01f2a4ca20
servermaps: fix wrong permission name
2016-12-09 21:43:58 -08:00
James Lu
3d4cb02ce2
exec: rewrap docstirngs
2016-12-09 21:43:58 -08:00
James Lu
9e2598612a
exec: port to permissions API ( #367 )
2016-12-09 21:43:58 -08:00
James Lu
b5f244009a
relay: rename camel case functions to lowercase with underscores
...
The exception is isRelayClient(), which is aliased only to is_relay_client() to be consistent with isXYZ() functions elsewhere in the framework
Also, getRemoteChan() was renamed to get_remote_channel()
2016-12-09 18:02:30 -08:00