[06:14:54] so, I don't need to take any further action in GSC? [06:16:20] Like legroom said in the other chat, you can try manually submitting individual pages for indexing, but I haven't had much luck with that approach personally [06:18:55] Community portal threads are not archived for a while due to BeeBot being unable to create new pages. I can run the archivebot locally to get it unstuck for now, though the long-term solution is to investigate why BeeBot cannot create new pages. [06:26:47] I'll just be bold and do it. If the bot messes up I'll revert/delete changes. [06:29:47] I forgot Miraheze maintenance script’s autoarchival function got moved to a new account, a reboot [06:30:05] The autoarchiver has really been through a lot [06:30:38] First Revibot handled it, then AgentBot, then AgentBot’s install got turned into Miraheze maintenance script and then renamed unilaterally to BeeBot [06:30:42] quite the history [06:30:45] Thanks, what do you think worked the best for you? [06:30:49] I can look into the borked bot though [06:31:00] I'll stop my bot then. It doesn't need to run if we know a highly probable cause. [06:31:21] Hopefully it didn't create all the archive pages that need to be created. That'll leave you with at least one test case. [06:31:45] Setting up wikiseo, submitting sitemaps, and waiting. [06:31:53] Got you. [06:32:10] I wouldn’t be surprised if it’s just misconfigured oauth grants [06:32:21] re: autoarchiver [06:32:28] Took about a month as I recall, and I also had the buy-in of the community so there was a lot of organic traffic [06:59:11] It wasn't renamed unilaterally [06:59:20] It was discussed with a few members of tech [06:59:41] The reason it was moved to a seperate account was we wanted to keep the maint script account for actual maint scripts [07:00:19] The maint script account wasn't supposed to be something you could log in to and some maint scripts will steal it when they run and lock you out [07:13:00] UO didn’t know about it until a few months after the fact. I suppose in the end it all boils down to lack of communication, which is typical at this point. [07:13:48] Poor communication is systemic within the tech team [07:13:59] To the point it's extended outages [18:14:07] can Phorge have a dark mode 🥹 [18:17:29] it does [18:17:38] Miraheze's issue tracker? [18:21:42] ooo til about it [18:26:35] apparently it is a total catastrophe [18:26:47] it makes images imverted and has them look... [18:26:50] EVIL!!!!!!!!!!!!!! [18:27:11] [1/2] it does? [18:27:11] [2/2] https://cdn.discordapp.com/attachments/1006789349498699827/1438958456982863984/Screenshot_20251114-152222.png?ex=6918c5fe&is=6917747e&hm=363715b1d276a0ac5fd50f5b2bde9c42906a45a5fff60c9c9bcff9ab8e354493& [18:27:17] not really a bother for me thb [18:35:06] i think it messes up the flags hold on [18:37:23] badges and diffs [20:33:56] [1/2] Can someone tell me how to uncollapse the recent changes page's `Other review tools` [20:33:56] [2/2] https://commons.miraheze.org/wiki/Special:RecentChanges [20:34:23] https://cdn.discordapp.com/attachments/1006789349498699827/1438990466337996820/image.png?ex=6918e3ce&is=6917924e&hm=0938e573c9eccaa4456355a60ac87fbf1587f27b861768fa10ed05df33dbc6a7& [20:35:19] https://cdn.discordapp.com/attachments/1006789349498699827/1438990703647785210/image.png?ex=6918e406&is=69179286&hm=f8fef4946d3043274a7373d48ce48b136b64c75a26a5dbcd2b9c7783551280ef& [20:48:29] They stay open for me after I open them once [20:48:52] Otherwise, something like `$( document ).ready( () => $( '.mw-recentchanges-toplinks-collapsed .oo-ui-buttonElement-button' ).click() );` would probably work [20:49:37] [1/6] Or CSS: [20:49:38] [2/6] ```css [20:49:38] [3/6] .mw-recentchanges-toplinks-content { [20:49:38] [4/6] display: block !important; [20:49:39] [5/6] } [20:49:39] [6/6] ``` [20:54:42] Thanks, the CSS works [21:47:20] @blankeclair any chance you have an idea how to fix ? cleanupImages doesn't seem to work with swift [21:47:56] ran cleanupTitles, but now the files don't exist 👍 [21:48:06] https://rainworldmodding.miraheze.org/wiki/Special:Search?profile=images&search=bfTilesGuide.png&fulltext=1 is still giving errors [21:48:19] wait nvm [21:48:20] not it isn't [21:48:27] probably because you ran the script? [21:48:39] yep... [21:48:42] i thought it'd move [21:48:45] aargh [21:48:58] i think cleanupImages may have deleted the file rows? [21:49:03] "deleting bogus row 'bfTilesGuide.png'" [21:49:11] log in ~blankeclair/rainworldmodding-cleanup on mwtask181 [21:49:23] I have a log for cleanupImages [21:49:27] where it said it deleted bogus rows [21:49:36] ah crap [21:50:13] https://issue-tracker.miraheze.org/P564 [21:50:28] https://static.wikitide.net/rainworldmoddingwiki/2/25/mapCanon.png [21:50:30] okay cool [21:50:33] yeah they exist [21:50:38] but I think it deleted the file rows [21:51:46] https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/refs/heads/REL1_44/maintenance/cleanupImages.php#112 [21:51:46] [21:51:57] or that [21:52:02] shit [21:52:43] can we download the files from swift? [21:52:47] I could reupload them manually or using MsUpload [21:52:50] we can, yes [21:52:53] how [21:52:56] kinda hacky, but i'm not stopping you [21:53:00] what about deleted files? [21:53:26] they would have a deletion log entry, in theory I can check that as well using a script [21:53:38] unless you can think of a better solution [21:53:55] https://www.mediawiki.org/wiki/Manual:Oldimage_table [21:53:56] oh thank god [21:54:01] Is there no script to rebuild the row [21:54:04] or we get an sql dump [21:54:11] and see if the image rows are present in there [21:54:14] oh dandy [21:54:21] probably not [21:54:50] we also lose the summary [21:55:40] ugh [21:55:50] Backup time [21:56:09] that's probably the easiest solution, assuming we can get a backup easily [21:56:13] it's on c1/db151 [21:56:19] so um [21:56:23] where are the sql backups [21:56:32] something something approve his damn access request? [21:56:38] paladox said ovh yesterday [21:57:07] @paladox we need an sql backup of rainworldmoddingwiki on c1/db151 because a maintenance script deleted rows in the image table [21:57:10] can we get that easily? [21:57:41] just the `image` table [21:57:44] yup [21:58:04] then hopefully we can do cursed database shenanigans to fix the casing for those [21:58:13] and _hopefully_, just hopefully, that'd make it work [21:58:18] Do MW maint scripts have an option to do a manual transaction [21:58:18] wouldn't we also need to do cursed swift shenanigans? [21:58:23] woah, til discord can underscore [21:58:29] FUCK [21:58:31] that too [21:58:32] Yup [21:58:42] but restoring the image table brings us back to the state before [21:58:47] We have a backup in ovh [21:58:48] which is still suboptimal, but no data would be lost [21:58:51] yay!! [22:00:36] [1/2] https://gerrit.wikimedia.org/r/plugins/gitiles/mediawiki/core/+/refs/heads/REL1_44/maintenance/cleanupImages.php#164 [22:00:36] [2/2] what a shitty script [22:00:47] I'm going to report that upstream later [22:00:51] ty [22:01:03] how many clicks for you to rewrite it [22:01:08] do not [22:01:13] are the rows we need to restore [22:01:19] only 662 [22:03:14] Well there’s a listing limit in ovh in the web, so I can’t check if we have it for certain. I’m mobile as well so someone else will need to get it [22:03:32] Use the U.K. ovh account [22:04:30] Probably want to change the script to support Swift? [22:04:44] the generic filestore thingy [22:04:46] but anyway [22:04:54] apparently swift doesn't support moving objects lol [22:04:56] only copy [22:05:01] hm [22:05:04] Yeh [22:05:17] atp we might as well just reupload them [22:05:23] if we can't easily fix the titles anyway [22:05:24] should i began doing copies in swift? [22:05:33] there's a command to copy an object [22:06:02] wouldn't we still need to add them to the table? [22:06:12] that feels like it should be one sql command away [22:06:30] if you think you can figure that command out, ig [22:13:01] [1/19] this does lowercase, but just change LOWER for UPPER [22:13:01] [2/19] ``` [22:13:02] [3/19] > SELECT img_name, BINARY(CONCAT(LOWER(SUBSTR(CONVERT(img_name USING utf8), 1, 1)), SUBSTR(CONVERT(img_name USING utf8), 2))) AS new_img_name FROM image LIMIT 3; [22:13:02] [4/19] stdClass Object [22:13:02] [5/19] ( [22:13:03] [6/19] [img_name] => Vanilla_Exploits_DLC_icon.png [22:13:03] [7/19] [new_img_name] => vanilla_Exploits_DLC_icon.png [22:13:03] [8/19] ) [22:13:03] [9/19] stdClass Object [22:13:04] [10/19] ( [22:13:04] [11/19] [img_name] => No_DLC_icon.png [22:13:05] [12/19] [new_img_name] => no_DLC_icon.png [22:13:05] [13/19] ) [22:13:06] [14/19] stdClass Object [22:13:06] [15/19] ( [22:13:07] [16/19] [img_name] => No_Expedition_DLC_icon.png [22:13:07] [17/19] [new_img_name] => no_Expedition_DLC_icon.png [22:13:08] [18/19] ) [22:13:08] [19/19] ``` [22:15:31] nice, thx [22:16:49] so uh [22:16:59] ig we stalled on someone getting a sql backup? [22:17:06] i guess so [22:17:24] do you want me to copy the swift files to their new names, or do you wanna just reupload manually [22:18:02] if we can get an SQL backup I assume it doesn't make sense to reupload them [22:18:16] I don't really care which solution we use [22:18:23] I can also just reupload them and we don't need a backup [22:18:45] lmk if you want me to do the former ;p [22:21:22] filed [22:21:32] I'm gonna ask the author of the task [22:21:38] oki [22:26:51] I can grab the backup once I figure out the script [22:27:39] nice, thank you [22:38:14] Should I restore the rows directly, or would you want me to just put the backup somwehere so you can work on it? [22:39:00] if you could restore the rows at directly, that would be great [22:40:41] Sure, I'll do that once I can download [22:40:52] thx [22:41:33] Need to unfreeze the file, which takes 10 minutes [22:41:54] @blankeclair do you think we can just update the image names in the DB to the uppercase versions ones you've copied them in swift, and that will work? [22:42:07] ye [22:42:16] i think we need to rename them in oldimage and page as well [22:42:21] [22:42:42] we should sue to WMF for this /s [22:42:49] page should already by done from cleanupTitles (i hope), but thanks :3 [22:42:58] alas, GPL [22:43:01] Wha [22:43:13] we need to put it into the microwave [22:43:19] Oh [22:43:39] oh right, at least the search suggestions are uppercase now [22:43:52] Why is mattermost forgetting all my settings and servers every time I restart my computer? [22:44:19] amnesia :3 [22:45:21] lol [22:46:10] guess i'll do the swift copies then :3 [22:46:13] Wrong channel? [22:46:25] Oh, I see the connection [22:50:46] Oh it's happening every time I start mattermost 🙃 [22:52:51] I've got the file downloaded on db151, but I need to step away for about 30 minutes. I'll have it done once I get back though [22:53:17] Alright, thx [22:56:57] now gonna copy the lowercase files to uppercase ones [22:57:14] thx [22:58:05] [1/2] swift copy --destination=/miraheze-rainworldmoddingwiki-local-public/1/1e/BfTilesGuide.png miraheze-rainworldmoddingwiki-local-public 3/3f/bfTilesGuide.png [22:58:05] [2/2] created container miraheze-rainworldmoddingwiki-local-public [22:58:06] er [22:59:49] weird [22:59:51] that should already exist [23:00:33] https://cdn.discordapp.com/attachments/1006789349498699827/1439027252800000071/1763161228335.png?ex=69190610&is=6917b490&hm=2ba948126f6a1cfb4cb2c318c38ae81f9680a253c7eb86505270cf4888cf8052& [23:01:37] wtf [23:02:02] maybe the file was deleted and is therefore not in -local-public? [23:02:26] since I assume it would be in -local-deleted instead [23:02:31] we're copying from -local-public to -local-public [23:02:44] yeah, so maybe the file isn't in -local-public [23:03:15] did you `. /etc/swift-env.sh` before running the command? [23:04:20] ye [23:04:42] how'd the copy be successful if there were no file? [23:04:53] (i also did set -e) [23:05:20] idk [23:05:24] tbh I have no idea how to work with swift [23:09:14] [1/7] ``` [23:09:15] [2/7] [somerandomdeveloper@mwtask181:~]$ swift copy --destination=/miraheze-rainworldmoddingwiki-local-public/1/1e/BfTilesGuide.png miraheze-rainworldmoddingwiki-local-public 3/3f/bfTilesGuide.png [23:09:15] [3/7] created container miraheze-rainworldmoddingwiki-local-public [23:09:15] [4/7] miraheze-rainworldmoddingwiki-local-public/3/3f/bfTilesGuide.png copied to /miraheze-rainworldmoddingwiki-local-public/1/1e/BfTilesGuide.png [23:09:15] [5/7] [somerandomdeveloper@mwtask181:~]$ swift list miraheze-rainworldmoddingwiki-local-public | grep BfTiles [23:09:16] [6/7] 1/1e/BfTilesGuide.png [23:09:16] [7/7] ``` [23:09:16] it worked manually [23:10:53] but why created container? [23:10:55] should we ignore? [23:11:15] the old file is still there, the new one is too, idk [23:14:39] https://help.ovhcloud.com/csm/en-public-cloud-storage-pcs-swift-commands-memo?id=kb_article_view&sysparm_article=KB0047230 [23:14:41] https://github.com/openstack/python-swiftclient/blob/d520b2bce952fe262b5e0dd23ebe931724349b33/swiftclient/service.py#L2933-L2937 [23:14:43] ctrl+f for "created container" [23:14:45] I think the script is just stupid [23:14:48] apparently normal?? [23:14:48] if always creates containers [23:15:17] well the code does that regardless of what you do so I guess it's not a problem [23:15:31] ight cool, rerunning [23:15:47] [1/6] ```py [23:15:47] [2/6] # Try to create the container, just in case it doesn't exist. If this [23:15:47] [3/6] # fails, it might just be because the user doesn't have container PUT [23:15:48] [4/6] # permissions, so we'll ignore any error. If there's really a problem, [23:15:48] [5/6] # it'll surface on the first object COPY. [23:15:48] [6/6] ``` [23:16:03] [23:17:01] done [23:17:28] thx! [23:17:38] yw :3 [23:18:54] should i work on oldimage? [23:19:10] I have the SQL already in theory [23:19:16] the queries [23:19:22] ah oki [23:19:30] leaving that part to you then :3 [23:19:44] [1/2] this is perfectly safe and doesn't have any security vulnerabilities at all [23:19:44] [2/2] https://cdn.discordapp.com/attachments/1006789349498699827/1439032081643471019/image.png?ex=69190a90&is=6917b910&hm=d0addff99045d34a89b17021f3fd41015eb0305008b597f53f43bfb7bf6a2f2e& [23:20:01] oh dear [23:20:13] meanwhile i wrote shell scripts lol [23:20:25] [1/2] https://cdn.discordapp.com/attachments/1006789349498699827/1439032247356358817/make_sums.sh?ex=69190ab7&is=6917b937&hm=b8c0b331314c4eb5db3d8a9663f03e1d4951014026e8733564f43be17517a6f1& [23:20:25] [2/2] https://cdn.discordapp.com/attachments/1006789349498699827/1439032247914205215/swift_copy.sh?ex=69190ab7&is=6917b937&hm=b0f72419173ef6a8c3b0286fe5ffe6d69324e5b7f92a23acaee91344fe0734ca& [23:20:46] I did that once for my local mw dev environment, and after a couple of weeks I rewrote it in python [23:20:56] nice [23:21:16] Old image only has four entries, none of which are affected [23:21:21] oh neat [23:23:44] I've restored the rows in image [23:24:02] thanks! I'll run the SQL to update the names then [23:24:53] [1/8] ``` [23:24:54] [2/8] > UPDATE image SET img_name = 'MapConnections.png' WHERE img_name = 'mapConnections.png'; [23:24:54] [3/8] Wikimedia\Rdbms\DBQueryError: Error 1062: Duplicate entry 'MapConnections.png' for key 'PRIMARY' [23:24:54] [4/8] > UPDATE image SET img_name = 'RegionFormat.png' WHERE img_name = 'regionFormat.png'; [23:24:55] [5/8] Wikimedia\Rdbms\DBQueryError: Error 1062: Duplicate entry 'RegionFormat.png' for key 'PRIMARY' [23:24:55] [6/8] > UPDATE image SET img_name = 'VoxelStructEffectColorsExample.png' WHERE img_name = 'voxelStructEffectColorsExample.png'; [23:24:55] [7/8] Wikimedia\Rdbms\DBQueryError: Error 1062: Duplicate entry 'VoxelStructEffectColorsExample.png' for key 'PRIMARY' [23:24:56] [8/8] ``` [23:25:12] ig if those existed before they were overwritten now in swift [23:25:34] oh fuck [23:25:42] i forgot to account for that 🤦‍♀️ [23:25:59] that might've happened with cleanupImages as well [23:26:31] nice, the new images work [23:26:42] after purging [23:27:03] hell yeah!! [23:27:20] should we purge all the file description pages, or nah [23:27:34] manually? [23:27:40] script-ly [23:27:46] if you have a script, ig [23:27:50] i can make one [23:27:54] if you want [23:27:55] sure [23:29:40] `curl --no-progress-meter -IL -X POST $(cat urls) | grep -i ^http/` [23:30:27] done~ [23:30:54] nice, thanks! [23:31:07] also thanks @orduin for restoring the backup! [23:58:08] No problem!