podtergeist 0.0.6 → 0.0.7

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,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- M2M3YzE3ZWQwM2E5YjY2Mjg1OWM1Yzk4MDQ3MDk5MzhiZDQyMGYxMg==
5
- data.tar.gz: !binary |-
6
- MjI2MGMxM2IwNDQ2NWYxMmE1OWMxOGRlODMzNGVkZGNlZjI4NDI3OQ==
7
- !binary "U0hBNTEy":
8
- metadata.gz: !binary |-
9
- NmZmYWM3MzNhMGVlMzk0MzFhZmRjZTk3NjE4NTJjYWUxNDQ3ZjA0OTFhYjUz
10
- YjIzMWIwNjFkZmEwMTRlZTljMDE5MWZkNmFlMzczZjBmM2NlOWQ0MWFkMjg2
11
- NmFmMGNkNGIxOWRiNDdmNTYyNjA0NWY1NDJlMzZmOTVmYzZhNDA=
12
- data.tar.gz: !binary |-
13
- OGVmMTZhOGVlMGY0NmJiM2ZhYjI0MzBhMmY2MTdhN2U0MjkwNmJiMjc3MzRj
14
- NmQ3MmRkNTM1MTU0MjM3NDkxZWJlNWIwMjhkMzU2MTQ5ZGE5OTE3YmM2NGE0
15
- OWFjY2FlNjE3OWZjZTNmNmRkYjg1OTI4NzBhNmQ3YzMyODQ4ZDg=
2
+ SHA1:
3
+ metadata.gz: 867b1321f63eb7766bd461c247f7d44a786e10fd
4
+ data.tar.gz: eddbd5dfdd5d2a89bc31af3d9812423a85b6e549
5
+ SHA512:
6
+ metadata.gz: 9d6579bbd0910fbe35deb8f1ecea724e0c010e73347f5cc7499bcd4093c65679349b5bb0509814a167f490b65f56dfe34e5f66b1e233ecb27e60d6219b6e2aea
7
+ data.tar.gz: aba99cae44fa37c9be4acdc32916f9a543094920d0058bdac22fc83100edd1ad041810c457112e1854bfeecee870b1db8dc4fbd0d8e95f6358259cee53d834af
@@ -2,15 +2,15 @@
2
2
  require 'thor'
3
3
  require 'podtergeist'
4
4
 
5
- class PodtergeistCLI < Thor
5
+ class PodtergeistCLI < Thor
6
6
  default_task :help
7
7
 
8
8
  method_option :destination, :required => true, :type => :string
9
- method_option :show_title, :required => true, :type => :string
10
- method_option :show_link, :required => true, :type => :string
11
- method_option :show_description, :required => true, :type => :string
12
9
  method_option :local_file, :required => true, :type => :string
13
10
  method_option :host, :required => true, :type => :string
11
+ method_option :show_title, :required => false, :type => :string
12
+ method_option :show_link, :required => true, :type => :string
13
+ method_option :show_description, :false => true, :type => :string
14
14
  method_option :episode_link, :required => true, :type => :string
15
15
  method_option :episode_pubdate, :required => true, :type => :string
16
16
 
@@ -20,13 +20,13 @@ class PodtergeistCLI < Thor
20
20
  end
21
21
 
22
22
  method_option :destination, :required => true, :type => :string
23
- method_option :show_title, :required => true, :type => :string
23
+ method_option :show_title, :required => false, :type => :string
24
24
  method_option :show_link, :required => true, :type => :string
25
- method_option :show_description, :required => true, :type => :string
26
- method_option :local_directory, :required => true, :type => :string
27
- method_option :host, :required => true, :type => :string
25
+ method_option :show_description, :required => false, :type => :string
28
26
  method_option :episode_link, :required => false, :type => :string
29
27
  method_option :episode_pubdate, :required => false, :type => :string
28
+ method_option :local_directory, :required => true, :type => :string
29
+ method_option :host, :required => true, :type => :string
30
30
 
31
31
  desc 'existing', 'Add items in existing directory to a podcast feed (creating the feed if does not exist)'
32
32
  def existing
@@ -3,6 +3,7 @@ require 'rss/itunes'
3
3
  require 'mime/types'
4
4
  require 'taglib'
5
5
  require 'uri'
6
+ require 'fileutils'
6
7
 
7
8
  module Podtergeist
8
9
  class Feed
@@ -12,10 +13,12 @@ module Podtergeist
12
13
  create_channel(feed,params) unless feed_exists?(feed)
13
14
  append_item(feed,params)
14
15
  end
15
-
16
+
16
17
  def existing(feed,params)
17
- create_channel(feed,params) unless feed_exists?(feed)
18
- Dir.glob("#{params['local_directory']}/*.{m4a,mp3}").each do |file|
18
+ shows = Dir.glob("#{params['local_directory']}/*.{m4a,mp3}")
19
+ FileUtils.rm(feed) if feed_exists?(feed)
20
+ create_channel(feed,params,shows.first)
21
+ shows.each do |file|
19
22
  append_item(feed,params,file)
20
23
  end
21
24
  end
@@ -27,14 +30,24 @@ module Podtergeist
27
30
  File.exist?(path)
28
31
  end
29
32
 
30
- # create
31
- def create_channel(path,params)
33
+ # create
34
+ def create_channel(path,params,file=params['local_file'])
32
35
  rss = RSS::Rss.new('2.0')
33
36
  channel = RSS::Rss::Channel.new
34
-
35
- channel.title = params['show_title']
36
- channel.description = params['show_description']
37
- channel.link = params['show_link']
37
+
38
+ # If we have an existing file we don't need to use supplied data.
39
+ file_metadata = {}
40
+ TagLib::FileRef.open(file) do |fileref|
41
+ tag = fileref.tag
42
+ file_metadata.update({
43
+ 'show_title' => tag.album,
44
+ 'show_description' => "#{tag.album} on #{tag.artist}"
45
+ })
46
+ end if file
47
+
48
+ channel.title = file_metadata['show_title'] || params['show_title']
49
+ channel.description = file_metadata['show_description'] || params['show_description']
50
+ channel.link = file_metadata['show_link'] || params['show_link']
38
51
 
39
52
  rss.channel = channel
40
53
 
@@ -64,7 +77,7 @@ module Podtergeist
64
77
  item.guid.content = params['episode_link'] unless params['episode_link'].nil?
65
78
  item.guid.isPermaLink = true
66
79
 
67
- item.description = tag.title
80
+ item.description = tag.comment
68
81
 
69
82
  item.enclosure = RSS::Rss::Channel::Item::Enclosure.new(remote, properties.length, MIME::Types.type_for(file).first)
70
83
 
@@ -74,9 +87,9 @@ module Podtergeist
74
87
  file.write(rss.to_s)
75
88
  file.close
76
89
  end
77
- end
90
+ end
78
91
  end
79
92
 
80
93
  end
81
94
  end
82
- end
95
+ end
@@ -1,3 +1,3 @@
1
1
  module Podtergeist
2
- VERSION = '0.0.6'
2
+ VERSION = '0.0.7'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: podtergeist
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.6
4
+ version: 0.0.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Coleman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-06-17 00:00:00.000000000 Z
11
+ date: 2013-07-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: thor
@@ -70,42 +70,42 @@ dependencies:
70
70
  name: rake
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ! '>='
73
+ - - '>='
74
74
  - !ruby/object:Gem::Version
75
75
  version: '0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ! '>='
80
+ - - '>='
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: pry
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ! '>='
87
+ - - '>='
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ! '>='
94
+ - - '>='
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: pry-nav
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ! '>='
101
+ - - '>='
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ! '>='
108
+ - - '>='
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  description: CLI to create or append to podcast-compatible rss via args
@@ -136,12 +136,12 @@ require_paths:
136
136
  - lib
137
137
  required_ruby_version: !ruby/object:Gem::Requirement
138
138
  requirements:
139
- - - ! '>='
139
+ - - '>='
140
140
  - !ruby/object:Gem::Version
141
141
  version: '0'
142
142
  required_rubygems_version: !ruby/object:Gem::Requirement
143
143
  requirements:
144
- - - ! '>='
144
+ - - '>='
145
145
  - !ruby/object:Gem::Version
146
146
  version: '0'
147
147
  requirements: []
@@ -151,4 +151,3 @@ signing_key:
151
151
  specification_version: 4
152
152
  summary: CLI to create or append to podcast-compatible rss via args
153
153
  test_files: []
154
- has_rdoc: