[00:00:18] people probably dont read it when yall ask either way lol [00:01:03] better change [00:01:28] i would honestly think that by making it required to click the page it would be better for page retention [00:02:56] hm [00:02:57] maybe [00:03:10] if they are sent there [00:28:59] wait [00:29:00] https://cdn.discordapp.com/attachments/1006789349498699827/1263653787059355711/B2PonSt.png?ex=669b04cc&is=6699b34c&hm=d4896c380d571a4e661c5cff7a3e3537f4049c7eccd89125cb9fead49e825219& [00:29:07] # LETS FUCKING GOOOOOOOOO [00:29:28] cluebot ng core local [00:29:29] WO [00:32:22] heeey @suzuneu what are your thoughts on [my sorry ass] using the heart of the most famous wikipedia bot to boost #cvt-feed [00:39:26] (ill be working on this late august most likely) [00:39:36] maybe some next week or august [00:39:54] depends if i can get a dev env online [00:53:09] main thing needed is to be able to get a stream of every edit to miraheze and run it through [00:53:13] not sure how [00:53:20] but im sure itll be fine [00:54:01] then I can make a bot wrapperto reprot [01:06:25] https://github.com/cluebotng/bot ref for what to do ig [01:21:51] Could you test this with adblocker off and a skin other than... I'm guessing that's citizen? Citizen's been a bit unfriendly in some edge cases with managewiki. [01:22:35] I have my adblocker off but yeah I can try with a different skin [01:22:44] I've only seen it happen on citizen so maybe that's why it's doing that [01:23:36] The other extremely dumb thing I've seen work is creating a test group with one permission, which then seems to kick something into gear and start displaying the delete tab [01:25:22] [1/2] nope I tried a different skin and it still doesn't display [01:25:23] [2/2] https://cdn.discordapp.com/attachments/1006789349498699827/1263667972371906570/1721352317442.png?ex=669b1202&is=6699c082&hm=c895cc291f01333c8724346a4cd15f4839a6c052e7bb44a5172556c8a182afe4& [01:26:00] Hmmm, could you try re-assigning and saving one permission to that group you're trying to get rid of first? [01:26:38] [1/2] didn't seem to fix it [01:26:39] [2/2] https://cdn.discordapp.com/attachments/1006789349498699827/1263668291315040348/1721352393583.png?ex=669b124e&is=6699c0ce&hm=479e1795abf57e21a189a28fa95ccb28e7c43b69f9e4ed5411b6f8b920a1b2e4& [01:26:47] (Thanks for bearing w/ me, definitely frustrating when stuff doesn't work.) [01:27:45] If you don't mind, what's the wiki this is happening on? I'll take a quick peek and see if I can spot anything amiss [01:28:19] https://removededm.com/Special:ManageWiki/permissions/bureaucrat this is the specific group I'm trying to remove (I had it removed before but it was recreated when I enabled an extension) [01:48:49] @clowntelevision hiiiiiii! [01:48:54] hiiiii ‼️ [01:49:03] welcome to our humble discord [01:49:10] and my yaps above [01:49:28] thank you thank you [01:49:59] you can see me trying to get this to work lol [01:50:23] (huge thanks to rhinos and orangestar for helping me with fighting C) [01:50:58] c'est la vie [01:51:12] sorry i am so tired i am out of silly funny clownery but i promise im interested [01:51:39] its 10 pm so thats fair [01:51:46] im also pwaped [01:52:00] i went to bed at like 2-3am and woke up at 9am so i was already on fumes i fear [01:52:11] i think. i actually can't remember [01:52:21] i went to sleep at 1 and woke up 9ish lol [01:52:34] summer been a mess for my sleep schedule [01:52:36] 8 hours of sleep .perfect for coding [01:52:46] partly because of wiki yaps [01:52:51] 🤝 [01:58:45] There should be a tab that says "delete" and you check the box and delete the perm when you save it. [01:58:52] oh i replied to the wrong person [01:58:56] lmao [01:58:58] sorry, [01:59:00] dont delete clown [01:59:05] thats mean [01:59:06] please do not delete me :o( but also hi there! [01:59:20] what happened to dont bite the newcomers [01:59:25] cc. @notaracham @elliethepwincess [01:59:38] this is OA the british one [01:59:40] LMAO [01:59:45] (im sorry) [01:59:51] jk hes very cool [01:59:59] he seems swell [02:00:05] and can actually make extensions (#offtopic) [02:00:31] Yeah, tab is missing when I tested locally, something's funky over there [02:00:44] iirc @tali64 also said he had the same issue on a different wiki? [02:01:07] yes missing on my installation too. [02:01:08] fun [02:01:22] I did [02:01:23] ladies and gents [02:01:27] managewiki [02:04:18] [1/13] I think its this: [02:04:18] [2/13] ``` [02:04:18] [3/13] "ManageWikiPermissionsPermanentGroups": { [02:04:18] [4/13] "description": "Array. List of user groups that should always exist on the permissions selector.", [02:04:19] [5/13] "public": true, [02:04:19] [6/13] "value": [ [02:04:19] [7/13] "*", [02:04:20] [8/13] "user", [02:04:20] [9/13] "sysop", [02:04:20] [10/13] "bureaucrat" [02:04:21] [11/13] ] [02:04:21] [12/13] }, [02:04:22] [13/13] ``` [02:04:30] although it doesn't let you delete a group that is not defined there heh [02:04:34] i think the check is borked [02:19:55] Hrm, is it possible that the * is being overapplied as a wildcard rather than literal? [02:30:40] Relevant check: `if ( $ceMW && ( count( $permList['permissions'] ?? [] ) > 0 ) && ( !in_array( $group, $config->get( 'ManageWikiPermissionsPermanentGroups' ) ) ) )`; the `in_array()` function is not set to strict mode (i.e. ignoring types when checking for the item in the list), so that could very well be a possibility [02:34:54] @RhinosF1 do you think I should contact one of the maintainers of CBNG to merge my changes fixing the docker container or smt in case anyone else wanna use? [02:35:10] dont think that pinged [02:35:19] if not could someone plz ping discord side [02:46:43] I see ping [02:49:30] thought the caps would cause issues [02:49:36] thanks void :heart: [04:29:40] are folks aware that the Math extension is semi-broken since the update? "Math extension cannot connect to Restbase" is the error, and because the extension works by connecting to a wikimedia server to do the parsing, it might be some kind of permissions issue [04:29:48] don't wanna bother folks if it's a known issue, can maybe look into it myself otherwise [04:30:18] note I say semi-broken because this error is kind of spurious and sometimes purging the page fixes it, sometimes not [04:31:21] That's interesting and first I'm hearing of that particular flavor of error, pinging @Technology Team for visibility [04:32:13] Nope, worth creating a task, IMO [04:33:27] If you could create a task on [[phorge]] w/ the most persistant errors, that'd go a long way to helping folks debug + help others using math extension [04:33:28] [04:34:07] yeah, I definitely can create a Phorge issue; just didn't wanna bother anyone if it was already a known thing [04:35:35] Appreciated, while most of the 1.42 upgrade has gone okay they're triaging a number of things of various levels of WTF, a ticket will avoid it getting lost. [04:35:54] certainly, and I hadn't really been following the upgrade, which is why I figured I should ask first :p [04:40:40] https://issue-tracker.miraheze.org/T12360 [06:02:56] I know they'd been fiddling with client side math and stuff [06:03:03] Cause wikimedia restbase is going away [06:03:06] So oops [06:03:14] I guess we missed a change [06:03:21] @ltdk [06:03:32] Well have to redo config to whatever now is [06:03:36] oh, that makes sense [06:04:52] hmm, apparently you can just set the extension to use the internal restbase instead [06:04:55] not sure how exactly that works [06:05:15] admittedly it's weird that the math extension has to go through restbase at all, and can't just run the code locally [06:06:14] why is restbase a thing? [06:06:53] that's a good question [06:06:59] a bug in Extension:TextExtracts causing Extension:Popups to not work is still in my mind, and yet the only current fix is to use the page content service [06:47:23] We don't have restbase [06:47:29] BlankEclair: it slowly isn't [06:53:08] We need to either change it to mathoid [06:54:56] Force it to Wikimedia's [06:55:10] Or use MathJax [06:55:15] Or MathML [06:55:37] https://caniuse.com/mathml [06:58:52] That would increase chrome /edge minimum from 91 to 109 [07:01:11] Unless you enable experimental flags [07:01:15] BlankEclair: thoughts? [07:01:32] @ltdk [07:01:46] why is wmf restbase not working? [07:02:13] is it in a "idrc if it works or doesn't" sorta mode? [07:02:47] BlankEclair: I believe it's going away eventually [07:02:58] So I'm not inclined to debug it [07:03:11] If we have alternatives [07:03:37] honestly, considering just how few people rely on the math extension on Mira combined with MathML having 95% support on CIU, I'd be inclined to just go with that option [07:04:38] how is mathml rendered? client-side with no js? [07:04:48] Client side [07:04:59] yeah, MathML is part of HTML now [07:05:03] huh neat [07:05:38] If someone wants to make a patch [07:05:39] it's also more screen reader accessible than SVGs or other rendering methods so most that don't use it still add an SR-only MathML rendering too [07:05:40] > [19/07/2024 16:54] Force it to Wikimedia's [07:05:44] wikimedia's what? [07:05:52] Well it should be doing that anyway [07:06:08] But I'm not included to debug their broken thing that relies on beta cluster [07:06:14] Which is a privacy risk anyway [07:06:17] I'm gonna sleep soon but I can probably look into making a patch tomorrow [07:06:20] i'm an advocate for no-js browsing, so in order (i haven't checked browser compat yet), mathml -> mathoid -> mathjax -> wmf solution [07:06:28] I'm logging into work at the moment [07:06:35] i;m snacking at the moment [07:06:47] yay time zones [08:08:52] my favorite kind of zones 👍 [08:18:53] welcome to the EventStream waiting list [09:20:59] How long is that now? [09:21:37] it was planned back when we did the whole kafka job queue [09:21:49] however efforts have died down since then [09:22:31] ye [09:22:44] Most of the infra should be there cause we already got Kafka [09:22:53] We just need to publish public streams [09:26:45] @bluemoon0332 at least we don't use Crowdstrike [12:14:36] Worst case I scrape #global-wiki-feed on irc [12:19:33] How much work would it be [12:20:03] Wtf happened with that [12:20:33] A fair bit [12:20:46] Broke update stopped level starting correctly [12:20:47] I saw ping about that in the Pirate Software discord [12:21:00] Once again and English please [12:22:11] Deep in the operating system at boot time things went very wrong [12:22:19] Cause someone pushed a broken update [12:22:29] Said someone has probably been throwing up all morning [12:22:30] Who’s crowdstroke again [12:22:36] Cybersecurity firm [12:22:57] It's Norton/McAfee/Kapersky for the big corporate world [12:24:03] And their servers went kaput? [12:24:31] and staff's laptops [12:24:34] Everything [12:24:39] It's really really bad [12:24:39] LMAO [12:24:55] Muy no beuno [12:25:33] basically anything running a really popular piece of corporate cyber security software that had fully applied this content update and rebooted is now utterly borked and stuck in a blue screen loop until you boot into safe mode and delete a file [12:26:25] I- [12:26:35] -# oh [12:26:38] I see [12:33:51] this means that custom cat ear colors for misskey got more testing than a driver update [12:34:19] [1/2] Even the Formula1 Safetycar is sponsored by CrowdStrike 😄 [12:34:19] [2/2] Doesn't sound safe anymore 😄 [12:57:33] That is the funniest shit I’ve heard in a while [12:57:36] Thank you Claire [12:57:46] you're welcome lmao [12:58:09] i went through the effort of getting nginx + ssl to work all on a subdomain i kind of control [12:58:31] just so i can test federated cat ear colors [12:58:57] Kind of? [12:59:28] Wonder which poor soul crowdstroke is gonna fire [12:59:28] messwithdns.net [12:59:34] Ah [13:33:27] What would it entail [13:33:56] are we still on kafka? [13:34:16] I think so [13:34:59] I still have trauma from that move [13:37:27] Anyways, since I’d need scrape the irc feed, and call the API for more information, for every edit [13:37:37] I think python may not be the best choice [13:38:00] depends [13:38:10] The irc wiki specific feeds are Python [13:39:59] Although frankly depending on edit volume and how many API calls I need per edit [13:40:05] It may just get rate limited [13:40:28] What’s our rate limiting rules currently [13:41:08] Wonder if I can gaslight Waki into writing it in rust [13:51:27] Depends [13:51:38] Cloudflare's are dynamic [13:51:56] Although you're not making multiple api calls per edit [13:52:19] I will ban your ip if you make multiple api calls for every edit to the farm [13:53:25] 😳 definitely not my plan [13:53:30] Now [13:54:22] if you need that sort of data, we need to be pushing it to you [13:54:50] I don't really think it's possible without event streams [13:55:05] Or some sort of webhook like discord notifications uses [13:55:44] Custom extensions maybe? [13:55:56] [1/32] ```xml [13:55:56] [2/32] [13:55:57] [3/32] [13:55:57] [4/32] [13:55:57] [5/32] change/EditType [13:55:57] [6/32] 1022572696/EditID [13:55:58] [7/32] / Political career //comment [13:55:58] [8/32] JamesVilla44/user [13:55:58] [9/32] 9146/user_edit_count [13:55:59] [10/32] [13:55:59] [11/32] 1/user_warns [13:56:00] [12/32] JamesVilla44/prev_user [13:56:00] [13/32] 1553976920/user_reg_time [13:56:01] [14/32] [13:56:01] [15/32] 1620437208/page_made_time [13:56:02] [16/32] Angelique Foster/title [13:56:02] <MirahezeRelay> <pixldev> [17/32] <namespace>Main:/namespace [13:56:03] <MirahezeRelay> <pixldev> [18/32] <creator>Moondragon21/creator [13:56:03] <MirahezeRelay> <pixldev> [19/32] <num_recent_edits>14/num_recent_edits [13:56:04] <MirahezeRelay> <pixldev> [20/32] <num_recent_reversions>0/num_recent_reversions [13:56:04] <MirahezeRelay> <pixldev> [21/32] /common [13:56:05] <MirahezeRelay> <pixldev> [22/32] <current> [13:56:05] <MirahezeRelay> <pixldev> [23/32] <minor>false/minor [13:56:06] <MirahezeRelay> <pixldev> [24/32] <timestamp>1620720638/timestamp [13:56:06] <MirahezeRelay> <pixldev> [25/32] <text>The current contents/text [13:56:07] <MirahezeRelay> <pixldev> [26/32] /current [13:56:07] <MirahezeRelay> <pixldev> [27/32] <previous> [13:56:08] <MirahezeRelay> <pixldev> [28/32] <timestamp>1620720514/timestamp [13:56:08] <MirahezeRelay> <pixldev> [29/32] <text>The previous contents/text [13:56:09] <MirahezeRelay> <pixldev> [30/32] /previous [13:56:09] <MirahezeRelay> <pixldev> [31/32] /WPEdit [13:56:10] <MirahezeRelay> <pixldev> [32/32] /WPEditSet``` [13:56:24] <MirahezeRelay> <rhinosf1> Ye [13:56:33] <MirahezeRelay> <rhinosf1> You ain't get that much data for every edit [13:56:35] <MirahezeRelay> <pixldev> Yeah there’s NO way to get all this in one api call plus IRC [13:56:46] <MirahezeRelay> <rhinosf1> Not without us pushing it to you [13:56:46] <MirahezeRelay> <pixldev> You need the user data previous edit [13:56:56] <MirahezeRelay> <pixldev, replying to rhinosf1> Correction [13:56:57] <MirahezeRelay> <pixldev> It’s possible [13:57:00] <MirahezeRelay> <pixldev> But not at real time [13:57:16] <MirahezeRelay> <rhinosf1> Or you having to effectively have either run behind real time [13:57:21] <MirahezeRelay> <pixldev> If you limit it you can get it but it’ll fall behind life REAL fast [13:57:26] <MirahezeRelay> <rhinosf1> By quite a bit [13:57:39] <MirahezeRelay> <rhinosf1> Although, do you really want every wiki at first [13:57:42] <MirahezeRelay> <pixldev> By the time you get an edit the wiki has been closed [13:57:46] <MirahezeRelay> <pixldev, replying to rhinosf1> That’s fair [13:58:07] <MirahezeRelay> <pixldev> Meta can be excluded since high visibility but don’t do much [13:58:09] <MirahezeRelay> <rhinosf1> Because if you did it as a test, it might make SRE want to event streams so they don't have to kill you [13:58:45] <BlankEclair> hm? what's happening? [13:58:51] <MirahezeRelay> <pixldev> I’m about to trigger a civil war between CVT and Tech [13:59:08] <BlankEclair> oh neat [13:59:21] <MirahezeRelay> <pixldev> LMAO [13:59:59] <BlankEclair> what's the war about [14:00:00] <MirahezeRelay> <pixldev> I’ve been thinking about supercharging #miraheze-cvt-feed [14:00:17] <MirahezeRelay> <pixldev> Using the core from [[w:User:CluebotNG]] [14:00:18] <MirahezeRelay> <Wiki-Bot#2998> <https://en.wikipedia.org/wiki/User:CluebotNG> [14:00:20] <MirahezeRelay> <pixldev> The issue is [14:00:32] <MirahezeRelay> <pixldev> It needs multiple api calls of data [14:00:36] <MirahezeRelay> <pixldev> For every edit on the farm [14:00:50] <MirahezeRelay> <pixldev> Here [14:00:52] <MirahezeRelay> <pixldev> [1/32] ```xml [14:00:52] <MirahezeRelay> <pixldev> [2/32] <?xml version="1.0"?> [14:00:52] <MirahezeRelay> <pixldev> [3/32] <WPEditSet> [14:00:52] <MirahezeRelay> <pixldev> [4/32] <WPEdit> [14:00:53] <MirahezeRelay> <pixldev> [5/32] <EditType>change/EditType [14:00:53] <MirahezeRelay> <pixldev> [6/32] <EditID>1022572696/EditID [14:00:53] <MirahezeRelay> <pixldev> [7/32] <comment>/ Political career //comment [14:00:54] <MirahezeRelay> <pixldev> [8/32] <user>JamesVilla44/user [14:00:54] <MirahezeRelay> <pixldev> [9/32] <user_edit_count>9146/user_edit_count [14:00:54] <MirahezeRelay> <pixldev> [10/32] <user_distinct_pages /> [14:00:55] <MirahezeRelay> <pixldev> [11/32] <user_warns>1/user_warns [14:00:55] <MirahezeRelay> <pixldev> [12/32] <prev_user>JamesVilla44/prev_user [14:00:56] <MirahezeRelay> <pixldev> [13/32] <user_reg_time>1553976920/user_reg_time [14:00:56] <MirahezeRelay> <pixldev> [14/32] <common> [14:00:57] <MirahezeRelay> <pixldev> [15/32] <page_made_time>1620437208/page_made_time [14:00:57] <MirahezeRelay> <pixldev> [16/32] <title>Angelique Foster/title [14:00:57] <BlankEclair> oh dear [14:00:58] <MirahezeRelay> <pixldev> [17/32] <namespace>Main:/namespace [14:00:58] <MirahezeRelay> <pixldev> [18/32] <creator>Moondragon21/creator [14:00:59] <MirahezeRelay> <pixldev> [19/32] <num_recent_edits>14/num_recent_edits [14:00:59] <MirahezeRelay> <pixldev> [20/32] <num_recent_reversions>0/num_recent_reversions [14:01:00] <MirahezeRelay> <pixldev> [21/32] /common [14:01:00] <MirahezeRelay> <pixldev> [22/32] <current> [14:01:01] <MirahezeRelay> <pixldev> [23/32] <minor>false/minor [14:01:01] <MirahezeRelay> <pixldev> [24/32] <timestamp>1620720638/timestamp [14:01:02] <MirahezeRelay> <pixldev> [25/32] <text>The current contents/text [14:01:02] <MirahezeRelay> <pixldev> [26/32] /current [14:01:03] <MirahezeRelay> <pixldev> [27/32] <previous> [14:01:03] <MirahezeRelay> <pixldev> [28/32] <timestamp>1620720514/timestamp [14:01:04] <MirahezeRelay> <pixldev> [29/32] <text>The previous contents/text [14:01:04] <MirahezeRelay> <pixldev> [30/32] /previous [14:01:05] <MirahezeRelay> <pixldev> [31/32] /WPEdit [14:01:05] <MirahezeRelay> <pixldev> [32/32] /WPEditSet``` [14:01:06] <MirahezeRelay> <pixldev> I mean [14:01:19] <BlankEclair> the data is sent by an extension on the mediawiki appservers right? [14:01:21] <MirahezeRelay> <pixldev> I actually got the core working locally yesterday with rhinos’ help [14:01:22] <BlankEclair> is currently* [14:01:26] <MirahezeRelay> <pixldev> Hm? [14:01:34] <BlankEclair> as in whatever currently powers the cvt feed [14:01:53] <MirahezeRelay> <pixldev> Actually @rhinosf1 where does the current feed come from [14:02:04] <BlankEclair> last time i checked it was sent to some udp socket iirc [14:02:25] <BlankEclair> doesn't help that i am sleep deprived and am working on ✨ custom cat ear color tests ✨ right now [14:03:35] <BlankEclair> oh the recent change feed for irc is powered by the udp socket... for discord i'm guessing it's whatever discord's http webhook api is [14:04:18] <MirahezeRelay> <pixldev> Yeah discord is webhooks [14:04:34] <BlankEclair> $wgDiscordIncomingWebhookUrl = $wmgGlobalDiscordWebhookUrl; [14:04:54] <MirahezeRelay> <pixldev> Webhooks have No security so they’re private [14:05:06] <BlankEclair> the security is in their url [14:05:10] <MirahezeRelay> <pixldev> Anyways ideally we’d have event streams to get the data [14:05:18] <MirahezeRelay> <pixldev> I think that’s what clue uses [14:05:30] <MirahezeRelay> <pixldev> But it’s not currently implemented [14:05:52] <BlankEclair> wonder if you could impl that on the mediawiki server-side of things [14:05:59] <MirahezeRelay> <pixldev> That’s what I was thinking [14:06:02] <MirahezeRelay> <pixldev> An extension [14:06:05] <BlankEclair> so just more expensive ops and in a different format [14:06:08] <MirahezeRelay> <pixldev> Get the data [14:06:10] <MirahezeRelay> <pixldev> Stream it [14:06:32] <MirahezeRelay> <pixldev> I’d need to figure out the architecture [14:06:39] <MirahezeRelay> <pixldev> I don’t wanna do stuff in PHP too much [14:06:43] <BlankEclair> what are event streams btw [14:07:22] <MirahezeRelay> <pixldev> https://wikitech.wikimedia.org/wiki/Event_Platform/EventStreams_HTTP_Service [14:08:17] <MirahezeRelay> <pixldev> Likely the extension gets the data streams it to the software we make on the miraheze servers or else where which sends it to core to score it then if it passes a threshold sends a webhook with details to discord [14:08:22] <BlankEclair> huh neat [14:08:35] <BlankEclair> so json in server-side events right? [14:08:41] <MirahezeRelay> <pixldev> I’d write it in python since I don’t know other languages well [14:08:46] <MirahezeRelay> <pixldev> But that may be too slow [14:09:00] <MirahezeRelay> <pixldev> I could gaslight Waki to write it in rust if he’s willing lmao [14:09:07] <MirahezeRelay> <pixldev> One thing I do wanna try it Moji [14:09:09] <BlankEclair> c++ /jk [14:09:10] <MirahezeRelay> <pixldev> Mojo* [14:09:18] <BlankEclair> /hj& [14:09:22] <MirahezeRelay> <pixldev, replying to BlankEclair> I’d rather kms [14:09:29] <BlankEclair> oh my god i tried to type /hj* [14:09:32] <MirahezeRelay> <pixldev> /joke [14:10:44] <MirahezeRelay> <pixldev> I wanna see if this might work to write it in python but faster https://en.wikipedia.org/wiki/Mojo_(programming_language) [14:11:04] <MirahezeRelay> <pixldev> Guys object developer syndrome isn’t talking what are you talking about [14:11:25] <MirahezeRelay> <pixldev, replying to pixldev> @rhinosf1 have you ever used this btw? [14:11:34] <BlankEclair> object developer syndrome? [14:11:46] <MirahezeRelay> <pixldev> Replaced the wrong word [14:11:49] <MirahezeRelay> <pixldev> Shiny object syndrome [14:11:58] <BlankEclair> heh [14:12:28] <BlankEclair> i think the most recent programming language i've touched is racket [14:12:38] <BlankEclair> i can tell very easily that i do not like lisp [14:12:39] <MirahezeRelay> <pixldev> Racket? [14:12:44] <MirahezeRelay> <pixldev> I’ve never heard of it [14:13:42] <MirahezeRelay> <pixldev> I need to work more on learning rust maybe [14:13:49] <BlankEclair> i'd send you a code sample but i don't think i should [14:13:59] <MirahezeRelay> <pixldev> Although Mojo is something I’m interested in driving [14:14:03] <MirahezeRelay> <pixldev> Oh? [14:14:17] <BlankEclair> a sample of what i did with racket [14:21:15] <MirahezeRelay> <pixldev> What did you do [14:27:05] <MirahezeRelay> <pixldev, replying to BlankEclair> Claire. What did you do [14:27:17] <BlankEclair> that sounded like a threat [14:27:30] <MirahezeRelay> <pixldev> It’s an… [14:27:32] <MirahezeRelay> <pixldev> Inquiry [14:27:52] <BlankEclair> can't share for privacy reasons [14:27:56] <MirahezeRelay> <pixldev> Oh okay [14:35:00] <MirahezeRelay> <rhinosf1, replying to pixldev> No [14:36:11] <MirahezeRelay> <pixldev> Should be interesting if it works [15:39:56] <MirahezeRelay> <rhinosf1, replying to pixldev> Why did you say that [15:40:29] <MirahezeRelay> <pixldev> Comedy [15:40:40] <MirahezeRelay> <pixldev> I kinda wanna test mojo [15:41:02] <MirahezeRelay> <pixldev> Any ideas for a simple preformance heavy script to bench against python? [15:41:28] <MirahezeRelay> <pixldev> I know it’s not plug and boost there’s new syntax like low level stuff but [15:47:43] <BlankEclair> pixldev: start = time.monotonic(); # ...; duration = time.monotonic() - start [15:47:47] <BlankEclair> alternatively, the timeit library [15:48:21] <BlankEclair> https://docs.python.org/3/library/timeit.html [15:48:26] <MirahezeRelay> <pixldev> Typically liner counters are shortened by the Python interpreter I think but I’ll see [15:48:48] <MirahezeRelay> <pixldev> Let me finish this and then work on that [15:49:23] <MirahezeRelay> <pixldev> God I love the crane wives [15:49:32] <BlankEclair> no idea cranes had wives [15:50:24] <MirahezeRelay> <pixldev> Lmao [15:50:26] <MirahezeRelay> <pixldev> It’s a band [15:50:29] <MirahezeRelay> <pixldev> I love them [15:51:39] <MirahezeRelay> <pixldev> If you’ve never heard [15:51:41] <MirahezeRelay> <pixldev> Sorry for your los [15:52:26] <BlankEclair> oh right you mentioned it in offtopic [15:52:38] <MirahezeRelay> <pixldev> i yap a lot [15:52:45] <MirahezeRelay> <pixldev> ty spotify this is my favorite song [15:53:42] <MirahezeRelay> <pixldev> sidenote [15:54:08] <MirahezeRelay> <pixldev> mojo supports .🔥 as an file extension [15:54:14] <BlankEclair> yep heard of that [15:54:25] <BlankEclair> i mean python also supports .eepy as a file extension [15:54:33] <MirahezeRelay> <pixldev> theres no way [15:56:08] <BlankEclair> > cat > iam.eepy << EOF [15:56:09] <BlankEclair> print("i need eep") [15:56:11] <BlankEclair> EOF [15:56:12] <BlankEclair> > python iam.eepy [15:56:14] <BlankEclair> i need eep [15:57:01] <MirahezeRelay> <pixldev> oh yes [15:57:10] <MirahezeRelay> <pixldev> its midnight in 4 minutes for you [15:57:14] <MirahezeRelay> <pixldev> gotta love timezones [15:57:18] <BlankEclair> it's already midnight [15:57:28] <BlankEclair> it's about to be 2 am in three minutes [15:57:32] <MirahezeRelay> <pixldev> oh [15:57:40] <MirahezeRelay> <pixldev> i was thinking of CA whos 12 hours aheadf [15:57:49] <BlankEclair> xd [15:58:44] <BlankEclair> file extensions are just an arbitrary concept [15:58:46] <BlankEclair> https://www.youtube.com/watch?v=VVdmmN0su6E [15:59:16] <MirahezeRelay> <pixldev> Mojo seems geared to AI and heavy computation and calculations it seems [15:59:53] <MirahezeRelay> <pixldev> I'm not sure how much it would help in simple throughput of event streams passd to a websocket and then to a webhook ngl [16:01:23] <MirahezeRelay> <pixldev> maybe i should suck it up and learn rust [16:03:52] <BlankEclair> imagine a bash implementation of this [16:04:54] <MirahezeRelay> <pixldev> id really rather not [16:05:01] <MirahezeRelay> <pixldev> unless you're volunteering [16:05:45] <BlankEclair> an exercise left to the reader [16:06:10] <BlankEclair> you have curl for requests and jq for json [16:06:23] <BlankEclair> though you gotta parse the SSE format somehow [16:06:34] <MirahezeRelay> <pixldev> idk [16:07:00] <BlankEclair> i'm thinking aloud bad ideas [16:07:15] <MirahezeRelay> <pixldev> im either gonna wait for tech to roll eventstreams and plagiarise clue [16:08:02] <MirahezeRelay> <pixldev> or run with using only IRC and the API [16:08:06] <MirahezeRelay> <pixldev> and roll it on a subset of wikis [16:08:26] <MirahezeRelay> <pixldev> maybe figure out a logical list of wikis that have high or low traffic [16:08:28] <BlankEclair> imma go eep, nini [16:08:32] <MirahezeRelay> <pixldev> or just roll a dice [16:08:34] <MirahezeRelay> <pixldev> nini [16:08:53] <MirahezeRelay> <pixldev> im gonna keep thinking on this idea [16:08:55] <BlankEclair> btw if you didn't know, you could import antigravity in python [16:08:59] <MirahezeRelay> <pixldev> maybe by september i - [16:09:02] <MirahezeRelay> <pixldev> say wa now [16:09:09] <BlankEclair> yeah part of the stdlib [16:09:22] <MirahezeRelay> <pixldev> what does it do [16:09:38] <BlankEclair> you'll find out [16:09:40] <BlankEclair> nini [16:10:05] <MirahezeRelay> <pixldev> https://cdn.discordapp.com/attachments/1006789349498699827/1263890619143819404/MOCXXfc.png?ex=669be15d&is=669a8fdd&hm=8e1dca75320a8f3c75108480022ea80dca2768ee5e120d8a7c130864e82909bd& [16:22:18] <MirahezeRelay> <pixldev, replying to BlankEclair> that was funny [16:27:55] <MirahezeRelay> <pixldev> [1/2] yeah idk man. @rhinosf1 somehow i dont think these are gonna be a huge help in processing edit strea data [16:27:55] <MirahezeRelay> <pixldev> [2/2] https://cdn.discordapp.com/attachments/1006789349498699827/1263895103722749983/PAEN4dQ.png?ex=669be58a&is=669a940a&hm=56f05f7a235c10061ed79e88705abc9d66b4d84e3ea0e3c41cb4941b4bf91959& [16:31:19] <MirahezeRelay> <rhinosf1> Maybe they could be [16:31:32] <MirahezeRelay> <pixldev> hm [16:31:51] <MirahezeRelay> <pixldev> I should diagram this [16:32:03] <MirahezeRelay> <pixldev> Rust may be better but im not good at it [16:34:11] <MirahezeRelay> <pixldev, replying to rhinosf1> well i think decide on if I wanna use rust or python and if python, just use python. [16:34:29] <MirahezeRelay> <pixldev> roll out a beta version on a small number of wikis [16:34:43] <MirahezeRelay> <pixldev> slowly expand to a point that dont impact the servers [16:34:48] <MirahezeRelay> <pixldev> if preformance takes a hit [16:34:53] <MirahezeRelay> <pixldev> try porting to mojo? [16:35:03] <MirahezeRelay> <pixldev> or even pypy over cython [16:38:11] <MirahezeRelay> <pixldev> although i dont see a harm in using mojo from the start [16:38:23] <MirahezeRelay> <pixldev> since its compiled itll have at least some bonus regardless [16:39:01] <MirahezeRelay> <pixldev> @rhinosf1 do i make sense or am i rambling [16:42:24] <MirahezeRelay> <rhinosf1> You make sense [16:42:57] <MirahezeRelay> <pixldev> how odd! [16:43:02] <MirahezeRelay> <pixldev> lmao [16:43:16] <MirahezeRelay> <pixldev> i do think if we get this working it would be a pretty nice tool [16:44:10] <MirahezeRelay> <pixldev> thanks fandom for giving me the idea [16:44:32] <MirahezeRelay> <pixldev> and the fandom community members who made their system yall are pretty fucking neat [16:46:23] <MirahezeRelay> <rhinosf1> Oh ye it will [16:46:27] <MirahezeRelay> <rhinosf1> And you will make it work [16:46:41] <MirahezeRelay> <pixldev> in the future i might take some more ideas from them hahah [16:47:03] <MirahezeRelay> <pixldev> their system of vandalism reporting and community review is cool, but im not sure how much it would be used [16:47:07] <MirahezeRelay> <pixldev> one thing at a time [16:47:13] <MirahezeRelay> <pixldev, replying to rhinosf1> all in due time [16:47:14] <MirahezeRelay> <pixldev> we hope [16:48:01] <MirahezeRelay> <pixldev> my laptop cant do much dev so if i wanna work before mid august im gonna need a codespace thing to work on thats not blocked by my school firewall :p [16:48:12] <MirahezeRelay> <pixldev> i found gitpot but its 10 hours a month [16:48:13] <MirahezeRelay> <pixldev> so [16:48:15] <MirahezeRelay> <pixldev> we'll see [16:49:26] <MirahezeRelay> <pixldev> i should have panel access to my vps so maaaybe if i can expose an IDE to the web from it maybe i can work there [16:49:40] <MirahezeRelay> <rhinosf1, replying to pixldev> Old or? [16:49:50] <MirahezeRelay> <pixldev> school chromebook [16:50:07] <MirahezeRelay> <pixldev> i need to talk to a friend about getting a real laptop [16:50:12] <MirahezeRelay> <pixldev> but i dont have time before i leave [16:50:39] <MirahezeRelay> <pixldev> since tmr im leaving for a weel [16:50:42] <MirahezeRelay> <pixldev> again [16:50:50] <MirahezeRelay> <rhinosf1> Ah right [16:50:56] <MirahezeRelay> <rhinosf1> Ye you need a real laptop [16:51:02] <MirahezeRelay> <pixldev> he may have one [16:51:19] <MirahezeRelay> <pixldev> this man has lots of old computers, people donate their old stuff to him and he fixes them [16:51:25] <MirahezeRelay> <pixldev> (old family friend) [16:51:32] <MirahezeRelay> <rhinosf1> That's cool [16:51:36] <MirahezeRelay> <pixldev> he's actually the one who gave me this deskrop [16:52:09] <MirahezeRelay> <pixldev> and did help me with learning some programming when i was little, hes fun to talk to [16:52:14] <MirahezeRelay> <pixldev> old mentor figure [16:52:31] <MirahezeRelay> <pixldev> ill ask if he knows what would be a good laptop to buy or smt [16:52:44] <MirahezeRelay> <pixldev> or maybe he has a spare who knows [16:52:46] <MirahezeRelay> <pixldev> for now ill make due [16:55:52] <MirahezeRelay> <pixldev> also [16:56:16] <MirahezeRelay> <pixldev> i started running a benchmark script for python to compare with mojo [16:56:23] <MirahezeRelay> <pixldev> its still running(python) [16:56:38] <MirahezeRelay> <pixldev> i honestly dont know if it broke or just takes a while [16:56:53] <MirahezeRelay> <pixldev> [1/4] ```py [16:56:54] <MirahezeRelay> <pixldev> [2/4] def fibonacci_recursion(n): [16:56:54] <MirahezeRelay> <pixldev> [3/4] return n if n < 2 else fibonacci_recursion(n - 1) + fibonacci_recursion(n - 2) [16:56:54] <MirahezeRelay> <pixldev> [4/4] fibonacci_recursion(100)``` [16:57:10] <MirahezeRelay> <pixldev> ill check later today ig?? [17:03:00] <MirahezeRelay> <pixldev> still running [17:03:26] <MirahezeRelay> <pixldev> https://tenor.com/view/savingprivateryan-ww2-old-soldier-matt-damon-gif-4203998 [17:04:27] <MirahezeRelay> <rhinosf1> @Infrastructure Specialists: something is affecting data availability on https://grafana.wikitide.net/d/GtxbP1Xnk/mediawiki?orgId=1 [17:04:40] <MirahezeRelay> <rhinosf1> All 3 grafana MediaWiki alerts are firing no data [17:05:14] <MirahezeRelay> <pixldev> does prometheus export its own data [17:06:14] <MirahezeRelay> <rhinosf1> Big spike on cpu & disk load on https://grafana.wikitide.net/d/W9MIkA7iz/wikitide-cluster?orgId=1&var-job=node&var-node=prometheus151.wikitide.net&var-port=9100 [17:06:18] <MirahezeRelay> <rhinosf1> @pixldev yes [17:06:37] <MirahezeRelay> <rhinosf1> There are Prometheus stats on Prometheus [17:14:08] <MirahezeRelay> <pixldev> @rhinosf1 also how does the global wiki and cvt feed on irc work [17:14:37] <RhinosF1> An extension for global wiki [17:14:57] <MirahezeRelay> <pixldev> whats the name [17:15:01] <MirahezeRelay> <pixldev> wanna find the docs/source [17:15:07] <RhinosF1> Look in the config [17:15:15] <RhinosF1> It might even be just a hook [17:15:19] <MirahezeRelay> <pixldev> GlobalSettings? [17:15:22] <RhinosF1> Not sure for CVTFeed [17:15:27] <RhinosF1> Search irc [17:15:30] <MirahezeRelay> <pixldev> MirahezeMagic you think? [17:17:11] <MirahezeRelay> <pixldev, replying to RhinosF1> https://github.com/miraheze/MirahezeMagic/blob/375fd6d3bc61e539022cd5fcd56f5fd49de8a613/includes/MirahezeIRCRCFeedFormatter.php#L44 [17:17:12] <MirahezeRelay> <pixldev> ? [17:19:23] <MirahezeRelay> <rhinosf1> Yes [17:20:35] <MirahezeRelay> <pixldev> where is it used though [17:21:27] <MirahezeRelay> <pixldev> found [17:21:28] <MirahezeRelay> <pixldev> https://github.com/miraheze/mw-config [17:21:37] <MirahezeRelay> <pixldev> https://github.com/miraheze/mw-config/blob/5e50cf85d60a6a5691a1c96a47b48061f072c77b/GlobalSettings.php#L257 [17:22:23] <MirahezeRelay> <pixldev> not sure how much help this is [17:22:49] <MirahezeRelay> <pixldev> any chance we could add a new webhook directly to- [17:22:57] <MirahezeRelay> <pixldev> hold up we need a game of this project [17:23:01] <MirahezeRelay> <pixldev> name* [17:23:08] <MirahezeRelay> <pixldev> lemme get some ideas [17:24:04] <MirahezeRelay> <pixldev> [1/3] * Heimdal [17:24:05] <MirahezeRelay> <pixldev> [2/3] * Vigil [17:24:05] <MirahezeRelay> <pixldev> [3/3] * Vis [17:24:12] <MirahezeRelay> <pixldev> stuff like that seems appropiate [17:24:20] <MirahezeRelay> <pixldev> @rhinosf1 thoughts? [17:26:07] <MirahezeRelay> <rhinosf1> I have zero issues [17:27:10] <MirahezeRelay> <pixldev> i just need to pick one so i can use it, if any are cool to you lmk and ill go with that [17:28:43] <RhinosF1> You should run it like a real project [17:28:51] <RhinosF1> Have a 3 hour planning meeting [17:29:04] <RhinosF1> Pick a few acryonm but spell them all wrong [17:30:50] <MirahezeRelay> <pixldev> rhinos [17:30:55] <MirahezeRelay> <pixldev> i am in high school [17:31:00] <MirahezeRelay> <pixldev> i yet hold the ultimate power [17:31:30] <MirahezeRelay> <pixldev> writing software unbound by corperate bullshit and AGILE SCRUM STORY POINT bazooka bubble gum hey! [17:31:38] <MirahezeRelay> <pixldev> let me embrace it [17:31:57] <MirahezeRelay> <pixldev> please [17:33:23] <RhinosF1> Make your own acryonm them [17:34:38] <MirahezeRelay> <pixldev> Vandalism Intelligent Global Investigative Log [17:34:44] <MirahezeRelay> <pixldev> V.I.G.I.L [17:34:48] <MirahezeRelay> <pixldev> there [17:35:28] <MirahezeRelay> <pixldev> need someone to make an icon using the miraheze logo [17:37:26] <MirahezeRelay> <pixldev> [1/2] my idea for a logo base [17:37:26] <MirahezeRelay> <pixldev> [2/2] https://cdn.discordapp.com/attachments/1006789349498699827/1263912600304095253/Pem2Qwt.png?ex=669bf5d6&is=669aa456&hm=ac088dcc2e0309a31ab289ed27710c265472db7d76b7e8fdca99604e02f2a96e& [17:37:35] <MirahezeRelay> <pixldev> SCP has awesome logo art man [17:37:46] <MirahezeRelay> <pixldev> i have a keychain i engraved this onto [17:38:27] <MirahezeRelay> <pixldev> that python test is still on hnag [17:38:40] <MirahezeRelay> <pixldev> i honestly dont know if it broke [18:39:55] <MirahezeRelay> <pixldev> RCFeed may actually work instead of EventStreams [18:41:05] <MirahezeRelay> <pixldev> although i think a formatter or smt on the server side to query all the needed data is in order [18:41:58] <MirahezeRelay> <pixldev> so no external api calls needed [18:42:27] <MirahezeRelay> <pixldev> @rhinosf1 would querying data internally on each edit hurt much less then querying via the API? [18:43:37] <MirahezeRelay> <pixldev> actually [18:43:44] <MirahezeRelay> <pixldev> do we wanna omit patrolled edits [18:44:11] <MirahezeRelay> <pixldev> considering how many edits would be autopatrolled and much less likely to be vandalism it could save power\ [18:44:39] <MirahezeRelay> <rhinosf1> If it's RCFeed, that's mostly fine [18:44:52] <MirahezeRelay> <rhinosf1> Because it uses less resources [18:45:07] <MirahezeRelay> <rhinosf1> Than you wasting an nginx worker and a php-fpm worker [18:45:12] <MirahezeRelay> <pixldev> the thing is we need more data then that alone, which would need to be queried int he formatter class [18:45:21] <MirahezeRelay> <pixldev> so its just internal calls to Maria [18:45:35] <MirahezeRelay> <rhinosf1> You don't need to do api calls though [18:45:39] <MirahezeRelay> <rhinosf1> Even internally [18:45:43] <MirahezeRelay> <rhinosf1> Use native php functions [18:45:48] <MirahezeRelay> <rhinosf1> But only query what you need [18:45:57] <MirahezeRelay> <rhinosf1> And yes skipping patrolled is probably a good idea [18:46:01] <MirahezeRelay> <rhinosf1> Maybe even skipping confirmed [18:46:10] <MirahezeRelay> <pixldev> we need the information of the user [18:46:15] <MirahezeRelay> <pixldev> ie edit counts [18:46:22] <MirahezeRelay> <pixldev> the old and new page contents [18:46:25] <MirahezeRelay> <pixldev> lemme see what else [18:46:49] <MirahezeRelay> <pixldev> [1/31] ```<?xml version="1.0"?> [18:46:49] <MirahezeRelay> <pixldev> [2/31] <WPEditSet> [18:46:49] <MirahezeRelay> <pixldev> [3/31] <WPEdit> [18:46:50] <MirahezeRelay> <pixldev> [4/31] <EditType>change/EditType [18:46:50] <MirahezeRelay> <pixldev> [5/31] <EditID>1022572696/EditID [18:46:50] <MirahezeRelay> <pixldev> [6/31] <comment>/ Political career //comment [18:46:51] <MirahezeRelay> <pixldev> [7/31] <user>JamesVilla44/user [18:46:51] <MirahezeRelay> <pixldev> [8/31] <user_edit_count>9146/user_edit_count [18:46:51] <MirahezeRelay> <pixldev> [9/31] <user_distinct_pages /> [18:46:52] <MirahezeRelay> <pixldev> [10/31] <user_warns>1/user_warns [18:46:52] <MirahezeRelay> <pixldev> [11/31] <prev_user>JamesVilla44/prev_user [18:46:53] <MirahezeRelay> <pixldev> [12/31] <user_reg_time>1553976920/user_reg_time [18:46:53] <MirahezeRelay> <pixldev> [13/31] <common> [18:46:54] <MirahezeRelay> <pixldev> [14/31] <page_made_time>1620437208/page_made_time [18:46:54] <MirahezeRelay> <pixldev> [15/31] <title>Angelique Foster/title [18:46:55] <MirahezeRelay> <pixldev> [16/31] <namespace>Main:/namespace [18:46:55] <MirahezeRelay> <pixldev> [17/31] <creator>Moondragon21/creator [18:46:56] <MirahezeRelay> <pixldev> [18/31] <num_recent_edits>14/num_recent_edits [18:46:56] <MirahezeRelay> <pixldev> [19/31] <num_recent_reversions>0/num_recent_reversions [18:46:57] <MirahezeRelay> <pixldev> [20/31] /common [18:46:57] <MirahezeRelay> <pixldev> [21/31] <current> [18:46:58] <MirahezeRelay> <pixldev> [22/31] <minor>false/minor [18:46:58] <MirahezeRelay> <pixldev> [23/31] <timestamp>1620720638/timestamp [18:46:59] <MirahezeRelay> <pixldev> [24/31] <text>The current contents/text [18:46:59] <MirahezeRelay> <pixldev> [25/31] /current [18:47:00] <MirahezeRelay> <pixldev> [26/31] <previous> [18:47:00] <MirahezeRelay> <pixldev> [27/31] <timestamp>1620720514/timestamp [18:47:01] <MirahezeRelay> <pixldev> [28/31] <text>The previous contents/text [18:47:01] <MirahezeRelay> <pixldev> [29/31] /previous [18:47:02] <MirahezeRelay> <pixldev> [30/31] /WPEdit [18:47:02] <MirahezeRelay> <pixldev> [31/31] /WPEditSet``` [18:47:07] <MirahezeRelay> <pixldev> whats <user_distinct_pages /> [18:47:28] <MirahezeRelay> <pixldev> User warns I think we can always leave at a default of 0(1?) [18:47:39] <MirahezeRelay> <pixldev> until we add support for it [18:47:44] <MirahezeRelay> <pixldev> so i'd say [18:47:52] <MirahezeRelay> <pixldev> 2 or 3 queries for everything we need? [18:47:54] <MirahezeRelay> <pixldev> let see [18:48:05] <MirahezeRelay> <pixldev> https://www.mediawiki.org/wiki/Manual:RCFeed [18:48:43] <MirahezeRelay> <pixldev, replying to rhinosf1> [1/2] idk if we can without more computing, I got the idea from [18:48:43] <MirahezeRelay> <pixldev, replying to rhinosf1> [2/2] https://cdn.discordapp.com/attachments/1006789349498699827/1263930537610051777/0fGGkKA.png?ex=669c068a&is=669ab50a&hm=275c7a378ce1b549f2508aba2828d18d4ca0677d224b091a97f4a1addffafb81& [18:49:47] <MirahezeRelay> <pixldev> this is fun though [18:49:54] <MirahezeRelay> <pixldev> looking into this stuff to make something coo [18:50:08] <MirahezeRelay> <pixldev> (even better that the hard part of the AI is taken care of) [18:50:38] <MirahezeRelay> <pixldev> shame i come up with it right before i wont be able to work oni t [18:51:12] <MirahezeRelay> <pixldev> ty for the help and support @rhinosf1 :nomChocoStrawberry: [18:56:19] <MirahezeRelay> <pixldev> okay, looks like our current formatter class has some MH specific logic to copy from [18:56:25] <MirahezeRelay> <pixldev> ie not including renames from TS [18:56:58] <MirahezeRelay> <pixldev> [1/2] not sure what this means [18:56:58] <MirahezeRelay> <pixldev> [2/2] https://cdn.discordapp.com/attachments/1006789349498699827/1263932614348111963/ZofRRF2.png?ex=669c0879&is=669ab6f9&hm=338d003c65501f065c9f6668898fb48c77cafa5ef215ffddefa3aac31a09258c& [18:58:09] <MirahezeRelay> <pixldev> this was written by SPF(not gonna get help from) paladox(dont wanna bother him) and CA so il see about asking ca bout this later when i get to it [18:58:59] <MirahezeRelay> <pixldev> lots of this is IRC color formatting [18:59:02] <MirahezeRelay> <pixldev> which we wotn need [18:59:51] <MirahezeRelay> <pixldev> would it be worth forwarding and formattign this to IRC? my plan was discord, with maybe an opt in ping for very high scores for CVT to be notifed [19:00:33] <MirahezeRelay> <pixldev> [1/2] I also like fandoms report system [19:00:33] <MirahezeRelay> <pixldev> [2/2] https://cdn.discordapp.com/attachments/1006789349498699827/1263933514945007698/pOpoCUz.png?ex=669c0950&is=669ab7d0&hm=f5b659acfefbb198ac04bdf862f76a5b7ce9d011cb6210eef67bb704d692b2b3& [19:00:54] <MirahezeRelay> <pixldev> the more computation we can move off of our servers and onto willing users brains [19:00:56] <MirahezeRelay> <pixldev> the better [19:00:59] <MirahezeRelay> <pixldev> [BardoniaBased](https://cdn.discordapp.com/emojis/921979308367552553.webp?size=48&quality=lossless&name=BardoniaBased) [19:01:32] <MirahezeRelay> <pixldev> its a good thing we dont have a quote archive i say so much questionable stuff its great [19:23:42] <MirahezeRelay> <rhinosf1> I'm back [19:23:48] <MirahezeRelay> <rhinosf1> Is there a question [19:27:37] <MirahezeRelay> <pixldev, replying to pixldev> This and me mentioning https://discord.com/channels/407504499280707585/1006789349498699827/1263931166285627474 [19:30:56] <MirahezeRelay> <rhinosf1, replying to pixldev> Ye or just use the relay to get between both [19:31:05] <MirahezeRelay> <rhinosf1> And ty 🙂 [19:31:46] <MirahezeRelay> <pixldev> Relay would loose the ability to use embeds and buttons [19:31:47] <MirahezeRelay> <pixldev> Actually [19:31:48] <MirahezeRelay> <pixldev> Hm [19:31:56] <MirahezeRelay> <pixldev> I could send it to discord and relay to irc [19:32:29] <MirahezeRelay> <pixldev> Send the base info in a text format that’s relayed and include buttons to do things like display a diff [19:32:37] <MirahezeRelay> <pixldev> Since edits don’t relay [19:32:41] <MirahezeRelay> <pixldev> And report