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
31c9e64790
Implement function to set up multiple relays
2019-10-08 21:11:04 +01:00
Mark Veidemanis
33cb173db6
Switch to using Redis for LIST storage
2019-10-08 21:10:42 +01:00
Mark Veidemanis
a027a0b4f6
Fix getting user records by nickname
...
Use -1 to refer to unlimited records instead of an arbitrarily large
number.
2019-10-08 20:53:39 +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
aa54759337
Additional error checking on user record deletion
2019-10-05 18:22:14 +01:00
Mark Veidemanis
f0fff7c958
Implement sorting relay output by custom keys
2019-10-05 18:20:51 +01:00
Mark Veidemanis
78e4d6bd66
Rename 'message' to 'msg' and 'target' to 'channel'
2019-10-05 00:51: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
d35f96de87
Error checking on alias removal and clean up when removing relays
2019-10-02 20:45:28 +01:00
Mark Veidemanis
a3b81f8849
Implement more automated provisioning of aliases and relays, and remove networks cleanly
2019-10-02 20:26:05 +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
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
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
Al Beano
15bc195648
Add automatic alias generation function
2019-08-10 11:44:31 +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
0637f762ea
Add network name to fields shown in relay notifications
2019-08-04 04:22:40 +01:00
Mark Veidemanis
4ce093bfbe
Implement a running count of the number of events per minute
2019-07-28 15:07:46 +01:00
Mark Veidemanis
9e1a6613a4
Implement sending of relay messages
2019-03-20 20:22:46 +00:00
Mark Veidemanis
488d81dac8
Fix a race condition in disabling networks post-creation, remove redundant bindhost code and fix a minor bug in the load command
2019-03-16 17:05:16 +00: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
7cd6bc3616
Purge metadata entries on quit and escape glob characters
2018-10-21 00:49:15 +01:00
Mark Veidemanis
7d7ef69d98
Avoid doing pointless lookups against numbered networks
2018-10-14 14:47:08 +01:00
Mark Veidemanis
44aa0f1727
Implement users command to see the mutual users of one or more channels and squash some bugs
2018-10-08 20:08:10 +01:00
Mark Veidemanis
a98ed4e4d0
Fix bug in the keyword module
2018-10-07 20:52:58 +01:00
Mark Veidemanis
cfefa1d627
Implement a command to get the channels common to one or more users
2018-10-07 20:48:39 +01:00
Mark Veidemanis
249e99805a
Implement optional x in y matching for attributes in the monitor system
2018-09-01 00:25:51 +01:00
Mark Veidemanis
2cb0b5d4a6
Add a count parameter to ensure all entries are searched
2018-08-27 21:10:49 +01:00
Mark Veidemanis
ad00e0c07d
Make the Redis socket configurable
2018-08-27 20:52:39 +01:00
Mark Veidemanis
36105c7e9a
Move user metadata info into redis
2018-08-27 20:42:49 +01:00
Mark Veidemanis
b31b5d40e8
Make monitor notifications ignore numbers to support multiple networks in only one reference
2018-08-26 19:08:27 +01:00
Mark Veidemanis
de5baf562b
Fix monitors to work properly with multiple groups
2018-08-19 16:02:14 +01:00
Mark Veidemanis
ae017eab36
Show the message on one line in monitor notifications
2018-07-28 22:32:24 +01:00
Mark Veidemanis
00985d29c5
Implement support for more attributes and handle data type collisions when merging monitor group definitions
2018-07-28 21:33:50 +01:00
Mark Veidemanis
bc87ffddf7
Implement monitoring system for flexible metadata matching
2018-07-27 22:58:37 +01:00
Mark Veidemanis
66e7785f6f
Implement query notifications and recognise ZNC's messages
2018-05-07 19:58:19 +01:00
Mark Veidemanis
369ddbe939
Additional checks on keyword matches to prevent errors when no part message is specified
2018-03-14 20:20:53 +00:00
Mark Veidemanis
d168d69732
Import the main module properly and fix some oddities in Twisted to prevent it from discarding some data
2018-03-14 20:14:02 +00:00
Mark Veidemanis
da6c45f093
Implement counting keyword events and a unified buffers system for when the master channel is unavailable
2018-03-10 13:54:04 +00:00
Mark Veidemanis
8dec0b6828
Implement counting of various IRC events
2018-02-24 12:42:27 +00:00
Mark Veidemanis
cb7142ef88
Separate out everything into files and implement a modules system to segment commands
2018-02-23 22:05:40 +00:00