Mark Veidemanis
7c855e09c0
Reformat code with pre-commit
2022-07-21 13:39:41 +01:00
Mark Veidemanis
5deb0649fb
Don't discard server messages
2020-11-02 20:13:36 +00:00
Mark Veidemanis
73e596dac3
Additional error handling for command parsing
2020-11-01 22:18:48 +00:00
Mark Veidemanis
1f178a20ed
Implement channel blacklisting
2020-11-01 19:54:24 +00:00
Mark Veidemanis
cb21ad8fca
Fix bug with using muser attribute when absent
2020-11-01 19:03:56 +00:00
Mark Veidemanis
16ab37cc0c
Log error when ZNC says a channel can't be joined
2020-10-31 23:58:51 +00:00
Mark Veidemanis
45f02c323b
Improve authentication detection
...
Add a negative check in the event we are authenticated and registered,
but not confirmed, as this fools other checks.
2020-10-31 16:49:37 +00:00
Mark Veidemanis
f3dd102096
Deauth bot when disconnected and lowercase user
2020-10-31 00:12:06 +00:00
Mark Veidemanis
3bc65f8456
Add the time field to some notifications
2020-10-28 22:26:41 +00:00
Mark Veidemanis
a1e045793c
Start implementing prefixes
2020-07-09 19:43:47 +01:00
Mark Veidemanis
f50a40d207
Fixes to auth detection and message parsing
...
* don't check authentication if the network doesn't need to
register
* don't pass through muser for ZNC type messages
* avoid duplicate message for queries containing highlights
* make a copy of the cast for metadata analysis to avoid poisoning it
* set up callback for when the instance is authenticated, so we can
request a LIST immediately if so desired
* separate out seeding functions to populate CHANLIMIT to ease future
work involving other options, such as PREFIX
2020-06-07 17:26:53 +01:00
Mark Veidemanis
11f15ac960
Fix various bugs in the event system
...
Squash many bugs in the event notification system and simplify the
code.
2020-06-02 21:34:15 +01:00
Mark Veidemanis
45070b06e2
Implement authentication detection
...
* pending command to see which instances have never authenticated
* authcheck command to see which instances are not currently
authenticated
2020-05-31 21:52:56 +01:00
Mark Veidemanis
91885170f1
Check registration status before joining channels
...
Do not join channels if any relay for a network is unregistered.
2020-05-31 13:09:58 +01:00
Mark Veidemanis
f90f2fdef7
Implement registration and confirmation of nicks
2020-05-30 21:40:10 +01:00
Mark Veidemanis
918d410927
Fix variable scope in LIST error handling
2020-04-21 23:32:17 +01:00
Mark Veidemanis
778690ae3a
Add more comments and remove obsolete code
2019-12-07 16:35:29 +00:00
Mark Veidemanis
7ffb6125aa
Fix various bugs uncovered by the LIST system
...
* Work around Twisted's broken handling of spaces
* Work around Twisted's broken line decoding
* Don't run signedOn twice for relays
* Improved detection of whether the endpoint is connected to ZNC
* Delay a LIST until all configured relays are online
* Discard a LIST if there are no callbacks for it
* Get rid of some double-negative ternary blocks
2019-10-31 15:44:59 +00:00
Mark Veidemanis
b4fa747853
Fix LIST handling and message parsing
...
* Always use simple LIST syntax if it succeeded once after a failed
complex query
* Reject asking for a LIST twice
* Quickly discard any ISUPPORT messages that don't contain things we
need to use
* Detect the server name and drop any messages from the server
2019-10-20 16:44:33 +01:00
Mark Veidemanis
f34de8940f
Improve performance in userinfo
...
* Implement a nick -> user mapping, preventing a superfluous SSCAN on
the entire dataset for when networks are disconnected
* Use one thread for all channels when a network instance is
disconnected, instead of one thread per channel
* Made returns comprising of only a list into tuples
2019-10-17 20:19:35 +01:00
Mark Veidemanis
5777ef0cfe
Improve ZNC error message detection
2019-10-13 12:38:44 +01:00
Mark Veidemanis
0321651c20
Implement fair channel allocation in ChanKeep
...
* Allocate channels to relays only if they have free space based on
their chanlimit value
* Minify channels by removing ones that are already covered before
passing them off to be joined
2019-10-12 21:05:55 +01:00
Mark Veidemanis
7a6e3338c0
Implement ChanKeep joining functions
...
* Low-key channel joining with incrementally increasing delay
* Spin up needed instances to be able to cover a certain channel space
* Fix provisioning functions to prevent race conditions with lots of
relays being created at once
* Tweakable switchover from covering all channels to only covering
channels with more users than the mean of the cumulative user count
2019-10-11 13:07:57 +01:00
Mark Veidemanis
da14a86e70
Fix getting LIST output to work with more networks
...
* Parse ISUPPORT properly if more than one channel prefix is supported
* Retry getting LIST another way is the response is empty
2019-10-08 21:00:57 +01:00
Mark Veidemanis
06d3dd4d7e
Implement storing analytics on a LIST response
2019-10-08 18:17:32 +01:00
Mark Veidemanis
15b394bd79
Implement requesting a LIST and parsing the output
2019-10-06 21:10:44 +01:00
Mark Veidemanis
5eda50af13
Use net and num instead of name in relay output
2019-10-05 18:13:04 +01:00
Mark Veidemanis
78e4d6bd66
Rename 'message' to 'msg' and 'target' to 'channel'
2019-10-05 00:51:00 +01:00
Mark Veidemanis
ddadeb617c
Change message to msg in relay output and in functions, include name in connection notifications instead of net
2019-10-03 18:02:00 +01:00
Mark Veidemanis
89894287b3
Add error handling to exec command and fix minor bug in cleaning up relays
2019-10-02 21:25:15 +01:00
Mark Veidemanis
32309ecec2
Change alias definitions to be global, so aliases can be reused across different networks
2019-09-29 22:45:16 +01:00
Mark Veidemanis
355a80b19b
Fix the all and allc commands so they work with the new data format
2019-09-29 14:57:36 +01:00
Mark Veidemanis
15ca45e5df
Implement Ctrl-C handling and fix a large number of small bugs
2019-09-28 19:46:10 +01:00
Mark Veidemanis
2d70d5af11
Add error checking in places, set up automatic relay provisioning and fix starting bots
2019-08-25 21:29:11 +01:00
Mark Veidemanis
ff74968ff8
Merge branch 'master' into datarestructure
2019-08-19 20:19:42 +01:00
Mark Veidemanis
c63f301b7f
Defer initialUsers, initialNames and delChannel to threads to improve performance
2019-08-19 20:12:42 +01:00
Mark Veidemanis
22bd0d3ac6
Don't crash if the part message is null
2019-08-15 22:14:45 +01:00
Mark Veidemanis
f34ddab6fc
Improvements to query and self event detection, implement all command and debug flags
2019-08-15 21:20:49 +01:00
Mark Veidemanis
1ec0e1f7e6
Remove provisioning restrictions, move all user tracking code to monitoring module, fix proper network name not being passed to the relay
2019-08-12 21:03:47 +01:00
Al Beano
63539a4edb
Merge branch 'master' into datarestructure
2019-08-11 22:01:29 +01:00
Al Beano
e5adcfef4c
Rework data structures, storing all front-end network data in Network objects
2019-08-11 21:58:14 +01:00
Mark Veidemanis
1c8cbf808b
Send fake quit and nick messages to every channel
2019-08-11 21:54:52 +01:00
Mark Veidemanis
3a92ebab6b
Convert nickname and messages to lowercase before comparison
2019-08-11 21:54:51 +01:00
Mark Veidemanis
2757256d4f
Implement a single function for all callbacks from IRC hooks and send a seperate notification if an action takes place that concerns a bot
2019-08-11 21:54:22 +01:00
Mark Veidemanis
56840e0060
Add the network number in ZNC relay notifications
2019-08-06 12:49:29 +01:00
Mark Veidemanis
68c6aa969d
Remove keyword system, implement ZNC notifications to relay, remove exact from cast fields and fix security bug in relay
2019-08-05 22:51:16 +01:00
Mark Veidemanis
a4b7bd50b1
Implement additional error checking for provisioning instances and parsing messages, and prevent ZNC from auto-connecting an instance if ConnectOnCreate is off
2019-02-01 23:26:01 +00:00
Mark Veidemanis
8926cb76ec
Renovate the module system and implement adding and resuming pool instances using the new relay/alias/network system
2019-01-26 18:58:21 +00:00
Mark Veidemanis
4efea3f535
Implement the backend for automatically provisioning relays
2019-01-26 01:57:24 +00:00
Mark Veidemanis
1c3435d0d7
Don't provision new user information on messages
2018-10-21 19:21:53 +01:00