#!/usr/bin/env python

#####################

from mangafox import MangaFox
from mangareader import MangaReader
from otakuworks import OtakuWorks

#####################

class SiteParserFactory():
	"""
	Chooses the right subclass function to call.
	"""
	@staticmethod
	def getInstance(options):
		ParserClass = {
			'[mf]' 		: MangaFox,
			'[mr]'	 	: MangaReader,
			'[ow]'	 	: OtakuWorks
			
		}.get(options.site, None)
		
		if not ParserClass:
			raise NotImplementedError( "Site Not Supported" )
		
		return ParserClass(options)
@@ -316,18 +316,23 @@
 %09'%5Bmf%5D' 
-%09%09
+       
 : MangaF
@@ -344,19 +344,24 @@
 %09%09'%5Bmr%5D'
-%09 %09
+        
 : MangaR
@@ -380,11 +380,108 @@
 ow%5D'
-%09 %09
+        : OtakuWorks,%0A%09%09%09'MangaFox'    : MangaFox,%0A%09%09%09'MangaReader' : MangaReader,%0A%09%09%09'OtakuWorks'  
 : Ot

Update to restore XML Functionality. It would be confusing for the XML to specify the site in the new format: [mf], [mr], ect. The XML module could covert from the MangaFox to [mf]. However, I believe the XML module should be ignorant and the Factory pattern should do the conversion and return the correct Parser.