Progress Continues
We've already had 21453 updates since Dolphin 5.0. Keep up with Dolphin's continuing progress through the Dolphin Blog: August, September, and October 2023 Progress Report. |
The Dolphin Emulator Wiki needs your help! Dolphin can play thousands of games, and changes are happening all the time. Help us keep up! Join in and help us make this the best resource for Dolphin. |
User:Keller999/projects/gamepageupdate
Jump to navigation
Jump to search
I am working on doing several things for all existing game pages:
- If it's not already in place, copy/paste a cleaned-up Infobox from Wikipedia into the game page
- Update templates to use the most recent versions, rather than redirected versions
- Ensure that all sections that need user updates have a template to copy-paste, or a link to further documentation
- Update pages to conform to the standard game page -- Problems, Configuration, Version Compatibility, Testing, Gameplay Videos
- Remove existing non-used config variables if they are present in the page
Scripts
Takes a Wikipedia Infobox and first paragraph and turns it into an acceptable format for our wiki. Paste in the info from Wikipedia, then enter -1 to show that you're done. Still requires a little bit of manual eye-balling for other system's information, but greatly speeds the whole process. Also removes platforms that aren't in Dolphin, removes all references, citations, and wiki brackets.
#!/usr/bin/perl my $line; my @devices; my $imageLine; if (($#ARGV + 1) eq 1) { $imageLine = $ARGV[0]; $imageLine =~ s/\ {2,}/\ /g; } system('clear'); while ($line ne "-1") { $line = <STDIN>; chomp($line); if (($line ne "-1") and ($line ne "")) { push (@devices,$line); } } $foundInfobox = 0; my $categories; system('clear'); foreach (@devices) { $newLine = $_; $platforms = "\|platforms \= "; $platformAltered = 0; $skip = 0; if ($newLine =~ /^\{\{\ *Infobox.*/gi) { $newLine =~ s/^\{\{\ *Infobox.*/\{\{Infobox\ VG/gi; $foundInfobox = 1; } #Platforms if ($newLine =~ /\|\ *platforms/gi) { #Wii if ($newLine =~ /.*Wii.*/i) { $platforms .= '[[Wii]] '; $categories .= "[[Category:Wii games]]\n"; $platformAltered = 1; } #GameCube if ($newLine =~ /GameCube/i) { $platforms .= '[[GameCube]] '; $categories .= "[[Category:GameCube games]]\n"; $platformAltered = 1; } #WiiWare if ($newLine =~ /WiiWare/i) { $platforms .= '[[WiiWare]] '; $categories .= "[[Category:WiiWare games]]\n"; $platformAltered = 1; } #TriForce if ($newLine =~ /TriForce/i) { $platforms .= '[[Triforce]] '; $categories .= "[[Category:Triforce games]]\n"; $platformAltered = 1; } } #Purge un-used parameters if ($newLine =~ /^\|/) { if ($newLine =~ /\|\ *(title|developer|publisher|distributor|director|producer|designer|programmer|artist|composer|license|series|engine|resolution|released|genre|mode|ratings|input|size|fps|dspcode|dtkadpcm|channeltype|image|mode|modes)\ *=\ * .+/gi) { $skip = 0; } else { $skip = 1; } } #Replace image name, if necessary if (($newLine =~ /^\|\ *image/) and ($imageLine ne "")) { $skip = 1; print "$imageLine\n"; } #Un-wiki-fy everything if (($newLine =~ /^\|\ *image/ eq "") and ($platformAltered eq 0)) { $newLine =~ s/\<ref.+?\/.{0,3}\>//gi; # remove citations references $newLine =~ s/\{\{cite.*?\}\}//gi; # remove references $newLine =~ s/\[\[(([.]|[^\|])+?)\]\]/$1/g; # un-wiki-fy wiki links in the format [[link]] $newLine =~ s/\[\[.+?\|(.+?)\]\]/$1/g; # un-wiki-fy wiki links in the format [[link|name]] } #Set genre categories if ($newLine =~ /^\|\ *genre/ ne "") { $genreLine = $newLine; $genreLine =~ s/^\|\ *genre\ *\=\ *//i; @genres = split (/\,/,$genreLine); foreach (@genres) { $line = $_; $line =~ s/^\ *//; $line =~ s/\ +$//; $categories .= "\[\[Category:" . $line . " games\]\]\n"; } } #Set mode categories if ($foundInfobox eq 1) { if (($platformAltered eq 0) and ($skip eq 0)) { print $newLine . "\n"; } elsif ($platformAltered eq 1) { print $platforms . "\n"; } } } print "\n\n\n"; print $categories; print "\n\n\n";
Script that takes existing Template:test entry entries and converts them to Template:testing/entry entries.
#!/usr/bin/perl my $line; my @input; my @result; system('clear'); while ($line ne "-1") { $line = <STDIN>; chomp($line); if (($line ne "-1") and ($line ne "")) { push (@input,$line); } } push (@result, "\=\= Testing \=\="); push (@result, "\{\{testing\/start\}\}"); push (@result, "\<!--Use this template for test entries\: \{\{testing\/entry\|revision=\|OS=\|CPU=\|GPU=\|result=\|tester=\}\}-->"); system('clear'); foreach (@input) { $newLine = $_; $newLine =~ s/^\{\{test entry/\{\{testing\/entry/gi; if ($newLine =~ /^\{\{testing\/entry/gi) { push (@result, $newLine); } } push (@result, "\{\{testing\/end\}\}"); foreach (@result) { print $_ . "\n"; }
I might need to combine all of this into one mega script that you can drop an existing page into and have it spit out a properly-formatted one...