iplayer-dl 0.1.18 → 0.1.19

Sign up to get free protection for your applications and to get access to all the features.
data/README CHANGED
@@ -12,3 +12,4 @@ Windows users should omit 'sudo' in the second line.
12
12
  You can then run the downloader just by typing:
13
13
 
14
14
  iplayer-dl
15
+
data/Rakefile CHANGED
@@ -88,10 +88,6 @@ begin
88
88
  # using GitHub, edit as appropriate.
89
89
  Rake::GemPackageTask.new(spec) do |pkg|
90
90
  pkg.gem_spec = spec
91
-
92
- # Generate the gemspec file for github.
93
- file = File.dirname(__FILE__) + "/#{spec.name}.gemspec"
94
- File.open(file, "w") {|f| f << spec.to_ruby }
95
91
  end
96
92
  rescue LoadError
97
93
  end
@@ -89,7 +89,7 @@ if http_proxy = preferences.http_proxy
89
89
  http_proxy = 'http://' + http_proxy unless http_proxy =~ %r{^http://}
90
90
  u = URI.parse(http_proxy)
91
91
  $stderr.puts "Using proxy #{u.host}:#{u.port}"
92
- http = Net::HTTP::Proxy(u.host, u.port)
92
+ http = Net::HTTP::Proxy(u.host, u.port, u.user, u.password)
93
93
  else
94
94
  http = Net::HTTP
95
95
  end
Binary file
@@ -3,13 +3,13 @@ require 'uri'
3
3
 
4
4
  class Net::HTTPResponse # Monkey-patch in some 21st-century functionality
5
5
  include Enumerable
6
-
6
+
7
7
  def cookies
8
8
  inject([]){ |acc, (key, value)|
9
9
  key == 'set-cookie' ? acc << value.split(/;/).first : acc
10
10
  }
11
11
  end
12
-
12
+
13
13
  def to_hash
14
14
  @to_hash ||= inject({}){ |hash, (key, value)|
15
15
  hash[key] = value
@@ -15,7 +15,7 @@ class App < Wx::App
15
15
  if http_proxy = @options[:http_proxy]
16
16
  http_proxy = 'http://' + http_proxy unless http_proxy =~ %r{^http://}
17
17
  u = URI.parse(http_proxy)
18
- http = Net::HTTP::Proxy(u.host, u.port)
18
+ http = Net::HTTP::Proxy(u.host, u.port, u.user, u.password)
19
19
  else
20
20
  http = Net::HTTP
21
21
  end
@@ -31,8 +31,8 @@ class App < Wx::App
31
31
  downloader = Downloader.new(@browser, pid)
32
32
  available_versions = downloader.available_versions
33
33
  raise MP4Unavailable if available_versions.empty?
34
- version = available_versions.sort_by{ |v|
35
- @options[:type_preference].index(v.name) || 100
34
+ version = available_versions.sort_by{ |v|
35
+ @options[:type_preference].index(v.name) || 100
36
36
  }.first
37
37
 
38
38
  self.yield
@@ -18,7 +18,7 @@ class Metadata
18
18
  end
19
19
 
20
20
  def full_title
21
- mixed_title.gsub(/\s*:\s*/, ' - ')
21
+ dmy_to_ymd(mixed_title).gsub(/\s*:\s*/, ' - ')
22
22
  end
23
23
 
24
24
  def filetype
@@ -36,7 +36,6 @@ class Metadata
36
36
  end
37
37
 
38
38
  private
39
-
40
39
  def metadata
41
40
  @metadata ||= REXML::Document.new( @browser.get(METADATA_URL % @pid).body )
42
41
  rescue Exception => e
@@ -60,5 +59,9 @@ private
60
59
  programme_type == 'radioProgramme'
61
60
  end
62
61
 
62
+ # convert UK date format to YYYY-MM-DD so that it can be sorted easily
63
+ def dmy_to_ymd(s)
64
+ s.sub(%r[(\d{2})/(\d{2})/(\d{4})], "\\3-\\2-\\1")
65
+ end
63
66
  end
64
67
  end
@@ -3,7 +3,7 @@ require 'yaml'
3
3
  module IPlayer
4
4
  class Preferences
5
5
 
6
- def initialize(env=ENV, platform=PLATFORM)
6
+ def initialize(env=ENV, platform=RUBY_PLATFORM)
7
7
  @env = env
8
8
  @platform = platform
9
9
  @hash = {}
@@ -1,4 +1,4 @@
1
1
  module IPlayer
2
- VERSION = '0.1.18'
2
+ VERSION = '0.1.19'
3
3
  GUI_VERSION = '1.14'
4
4
  end
@@ -72,4 +72,39 @@ class MetadataTest < Test::Unit::TestCase
72
72
  expected = {'anonymous' => 'b00htg55'}
73
73
  assert_equal expected, metadata.versions
74
74
  end
75
+
76
+ def test_should_rearrange_DDMMYYYY_dates_to_YYYYMMDD
77
+ xml = %{
78
+ <playlist xmlns="http://bbc.co.uk/2008/emp/playlist" revision="1">
79
+ <config>
80
+ <plugin name="iPlayerLiveStats"/>
81
+ <plugin name="spacesReporting"/>
82
+ </config>
83
+ <id>tag:bbc.co.uk,2008:pips:b00769ss:playlist</id>
84
+ <link rel="self" href="http://www.bbc.co.uk/iplayer/playlist/b00769ss/"/>
85
+ <link rel="alternate" href="http://www.bbc.co.uk/iplayer/episode/b00769ss/That_Reminds_Me_01_10_2002/"/>
86
+ <link rel="holding" href="http://node2.bbcimg.co.uk/iplayer/images/episode/b00769ss_640_360.jpg" height="360" width="640" type="image/jpeg" />
87
+ <title>That Reminds Me: 01/10/2002</title>
88
+ <summary>The late Ludovic Kennedy reminisces about his life. He remembers a very Eton schoolboy prank involving hiring a plane, and shares memories of his favourite interviewees.</summary>
89
+ <updated>2009-12-10T00:05:48Z</updated>
90
+ <rights>
91
+ <right name="embed">unset</right>
92
+ </rights>
93
+ <item kind="radioProgramme" duration="1800" identifier="b001x3rr" group="b00769ss" publisher="pips">
94
+ <title>That Reminds Me: 01/10/2002</title>
95
+ <broadcast>2009-12-24T20:00:00Z</broadcast>
96
+ <service id="bbc_radio_four" href="http://www.bbc.co.uk/iplayer/bbc_radio_four">BBC Radio 4</service>
97
+ <masterbrand id="bbc_radio_four" href="http://www.bbc.co.uk/iplayer/bbc_radio_four">BBC Radio 4</masterbrand>
98
+ <passionSite href="http://www.bbc.co.uk/programmes/b00dzkk0/microsite">That Reminds Me</passionSite>
99
+ <alternate id="default" />
100
+ <mediator identifier="b001x3rr" name="pips"/>
101
+ </item>
102
+ </playlist>
103
+ }
104
+ pid = 'abc'
105
+ browser = stub(:get => stub(:body => xml))
106
+ metadata = IPlayer::Metadata.new(pid, browser)
107
+ assert_match /2002-10-01/, metadata.full_title
108
+ end
109
+
75
110
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iplayer-dl
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.18
4
+ version: 0.1.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Paul Battley
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-12-19 00:00:00 +00:00
12
+ date: 2010-02-20 00:00:00 +00:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -35,33 +35,37 @@ files:
35
35
  - README
36
36
  - setup.rb
37
37
  - Rakefile
38
- - lib/iplayer/.version.rb.swp
39
- - lib/iplayer/version.rb
40
- - lib/iplayer/browser.rb
41
- - lib/iplayer/downloader.rb
38
+ - lib/.iplayer.rb.swp
39
+ - lib/iplayer/errors.rb
40
+ - lib/iplayer/.metadata.rb.swp
42
41
  - lib/iplayer/preferences.rb
43
- - lib/iplayer/gui/frame.rb
42
+ - lib/iplayer/.downloader.rb.swp
43
+ - lib/iplayer/.subtitles.rb.swp
44
+ - lib/iplayer/subtitles.rb
45
+ - lib/iplayer/downloader.rb
46
+ - lib/iplayer/constants.rb
47
+ - lib/iplayer/.constants.rb.swp
44
48
  - lib/iplayer/gui/app.rb
49
+ - lib/iplayer/gui/.app.rb.swp
50
+ - lib/iplayer/gui/frame.rb
45
51
  - lib/iplayer/gui/main_frame.rb
46
- - lib/iplayer/subtitles.rb
47
- - lib/iplayer/errors.rb
48
52
  - lib/iplayer/.browser.rb.swp
49
- - lib/iplayer/.downloader.rb.swp
50
- - lib/iplayer/translations.rb
51
53
  - lib/iplayer/metadata.rb
52
- - lib/iplayer/constants.rb
54
+ - lib/iplayer/browser.rb
55
+ - lib/iplayer/translations.rb
56
+ - lib/iplayer/version.rb
53
57
  - lib/iplayer.rb
58
+ - test/test_subtitles.rb
54
59
  - test/test_preferences.rb
60
+ - test/.test_metadata.rb.swp
55
61
  - test/test_metadata.rb
56
- - test/test_subtitles.rb
57
62
  - bin/iplayer-dl
58
63
  - bin/iplayer-dl-gui
59
- - bin/.iplayer-dl.swp
60
- - share/pixmaps/iplayer-dl/icon128.png
64
+ - share/pixmaps/iplayer-dl/icon64.png
65
+ - share/pixmaps/iplayer-dl/icon32.png
61
66
  - share/pixmaps/iplayer-dl/icon48.png
62
67
  - share/pixmaps/iplayer-dl/icon16.png
63
- - share/pixmaps/iplayer-dl/icon32.png
64
- - share/pixmaps/iplayer-dl/icon64.png
68
+ - share/pixmaps/iplayer-dl/icon128.png
65
69
  has_rdoc: true
66
70
  homepage: http://po-ru.com/projects/iplayer-downloader
67
71
  licenses: []