3
0
mirror of https://github.com/jlu5/PyLink.git synced 2024-11-27 21:19:31 +01:00
Commit Graph

186 Commits

Author SHA1 Message Date
James Lu
8059f3f7fc Allow specifying login blocks that are local to certain networks 2017-08-07 16:16:17 -07:00
James Lu
21a39de0b4 corecommands: alias 'identify' to 'login' and 'id' 2017-08-07 16:15:54 -07:00
James Lu
2ff0007e56 exttargets: add $realname target 2017-08-06 21:41:44 -07:00
James Lu
4379ef68ef Migrate coremods.permissions to snake case 2017-08-02 22:24:23 +08:00
James Lu
f15f27168a services_support: log the reason as well when a service bot is killed 2017-08-02 22:15:19 +08:00
James Lu
3eb2c6bbf7 service_support: raise KILLs to service bots to INFO 2017-07-30 00:32:59 +08:00
James Lu
91659ea992 core: Properly track whether we should actually remove the PID file
Previously, PyLink spuriously removed PID files even if -n/--no-check-pid was set or if PID file checking caused PyLink to quit
2017-07-20 21:13:01 +08:00
James Lu
5a5a98c4ef services_support: migrate to conf.conf['pylink'], make the realname option optional 2017-07-14 05:51:40 -07:00
James Lu
a164924ce5 Merge branch 'conf-host' of https://github.com/cooper/PyLink into devel 2017-07-14 05:38:45 -07:00
James Lu
2e7fed84c1 IRCNetwork: mark connection_thread, pingTimer, socket, and queue as private 2017-07-12 22:56:30 -07:00
James Lu
3cc6ea1e88 corecommands: remove duplicate error logging when REHASH fails 2017-07-12 22:44:51 -07:00
James Lu
d57e141fbc control: log the name of the PID file on shutdown 2017-07-12 22:22:08 -07:00
James Lu
61db5d616d corecommands: use irc.get_hostmask instead of formatting the caller's hostname manually 2017-07-12 22:22:08 -07:00
James Lu
bb2b57f9dd control: mark signal handlers as private 2017-07-12 22:22:08 -07:00
James Lu
74f68c2176 control: mark rehash and shutdown as public 2017-07-12 22:22:08 -07:00
James Lu
22e6992770 core: consistently call die() with irc as a keyword argument 2017-07-12 22:22:08 -07:00
Mitchell Cooper
a1dfa14d20 allow realname to be specified the same way 2017-07-12 18:53:02 -04:00
Mitchell Cooper
33630e8f9d allow host to be specified in service bot block or per-network 2017-07-12 18:38:26 -04:00
James Lu
0e4737e59d handlers: strip away '(on $network)' portions of relay oper types if the source and target netname are the same 2017-07-12 07:57:07 -07:00
James Lu
9a2bff25ee control: migrate to new log_setup() name 2017-07-12 07:50:34 -07:00
James Lu
50e7b0ab13 Limit signon time in WHOIS replies to service bot targets
Faking signon time for relay clients, etc. is misleading...
2017-07-12 07:49:19 -07:00
James Lu
556c2efb0a Make showing startup time an option (whois_show_startup_time) 2017-07-12 07:44:18 -07:00
James Lu
adaa6021f9 handlers: use conf.conf['pylink'] 2017-07-12 07:35:51 -07:00
James Lu
6a0859f56a handlers: send PyLink's connect time via 317 (RPL_WHOISIDLE) 2017-07-12 07:32:50 -07:00
James Lu
7c5f1533a0 handlers: fix weirdly named variables 2017-07-12 07:32:40 -07:00
James Lu
883f9199ec control: move rehash signal to SIGUSR1, and shutdown on SIGHUP (terminal close)
PyLink technically isn't a daemon, so it's a bit odd to have it linger around after the controlling terminal has died.
2017-07-02 21:19:04 -07:00
James Lu
a204d2b2db core: convert IrcUser calls to User 2017-06-30 21:44:31 -07:00
James Lu
7d68c03101 various: convert sortPrefixes/getPrefixModes calls to snake case 2017-06-30 21:40:05 -07:00
James Lu
61ed209abb coremods, plugins: migrate to snake case for protocol communication 2017-06-30 21:30:20 -07:00
James Lu
ea455436c1 control: fix REHASH for 2.x protocol modules 2017-06-30 00:41:29 -07:00
James Lu
10bca676fc coremods, plugins: migrate to snake case 2017-06-29 23:01:39 -07:00
James Lu
748c1bc158 coremods: migrate irc.proto calls to irc 2017-06-25 02:09:55 -07:00
James Lu
f80c5df971 control: log the start and end of rehash to INFO 2017-06-02 08:46:27 -07:00
James Lu
60a0bcdc7a Rename config option log:stdout -> log:console
Closes #386.
2017-06-02 08:42:32 -07:00
James Lu
6e8f618f80 control: don't duplicate config validation 2017-06-02 08:34:59 -07:00
James Lu
04f88df385 Actually use 'irc' in main() and die() as a keyword argument (per docs) 2017-05-12 19:19:52 -07:00
James Lu
998beb51b5 control: move plugin shutdown & pidfile cleanup routines to atexit
It is possible for PyLink to shutdown indirectly by disconnecting all networks. In these cases, the shutdown routines never ran at all...
2017-05-12 19:13:02 -07:00
James Lu
7e51d3a7f5 service_support: fix service respawn on KILL 2017-05-12 18:45:27 -07:00
James Lu
457325024a service_support: reuse existing internal clients for service bots if one exists
Potential fix for #458.
2017-05-12 18:27:54 -07:00
James Lu
59dd8d3bf8 control: print remaining threads on forced shutdowns as well 2017-05-07 13:39:46 -07:00
James Lu
1358fedca6 exttargets: add $and exttarget (#334) 2017-05-04 18:00:32 -07:00
James Lu
dbeacf9249 exttargets: add a $network target (#334) 2017-05-04 17:16:50 -07:00
James Lu
348572bcb6 Irc: rewrite sendq to use queue.Queue, and add an upper bound (maxsendq)
Closes #430. Closes #442.
2017-03-31 17:41:56 -07:00
James Lu
40fa4f71bc corecommands: add a 'clearqueue' command to force clear queue muckups (#441) 2017-03-28 22:39:11 -07:00
James Lu
55873416a1 control: raise KeyboardInterrupt to speed up forced shutdowns? 2017-03-26 14:44:04 -07:00
James Lu
f497044777 corecommands: use utils.PLUGIN_PREFIX in 'unload' 2017-03-25 14:08:37 -07:00
James Lu
feb9cce4ee core: Drop fake ServiceBot client stubs on Clientbot (#403) 2017-03-23 23:53:43 -07:00
James Lu
c67c0aa2e6 rehash: fix resetting the wrong autoconnect multiplier variable 2017-03-11 01:05:07 -08:00
James Lu
2028cab04c core: Grow autoconnect delays by a configurable factor whenever connections fail
Closes #348.
2017-03-11 00:21:30 -08:00
James Lu
0526e96dc5 control: remove an extraneous, obsolete comment 2017-03-10 23:57:37 -08:00
James Lu
fb626c8a97 services_support: remove workarounds for the PyLink service nick & ident being in conf::bot (#343) 2017-03-10 23:47:07 -08:00
James Lu
b23a887edd login: remove all__vary_rounds setting (deprecated in Passlib 1.7) 2017-03-08 22:58:17 -08:00
James Lu
f6d9765f87 core: implement module loading from user-defined directories
Closes #350.
2017-03-08 22:31:57 -08:00
James Lu
e8bf1d08bc handlers, fantasy: migrate away from irc.botdata (#273) 2017-03-05 00:10:33 -08:00
James Lu
8a773dea4e core: normalize exit codes 2017-02-27 07:26:29 -08:00
James Lu
ae56ed6a32 services_support: fix service-specific key name 2017-02-26 18:11:20 -08:00
Ken Spencer
b3ec8a6790 service_support: allow server:service_channels for per service autojoin 2017-02-26 21:05:33 -05:00
James Lu
fe3fa2872d corecommands: remove extraneous irc.checkAuthenticated() call 2017-02-24 17:49:54 -08:00
James Lu
a9d2a2c4bc relay, handlers: rewrite oper WHOIS replies to show the target's home network 2017-02-18 13:51:45 -08:00
James Lu
a3f122fee4 control: try a more stable force-shutdown routine 2017-02-18 12:19:53 -08:00
James Lu
d6a6d069bc Move 'mkpasswd' to the commands plugin 2017-01-22 16:42:46 -08:00
James Lu
fd12a5d919 core: make passlib an optional dependency 2017-01-22 16:42:46 -08:00
James Lu
b2286157ef core: update stdout log level on REHASH 2017-01-07 00:12:35 -08:00
James Lu
e7a005b685 control: log remaining threads on shutdown, for debugging freezes 2016-12-16 19:42:12 -08:00
James Lu
7b5fcc3219 corecommands: use irc.error() in login fail wrapper 2016-12-16 19:06:33 -08:00
James Lu
5a066bfde4 corecommands: port to use the permissions API (#367) 2016-12-09 21:43:58 -08:00
James Lu
57aa844fcb permissions: limit "login = admin access" to old-style (< 1.1) login blocks 2016-12-09 20:57:01 -08:00
James Lu
e7e2f2c98e core: update "missing dependencies" errors
Closes #363.
2016-12-09 17:15:53 -08:00
James Lu
b3387f2d41 conf: fix deprecation warnings crashing because log is unavailable
This allows conf methods to access to global logger by via an optional 'logger' argument. However,
the caveat is that the logging facilities are still unavailable on first start, because log can
only be imported *after* the configuration is loaded.
2016-12-05 22:43:01 -08:00
James Lu
ffc271a53a login: Use a slightly faster CryptContext 2016-11-19 17:47:55 -08:00
James Lu
b1e4b34b79 Switch 'identify' to use the new login backend, add passlib to README dependencies
This new backend supports optional encryption (sha256_crypt / sha512_crypt via passlib). Closes #322.
2016-11-19 17:21:45 -08:00
James Lu
69066029f1 Simplify/rewrite the login module 2016-11-19 17:01:05 -08:00
James Lu
3308db0cd2 Import coremods/login.py (abstracted login checking) from @IotaSpencer's repo 2016-11-19 17:01:00 -08:00
James Lu
377df413ed Irc: s/isServiceBot/getServiceBot/g (#355)
This function is renamed to better reflect its return value (ServiceBot object instead of boolean True).
2016-11-09 19:09:59 -08:00
James Lu
08fa64c3cc Irc, services_support: store service name in IrcUser objects (#355) 2016-11-09 19:07:01 -08:00
James Lu
93ca62aa49 Revamp configuration to support multiple accounts (#319) 2016-11-07 21:01:28 -08:00
James Lu
b750bd4d15 coremods/control: ignore errors when removing PID file 2016-10-15 14:31:13 -07:00
Ken Spencer
bc4be815e4 coremods: make _shutdown remove running 'config'.pid 2016-10-15 16:50:25 -04:00
James Lu
438838f81d ServiceBot: handle autojoin additions even if bots haven't spawned yet 2016-09-24 12:33:57 -07:00
James Lu
1c60ad7251 services_support: honour joinmodes settings on kick-rejoin 2016-09-24 12:22:12 -07:00
James Lu
a040c3c7d2 ServiceBot: modularize join() for explicit channel joining (#326) 2016-09-23 23:43:07 -07:00
James Lu
0cce6ca488 service_support: allow specifying modes to join with for each service (#326)
This updates the example config to, by default, join Automode bots as op in channels.
2016-09-23 23:10:38 -07:00
James Lu
a12ed6ad35 services_support: hack around nick clashes between service clients & real users in Clientbot
For #327. Essentially what this does is tack on a nick prefix to all service bots introduced on a Clientbot network, using characters invalid for regular nicks.
2016-09-06 20:04:19 -07:00
James Lu
d1e2dfcf61 clientbot: only call spawnClient for new message sources after irc.pseudoclient is set 2016-09-01 13:08:20 -07:00
James Lu
e903a8226a permissions: move admin login clause into checkPermissions()
This is more persistent.
2016-08-31 13:32:42 -07:00
James Lu
556b388a4e core: Rehashable permissions; import coremods on start 2016-08-25 12:07:55 -07:00
James Lu
6af8e77ee1 permissions: apply add/removeDefaultPermissions on the right list 2016-08-25 12:07:36 -07:00
James Lu
f890ddac1b permissions, automode: work on default permissions & add example permissions config (#190)
- Fix possible type errors in add/removeDefaultPermissions by converting permlist values to sets.
- Fix wrong permission string being checked in automode.<command>.#channel
- automode: register and unregister default permissions on load/unload.
- permissions: add an 'also_show' argument to checkPermissions(), to display alternative permissions that weren't directly checked.
2016-08-25 11:45:57 -07:00
James Lu
b4b772354c permissions: fix inverted permissions list lookup 2016-08-25 00:58:19 -07:00
James Lu
91e39b7df9 WIP Permissions API (#190) 2016-08-25 00:45:05 -07:00
James Lu
126a07bdf6 core: rehashable file loggers with log rotation support
Closes #176. Closes #315.
2016-08-17 21:42:18 -07:00
James Lu
94aee8f05c Implement /TIME support (#228) 2016-08-12 19:19:09 -07:00
James Lu
a76bd8c5b2 core: make hostmask fetching a shared function 2016-08-12 19:18:56 -07:00
James Lu
e50684e367 Merge branch 'master' into devel 2016-08-04 10:29:17 -07:00
James Lu
a9fe0499e6 services_support: ignore invalid autojoin channels
Reported by @rvzm on IRC.

Closes #308.
2016-08-04 10:26:00 -07:00
James Lu
c9ce4d1507 Irc: make sorting in joinModes() an option, and explicitly enable it in WHOIS output
This prevents mode lists from being sorted when they really shouldn't be, such as when relaying mode changes ("+qo nick nick" became +oq nick nick").

(cherry picked from commit 4b27ebbee4)
2016-08-01 17:59:31 -07:00
James Lu
4b27ebbee4 Irc: make sorting in joinModes() an option, and explicitly enable it in WHOIS output
This prevents mode lists from being sorted when they really shouldn't be, such as when relaying mode changes ("+qo nick nick" became +oq nick nick").
2016-07-31 21:45:38 -07:00
James Lu
1ef89560e2 core: rename IrcUser.identified attribute to IrcUser.account 2016-07-29 20:16:05 -07:00
James Lu
f4922743fc core: SID and hostname options are now optional (#282)
Hostname defaults to a fallback hardcoded in world.fallback_hostname, while SID defaults to None (protocol modules have to deal with this themselves)
2016-07-28 22:23:59 -07:00
James Lu
8047186c58 plugins, coremods: remove usage of irc.conf (#273) 2016-07-27 17:02:04 -07:00