Commit Graph

82 Commits

Author SHA1 Message Date
Mark Veidemanis e69ce5090a
Properly implement querying with API 2022-08-09 07:20:30 +01:00
Mark Veidemanis 813c9baf30
Get our hostname from WHO when we create fake events 2022-08-09 07:20:30 +01:00
Mark Veidemanis 220ce976f2
Fire a fake event when we send a message 2022-08-09 07:20:30 +01:00
Mark Veidemanis 14eb05722c
Add even more debugging 2022-08-11 20:21:39 +01:00
Mark Veidemanis 11c226833d
Add more LIST handling debugging 2022-08-11 20:18:49 +01:00
Mark Veidemanis c983a8e3b6
Allow gaps in relay numbering 2022-08-11 19:22:09 +01:00
Mark Veidemanis 4a8605626a
Begin work on API endpoint 2022-07-21 13:40:11 +01:00
Mark Veidemanis 80c016761f
Reformat again 2022-07-21 13:40:09 +01:00
Mark Veidemanis 7a0e2be66c
Remove some legacy code 2022-07-21 13:40:07 +01:00
Mark Veidemanis 2fecd98978
Reformat project 2022-07-21 13:40:05 +01:00
Mark Veidemanis 4ecb37b179
Reformat and fix circular import 2022-07-21 13:40:03 +01:00
Mark Veidemanis 27cafa1def
Revert "Reformat project"
This reverts commit 64e3e1160aa76d191740342ab3edc68807f890fb.
2022-07-21 13:40:01 +01:00
Mark Veidemanis da678617d8
Reformat project 2022-07-21 13:39:59 +01:00
Mark Veidemanis 4669096fcb
Don't attempt secondary registration if it is disabled 2022-07-21 13:39:57 +01:00
Mark Veidemanis 2177766d90
Rename time to ts 2022-07-21 13:39:54 +01:00
Mark Veidemanis 4734a271a1
Extra error handling around emails 2022-07-21 13:39:52 +01:00
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