From b8a95112e4c4946cc1b5acfa05198d871f44ebc4 Mon Sep 17 00:00:00 2001 From: Zak Flash Date: Sat, 23 May 2009 13:37:36 +0000 Subject: [PATCH] Moved swfhash into FlashVideo::Utils so other Site modules can use it. --- FlashVideo/Site/Mtvnservices.pm | 24 +----------------------- FlashVideo/Utils.pm | 24 +++++++++++++++++++++++- 2 files changed, 24 insertions(+), 24 deletions(-) diff --git a/FlashVideo/Site/Mtvnservices.pm b/FlashVideo/Site/Mtvnservices.pm index 7b04a16a..ffcc24cf 100644 --- a/FlashVideo/Site/Mtvnservices.pm +++ b/FlashVideo/Site/Mtvnservices.pm @@ -5,8 +5,6 @@ use strict; use FlashVideo::Utils; use URI::Escape; -use constant FP_KEY => "Genuine Adobe Flash Player 001"; - sub find_video { my ($self, $browser, $embed_url) = @_; @@ -81,33 +79,13 @@ sub handle_feed { flv => $filename, rtmp => $url, pageUrl => $page_url, - $self->swfhash($browser, "http://media.mtvnservices.com/player/release/") + swfhash($browser, "http://media.mtvnservices.com/player/release/") }; } return $url, $filename; } -sub swfhash { - my($self, $browser, $url) = @_; - - die "Must have Compress::Zlib and Digest::SHA for Mtvnservices RTMP downloads\n" - unless eval { - require Compress::Zlib; - require Digest::SHA; - }; - - $browser->get($url); - - my $data = "F" . substr($browser->content, 1, 7) - . Compress::Zlib::uncompress(substr $browser->content, 8); - - return - swfsize => length $data, - swfhash => Digest::SHA::hmac_sha256_hex($data, FP_KEY), - swfUrl => $url; -} - sub can_handle { my($self, $browser) = @_; diff --git a/FlashVideo/Utils.pm b/FlashVideo/Utils.pm index 9ae5f5f1..e1d8f08b 100644 --- a/FlashVideo/Utils.pm +++ b/FlashVideo/Utils.pm @@ -7,8 +7,10 @@ use HTML::Entities; use HTML::TokeParser; use Encode; +use constant FP_KEY => "Genuine Adobe Flash Player 001"; + our @EXPORT = qw(extract_title extract_info title_to_filename get_video_filename - debug info error); + debug info error swfhash); sub extract_title { my($browser) = @_; @@ -36,6 +38,26 @@ sub extract_info { }; } +sub swfhash { + my($browser, $url) = @_; + + die "Must have Compress::Zlib and Digest::SHA for this RTMP download\n" + unless eval { + require Compress::Zlib; + require Digest::SHA; + }; + + $browser->get($url); + + my $data = "F" . substr($browser->content, 1, 7) + . Compress::Zlib::uncompress(substr $browser->content, 8); + + return + swfsize => length $data, + swfhash => Digest::SHA::hmac_sha256_hex($data, FP_KEY), + swfUrl => $url; +} + sub title_to_filename { my($title, $type) = @_; $type ||= "flv";