From 52e305cbda6ee3a7250af2da3075675466e80694 Mon Sep 17 00:00:00 2001 From: Alexandre Morignot <erdnaxeli@cervoi.se> Date: Thu, 29 Jan 2015 16:43:41 +0100 Subject: [PATCH] add support for Dailymotion --- lib/sites/dailymotion.pm | 34 ++++++++++++++++++++++++++++++++++ lib/sites/parser.pm | 8 ++++++++ 2 files changed, 42 insertions(+) create mode 100644 lib/sites/dailymotion.pm diff --git a/lib/sites/dailymotion.pm b/lib/sites/dailymotion.pm new file mode 100644 index 0000000..095f282 --- /dev/null +++ b/lib/sites/dailymotion.pm @@ -0,0 +1,34 @@ +package dailymotion; + +use Inline Python => 'DATA'; + +sub get { + my $id = shift; + my $content = weboob_get($id); + + # weboob returns duration in h:mm:s format + my ($h, $m, $s) = ($content->{'duration'} =~ /(.):(..):(..)/); + $content->{'duration'} = $h * 3600 + $m * 60 + $s; + + return %{$content}; +} + +1; + + +__DATA__ +__Python__ + +from weboob.core import Weboob +from weboob.capabilities.video import CapVideo + +def weboob_get(id): + w = Weboob() + backends = w.load_backends(CapVideo) + + video = backends['dailymotion'].get_video(id) + + return {'title': video.title, + 'author': video.author, + 'url': video.url, + 'duration': video.duration} diff --git a/lib/sites/parser.pm b/lib/sites/parser.pm index 59e6fb4..aea9733 100644 --- a/lib/sites/parser.pm +++ b/lib/sites/parser.pm @@ -5,6 +5,7 @@ use youtube; use soundcloud; use mixcloud; use zippy; +use dailymotion; use lib "$FindBin::Bin/lib/"; use utils::print; @@ -42,6 +43,13 @@ sub parse { eval { %content = zippy::get($url) }; $content{'site'} = 'zippyshare'; } + elsif ($msg =~ m#(?:^|[^!])https?://www.dailymotion.com/video/([a-z0-9]+)#) { + eval { %content = dailymotion::get($1) }; + print $1."\n"; + + $content{'site'} = 'dailymotion'; + $content{'url'} = 'https://www.dailymotion.com/video/' . $1; + } # something goes wrong ? if ($@) { -- GitLab