mirror of
https://github.com/Hopiu/django-embed-video.git
synced 2026-03-16 21:30:23 +00:00
Merge pull request #6 from techdragon/master
Improvements to URL's and Tests
This commit is contained in:
commit
cc2fbdea77
3 changed files with 33 additions and 11 deletions
|
|
@ -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):
|
||||
|
|
|
|||
|
|
@ -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 = (
|
||||
|
|
|
|||
|
|
@ -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'])
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue