| 
									
										
										
										
											2013-09-15 23:30:58 +02:00
										 |  |  | import re | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | from .mtv import MTVIE, _media_xml_tag | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | class SouthParkStudiosIE(MTVIE): | 
					
						
							|  |  |  |     IE_NAME = u'southparkstudios.com' | 
					
						
							| 
									
										
										
										
											2013-11-17 17:42:24 +01:00
										 |  |  |     _VALID_URL = r'(https?://)?(www\.)?(?P<url>southparkstudios\.com/(clips|full-episodes)/(?P<id>.+?)(\?|#|$))' | 
					
						
							| 
									
										
										
										
											2013-09-15 23:30:58 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     _FEED_URL = 'http://www.southparkstudios.com/feeds/video-player/mrss' | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-11-17 17:43:58 +01:00
										 |  |  |     # Overwrite MTVIE properties we don't want | 
					
						
							|  |  |  |     _TESTS = [{ | 
					
						
							| 
									
										
										
										
											2013-09-15 23:30:58 +02:00
										 |  |  |         u'url': u'http://www.southparkstudios.com/clips/104437/bat-daded#tab=featured', | 
					
						
							|  |  |  |         u'file': u'a7bff6c2-ed00-11e0-aca6-0026b9414f30.mp4', | 
					
						
							|  |  |  |         u'info_dict': { | 
					
						
							|  |  |  |             u'title': u'Bat Daded', | 
					
						
							| 
									
										
										
										
											2013-09-24 21:38:37 +02:00
										 |  |  |             u'description': u'Randy disqualifies South Park by getting into a fight with Bat Dad.', | 
					
						
							| 
									
										
										
										
											2013-09-15 23:30:58 +02:00
										 |  |  |         }, | 
					
						
							| 
									
										
										
										
											2013-11-17 17:43:58 +01:00
										 |  |  |     }] | 
					
						
							| 
									
										
										
										
											2013-09-15 23:30:58 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def _get_thumbnail_url(self, uri, itemdoc): | 
					
						
							|  |  |  |         search_path = '%s/%s' % (_media_xml_tag('group'), _media_xml_tag('thumbnail')) | 
					
						
							| 
									
										
										
										
											2013-09-21 10:58:43 +02:00
										 |  |  |         thumb_node = itemdoc.find(search_path) | 
					
						
							|  |  |  |         if thumb_node is None: | 
					
						
							|  |  |  |             return None | 
					
						
							|  |  |  |         else: | 
					
						
							|  |  |  |             return thumb_node.attrib['url'] | 
					
						
							| 
									
										
										
										
											2013-09-15 23:30:58 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     def _real_extract(self, url): | 
					
						
							|  |  |  |         mobj = re.match(self._VALID_URL, url) | 
					
						
							| 
									
										
										
										
											2013-11-17 17:42:24 +01:00
										 |  |  |         url = u'http://www.' + mobj.group(u'url') | 
					
						
							| 
									
										
										
										
											2013-09-15 23:30:58 +02:00
										 |  |  |         video_id = mobj.group('id') | 
					
						
							|  |  |  |         webpage = self._download_webpage(url, video_id) | 
					
						
							| 
									
										
										
										
											2013-09-24 21:38:37 +02:00
										 |  |  |         mgid = self._search_regex(r'swfobject.embedSWF\(".*?(mgid:.*?)"', | 
					
						
							| 
									
										
										
										
											2013-09-15 23:30:58 +02:00
										 |  |  |                                   webpage, u'mgid') | 
					
						
							|  |  |  |         return self._get_videos_info(mgid) | 
					
						
							| 
									
										
										
										
											2013-11-17 17:54:47 +01:00
										 |  |  | 
 | 
					
						
							|  |  |  | class SouthparkDeIE(SouthParkStudiosIE): | 
					
						
							|  |  |  |     IE_NAME = u'southpark.de' | 
					
						
							|  |  |  |     _VALID_URL = r'(https?://)?(www\.)?(?P<url>southpark\.de/(clips|alle-episoden)/(?P<id>.+?)(\?|#|$))' | 
					
						
							|  |  |  |     _FEED_URL = 'http://www.southpark.de/feeds/video-player/mrss/' | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     _TESTS = [{ | 
					
						
							|  |  |  |         u'url': u'http://www.southpark.de/clips/uygssh/the-government-wont-respect-my-privacy#tab=featured', | 
					
						
							|  |  |  |         u'file': u'85487c96-b3b9-4e39-9127-ad88583d9bf2.mp4', | 
					
						
							|  |  |  |         u'info_dict': { | 
					
						
							|  |  |  |             u'title': u'The Government Won\'t Respect My Privacy', | 
					
						
							|  |  |  |             u'description': u'Cartman explains the benefits of "Shitter" to Stan, Kyle and Craig.', | 
					
						
							|  |  |  |         }, | 
					
						
							|  |  |  |     }] |