Mark Veidemanis
06903d872e
Add more comments and remove obsolete code
5 years ago
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
5 years ago
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
5 years ago
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
5 years ago
Mark Veidemanis
5777ef0cfe
Improve ZNC error message detection
5 years ago
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
5 years ago
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
5 years ago
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
5 years ago
Mark Veidemanis
06d3dd4d7e
Implement storing analytics on a LIST response
5 years ago
Mark Veidemanis
15b394bd79
Implement requesting a LIST and parsing the output
5 years ago
Mark Veidemanis
5eda50af13
Use net and num instead of name in relay output
5 years ago
Mark Veidemanis
78e4d6bd66
Rename 'message' to 'msg' and 'target' to 'channel'
5 years ago
Mark Veidemanis
ddadeb617c
Change message to msg in relay output and in functions, include name in connection notifications instead of net
5 years ago
Mark Veidemanis
89894287b3
Add error handling to exec command and fix minor bug in cleaning up relays
5 years ago
Mark Veidemanis
32309ecec2
Change alias definitions to be global, so aliases can be reused across different networks
5 years ago
Mark Veidemanis
355a80b19b
Fix the all and allc commands so they work with the new data format
5 years ago
Mark Veidemanis
15ca45e5df
Implement Ctrl-C handling and fix a large number of small bugs
5 years ago
Mark Veidemanis
2d70d5af11
Add error checking in places, set up automatic relay provisioning and fix starting bots
5 years ago
Mark Veidemanis
ff74968ff8
Merge branch 'master' into datarestructure
5 years ago
Mark Veidemanis
c63f301b7f
Defer initialUsers, initialNames and delChannel to threads to improve performance
5 years ago
Mark Veidemanis
22bd0d3ac6
Don't crash if the part message is null
5 years ago
Mark Veidemanis
f34ddab6fc
Improvements to query and self event detection, implement all command and debug flags
5 years ago
Mark Veidemanis
1ec0e1f7e6
Remove provisioning restrictions, move all user tracking code to monitoring module, fix proper network name not being passed to the relay
5 years ago
Al Beano
63539a4edb
Merge branch 'master' into datarestructure
5 years ago
Al Beano
e5adcfef4c
Rework data structures, storing all front-end network data in Network objects
5 years ago
Mark Veidemanis
1c8cbf808b
Send fake quit and nick messages to every channel
5 years ago
Mark Veidemanis
3a92ebab6b
Convert nickname and messages to lowercase before comparison
5 years ago
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
5 years ago
Mark Veidemanis
56840e0060
Add the network number in ZNC relay notifications
5 years ago
Mark Veidemanis
68c6aa969d
Remove keyword system, implement ZNC notifications to relay, remove exact from cast fields and fix security bug in relay
5 years ago
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
6 years ago
Mark Veidemanis
8926cb76ec
Renovate the module system and implement adding and resuming pool instances using the new relay/alias/network system
6 years ago
Mark Veidemanis
4efea3f535
Implement the backend for automatically provisioning relays
6 years ago
Mark Veidemanis
1c3435d0d7
Don't provision new user information on messages
6 years ago
Mark Veidemanis
3bf361134f
Make the stats command aware of duplicate networks
6 years ago
Mark Veidemanis
7cd6bc3616
Purge metadata entries on quit and escape glob characters
6 years ago
Mark Veidemanis
3b42f19291
Use the network name instead of the numbered instance name for counting events
6 years ago
Mark Veidemanis
36105c7e9a
Move user metadata info into redis
6 years ago
Mark Veidemanis
b31b5d40e8
Make monitor notifications ignore numbers to support multiple networks in only one reference
6 years ago
Mark Veidemanis
a61f74e578
Implement staggered WHO information collection to avoid detection
6 years ago
Mark Veidemanis
9e3ae677e1
Add config option for WHO loop interval
6 years ago
Mark Veidemanis
edea19222d
Implement support for modes and get WHO data on a loop
6 years ago
Mark Veidemanis
bc87ffddf7
Implement monitoring system for flexible metadata matching
6 years ago
Mark Veidemanis
66e7785f6f
Implement query notifications and recognise ZNC's messages
6 years ago
Mark Veidemanis
2e2e35cad7
Fix yet another typo
7 years ago
Mark Veidemanis
d168d69732
Import the main module properly and fix some oddities in Twisted to prevent it from discarding some data
7 years ago
Mark Veidemanis
5b1e3c6fb1
Implement counting nickname changes and remove check on listener
7 years ago
Mark Veidemanis
da6c45f093
Implement counting keyword events and a unified buffers system for when the master channel is unavailable
7 years ago
Mark Veidemanis
8dec0b6828
Implement counting of various IRC events
7 years ago
Mark Veidemanis
cb7142ef88
Separate out everything into files and implement a modules system to segment commands
7 years ago