epodder 0.0.7 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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