[18:35:42] AaronSchulz: has anything changed with LinksUpdate recently? Echo's page-linked notification broke again :/ [18:39:00] and I'm left wondering how this ever worked >.> [18:45:34] AaronSchulz: https://github.com/wikimedia/mediawiki/commit/22476baa85bdb70c60d4dcf15cb24fecb1c07d5e :/ [18:46:45] legoktm: due to root job de-duplication as well as attribution issues? [18:47:01] no, it's because you removed the setTriggeringUser code [18:54:20] legoktm: that feature should be re-thought, since I'm not sure how to deal with those problems [18:55:36] AaronSchulz: Do you have ideas on where else we can hook in to determine when new links get added and by whom? [18:56:37] using linksupdate hooks is fine for the first part (and does not need triggering user stuff in jobs). The second part is the hard one. [18:57:28] category membership RC stuff just handles it for direct edits to articles and for unconditional cat links for templates [18:57:44] for the later it just says "template X (and Y including pages) added to cat Z" [18:58:12] doesn't enumerate each transcluding page with the author [20:44:25] i'm looking to have restbase honor block suppressions, i found https://www.mediawiki.org/wiki/Manual:Hooks/BlockIpComplete, which seems like it would work to propagate blocks, but i don't see a hook that does the inverse [20:44:53] am i missing something? [20:45:10] including an alternative [20:45:44] Unpropogate blocks? [20:46:19] Reedy: propagate unblocks? :) [20:46:49] I guess there's 2 types of unblock [20:46:53] Users explicitly doing it [20:46:59] And them expiring [20:49:41] urandom: At quick glance, Special:Unblock needs a hook or 2 adding [20:50:22] You've definitely nothing you can use there [20:50:39] sweet! [20:50:49] For blocks expiring... [20:51:25] No obvious hook there [20:51:31] Can't say the last time I looked at that code :) [20:56:37] # Periodic purge via commit hooks [20:56:37] if ( mt_rand( 0, 9 ) == 0 ) { [20:56:37] Block::purgeExpired(); [20:56:37] } [20:56:53] urandom: You want a hook in there too then [20:57:26] Noting the delete is wrapped in a $dbw->onTransactionIdle [20:59:26] Reedy: yeah, and we need to know *what* is being deleted [20:59:52] array( 'ipb_expiry < ' . $dbw->addQuotes( $dbw->timestamp() ) ), $method ); [21:00:24] So cache the timestamp in local variable [21:00:29] Pass it in a hook [21:00:34] as a parameter [21:00:51] And put the Hook::run() call in onTransactionIdle too [21:00:54] Feels a bit icky [21:01:03] Someone else can advise on that [21:01:31] In which case, if it is deemed icky, you pass the timestamp to the anonymous function too [21:04:10] Reedy: i guess that delete needs to be changed to a select + delete [21:04:22] Why? [21:04:34] because the hook should pass along *what* was unblocked, no? [21:04:39] If you can't process the list of blocks and compare their block expiry [21:04:58] As long as you use the same exact timestamp, you should be removing the same one [21:05:09] (s) [21:05:10] Reedy: not sure i follow [21:05:23] you mean pass the timestamp to the hook, and let it query? [21:05:27] Yeah [21:05:40] don't you need two timestamps then? [21:05:45] oh, nm [21:05:49] entries are deleted [21:05:57] ok [21:06:13] no, wait...lol [21:06:40] Reedy: do you mean to call the hook *before* the delete? [21:06:48] No [21:07:00] after there will be nothing to query *for*, though [21:09:06] i presumed you were talking about it with having a local cache of blocks or something [21:10:03] well, that's possible [21:10:33] I feel like I'm missing something then [21:12:30] Reedy: well, at this point, why propagate an auto-unblock event at all? [21:13:03] if you propagated a block that includes an expiry, then you could handle the expiration on the receiving end [21:13:12] yeah [21:13:19] as long as you back populate from all current in the table etc [21:13:29] right [21:14:34] you'd need to do that anyway