epodder 0.0.7 → 0.0.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 94d4f519a9c0b22eded9199580b110f7ef13a660
4
- data.tar.gz: e03b1b144d3b3e2a955d6155c5ba0143228c03dd
3
+ metadata.gz: 21e023301a7f8229e28c7d39d02a389e72091bdf
4
+ data.tar.gz: 6aea7f349ead1585e114be3ef6592923924198ed
5
5
  SHA512:
6
- metadata.gz: 158d4961b2e61a76f6a55bc3e21ed77c0db38c7a3b5a729d0946dfb17202df49095feb46298fe0212aa63c18786912fc0a901f5d20e319c7d306d6c5e222f021
7
- data.tar.gz: 07dcb752b375fc2d72a1448804b070df1788aa29586564cb57d95d89e59062bc8b891545b4921b3acb0c52e7f8965376ede7189edc120c6565dcdec9ba8ba8ef
6
+ metadata.gz: d01f7f2fcaeb061b369cf8d37b8ab1c447c330d2029dab4bc142030493bd9df0cf858e95ea3f9018a71cdd5e31629a57eb1ea1eb556e89cb0b441ef917a7343b
7
+ data.tar.gz: 91fc8461eefa3b03e0263d4eef576b08587b5860344e23cae3298185a40b5a2dffbdd2a46cc8725cb9a744f43c322c88744ec33018e544d5082fd4873f2a2224
data/lib/arguments.rb CHANGED
@@ -24,7 +24,7 @@ module Epodder
24
24
  @args[:path] = "~/.epodder"
25
25
  cmd = CmdParse::CommandParser.new( true, true )
26
26
  cmd.program_name = "ePodder"
27
- cmd.program_version = [0, 0, 7]
27
+ cmd.program_version = [0, 0, 8]
28
28
  cmd.options = CmdParse::OptionParserWrapper.new do |opt|
29
29
  opt.separator "Global options:"
30
30
  opt.on("-v", "--verbose", "Be verbose when outputting info") {|t| @args[:verbose] = true }
data/lib/verb/download.rb CHANGED
@@ -2,9 +2,6 @@ require 'downspout'
2
2
  module Epodder
3
3
  class Download < Verb
4
4
 
5
- def initialize
6
- end
7
-
8
5
  def download args
9
6
  each_argument(args) do |podcast|
10
7
  look_for_episodes podcast
@@ -25,10 +22,14 @@ module Epodder
25
22
  def download_episode episode
26
23
  begin
27
24
  Downspout::Config.max_redirects = 100
25
+ Downspout::Config.enable_curb! if Downspout::Config.curb_available?
28
26
  Downspout.download_url_to_path(episode.url, "download/#{episode.podcast.title.strip}/#{episode.url.to_s.match('((?!\/).)*$')}")
29
27
  episode.mark_as_downloaded
30
28
  rescue StandardError => e
31
29
  puts e
30
+ puts e.backtrace
31
+ ensure
32
+ episode.mark_as_downloaded if File.exists? "download/#{episode.podcast.title.strip}/#{episode.url.to_s.match('((?!\/).)*$')}"
32
33
  end
33
34
  end
34
35
 
data/lib/verb/update.rb CHANGED
@@ -3,70 +3,70 @@ require 'feedme'
3
3
  require 'mechanize'
4
4
  #require 'progress'
5
5
  module Epodder
6
- class Update < Verb
6
+ class Update < Verb
7
7
 
8
- def initialize
9
- super
10
- @mechanize = Mechanize.new
11
- end
12
-
13
- def update args
14
- each_argument(args) do |podcast|
15
- check_for_new_episodes podcast
16
- end
17
- end
8
+ def initialize
9
+ super
10
+ @mechanize = Mechanize.new
11
+ end
18
12
 
19
- def check_for_new_episodes podcast
20
- max_pub = get_max_pubdate podcast
21
- open_podcast podcast, max_pub
22
- end
13
+ def update args
14
+ each_argument(args) do |podcast|
15
+ check_for_new_episodes podcast
16
+ end
17
+ end
23
18
 
24
- def get_max_pubdate podcast
25
- Episode.max(:pub_date, :conditions => { :podcast => podcast }) || Time.at(0).to_date
26
- end
19
+ def check_for_new_episodes podcast
20
+ max_pub = get_max_pubdate podcast
21
+ open_podcast podcast, max_pub
22
+ end
27
23
 
28
- def open_podcast podcast, max_pub
29
- begin
30
- @mechanize.get(podcast.uri) do |feed|
31
- @log.info "Maximum pubdate for #{podcast.title} - #{podcast.id} is #{max_pub}"
32
- parse_feed feed, podcast, max_pub
33
- end
34
- rescue StandardError => e
35
- puts "#{podcast.title} - #{e}"
36
- end
37
- end
24
+ def get_max_pubdate podcast
25
+ Episode.max(:pub_date, :conditions => { :podcast => podcast }) || Time.at(0).to_date
26
+ end
38
27
 
39
- def parse_feed feed, database_podcast, max_pub
40
- podcast = FeedMe.parse feed.body
41
- podcast.emulate_atom!
42
- pending_episodes = podcast.items.select {|item| is_valid? item, max_pub}
43
- pending_episodes.each {|pending_episode| add_eligible_episode database_podcast, pending_episode }
44
- length = pending_episodes.length
45
- puts "#{database_podcast.title} has #{length} new episodes" if length > 0
28
+ def open_podcast podcast, max_pub
29
+ begin
30
+ @mechanize.get(podcast.uri) do |feed|
31
+ @log.info "Maximum pubdate for #{podcast.title} - #{podcast.id} is #{max_pub}"
32
+ parse_feed feed, podcast, max_pub
46
33
  end
34
+ rescue StandardError => e
35
+ puts "#{podcast.title} - #{e}"
36
+ end
37
+ end
47
38
 
48
- def is_valid? item, max_pub
49
- item.enclosure && item.pubdate.to_date > max_pub.to_date
50
- end
39
+ def parse_feed feed, database_podcast, max_pub
40
+ podcast = FeedMe.parse feed.body
41
+ podcast.emulate_atom!
42
+ pending_episodes = podcast.items.select {|item| is_valid? item, max_pub}
43
+ pending_episodes.each {|pending_episode| add_eligible_episode database_podcast, pending_episode }
44
+ length = pending_episodes.length
45
+ puts "#{database_podcast.title} has #{length} new episodes" if length > 0
46
+ end
47
+
48
+ def is_valid? item, max_pub
49
+ item.enclosure && item.pubdate.to_date > max_pub.to_date
50
+ end
51
51
 
52
- def add_eligible_episode podcast, item
53
- begin
54
- ep = Episode.first_or_create(
55
- :title => item.title,
56
- :url => item.enclosure.url,
57
- :pub_date => item.pubdate.to_date,
58
- :downloaded => false,
59
- :podcast => podcast
60
- )
61
- ep.errors.each do |error|
62
- @log.error error
63
- end
52
+ def add_eligible_episode podcast, item
53
+ begin
54
+ ep = Episode.first_or_create(
55
+ :title => item.title,
56
+ :url => item.enclosure.url,
57
+ :pub_date => item.pubdate.to_date,
58
+ :downloaded => false,
59
+ :podcast => podcast
60
+ )
61
+ ep.errors.each do |error|
62
+ @log.error error
63
+ end
64
64
 
65
- rescue Exception => e
66
- @log.error e
67
- raise e
68
- end
65
+ rescue Exception => e
66
+ @log.error e
67
+ raise e
69
68
  end
70
-
71
69
  end
70
+
71
+ end
72
72
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: epodder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.7
4
+ version: 0.0.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Eric Bergstrom
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-07 00:00:00.000000000 Z
11
+ date: 2013-08-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -332,7 +332,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
332
332
  version: '0'
333
333
  requirements: []
334
334
  rubyforge_project:
335
- rubygems_version: 2.0.4
335
+ rubygems_version: 2.0.6
336
336
  signing_key:
337
337
  specification_version: 4
338
338
  summary: Ruby re-do of hpodder