This user is a Bot controlled by Murph (Contribs)

If the program is malfunctioning, or you disagree with some changes, please drop down a note on the Owner's talk page.
If you wish to request bot-assisted edits, see WoWWiki:Bot requests.

It is likely to be an instance of pywikipediabot, although it may use additional Unix scripting, if required.

MurphBot will try to stick to non-controversial and occasional automatic edits for things such as category cleanups, deprecating templates, etc. Any large or significant changes will be published and documented here, on relevant talk pages, the bot requests page, and the village pump, as appropriate to the situation.



If you have any requests for MurphBot, please feel free to add them here. If the request is in any way large or controversial, I would prefer to see it discussed on the village pump or an appropriate talk page before it is considered for MurphBot. Please link to any relevant discussion and sign your requests in the usual manner (--~~~~). If the request isn't something I feel I can confidently and relatively easily automate with MurphBot, I will probably move it to the bot requests page for someone else to consider.



  • Template talk:Achievementbox#type={{{doc|<type>}}}. Update the usage of {{achievementbox}} to include a {{{doc|}}} wrapper around the type parameter, and ensure the mode, arg, and type parameters are in standard form per the template doc. First run complete 22 Dec 2008, keeping as periodic until the achievements categories have most of their articles.
  • <onlyinclude>{{Achievementbox ... }}</onlyinclude> Spotted a few examples where the <onlyinclude> wrapper is missing. Pattern matching for this is a little complex, so might not catch every case. First run complete 23 Dec 2008, periodic until the achievements categories have most of their articles.


  • Deprecating renamed templates (redirects resulting from moves within the Template namespace which are still used in articles). Only redirects which are clearly the result of a move for the purpose of naming cleanup will be considered. Redirects which exist for convenient shorthand (e.g. Template:Sd) will not be touched. See discussion on the village pump. This will be done one at a time, and will take a little while. It will only occur when I'm available to supervise the bot, so lack of activity in recent changes / contributions does not mean it's finished. Using pywikipediabot template.py script.


  • Deprecated {{Elinks-<type>/wotlk}} for {{Elinks-<type>}} (they had been redirects for quite a while). Used pywikipediabot template.py script.
  • Removed {{wotlk}} from all articles.
  • Deprecating {{Questrace}} for {{Questlong|...|race=}}.
  • Cleanup of Category:Users via liberal sprinkling of {{DEFAULTSORT:{{PAGENAME}}}} to improve the appearance and coherency of the category.


I use a slightly modified version of pywikipediabot, based on the SVN trunk. Here's the diff against SVN. The change to wikipedia.py to ignore <div id="wikia-credits">.*</div> is required due to non-standard changes to MediaWiki by Wikia - without this change, their credits footer may be added to the source of any pages changed by pywikipediabot.

Index: wikipedia.py
--- wikipedia.py	(revision 6219)
+++ wikipedia.py	(working copy)
@@ -691,6 +691,7 @@
             except SectionError:
                 self._getexception = SectionError
+        self._contents = re.sub('<div id="wikia-credits">.*</div>', '', self._contents) 
         return self._contents
     def _getEditPage(self, get_redirect=False, throttle=True, sysop=False,
@@ -5374,10 +5375,12 @@
             api_url = self.api_address()
             startEncoded = urllib.quote(start.encode(self.encoding()))
             api_url += 'action=query&format=xml&list=allpages&apfrom=%s&aplimit=%i&apnamespace=%i' % (startEncoded, config.special_page_limit, namespace)
-            # TODO: support includeredirects="only" like in the old method
             if not includeredirects:
                 api_url += '&apfilterredir=nonredirects'
+            elif includeredirects == 'only':
+                api_url += '&apfilterredir=redirects'
             if throttle:
             text = self.getUrl(api_url)
Index: replace.py
--- replace.py	(revision 6219)
+++ replace.py	(working copy)
@@ -376,7 +376,7 @@
                         % page.aslink())
                 new_text = self.doReplacements(new_text)
-                if new_text == original_text:
+                if new_text.strip().replace('\r\n', '\n') == original_text.strip().replace('\r\n', '\n'):
                     wikipedia.output('No changes were necessary in %s'
                                      % page.aslink())



Edit count

4023 This user employs peasants to count their 4023.
Community content is available under CC-BY-SA unless otherwise noted.