diff --git a/youtube_video/forms.py b/youtube_video/forms.py index 7d62fd7..5b59383 100644 --- a/youtube_video/forms.py +++ b/youtube_video/forms.py @@ -67,11 +67,13 @@ class YTVideoForm(forms.ModelForm): def clean_url(self): url = self.cleaned_data.get('url', '') - if not 'youtube' in url or re.compile('[htps:/]*w*\.youtube\.com/?').fullmatch(url) or requests.get(url).status_code == 404: + if url[0].lower() != "h": url = "https://" + url + if (re.compile("https?://w{3}\.youtube\.com/").match(url) == None + and re.compile("https?://youtu\.be/").match(url) == None) or requests.get(url).status_code == 404: self._errors['url'] = [_('Invalid URL. It should be an YouTube link.')] - return ValueError - + if re.compile("https?://youtu\.be/").match(url) != None: + url = url.replace("youtu.be","www.youtube.com/embed") return url def save(self, commit = True): diff --git a/youtube_video/models.py b/youtube_video/models.py index cb15a90..d1827c2 100644 --- a/youtube_video/models.py +++ b/youtube_video/models.py @@ -5,7 +5,7 @@ from django.core.urlresolvers import reverse_lazy from topics.models import Resource class YTVideo(Resource): - url = models.URLField(_('URL'), max_length = 250) + url = models.CharField(_('URL'), max_length = 250) class Meta: verbose_name = _('YTVideo') @@ -37,4 +37,3 @@ class YTVideo(Resource): return "https://www.youtube.com/embed/" + parts[1] return self.url - -- libgit2 0.21.2