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=\[\[User:YourUserName\|YourUserName\]\]-->"); 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...