Merge pull request #6 from techdragon/master

Improvements to URL's and Tests
This commit is contained in:
Juda Kaleta 2013-08-22 05:47:49 -07:00
commit cc2fbdea77
3 changed files with 33 additions and 11 deletions

View file

@ -10,10 +10,10 @@ import requests
import json
DETECT_YOUTUBE = re.compile(
r'^(http(s)?://(www\.)?)?youtu(\.?)be(\.com)?/.*', re.I
r'^(http(s)?://)?(www\.)?youtu(\.?)be(\.com)?/.*', re.I
)
DETECT_VIMEO = re.compile(
r'^(http(s)?://(www\.)?)?vimeo\.com/.*', re.I
r'^(http(s)?://)?(www\.)?(player\.)?vimeo\.com/.*', re.I
)
DETECT_SOUNDCLOUD = re.compile(
r'^(http(s)?://(www\.)?)?soundcloud\.com/.*', re.I
@ -100,8 +100,17 @@ class YoutubeBackend(VideoBackend):
Backend for YouTube URLs.
"""
re_code = re.compile(
r'youtu(?:be\.com/watch\?v=|\.be/)(?P<code>[\w-]*)(&(amp;)?[\w\?=]*)?',
re.I
r'''youtu(\.?)be(\.com)?/ # match youtube's domains
(embed/)? # match the embed url syntax
(v/)?
(watch\?v=)? # match the youtube page url
(ytscreeningroom\?v=)?
(feeds/api/videos/)?
(user\S*[^\w\-\s])?
(\S*[^\w\-\s])?
(?P<code>[\w\-]{11})[a-z0-9;:@?&%=+/\$_.-]* # match and extract
''',
re.I|re.X
)
pattern_url = 'http://www.youtube.com/embed/%s?wmode=opaque'
pattern_thumbnail_url = 'http://img.youtube.com/vi/%s/hqdefault.jpg'
@ -120,7 +129,8 @@ class VimeoBackend(VideoBackend):
"""
Backend for Vimeo URLs.
"""
re_code = re.compile(r'vimeo\.com/(?P<code>[0-9]+)', re.I)
re_code = re.compile(r'''vimeo\.com/(video/)?(?P<code>[0-9]+)''', re.I)
pattern_url = 'http://player.vimeo.com/video/%s'
def get_thumbnail_url(self):

View file

@ -13,19 +13,31 @@ class EmbedVideoTestCase(TestCase):
)
youtube_urls = (
('http://www.youtube.com/watch?v=jsrRJyHBvzw', 'jsrRJyHBvzw'),
('http://youtube.com/watch?v=jsrRJyHBvzw', 'jsrRJyHBvzw'),
('http://youtu.be/jsrRJyHBvzw', 'jsrRJyHBvzw'),
('http://www.youtube.com/watch?v=iwGFalTRHDA&feature=related', 'iwGFalTRHDA'),
('http://youtu.be/n17B_uFF4cA', 'n17B_uFF4cA'),
('http://www.youtube.com/watch?v=t-ZRX8984sc', 't-ZRX8984sc'),
('http://youtu.be/t-ZRX8984sc', 't-ZRX8984sc'),
('https://youtu.be/t-ZRX8984sc', 't-ZRX8984sc'),
('http://youtube.com/watch?v=jsrRJyHBvzw', 'jsrRJyHBvzw'),
('https://youtube.com/watch?v=jsrRJyHBvzw', 'jsrRJyHBvzw'),
('http://www.youtube.com/v/0zM3nApSvMg?rel=0', '0zM3nApSvMg'),
('https://www.youtube.com/v/0zM3nApSvMg?rel=0', '0zM3nApSvMg'),
('http://www.youtube.com/embed/0zM3nApSvMg?rel=0', '0zM3nApSvMg'),
('https://www.youtube.com/embed/0zM3nApSvMg?rel=0', '0zM3nApSvMg'),
('http://www.youtube.com/watch?v=jsrRJyHBvzw', 'jsrRJyHBvzw'),
('https://www.youtube.com/watch?v=t-ZRX8984sc', 't-ZRX8984sc'),
('http://www.youtube.com/watch?v=iwGFalTRHDA&feature=related', 'iwGFalTRHDA'),
('https://www.youtube.com/watch?v=iwGFalTRHDA&feature=related', 'iwGFalTRHDA'),
('http://www.youtube.com/watch?feature=player_embedded&v=2NpZbaAIXag', '2NpZbaAIXag'),
('https://www.youtube.com/watch?feature=player_embedded&v=2NpZbaAIXag', '2NpZbaAIXag'),
)
vimeo_urls = (
('http://vimeo.com/66577491', '66577491'),
('https://vimeo.com/66577491', '66577491'),
('http://www.vimeo.com/66577491', '66577491'),
('https://www.vimeo.com/66577491', '66577491'),
('http://player.vimeo.com/video/66577491', '66577491'),
('https://player.vimeo.com/video/66577491', '66577491'),
)
soundcloud_urls = (

View file

@ -120,11 +120,11 @@ class EmbedVideoNodeTestCase(TestCase):
self.assertEqual(str(node), '<VideoNode "some_url">')
def test_embed_get_params(self):
url = 'http://youtu.be/13456'
url = 'http://youtu.be/jsrRJyHBvzw'
backend = YoutubeBackend(url)
params = _embed_get_params(backend, (3, 8))
self.assertEqual('http://www.youtube.com/embed/13456?wmode=opaque', params['url'])
self.assertEqual('http://www.youtube.com/embed/jsrRJyHBvzw?wmode=opaque', params['url'])
self.assertEqual(3, params['width'])
self.assertEqual(8, params['height'])