podtergeist 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/README.md +4 -5
- data/bin/podtergeist +15 -4
- data/lib/podtergeist/feed.rb +15 -8
- data/lib/podtergeist/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
M2JmOGFmMmFhZjY4YmQ5OWFjYTYyODlkODEwYmFmMmEwNzllNzQ4MA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NDg0YTc2YWI4ZjY3M2E2NGVjOTE4Mzk2NjZhOGZlOWE3OWQ5ZmJhOA==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
MTQxYTg4ODkwYmRhMWJjZWQwMTBkNGJjNDYwZjMxNGUwN2Q3NzcyYWNhZmJj
|
10
|
+
NmRlN2YxOWVmMWIyM2U5MDAwYTE1MDY3M2E0N2U3MGUxMTA3NDIxN2RlNjAy
|
11
|
+
OWZiNWMzZDcxZGNhNWU4Mzk5NGRjOGUzNjk4NjZiYjQ5ZjNmYzU=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ZmNlMThkNzMzNWU4OGJmYjhlOWQ2ODQ3ZDMwZmNhYjJhZTk4ODU4ZTU3YTFk
|
14
|
+
MmNmZTg1YzQ3M2U5MDk1MmZhZDU0Nzg0ZmQ3ZWMzNzBkNzA2MDEwZDUxNTJk
|
15
|
+
NDE0ZTAwOWVjMTBmZmQ5Yzk2YmY5MGVlNTRiZDI5MWQ0ZGYxZmE=
|
data/README.md
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
# Podtergeist
|
2
2
|
|
3
|
-
Command line interface to create or append to podcast-compatible rss feeds via arguments.
|
4
|
-
Uses [taglib](http://robinst.github.io/taglib-ruby/) to pull some information directly from podcast files.
|
3
|
+
Command line interface to create or append to podcast-compatible rss feeds via arguments.
|
4
|
+
Uses [taglib](http://robinst.github.io/taglib-ruby/) to pull some information directly from podcast files.
|
5
5
|
|
6
|
-
Please note; while this works it's a first release so the API may change drastically.
|
6
|
+
Please note; while this works it's a first release so the API may change drastically.
|
7
7
|
|
8
8
|
## Installation
|
9
9
|
|
@@ -23,5 +23,4 @@ Please note; while this works it's a first release so the API may change drastic
|
|
23
23
|
|
24
24
|
## TODO
|
25
25
|
|
26
|
-
*
|
27
|
-
* more RSS
|
26
|
+
* more RSS, itunes specific features (etc)
|
data/bin/podtergeist
CHANGED
@@ -4,23 +4,34 @@ require 'podtergeist'
|
|
4
4
|
|
5
5
|
class PodtergeistCLI < Thor
|
6
6
|
default_task :help
|
7
|
-
|
7
|
+
|
8
8
|
method_option :destination, :required => true, :type => :string
|
9
|
-
|
10
9
|
method_option :show_title, :required => true, :type => :string
|
11
10
|
method_option :show_link, :required => true, :type => :string
|
12
11
|
method_option :show_description, :required => true, :type => :string
|
13
|
-
|
14
12
|
method_option :local_file, :required => true, :type => :string
|
15
13
|
method_option :host, :required => true, :type => :string
|
16
14
|
method_option :episode_link, :required => true, :type => :string
|
17
15
|
method_option :episode_pubdate, :required => true, :type => :string
|
18
|
-
|
16
|
+
|
19
17
|
desc 'add', 'Add item to a podcast feed (creating the feed if does not exist)'
|
20
18
|
def add
|
21
19
|
Podtergeist::Feed.add(options[:destination],options)
|
22
20
|
end
|
23
21
|
|
22
|
+
method_option :destination, :required => true, :type => :string
|
23
|
+
method_option :show_title, :required => true, :type => :string
|
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
|
28
|
+
method_option :episode_link, :required => false, :type => :string
|
29
|
+
method_option :episode_pubdate, :required => false, :type => :string
|
30
|
+
|
31
|
+
desc 'existing', 'Add items in existing directory to a podcast feed (creating the feed if does not exist)'
|
32
|
+
def existing
|
33
|
+
Podtergeist::Feed.existing(options[:destination],options)
|
34
|
+
end
|
24
35
|
end
|
25
36
|
|
26
37
|
PodtergeistCLI.start
|
data/lib/podtergeist/feed.rb
CHANGED
@@ -11,6 +11,13 @@ module Podtergeist
|
|
11
11
|
create_channel(feed,params) unless feed_exists?(feed)
|
12
12
|
append_item(feed,params)
|
13
13
|
end
|
14
|
+
|
15
|
+
def existing(feed,params)
|
16
|
+
create_channel(feed,params) unless feed_exists?(feed)
|
17
|
+
Dir.glob("#{params['local_directory']}/*").each do |file|
|
18
|
+
append_item(feed,params,file)
|
19
|
+
end
|
20
|
+
end
|
14
21
|
|
15
22
|
private
|
16
23
|
|
@@ -36,11 +43,10 @@ module Podtergeist
|
|
36
43
|
end
|
37
44
|
|
38
45
|
# add item
|
39
|
-
def append_item(path,params)
|
40
|
-
|
41
|
-
remote = "#{params['host']}/#{File.basename(local)}"
|
46
|
+
def append_item(path,params,file=params['file_file'])
|
47
|
+
remote = "#{params['host']}/#{File.basename(file)}"
|
42
48
|
|
43
|
-
TagLib::FileRef.open(
|
49
|
+
TagLib::FileRef.open(file) do |fileref|
|
44
50
|
unless fileref.null?
|
45
51
|
tag = fileref.tag
|
46
52
|
properties = fileref.audio_properties
|
@@ -49,17 +55,17 @@ module Podtergeist
|
|
49
55
|
|
50
56
|
item = RSS::Rss::Channel::Item.new
|
51
57
|
item.title = tag.title
|
52
|
-
item.link = params['episode_link']
|
58
|
+
item.link = params['episode_link'] unless params['episode_link'].nil?
|
53
59
|
|
54
|
-
item.pubDate = Date.parse(params['episode_pubdate']).rfc822
|
60
|
+
item.pubDate = Date.parse(params['episode_pubdate']).rfc822 unless params['episode_pubdate'].nil?
|
55
61
|
|
56
62
|
item.guid = RSS::Rss::Channel::Item::Guid.new
|
57
|
-
item.guid.content = params['episode_link']
|
63
|
+
item.guid.content = params['episode_link'] unless params['episode_link'].nil?
|
58
64
|
item.guid.isPermaLink = true
|
59
65
|
|
60
66
|
item.description = tag.title
|
61
67
|
|
62
|
-
item.enclosure = RSS::Rss::Channel::Item::Enclosure.new(remote, properties.length, MIME::Types.type_for(
|
68
|
+
item.enclosure = RSS::Rss::Channel::Item::Enclosure.new(remote, properties.length, MIME::Types.type_for(file).first)
|
63
69
|
|
64
70
|
rss.items << item
|
65
71
|
|
@@ -69,6 +75,7 @@ module Podtergeist
|
|
69
75
|
end
|
70
76
|
end
|
71
77
|
end
|
78
|
+
|
72
79
|
end
|
73
80
|
end
|
74
81
|
end
|
data/lib/podtergeist/version.rb
CHANGED