252 Commits (a5fd7d60fd81af5ba5d75c4e7425c9dd00df379e)
 

Author SHA1 Message Date
Mark Veidemanis 7d9a45ee91 Add the time field to some notifications 4 years ago
Mark Veidemanis 913009ab71 Fix circular import in ChanKeep/provisioning modules 4 years ago
Mark Veidemanis 82c5c2d163 Start implementing prefixes 4 years ago
Mark Veidemanis 3acf182171 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
4 years ago
Mark Veidemanis 2a9869d0f9 Remove condition-based monitoring system 4 years ago
Mark Veidemanis 1640955e5c Fix various bugs in the event system
Squash many bugs in the event notification system and simplify the
code.
4 years ago
Mark Veidemanis 290e0b5f87 Fix syntax error in redis query 4 years ago
Mark Veidemanis 097f100ec5 Implement authentication detection
* pending command to see which instances have never authenticated
* authcheck command to see which instances are not currently
  authenticated
4 years ago
Mark Veidemanis 586a337ea4 Add help for pending command 4 years ago
Mark Veidemanis 5ee53ace4c Add additional error handling in user queries 4 years ago
Mark Veidemanis 81b0450904 Function to select and merge IRC network defs 4 years ago
Mark Veidemanis 5c6b626396 Check registration status before joining channels
Do not join channels if any relay for a network is unregistered.
4 years ago
Mark Veidemanis 4f9ca6088b Allow sending LIST to all networks at once 4 years ago
Mark Veidemanis efb9666b6a Add confirm command
Confirm command to check which relays need manual
confirmation.
4 years ago
Mark Veidemanis aec683ccce Remove leftover irc.json file 4 years ago
Mark Veidemanis a3cdb35e05 Implement registration and confirmation of nicks 4 years ago
Mark Veidemanis d99c3c394f Restructure provisioning into fewer functions 4 years ago
Mark Veidemanis 1ac1061348 Add irc.json to gitignore 4 years ago
Mark Veidemanis 690bf93676 Fix variable scope in LIST error handling 4 years ago
Mark Veidemanis f4e5d248d5 Separate provisioning into user and auth info 5 years ago
Mark Veidemanis 97a25334aa Add IRC network definitions 5 years ago
Mark Veidemanis 06903d872e Add more comments and remove obsolete code 5 years ago
Mark Veidemanis e3e522ad1e Add requirements 5 years ago
Mark Veidemanis 9c4ea94ebd Add requirements file 5 years ago
Mark Veidemanis a20fcdb8fc Remove some debugging code from ChanKeep 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 a64765121a Allow multiple arguments for the logging functions 5 years ago
Mark Veidemanis 5777ef0cfe Improve ZNC error message detection 5 years ago
Mark Veidemanis b97ebe43ab Only start one relay with the auto command
We only need one initial relay, as ChanKeep will automatically add as
many as it needs when receiving a LIST response.
5 years ago
Mark Veidemanis 6ad6d6dc50 Fix channel allocation when relays are provisioned
Fix a bug where the channel allocation algorithm failed due to
necessary relays not having been provisioned yet.
Passed the newly created relay numbers to the allocation function
and assumed their CHANMAX would be the same as all other relays for
the same network.
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 c3d0cb04b6 Pass all arguments from debug into print
Allows for multi-argument debug() statements without ugly + or %s
operators.
5 years ago
Mark Veidemanis 324af04de0 Don't return the same thing twice
The add_relay and provisionRelay functions both returned the alias.
Only use the output from one function.
5 years ago
Mark Veidemanis f9619a5bc4 Remove help entry for del 5 years ago
Mark Veidemanis 31c9e64790 Implement function to set up multiple relays 5 years ago
Mark Veidemanis 33cb173db6 Switch to using Redis for LIST storage 5 years ago
Mark Veidemanis 7e90080a2c Set up Redis database which isn't cleared on quit 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 a027a0b4f6 Fix getting user records by nickname
Use -1 to refer to unlimited records instead of an arbitrarily large
number.
5 years ago
Mark Veidemanis c92e618076 Remove the del command 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 aa54759337 Additional error checking on user record deletion 5 years ago
Mark Veidemanis f0fff7c958 Implement sorting relay output by custom keys 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