[00:53:38] anytime :oD [02:51:57] [1/2] I've been suspended three times, one was obviously AI given the weird conflicting support responses when I tried to get them to explain the ban and how I got several emails about it giving different reasons, one was overturned on appeal, and one was upheld with a consistent but vague reason. Given how many people have reported being banned [02:51:58] [2/2] for the same reason, how many people I know got banned for this reason, and Discord's boasting about automated scanning and proactive bans, it's easy to imagine I just got bad RNG. [03:00:33] If I got say copyright infringement or something like that as a suspension I wouldn't really question it but the way it's going now is stupid [03:01:09] who wants to place bets on how long this one will last [03:10:30] I mean it's lasted for some months and it's the one they overturned a ban on so maybe it'll go good [03:10:40] I've been trying to not do anything sus so I think it'll be ok [03:14:10] @groupnebula563_0765 we know of it [03:14:16] it's been okayed [03:15:02] got it [03:15:19] i can find the convo if you want [03:15:33] it’s just that I’ve only seen that acc do nsfw stuff and it’s a bit odd imo, not gonna question mod decisions though, I don’t wanna be set on fire virtually [03:16:38] We don't punish people for questioning us [03:16:46] and this is reasonable to question [03:17:06] although if you see someone do something NSFW that makes you uncomfortable please let us know [03:17:29] preferably brandon or reception as they are more available [03:17:33] ill be gone for a week [03:18:19] i'm kinda curious but i don't have context [03:20:57] claire question do you know rust [03:21:28] uhh some [03:21:44] wow it's been over a year since i touched it [03:22:11] dang [03:22:17] i need to get back to it when i have time [03:22:27] if you have a question then i can try though [03:22:39] i might need to write vigil in it if python is too demented [03:22:40] hope not [03:22:46] anywasy thats like in a month [03:22:54] what'd the bottleneck here be though [03:23:02] idk [03:23:16] is it just converting event streams data into text messages? [03:23:16] but handling every edit on the farm seems heavy [03:23:18] personally [03:23:29] im drawing the archecture rn [03:23:33] hold up laundry [03:23:58] eh, #miraheze-cvt-feed seems slow enough [03:24:17] though maybe i'm not at peak times or w/e [03:24:40] > I love when I touch a repo... And all the shit is broken [03:24:52] replace "a repo" with "anything" and you more or less get me [03:26:17] should have seen this bumbling jest try to get [[github:soap-team/cynthia]] to run locally [03:26:17] https://github.com/soap-team/cynthia [03:26:18] [03:26:39] noreplyz man its awesome you build this. but it caused me pain [03:27:14] https://issue-tracker.miraheze.org/T12365 [03:27:22] obscure hard to debug issue /o\ [03:29:50] as the person who asked clown to open [03:29:53] it [03:29:56] my thoughts exactly [03:29:59] luckily not my issue [03:30:09] also sorry in advance for this shit diagram [03:30:22] i've made worse [03:35:48] gonna need to learn to work with job queues in python [03:36:06] celery is what i always hear of and fandom uses [03:36:12] i think it can run on redis [03:36:25] i dont know if this would run on my server or miraheze [03:36:29] prob the beta on mine [03:36:40] but i need to get php code onto the app servers [03:36:41] meanwhile i'm here like wait what are job queues [03:37:25] the job queue is the one piece of software in mediawiki that has given @rhinosf1 the most tramau [03:37:49] in python? [03:38:08] yeah, since doing it syncronously seems like a bad idea [03:38:15] there may be higher or lower loads [03:38:17] basically [03:38:20] new edit comes in [03:38:21] isn't that from the php/mediawiki side? [03:38:31] unless if you want that part to shell out to python [03:38:31] add it as a job to the queue [03:38:39] and have a program running through them [03:38:53] mediawiki will collect and send the data [03:39:35] how does it send the data? unix domain sockets? udp? tcp? http? [03:40:08] why is my brain thinking of scribunto but python [03:40:09] i need to see [03:40:18] gimmi a sec ill send what im using [03:40:47] https://www.mediawiki.org/wiki/Manual:$wgRCFeeds [03:40:53] this is what sends data to irc btw [03:41:13] huh til mw has that built-in [03:41:57] same ngl [03:41:59] useful [03:42:05] since we dont have event streams [03:42:15] built-in protocols are udp and redis [03:42:28] Correct [03:42:33] i don't see why you'd have to interface with the job queue here though, both of these are external to mediawiki [03:42:52] Celery seems a bit behind on the times tho now [03:43:11] id ask if you have recommendations [03:43:15] but your allergic to python [03:43:46] Im allergic to bad coding practices which python is [03:44:21] Redis can act as a message broker iirc which could be useful for what you're trying to do? [03:44:27] "which python is" as in cpython, all python code, or most python code [03:44:30] to handle the edits that are sent to vigil, i dont wanna handle them synchronously, if theres a lot of edits, i dont want stuff to break, and a JB lets it catch up in lower periods [03:44:49] likely [03:45:11] if CA and tech agrees to help host this on our servers i may use ours if not my vps gonna lose some pounds [03:45:41] pixldev: wait, so will you be using wgRCFeeds or not [03:45:43] im gonna need to at least convince him to allow the rcfeed [03:45:46] yes [03:45:54] itll send the edits to VIGIL [03:46:00] Hage you considered toolforge? [03:46:03] which will handle them [03:46:14] do they allow non WMF? [03:46:15] hmm i think it's syncronous [03:46:17] if so thats geat [03:46:22] what? [03:46:30] > This is called after recent changes info have been inserted into the recentchanges table. [03:46:34] I'm not sure probably not 🤣 [03:46:44] I can ask someone who may know [03:46:45] uh [03:46:49] legoktm maybe? [03:47:07] i can try to ask him in the wm chapter discord [03:47:09] i haven't looked at the internals, but i'm going to guess that it's not async/in the job queue since i don't think it would make much sense to put data in the recentchanges table in there [03:47:18] (ive met lego irl he was very nice and cool) [03:47:25] What are you even trying to do? [03:47:29] man [03:47:31] i dont knwo [03:47:33] i mean uh [03:47:36] mood [03:47:54] kinda like what fandom has with cynthia and its bot. but using cluebot ng's core [03:48:10] parse edits, score for vandal, and log for cvt to review [03:48:20] Why can't you just query the recent changes api? [03:48:37] for every edit on miraheze? [03:48:44] Oh lol [03:48:48] multiple queries actually [03:48:53] Use the onPageSaveComplete hook [03:48:57] since it needs user data last edit [03:49:08] rhinos would string me [03:49:20] "pixldev" [03:49:25] LMAO [03:49:33] this is why we need a quote thing [03:49:42] ikr? [03:49:43] i mean is that really needed? [03:50:02] " this means that custom cat ear colors for misskey got more testing than a driver update" can go in there too [03:50:23] Well its one way of getting the edit [03:50:24] plus i dont know php very well and im way more experince working with bots in python :P i wanna at some point maybe add things like a click to report directly for review [03:50:46] i can get the edit by adding an entry to $wgRCFeeds [03:50:59] its how #global-wiki-feed works [03:51:16] here [03:51:20] you could fetch all the data from php's side and pass it on through IPC to python or so [03:51:23] [1/2] does this make sense [03:51:23] [2/2] https://cdn.discordapp.com/attachments/615786602454581249/1264067105716699176/acrVgnv.png?ex=669c85bb&is=669b343b&hm=2a0988151f01d90236da74092c2e0d09bc66a52597f342b9abecf22f7595a124& [03:51:33] its already passed to irc [03:51:42] as in for vigil [03:51:47] the issue is i need data like the edit count of the user the contents of the full edit [03:52:21] im going to have vigil send its reports to discord since discord has button support for reports and view diff logic but in a relayed channel so irc sees it [03:52:59] ai thonk [03:53:07] AI thonk [03:53:11] also that handwriting is really better than mine, i'm jealous [03:53:12] ironically the easiest part [03:53:20] PFFFFFFFFFFFFFFFFT [03:53:23] HELL NAH [03:53:28] This aitn writing [03:53:31] oh [03:53:35] https://excalidraw.com/ [03:53:46] my handwriting is legit the ugliest shit ever [03:54:03] me 🤝 pixldev [03:54:27] ON GOD [03:54:44] wait where is vigil [03:54:48] external to mediawiki? [03:55:18] its own software [03:55:26] well will be when i find time to work on it [03:55:29] i assume outside of mediawiki then [03:55:53] so the main concern for not blocking mediawiki is probably to read all the data to prevent the socket from blocking (assuming you're not using udp) [03:55:53] the good thing is ive unintentionally hyped it up enough that ill have pressure to finish it [03:56:16] nah my concern is just the program itself keeping up [03:56:20] i thgink [03:56:23] program itself being vigil? [03:56:29] its almost midnight [03:56:30] yes [03:56:37] so you don't want vigil to take mediawiki down? [03:56:39] probably [03:57:12] that may be beneficial for my mental physical and spiritual well being [03:57:18] if that is all that's concerned, then you basically make sure vigil read data from its socket [03:57:26] then vigil can take all the time it needs because writing to the socket wouldn't block [03:57:43] (here, we can see someone who has never done IPC talk about how to do IPC) [03:58:00] yeah hence the job queue, to keep a backlog of edits to churn through at its own pace [03:58:01] also [03:58:04] interesting to see [03:58:16] quips' mastodon just posted a quote [03:58:16] a job queue can probably be something like asyncio.Queue or threading.Queue [03:58:17] https://wikis.world/@quips@botsin.space/112816669059274776 [03:58:35] im not sure why discord dont show it but [03:58:47] in embed* [03:58:48] https://cdn.discordapp.com/attachments/615786602454581249/1264068972689756161/9NDsmoA.png?ex=669c8778&is=669b35f8&hm=b537e8e32662706754575be731cd6a1f39b9359ffc4aefb61723a5c9aa379e18& [03:59:05] lmfao [03:59:05] i think some people recognize that name. interesting to see [03:59:24] what even is that name though [03:59:34] which [03:59:38] alt.chained.crt [03:59:46] no not that name [03:59:56] first thought was usenet group, second was domain name (but crt isn't a tld) [04:00:00] oh wait is that a certificate file [04:00:30] i mean southparkfan [04:00:39] co-founder of miraheze i believe [04:00:48] at 12 years old yes [04:00:53] wait what [04:00:57] legit [04:01:00] woah [04:01:06] impressive [04:01:16] at 12/13 he was one of the systems enginners who helped move the farm from its old form [04:01:16] ikr [04:01:37] he left the community in like 2021 and i heard he sometimes popped by other communities [04:01:44] so was interesting to see [04:01:55] not sure if this quip is from today [04:02:00] would need to find the irc log [04:03:51] anyways when i get to work on it vigil may turn out neat who knows [04:03:57] the hardest part is done for me [04:04:39] well second hardest [04:04:52] the hardest part is finding someone to make a cool logo [04:05:41] if someone wanna go ahead [04:06:05] eye and 4 pointed star iconography is my idea [04:06:47] three hardest things in computer science: naming things, cache invalidation, and making a logo [04:08:44] and using ai feels like cheating [04:09:10] remembering the [semi] colen [04:09:27] i wrote enough c and cpp to occasionally accidentally put ; in python code [04:09:51] my condolences [04:10:06] btw i made a url parser using regex [04:29:02] is it normal to be thinking of making a machine-readable database of a webcomic series? [04:34:44] not sure [04:34:49] we're not normal [04:34:57] we are better then normal [04:35:08] who wants to be normal when you can be like us [04:35:16] unhinged fun as hell tech nerds [04:35:34] we're overengineering making automated birthday banners [04:37:02] hell yes [04:37:13] you could try Wikibase or cargo [04:37:22] SMW is [04:37:27] out of commision for a bit [04:38:11] https://files.catbox.moe/0ky9hd.png [04:39:04] thats kinda what nookipedia did with cargo [04:39:55] https://cdn.discordapp.com/attachments/615786602454581249/1264079316640202785/Xzaz4qn.png?ex=669c911a&is=669b3f9a&hm=b4571a7c424be5af3f5c0ee2de76ad1c27685e522122301076be79043999d30d& [04:40:25] is it possible for one api request to do something like "get all characters whose birthDate is 2024-07-20" [04:40:53] https://cdn.discordapp.com/attachments/615786602454581249/1264079561902133309/BKrDBsg.png?ex=669c9155&is=669b3fd5&hm=ef8dbf0e8cb452b87ccf6c05efa6ae1cb09a204eb75d42d970cd8293bbd9abb6& [04:40:59] here? not sure [04:41:14] the requesting will most likely be done in frontend js because parser cache would make things slow as hell [04:41:14] note that nookipedia made a API wrapper around raw cargo [04:41:24] but i think so [04:41:38] lemme try via the special page [04:42:40] so wikibase is "machine-readable wiki", and cargo is "machine-readable and human-readable wiki" right? [04:43:20] [1/2] its spreading man... [04:43:21] [2/2] https://cdn.discordapp.com/attachments/615786602454581249/1264080170537713665/izK9nRP.png?ex=669c91e6&is=669b4066&hm=1f0e0a180c06f32681ed93629d8ee83169bd05458e73c7c67019530dede540da& [04:43:40] lmao [04:44:14] wikibase lets you make obejcts and properties and constructing objects as data that can be queried and used by machines [04:44:19] and humans can read it [04:44:32] human-readable as in you can also have unstructured wikitext pages [04:44:36] https://www.wikidata.org/wiki/Q60 [04:44:54] https://query.wikidata.org/ [04:45:14] Cargo basically creates database tables populated by each instance of a template call [04:45:16] what's the least overkill option for our use case [04:45:30] thats what nookipedia uses [04:45:30] oh hmm [04:45:36] you want the least transition work? [04:45:37] cargo [04:48:16] heres an examplehttps://nookipedia.com/wiki/Special:CargoTables/nh_villager [04:48:25] just make sure your infoboxes are standardized [04:49:02] i assume we can preprocess the data before passing it to cargo [04:49:22] so it'll be converted to mm-dd for our use case [04:49:39] maybe? never used myself and its 1 am [04:49:43] i need to finish packing ig [04:49:48] ty and gl [04:49:55] I CANT FIND MY RAIN JACKERY [04:50:04] jacket* [04:50:22] to quote Rain, "I hate rain..." [04:50:29] LMAO [04:51:03] https://rainverse.wiki/wiki/Rain:945:_Rain [04:52:11] i go now bye [04:52:15] bi [06:48:23] how well does cargo work with sqlite [06:48:54] for some reason table creation is either timing out (when using Special:RecreateCargoData) or just does nothing (when using the maintenance script), so i might have to use mariadb [08:07:07] yeah using mariadb fixed it [08:20:47] BlankEclair: SQLite doesn't scale very well [08:20:55] it's a test instance [10:09:24] sometimes i wish i could use regex in lua [12:17:31] You can? [12:17:34] Or a version of it [12:17:42] well that's true [12:17:49] but i don't wanna bring an extra dependency :( [12:17:58] i managed to scrape #formatdate for date parsing though [12:18:06] No what I used was vanilla [12:18:14] Very simple though [12:19:02] patterns yeah [12:19:22] those are regular expression mimicks, does what i need only like 60% of the time [12:21:47] cargo is very handy, even when i'm using it on my test instance [12:24:52] Thank Yaron, everyone’s occasionally favorite developer and often not [12:25:54] It depends who you are [12:25:58] Users like him [12:26:01] SRE doesn't [12:26:31] ahaha [12:27:18] btw i put my #cargo_declare parser function in the documentation page [12:29:35] His extensions are really useful [12:29:37] But widgets [12:29:43] And a few other security issues [12:29:57] oh no [12:30:44] Widgets was an utter nightmare [12:30:52] Cause it was an easy to exploit RCE [12:31:18] And Wikimedia released the bug way before they made a public security announcement [12:32:22] wait rce as in xss or rce on the servers [12:33:15] https://phabricator.wikimedia.org/T269718 OH [12:34:35] RCE [12:34:39] Actual RCE [12:34:55] And the ticket was made public a while before extensions supplement [12:34:55] the extension seemed so simple so i was like "wait how the hell can you get rce from that" [12:37:37] We ended up reimaging all the servers [12:37:59] With mediawiki on [12:38:17] sounds fun >_> [12:38:18] Cause we went a good few days with a POC exploit available before we upgraded [12:38:26] We were not happy [12:51:31] [1/2] >>> Anyone with the ability to edit pages in the Widgets namespace can call any static function in any class defined in PHP or MediaWiki. Quite a few of these classes can do nefarious things, such as exfiltrate user data, change user passwords, read/write arbitrary files on the filesystem, or run arbitrary shell commands (running arbitrary shell commands or writing arbitrary files ca [12:51:31] [2/2] n both be used to achieve additional levels of code execution). [12:51:32] Crazy [13:53:28] Anyways Claire you enjoying cargo? [13:54:52] yep [13:55:01] Also the DB issue on nookipedia was that I needed quotes around the text I used in the where [13:55:07] Cool [13:55:28] I’m gonna be gone for the next week but I look forward to seeing what you have cooked when I’m back [13:55:59] i just finished [13:56:12] https://rainverse.wiki/wiki/Rainverse_Wiki?rvwBirthdaysOverride=12-01 [13:56:21] I’ll check in the car [13:56:26] (no birthdays today hence override parameter) [15:07:24] https://e.vnexpress.net/news/news/vietnam-to-hold-two-day-state-funeral-for-party-general-secretary-nguyen-phu-trong-next-week-4772458.html [15:08:51] Just a little note, but our wiki will go on a grayscale tone until the end of 26/7 (GMT+7) [15:39:31] [1/3] How's people rn? [15:39:31] [2/3] I'm doing decent [15:39:31] [3/3] Just in a non-waterproof tent in the middle of a heavy thunder storm [15:42:06] Oh no :( [15:42:17] https://cdn.discordapp.com/attachments/615786602454581249/1264246010423672985/20240720_184023.jpg?ex=669d2c59&is=669bdad9&hm=749db4660677802803fad5d90fd23875264860fb2d2b90be38ebbcbe6e6e8d79& [15:42:28] Umbrella for protection [15:44:48] https://cdn.discordapp.com/attachments/615786602454581249/1264246643667107911/20240720_184426.jpg?ex=669d2cf0&is=669bdb70&hm=5626ed781ed16fd1e01b38ec75edc3fe1463b418b7dcc8232c15711653d889cb& [15:47:52] The birthday banner is really cool though, may need to use parser funcs or smt to format the date a bit but awesome [17:46:37] @rhinosf1 bump for you since didn’t show you [17:49:05] It makes sense [17:53:59] https://cdn.discordapp.com/attachments/615786602454581249/1264279150617690183/Screenshot_20240603-094941_Facebook.jpg?ex=669d4b36&is=669bf9b6&hm=02853040b09542c6999464093f403a2f367ca5e944ceeae1173d7bb838a6b61a& [17:54:06] Truth! [17:58:44] impressive for my standards [18:01:59] You might be the little one but you're still smart [18:02:08] Stop doubting yourself [18:04:57] :nomChocoStrawberry: thanks man [18:05:43] Yw 🙂 [22:03:44] @rhinosf1 did you have nice weather this weekend [22:03:56] It has been so nice yesterday and earlier today now its pissing down [22:03:59] Sick of this shit [23:05:20] I got the remnants of a hurricane earlier this month [23:05:35] that was fun at least for Ohio