User:SOTO/bot

The War Doctor # X .3

To-do
 python replace.py -regex "\{\{real world\}\}\r\n\{\{(.*?)stub\}\}\r\n\{\{title dab away\}\}\r\n([\s\S]*?)\}\}" "\n\n\2}}" -page:"The Curious Case of the Misery Diary (short story)" -transcludes:"real world" -pt:1 -summary:"Standardising template order"  python replace.py -regex "==( *)External link( *)==" "==\1External links\2==" -summary:"Standardising *External links* heading" -start:! -pt:1  python touch.py -transcludes:"Infobox Story" -pt:1  python replace.py -catr:"Lists of appearances" -regex "=( *)Comic( *)=" "=\1Comics\2=" "=( *)IDW publishing( *)=" "=\1IDW Publishing\2=" "=( *)Titan comics( *)=" "=\1Titan Comics\2=" "=( *)IDW( *)=" "=\1IDW Publishing\2=" "=( *)Titan( *)=" "=\1Titan Comics\2=" "=( *)Marvel( *)=" "=\1Marvel Comics\2=" -pt:1
 * Remove from pages with.
 * Make sure is everywhere beginning with "A" or "The".
 * Make sure is on all character pages, and all real world people pages, where applicable.
 * Also and.
 * is at least missing from DWDVDF issues
 * Remove  and   from transclusions of  and.
 * Ensure and  are below all other templates on the page (must be at the bottom).
 * Manual run to change " " to " "
 * Differentiate between "Bernice Summerfield audio stories" and "Bernice Summerfield" navs in infoboxes, such as at The Judas Gift.

 python replace.py -regex -ref:"Police" -catr:"Police officers" "([Pp]olice) officer" "\1 officer" "\[\[([Pp]olice)\|([Pp]olice)(man| officer)\]\]" "\2\3" "([Pp]olice)\{\{\!\}\}(Police officer|Policeman)" "Police officer" "\[\[([Pp]olice)\]\] officer" "\1 officer" "\[\[([Pp]olice)\]\]man" "\1man" "\[\[([Pp]olice)\]\] (car|\[\[car\]\])" "\1 car" "([Pp]olice) (car|\[\[car\]\])" "\1 car" -summary:"Linking" -pt:1  python replace.py -regex -ref:"The Doctor's TARDIS" "\[\[([Tt]he Doctor's TARDIS|[Tt]he TARDIS)\#Library\|TARDIS library\]\]" "TARDIS library" -summary:"Linking" -pt:1

 python replace.py -regex "(\|\|\)" "" -summary:"Removing tags" -start:! -pt:1  python replace.py -regex "\[\[(TV|AUDIO|COMIC|PROSE|GAME|REF|DOC|WC|NOTVALID)\]\]: \[\[(.*?) \((.*?)\)\|(.*?)\]\]" "\1: \3" summary:"Piped italics fix" -start:! -pt:1  python replace.py -regex "\[\[(.*?)\|\1\]\]" "\1" "\[\[(.*?) \((.*?)\)\|\1\]\]" "\1" -summary:"Piped italics fix" -start:! -pt:1  python replace.py -regex "\[\[(.*?)\|(.*?)\]\]" "\2" -summary:"Piped italics fix" -start:! -pt:1
 * Fix for "|thumb", with underscores and with spaces.


 * Append bullet points ("*") to all instances of . Then add it to the template itself, and update all instances accordingly.
 * Get "Footnotes" after "External links", where it's incorrectly placed before.

 python replace.py -regex "(\{\{wi\|Emmerdale\}\}|\{\{w\|Emmerdale\}\})" "Emmerdale" -ref:"Emmerdale" -summary:"Linking Emmerdale" -pt:1


 * Implement and  from URLs, mobile and desktop (Sonic the Hedgehog, Sonic the Comic)

<pre style="background:black!important;color:white"> python replace.py -regex "\[\[(:wikipedia|wikipedia):(.*?)\|(.*?)\]\]" "" "\[\[(:wikipedia|wikipedia):(.*?)\|(.*?)\]\]" "" "\{\{(w|wi)\|(.*?)\|\2\}\}" "" "\{\{(w|wi)\|(\w)(.*?)\|(\w)\3\}\}" "" "\{\{(w|wi)\|(\w)(.*?)\|(\w)\3(s)\}\}" "" -summary:" and " -start:! -pt:1


 * Category:Stories by theme music

Continue immediately
<pre style="background:black!important;color:white"> python replace.py "{{Infobox_" "{{Infobox " -summary:"Infobox" -start:"John Harrison" -pt:1 <pre style="background:black!important;color:white"> python replace.py -regex "==( *)External Links( *)==" "==\1External links\2==" -summary:"T:HEAD" -start:"The Lady" -pt:1 <pre style="background:black!important;color:white"> python replace.py -regex "\{\{Infobox([\s\S]*?)\}\}\r\n\{\{([Yy]ou may)" "{{Infobox\1}}{{you may" "\{\{Infobox([\s\S]*?)\}\}\r\n\{\{([Dd]ab page)" "{{Infobox\1}}{{dab page" "\{\{Infobox([\s\S]*?)\}\}\r\n\{\{([Ww]ikipediainfo)" "{{Infobox\1}}{{wikipediainfo" "(\}\}\{\{|\{\{)([sS]tub|.*? stub|looks like\|.*?|wikipediainfo|wikipediainfo\|.*?)\}\}\{\{(you may|dab page)" "\1\2}}\n{{\3" "\r\n\}\}\{\{(.*?)\}\}\{\{(you may|dab page|wikipediainfo)" "\n}}{{\1}///}{{\2" "\{\{Infobox([\s\S]*?)(\]\]|\)|\w)\}\}\{\{(you may|dab page|wikipediainfo)" "{{Infobox\1\2\n}}{{\3" "\}\/\/\/\}" "}}" "\{\{Infobox([\s\S]*?)\}\}\r\n\r\n" "{{Infobox\1}}\n" -summary:"Spacing" -start:Dom -pt:1 <pre style="background:black!important;color:white"> python replace.py -regex "\[\[(:wikipedia|wikipedia):(.*?)\|(.*?)\]\]" "{{wi|\2|\3}}" "\[\[(:wikipedia|wikipedia):(.*?)\|(.*?)\]\]" "{{w|\2|\3}}" "\{\{(w|wi)\|(.*?)\|\2\}\}" "{{\1|\2}}" "\{\{(w|wi)\|(\w)(.*?)\|(\w)\3\}\}" "{{\1|\4\3}}" "\{\{(w|wi)\|(\w)(.*?)\|(\w)\3(s)\}\}" "{{\1|\4\3|\4\3s}}" -summary:"{{w}} and {{wi}}" -start:Kevin -pt:1 <pre style="background:black!important;color:white"> python replace.py -regex "(The Bill|Upstairs, Downstairs|Upstairs Downstairs|Emmerdale|Game of Thrones|I Love Lucy|Wonder Woman|The X-Files|Orange is the New Black|Out of the Unknown|Dixon of Dock Green|CSI|Call the Midwife|Britain's Got Talent|Blake's 7|Hollyoaks|The Tomorrow People|Space: 1999|The Hitchhiker's Guide to the Galaxy|Downton Abbey|EastEnders|Eastenders|Juliet Bravo|Bergerac|Bob the Builder|Fireman Sam|Crossroads|Falcon Crest|Baywatch|Dynasty|The Sweeney|Z-Cars|Z Cars|Doomwatch|Wuthering Heights|Bridget Jones|War and Peace|War & Peace|Pride and Prejudice|Great Expectations|King Lear|The Three Musketeers|The Musketeers|Sherlock Holmes)" "\1" "\[\[\[\[(The Bill|Upstairs, Downstairs|Upstairs Downstairs|Emmerdale|Game of Thrones|I Love Lucy|Wonder Woman|The X-Files|Orange is the New Black|Out of the Unknown|Dixon of Dock Green|CSI|Call the Midwife|Britain's Got Talent|Blake's 7|Hollyoaks|The Tomorrow People|Space: 1999|The Hitchhiker's Guide to the Galaxy|Downton Abbey|EastEnders|Eastenders|Juliet Bravo|Bergerac|Bob the Builder|Fireman Sam|Crossroads|Falcon Crest|Baywatch|Dynasty|The Sweeney|Z-Cars|Z Cars|Doomwatch|Wuthering Heights|Bridget Jones|War and Peace|War & Peace|Pride and Prejudice|Great Expectations|King Lear|The Three Musketeers|The Musketeers|Sherlock Holmes)\]\]\]\]" "\1" "\[\[(The Bill|Upstairs, Downstairs|Upstairs Downstairs|Emmerdale|Game of Thrones|I Love Lucy|Wonder Woman|The X-Files|Orange is the New Black|Out of the Unknown|Dixon of Dock Green|CSI|Call the Midwife|Britain's Got Talent|Blake's 7|Hollyoaks|The Tomorrow People|Space: 1999|The Hitchhiker's Guide to the Galaxy|Downton Abbey|EastEnders|Eastenders|Juliet Bravo|Bergerac|Bob the Builder|Fireman Sam|Crossroads|Falcon Crest|Baywatch|Dynasty|The Sweeney|Z-Cars|Z Cars|Doomwatch|Wuthering Heights|Bridget Jones|War and Peace|War & Peace|Pride and Prejudice|Great Expectations|King Lear|The Three Musketeers|The Musketeers|Sherlock Holmes)\]\]" "\1" "\[\[Eastenders\]\]" "EastEnders" "\[\[Z Cars\]\]" "Z-Cars" "\[\[Upstairs Downstairs\]\]" "Upstairs, Downstairs" "Dallas" "Dallas (TV series)" "Agatha Christie's Poirot" "Agatha Christie's [[Poirot" "Agatha Christie's Marple" "Agatha Christie's Marple" "\{\{wi\|(Star Trek: Deep Space Nine)\}\}" "\1" "(Star Trek: Deep Space Nine)" "\1" "(Hamlet|Macbeth|Star Wars|Tarzan|The Hobbit|Star Trek|Quantum Leap|Babylon 5|Superman)" "\1" "\[\[\[\[(Hamlet|Macbeth|Star Wars|Tarzan|The Hobbit|Star Trek|Quantum Leap|Babylon 5|Superman)\]\]\]\]" "\1" "Robin Hood: Prince of Thieves" "Robin Hood: Prince of Thieves" "Richard III" "Richard III" "Prometheus" "Prometheus" "The Hitchhicker's Guide to the Galaxy" "The Hitchhiker's Guide to the Galaxy" "The Hitchhickers Guide to the Galaxy" "The Hitchhiker's Guide to the Galaxy" "The Hitch-Hickers Guide to the Galaxy" "The Hitchhiker's Guide to the Galaxy" "War & Peace" "War & Peace" "{{iw|thebill|The Bill}}" "The Bill" -summary:"linking" " covers all licensed \[\[Star Wars\]\] works" " covers all licensed Star Wars works" -pt:1 -start:! <pre style="background:black!important;color:white"> python replace.py -summary:"Cosmetic infobox fixes" -regex "\{\{Infobox([\s\S]*)\r\n\|\}\}" "{{Infobox\1\n}}" "\{\{Infobox([\s\S]*)( *)\|\}\}" "{{Infobox\1\n}}" -pt:1 -start:"Doctor Who Experience" <pre style="background:black!important;color:white"> python replace.py -summary:"Cosmetic infobox fixes" -regex "\|( *)(only|first|first mention)( *)=( *)(.*?) \((.*?)\)\|\3" "|\1\2\3=\4\5 (\6)" -pt:1 -start:"Art" -always <pre style="background:black!important;color:white"> python replace.py -regex "\r\n\{\{\#ifeq:\{\{PAGENAME\}\}\|(.*)\|\}\}" "" -summary:"-preload remnant" -pt:1 -start:"Eye" <pre style="background:black!important;color:white"> python replace.py -links:"Kiss" "kiss" "kiss" -excepttext:"kiss" -pt:1 <pre style="background:black!important;color:white;fontsize:.5em"> python replace.py -cat:"Production team titles" "he is she is" "they are" "he or she" "they" -pt:1
 * Check phone for further runs

Then
<pre style="background:black!important;color:white;font-size:.9em"> python replace.py -regex "\[\[Category:(.*? interviewed on The Fan Show)\]\]\r\n([\s\S]*)\r\n\[\[Category:(.*?)\]\]" "\2\n\n" "\[\[Category:(.*? interviewed on The Fan Show)\]\]\r\n\[\[Category:(.*?)\]\]" "\n" "\[\[Category:(.*? interviewed on Toby Hadoke's Who's Round)\]\]\r\n([\s\S]*)\r\n\[\[Category:(.*?)\]\]" "\2\n\n" "\[\[Category:(.*? interviewed on Toby Hadoke's Who's Round)\]\]\r\n\[\[Category:(.*?)\]\]" "\n" "\[\[Category:(.*? interviewed on Doctor Who Extra)\]\]\r\n([\s\S]*)\r\n\[\[Category:(.*?)\]\]" "\2\n\n" "\[\[Category:(.*? interviewed on Doctor Who Extra)\]\]\r\n\[\[Category:(.*?)\]\]" "\n" "\[\[Category:(.*? interviewed on Doctor Who Live)\]\]\r\n([\s\S]*)\r\n\[\[Category:(.*?)\]\]" "\2\n\n" "\[\[Category:(.*? interviewed on Doctor Who Live)\]\]\r\n\[\[Category:(.*?)\]\]" "\n" "\[\[Category:(Totally Doctor Who guests)\]\]\r\n([\s\S]*)\r\n\[\[Category:(.*?)\]\]" "\2\n\n" "\[\[Category:(Totally Doctor Who guests)\]\]\r\n\[\[Category:(.*?)\]\]" "\n" "\[\[Category:(.*? interviewed on Torchwood Declassified)\]\]\r\n([\s\S]*)\r\n\[\[Category:(.*?)\]\]" "\2\n\n" "\[\[Category:(.*? interviewed on Torchwood Declassified)\]\]\r\n\[\[Category:(.*?)\]\]" "\n" "\[\[Category:(.*? interviewed on Doctor Who Confidential)\]\]\r\n([\s\S]*)\r\n\[\[Category:(.*?)\]\]" "\2\n\n" "\[\[Category:(.*? interviewed on Doctor Who Confidential)\]\]\r\n\[\[Category:(.*?)\]\]" "\n" "-summary:Bringing interview cats to the bottom" -pt:1 -cat:"People interviewed on Doctor Who Extra" -cat:"People interviewed on Doctor Who Live" -cat:"People interviewed on The Fan Show" -catr:"People interviewed on Toby Hadoke's Who's Round"

<pre style="background:black!important;color:white;font-size:.8em"> python replace.py -regex "\|( *)featuring( *)=( *)\[\[Trey\|Lady Trey\]\]" "|\1featuring\2=\3Lady Trey" "\|( *)featuring( *)=( *)(.*?)\[\[Trey\|Lady Trey\]\]" "|\1featuring\2=\3\4Lady Trey" "\r\n\|( *)featuring( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7\n|\1featuring5\2=\3\8\n|\1featuring6\2=\3\9\n|\1featuring7\2=\3\10\n|\1featuring8\2=\3\11\n|\1featuring9\2=\3\12\n|\1featuring10\2=\3\13" "\r\n\|( *)featuring( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7\n|\1featuring5\2=\3\8\n|\1featuring6\2=\3\9\n|\1featuring7\2=\3\10\n|\1featuring8\2=\3\11\n|\1featuring9\2=\3\12" "\r\n\|( *)featuring( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7\n|\1featuring5\2=\3\8\n|\1featuring6\2=\3\9\n|\1featuring7\2=\3\10\n|\1featuring8\2=\3\11" "\r\n\|( *)featuring( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7\n|\1featuring5\2=\3\8\n|\1featuring6\2=\3\9\n|\1featuring7\2=\3\10" "\r\n\|( *)featuring( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7\n|\1featuring5\2=\3\8\n|\1featuring6\2=\3\9" "\r\n\|( *)featuring( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7\n|\1featuring5\2=\3\8" "\r\n\|( *)featuring( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7" "\r\n\|( *)featuring( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6" "\r\n\|( *)featuring( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5" "\r\n\|( *)featuring( *)=( *)\{\{il\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\}\}" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7\n|\1featuring5\2=\3\8\n|\1featuring6\2=\3\9\n|\1featuring7\2=\3\10\n|\1featuring8\2=\3\11\n|\1featuring9\2=\3\12\n|\1featuring10\2=\3\13" "\r\n\|( *)featuring( *)=( *)\{\{il\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\}\}" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7\n|\1featuring5\2=\3\8\n|\1featuring6\2=\3\9\n|\1featuring7\2=\3\10\n|\1featuring8\2=\3\11\n|\1featuring9\2=\3\12" "\r\n\|( *)featuring( *)=( *)\{\{il\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\}\}" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7\n|\1featuring5\2=\3\8\n|\1featuring6\2=\3\9\n|\1featuring7\2=\3\10\n|\1featuring8\2=\3\11" "\r\n\|( *)featuring( *)=( *)\{\{il\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\}\}" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7\n|\1featuring5\2=\3\8\n|\1featuring6\2=\3\9\n|\1featuring7\2=\3\10" "\r\n\|( *)featuring( *)=( *)\{\{il\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\}\}" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7\n|\1featuring5\2=\3\8\n|\1featuring6\2=\3\9" "\r\n\|( *)featuring( *)=( *)\{\{il\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\}\}" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7\n|\1featuring5\2=\3\8" "\r\n\|( *)featuring( *)=( *)\{\{il\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\}\}" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7" "\r\n\|( *)featuring( *)=( *)\{\{il\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\}\}" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6" "\r\n\|( *)featuring( *)=( *)\{\{il\|\[\[(.*?)\]\]\|\[\[(.*?)\]\]\}\}" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5" "\r\n\|( *)featuring( *)=( *)\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7\n|\1featuring5\2=\3\8\n|\1featuring6\2=\3\9\n|\1featuring7\2=\3\10\n|\1featuring8\2=\3\11\n|\1featuring9\2=\3\12\n|\1featuring10\2=\3\13" "\r\n\|( *)featuring( *)=( *)\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7\n|\1featuring5\2=\3\8\n|\1featuring6\2=\3\9\n|\1featuring7\2=\3\10\n|\1featuring8\2=\3\11\n|\1featuring9\2=\3\12" "\r\n\|( *)featuring( *)=( *)\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7\n|\1featuring5\2=\3\8\n|\1featuring6\2=\3\9\n|\1featuring7\2=\3\10\n|\1featuring8\2=\3\11" "\r\n\|( *)featuring( *)=( *)\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7\n|\1featuring5\2=\3\8\n|\1featuring6\2=\3\9\n|\1featuring7\2=\3\10" "\r\n\|( *)featuring( *)=( *)\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7\n|\1featuring5\2=\3\8\n|\1featuring6\2=\3\9" "\r\n\|( *)featuring( *)=( *)\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7\n|\1featuring5\2=\3\8" "\r\n\|( *)featuring( *)=( *)\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6\n|\1featuring4\2=\3\7" "\r\n\|( *)featuring( *)=( *)\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5\n|\1featuring3\2=\3\6" "\r\n\|( *)featuring( *)=( *)\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]" "\n|\1featuring\2=\3\4\n|\1featuring2\2=\3\5" "\|( *)featuring( *)=( *)(Alistair Gordon.*?-Stewart\|The Brigadier|\[\[Alistair Gordon.*?-Stewart\|The Brigadier\]\])" "|\1featuring\2=\3The Brigadier" "\|( *)featuring( *)=( *)(Alistair Gordon Lethbridge-Stewart\|The Brig|\[\[Alistair Gordon Lethbridge-Stewart\|The Brig\]\]|\[\[The Brig\]\])" "|\1featuring\2=\3The Brig" "\|( *)(featuring\d+)( *)=( *)(.*?)\|(.*?)\r\n" "|\1\2\3=\4\5\n" "\|( *)(featuring\d+)( *)=( *)(.*?)\|(.*?)\r\n" "|\1\2\3=\4\5\n" "\|( *)(featuring\d+)( *)=( *)(.*?)\|(.*?)\r\n" "|\1\2\3=\4\5\n" "-summary:Autolinking featuring variable" -pt:1 "\|( *)(featuring\d)  " "|\1\2  " "\|( *)(featuring\d\d)    " "|\1\2  " -start:"Doctor"

<pre style="background:black!important;color:white;font-size:.7em"> python replace.py -regex "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5\n|\1interviewee3\2= \6\n|\1interviewee4\2= \7\n|\1interviewee5\2= \8\n|\1interviewee6\2= \9\n|\1interviewee7\2= \10\n|\1interviewee8\2= \11\n|\1interviewee9\2= \12\n|\1interviewee10\2= \13\n|\1interviewee11\2= \14" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5\n|\1interviewee3\2= \6\n|\1interviewee4\2= \7\n|\1interviewee5\2= \8\n|\1interviewee6\2= \9\n|\1interviewee7\2= \10\n|\1interviewee8\2= \11\n|\1interviewee9\2= \12\n|\1interviewee10\2= \13" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5\n|\1interviewee3\2= \6\n|\1interviewee4\2= \7\n|\1interviewee5\2= \8\n|\1interviewee6\2= \9\n|\1interviewee7\2= \10\n|\1interviewee8\2= \11\n|\1interviewee9\2= \12" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5\n|\1interviewee3\2= \6\n|\1interviewee4\2= \7\n|\1interviewee5\2= \8\n|\1interviewee6\2= \9\n|\1interviewee7\2= \10\n|\1interviewee8\2= \11" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5\n|\1interviewee3\2= \6\n|\1interviewee4\2= \7\n|\1interviewee5\2= \8\n|\1interviewee6\2= \9\n|\1interviewee7\2= \10" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5\n|\1interviewee3\2= \6\n|\1interviewee4\2= \7\n|\1interviewee5\2= \8\n|\1interviewee6\2= \9" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5\n|\1interviewee3\2= \6\n|\1interviewee4\2= \7\n|\1interviewee5\2= \8" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5\n|\1interviewee3\2= \6\n|\1interviewee4\2= \7" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5\n|\1interviewee3\2= \6" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\], \[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\]\r\n" "\n|\1interviewee\2= \4\n" "\r\n\|( *)interviewee( *)=( *)\{\{il\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\}\}" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5\n|\1interviewee3\2= \6\n|\1interviewee4\2= \7\n|\1interviewee5\2= \8\n|\1interviewee6\2= \9\n|\1interviewee7\2= \10\n|\1interviewee8\2= \11\n|\1interviewee9\2= \12\n|\1interviewee10\2= \13" "\r\n\|( *)interviewee( *)=( *)\{\{il\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\}\}" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5\n|\1interviewee3\2= \6\n|\1interviewee4\2= \7\n|\1interviewee5\2= \8\n|\1interviewee6\2= \9\n|\1interviewee7\2= \10\n|\1interviewee8\2= \11\n|\1interviewee9\2= \12" "\r\n\|( *)interviewee( *)=( *)\{\{il\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\}\}" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5\n|\1interviewee3\2= \6\n|\1interviewee4\2= \7\n|\1interviewee5\2= \8\n|\1interviewee6\2= \9\n|\1interviewee7\2= \10\n|\1interviewee8\2= \11" "\r\n\|( *)interviewee( *)=( *)\{\{il\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\}\}" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5\n|\1interviewee3\2= \6\n|\1interviewee4\2= \7\n|\1interviewee5\2= \8\n|\1interviewee6\2= \9\n|\1interviewee7\2= \10" "\r\n\|( *)interviewee( *)=( *)\{\{il\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\}\}" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5\n|\1interviewee3\2= \6\n|\1interviewee4\2= \7\n|\1interviewee5\2= \8\n|\1interviewee6\2= \9" "\r\n\|( *)interviewee( *)=( *)\{\{il\|(.*?)\|(.*?)\|(.*?)\|(.*?)\|(.*?)\}\}" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5\n|\1interviewee3\2= \6\n|\1interviewee4\2= \7\n|\1interviewee5\2= \8" "\r\n\|( *)interviewee( *)=( *)\{\{il\|(.*?)\|(.*?)\|(.*?)\|(.*?)\}\}" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5\n|\1interviewee3\2= \6\n|\1interviewee4\2= \7" "\r\n\|( *)interviewee( *)=( *)\{\{il\|(.*?)\|(.*?)\|(.*?)\}\}" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5\n|\1interviewee3\2= \6" "\r\n\|( *)interviewee( *)=( *)\{\{il\|(.*?)\|(.*?)\}\}" "\n|\1interviewee\2= \4\n|\1interviewee2\2= \5" "\r\n\|( *)interviewee( *)=( *)\{\{il\|(.*?)\}\}\r\n" "\n|\1interviewee\2= \4\n" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|interviewee2\2= \5\n|interviewee3\2= \6\n|interviewee4\2= \7\n|interviewee5\2= \8\n|interviewee6\2= \9\n|interviewee7\2= \10\n|interviewee8\2= \11\n|interviewee9\2= \12\n|interviewee10\2= \13" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|interviewee2\2= \5\n|interviewee3\2= \6\n|interviewee4\2= \7\n|interviewee5\2= \8\n|interviewee6\2= \9\n|interviewee7\2= \10\n|interviewee8\2= \11\n|interviewee9\2= \12" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|interviewee2\2= \5\n|interviewee3\2= \6\n|interviewee4\2= \7\n|interviewee5\2= \8\n|interviewee6\2= \9\n|interviewee7\2= \10\n|interviewee8\2= \11" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|interviewee2\2= \5\n|interviewee3\2= \6\n|interviewee4\2= \7\n|interviewee5\2= \8\n|interviewee6\2= \9\n|interviewee7\2= \10" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|interviewee2\2= \5\n|interviewee3\2= \6\n|interviewee4\2= \7\n|interviewee5\2= \8\n|interviewee6\2= \9" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|interviewee2\2= \5\n|interviewee3\2= \6\n|interviewee4\2= \7\n|interviewee5\2= \8" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|interviewee2\2= \5\n|interviewee3\2= \6\n|interviewee4\2= \7" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|interviewee2\2= \5\n|interviewee3\2= \6" "\r\n\|( *)interviewee( *)=( *)\[\[(.*?)\]\]\<br */*\>\[\[(.*?)\]\]" "\n|\1interviewee\2= \4\n|interviewee2\2= \5" "\|( *)(interviewee|\1interviewee.*)( *)=( *)(.*?)\|(.*?)\r\n" "|\1\2\3=\4\5\n" "\|( *)(interviewee|\1interviewee.*)( *)=( *)(.*?)\|(.*?)\r\n" "|\1\2\3=\4\5\n" "\|( *)(interviewee|\1interviewee.*)( *)=( *)(.*?)\|(.*?)\r\n" "|\1\2\3=\4\5\n" "\|( *)(interviewee\d)  " "|\1\2  " "\|( *)(interviewee\d\d)    " "|\1\2  " -summary:"Autolinking interviewee variable" -pt:1 -start:"D"

<pre style="background:black!important;color:white"> python replace.py -cat:"Disambiguation pages" -regex "\*( *)\[\[(.*?) \((.*?)\)\|\2\]\]" "*\1\2 (\3)" "\*( *)\[\[(.*?) \((.*?)\)\|\2\]\]" "*\1\2 (\3)" -pt:1

Test
This is the test. Yes, very boring.

Manual work
<pre style="background:black!important;color:white"> python replace.py -cat:"Pages with inline Wikipedia links that correspond to pages at Tardis" -regex "\{\{(w|wi)\|(.*?)\|\2\}\}" "" "\{\{wi\|(.*?)\}\}" "\1" "\{\{w\|(.*?)\}\}" "\1" -pt:1 -summary:"We have a page for this at Tardis" <pre style="background:black!important;color:white"> python replace.py -catr:"Stories" -regex "\{\{(w|wi)\|(.*?)\|\2\}\}" "" "\{\{wi\|(.*?)\}\}" "\1" "\{\{w\|(.*?)\}\}" "\1" -pt:1

Semi-manual work

 * Change Scientific Adviser links, and redirect to scientific advisor.
 * Perhaps move scientific advisor.

<pre style="background:black!important;color:white"> python replace.py -transcludes:"real world" -regex "\{\{real world\}\}\{\{(.*?)stub\}\}\r\n\{\{title dab away\}\}\r\n([\s\S]*?)\}\}" "\n\n\2}}" "\{\{ImageLink(.*?)\}\}\{\{real world\}\}\{\{title dab away\}\}\{\{Infobox" "\n\n\n{{Infobox" "\{\{ImageLink(.*?)\}\}( *)\r\n\{\{[Rr]eal world\}\}( *)\r\n\{\{[Tt]itle dab away\}\}" "\n\n" "\{\{ImageLink(.*?)\}\}\{\{[Rr]eal world\}\}\{\{[Tt]itle dab away\}\}" "\n\n{{ImageLink\1}}" "\{\{[Rr]eal world\}\}\{\{[Tt]itle dab away\}\}" "{{title dab away}}\n{{real world}}" "\{\{real world\}\}\{\{[Rr]etitle\|(\'\'|.)(\{\{PAGENAME\}\})(\'\'|.)\}\}" "{{retitle|\1\2\3}}\n{{real world}}" "\{\{real world\}\}\{\{[Rr]etitle\|(.*?)\}\}" "{{retitle|\1}}\n{{real world}}" "\{\{real world\}\}\{\{ImageLink(.*?)\}\}\{\{[Tt]itle dab away\}\}" "{{title dab away}}\n{{real world}}\n{{ImageLink\1}}" "\{\{real world\}\}\{\{target years\}\}" "{{real world}}\n{{target years}}" "\{\{real world\}\} \r\n" "{{real world}}\n" "\{\{real world\}\}(.+)\r\n" "{{real world}}\n\1\n" "\{\{real world\}\}\r\n\r\n" "{{real world}}\n" -pt:1 -summary:"Standardising template spacing and order"

<pre style="background:black!important;color:white"> python replace.py -start:"The Hopes" -regex "\*( *)\[(http|https)://(.*?) (.*?) (website|site|Website|Site|homepage|home page)]" "{{official website|\3}}" -pt:1

<pre style="background:black!important;color:white"> python replace.py -start:"Cyberman" -regex "\*( *)\[(http|https)://(.*?) (.*?) (site|Site)]" "{{official website|\3}}" -pt:1

<pre style="background:black!important;color:white"> python replace.py -start:"Alexei" -regex "\*( *)\[(http|https)://(.*?) (.*?) (Site|Website|homepage|home page)]" "{{official website|\3}}" -pt:1

<pre style="background:black!important;color:white"> python replace.py -start:"A" -regex "\*( *)\[(http|https)://(.*?) (.*?) (homepage|home page)]" "{{official website|\3}}" -pt:1

Semi-manual work
<pre style="background:black!important;color:white"> python replace.py -start:A -regex "\*( *)\[(http|https)://(.*?) (.*?) (website|site|Website|Site)]" "" -pt:1

Automatic runs
<pre style="background:black!important;color:white"> python replace.py -transcludes:"real world" "" "" -summary:"standardising capitalisation on " -pt:1