Commit Graph

61 Commits

Author SHA1 Message Date
David Macek
3d21c7cbcb Services: Keep per-network state separate
Until now, only `waitingJoins` was stored separately per network, while
`channels`, `sentGhost` and `identified` had one common value per plugin
instance.  Instead of making everything a dictionary indexed by network
name like `waitingJoins`, let's bundle all the state together in a class
and store *its* instances in such a dictionary.

This fixes at least one race condition, for which a test case was added.
Even with `noJoinsUntilIdentified` set, the bot would let joins through
as long as *any* one network has already finished identifying.
2021-04-27 19:52:58 +02:00
David Macek
4d2efc65ef Remove some unused names 2021-04-24 21:01:40 +02:00
Valentin Lorentz
24f20dcb86 Factoids, Services: Fix crash when imported by supybot-plugin-doc 2021-04-05 11:30:59 +02:00
Valentin Lorentz
975a9101f4 Services: Fix conditional on supybot.protocols.irc.experimentalExtensions
It was always true-ish because we tested the variable itself instead
of its value.
2021-03-04 21:30:07 +01:00
Valentin Lorentz
8b497af30b Services: Add support for REGISTER responses in nested batches. 2021-03-04 18:48:15 +01:00
Valentin Lorentz
85549bf0c3 Services: Fix typo in docstring 2021-01-30 19:41:26 +01:00
Valentin Lorentz
c016ed5bfd Services: Add support for batches as reply to REGISTER/VERIFY.
Oragono uses them.
2021-01-25 22:03:08 +01:00
Valentin Lorentz
1c6c1cb16a Services: Add initial implementation of the @register and @verify commands.
Using this early draft specification:
https://gist.github.com/edk0/bf3b50fc219fd1bed1aa15d98bfb6495
2021-01-25 21:57:12 +01:00
Richard
143cd9d506 Services: Fix typo in doInvite() (#1394) 2019-12-13 11:01:48 -08:00
Valentin Lorentz
b65d78518c Services: Add support for network-specific password. 2019-08-25 14:08:11 +02:00
Valentin Lorentz
c1ae3f5c81 all plugins: Use msg.channel instead of msg.args[0] + give network name to self.registryValue. 2019-08-24 23:35:01 +02:00
Valentin Lorentz
696254ff1b Use irc.isChannel instead of ircutils.isChannel when possible.
It's aware of the network's 'chantypes'.
2019-08-04 21:52:40 +02:00
James Lu
55723c2161 Services: fix rejoin-on-kickban with atheme 7.x
- Adjust _chanRe to only match channels, as atheme also puts the target nick in bold
- Look for "unbanned <botnick>" messages in ChanServ notices (after stripping formatting)

This likely fixes GH-166. atheme has been using this format since at least 2005[1],
so it's possible that Supybot's rejoin-on-ban had never worked with it.

[1]: 4017c0da85 (diff-ba2bdc02ba7b29fd7e4931cafe63baa0R218)
2018-01-27 13:22:21 -08:00
James Lu
add3ceb4e7 Services: do not send the bot's nick in ChanServ commands
On Atheme, Anope, and oftc-ircservices, /cs unban, invite, op, and voice
implicitly assume the caller if no nick is given. However, certain combinations
such as /cs invite *with* a nick are not supported on atheme per
https://github.com/atheme/atheme/issues/568, and cause rejoin-on-kick to +i
channels to fail.

This fixes one part of GH-1118.
2018-01-27 13:22:15 -08:00
James Lu
eb1cb9bd76 Services: don't mangle the case of NickServ notices in logging
This might be confusing if you're dealing with password changes, etc.
2018-01-27 12:33:36 -08:00
James Lu
289c894dc5 Services: log all messages from NickServ to info
Closes GH-1016.
2017-12-10 11:03:30 -08:00
Valentin Lorentz
e54ae6dc77 Service: Don't ghost if ghostDelay is set to 0. 2015-09-15 20:59:26 +02:00
Valentin Lorentz
c3a2c800f1 Remove need for 2to3. 2015-08-11 16:50:23 +02:00
GLolol
5bc0d4311c Services: update my comment 2014-11-27 22:53:08 -08:00
James Lu
3665d263ac Services: don't warn about unexpected ChanServ notices if the target is a channel 2014-11-27 21:18:00 -08:00
Milos Petkovic
0f3f6da843 Multiple channel types should be supported 2013-06-17 23:54:59 +02:00
Milos Petkovic
b4a63fa89e Prevent entrymsgs from spamming warnings 2013-06-17 08:53:44 +02:00
Valentin Lorentz
3dba9088b0 Merge remote-tracking branch 'supybot/master' into testing
Conflicts:
	INSTALL
	plugins/ChannelLogger/README.txt
	plugins/ChannelStats/README.txt
	plugins/Google/plugin.py
	plugins/Google/test.py
	plugins/Plugin/test.py
	plugins/Web/test.py
	setup.py
	src/callbacks.py
	src/ircdb.py
	src/irclib.py
	src/utils/str.py
	test/test_irclib.py
2013-01-01 21:11:24 +01:00
James McCoy
82ecf36fcd Update my name/contact information
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2012-09-01 10:16:48 -04:00
James McCoy
d1bc7922ee Simplify handling of per-network waitingJoins
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2011-12-13 18:08:00 +01:00
Daniel Folkinshteyn
761435ba1a Services: catch occasional error when removing waiting joins from list
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2011-12-13 18:07:56 +01:00
Daniel Folkinshteyn
8c3304c520 Services: fix problem with some channels being mixed up between networks on startup, when noJoinsUntilIdentified is true.
When noJoinsUntilIdentified config is true, the bot holds join messages in a 'waitingJoins' list, and processes them
once nickserv identification comes through. The problem was that when the bot is configured to join multiple networks,
join messages from different networks would get appended to the same list, without any differentiation by which message
belongs to which network. Thus, if there are messages waiting for multiple networks, it would often be the case that
whichever network got identification done first, would 'pick up' other network's join messages.

This fix stores the network name along with the join messages in the list, and has each network pick out only its own
join messages.

Conflicts:

	src/version.py

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>

Conflicts:

	plugins/Services/plugin.py
2011-12-13 18:07:22 +01:00
James McCoy
c90fafebe7 Simplify handling of per-network waitingJoins
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2011-12-06 00:55:29 -05:00
Daniel Folkinshteyn
1e1b39783b Services: catch occasional error when removing waiting joins from list
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2011-12-06 00:53:19 -05:00
Daniel Folkinshteyn
d5648ab534 Services: fix problem with some channels being mixed up between networks on startup, when noJoinsUntilIdentified is true.
When noJoinsUntilIdentified config is true, the bot holds join messages in a 'waitingJoins' list, and processes them
once nickserv identification comes through. The problem was that when the bot is configured to join multiple networks,
join messages from different networks would get appended to the same list, without any differentiation by which message
belongs to which network. Thus, if there are messages waiting for multiple networks, it would often be the case that
whichever network got identification done first, would 'pick up' other network's join messages.

This fix stores the network name along with the join messages in the list, and has each network pick out only its own
join messages.

Conflicts:

	src/version.py

Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2011-12-06 00:53:07 -05:00
Daniel Folkinshteyn
71bcc2bc7c Services: add some more strings indicating identification success.
Signed-off-by: James McCoy <jamessan@users.sourceforge.net>
2011-12-06 00:38:29 -05:00
Valentin Lorentz
05b32b467f Services: Fix traceback on NickServ notice. 2011-11-15 06:29:36 +01:00
Valentin Lorentz
e253fe1543 Allow network-specific nicks. Closes GH-134. 2011-10-27 12:31:37 +02:00
Valentin Lorentz
be585ecea9 Merge remote-tracking branch 'supybot/maint/0.83.4' into testing
Conflicts:
	src/ircutils.py
2011-08-23 16:41:52 +02:00
Daniel Folkinshteyn
98996be251 Services: catch occasional error when removing waiting joins from list 2011-08-10 12:01:30 +02:00
Daniel Folkinshteyn
6dca55deeb Services: fix problem with some channels being mixed up between networks on startup, when noJoinsUntilIdentified is true.
When noJoinsUntilIdentified config is true, the bot holds join messages in a 'waitingJoins' list, and processes them
once nickserv identification comes through. The problem was that when the bot is configured to join multiple networks,
join messages from different networks would get appended to the same list, without any differentiation by which message
belongs to which network. Thus, if there are messages waiting for multiple networks, it would often be the case that
whichever network got identification done first, would 'pick up' other network's join messages.

This fix stores the network name along with the join messages in the list, and has each network pick out only its own
join messages.
2011-08-10 12:00:42 +02:00
Daniel Folkinshteyn
b0bd346775 Services: add some more strings indicating identification success. 2011-01-29 11:36:48 +01:00
Valentin Lorentz
db977bf5d2 Fix Python2.5 issue (class decorators)
Issue S-fr#5
2010-10-26 09:32:12 +02:00
Valentin Lorentz
371a40e004 Internationalize Seen, Services, ShrinkUrl, Status, String, and Success 2010-10-20 09:10:03 +02:00
James Vega
cb48912db6 Services: Correct formatting of "isn't registered" log.
Closes: Sf#3075937
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-10-03 14:58:38 -04:00
James Vega
0ff414b993 Services: Don't filter outgoing JOIN messages on disabled networks
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
(cherry picked from commit acffde68ab)
2010-08-24 19:52:22 -04:00
James Vega
0f877166ad Services: Fix conflict with callbacks.Commands.isDisabled
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
(cherry picked from commit f926804f40)
2010-08-24 19:51:09 -04:00
James Vega
976567c1ac Services: Disable most of the plugin on networks in the disabled list.
Notify the user when trying to use the commands on a disabled network, ignore
noJoinsUntilIdentified, and don't try communicating with services.

Closes: Sf#3018464

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
(cherry picked from commit 9e73f4482c)
2010-08-24 19:50:11 -04:00
James Vega
acffde68ab Services: Don't filter outgoing JOIN messages on disabled networks
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-06-27 19:48:36 -04:00
James Vega
f926804f40 Services: Fix conflict with callbacks.Commands.isDisabled
Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-06-19 22:38:27 -04:00
James Vega
9e73f4482c Services: Disable most of the plugin on networks in the disabled list.
Notify the user when trying to use the commands on a disabled network, ignore
noJoinsUntilIdentified, and don't try communicating with services.

Closes: Sf#3018464

Signed-off-by: James Vega <jamessan@users.sourceforge.net>
2010-06-19 16:59:13 -04:00
James Vega
4ee1437c40 Services/plugin.py: Add some parens to ensure self.sentGhost is only used if it's not None. 2006-08-15 14:49:42 +00:00
James Vega
9214f6ac87 plugins/Services: Make ghostDelay configurable with a default of 60 seconds. 2006-07-14 20:55:44 +00:00
James Vega
1be3d7f159 plugins/Services: Only send GHOST once every 60 seconds to prevent spinning when the services are down. Bug 1491034 2006-07-14 15:36:11 +00:00
Andrey Rahmatullin
96e001e43a Add nickserv "Password accepted" message for RusNet 2006-04-03 17:08:57 +00:00