podtergeist 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
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: