woody 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- data/lib/woody/compiler.rb +10 -4
- data/lib/woody/episode.rb +10 -4
- data/lib/woody/version.rb +1 -1
- data/templates/itunes.xml +2 -0
- data/templates/woody-config.yml +1 -0
- metadata +1 -2
data/lib/woody/compiler.rb
CHANGED
@@ -7,6 +7,10 @@ module Woody
|
|
7
7
|
def self.compile(options = [])
|
8
8
|
puts "Compiling..."
|
9
9
|
meta = YAML.load_file("content/metadata.yml")
|
10
|
+
|
11
|
+
# instantiate the metadata hash so shit doesn't explode in our faces
|
12
|
+
meta = Hash.new if meta.empty?
|
13
|
+
|
10
14
|
|
11
15
|
episodes = Array.new
|
12
16
|
filesfound = Array.new
|
@@ -26,8 +30,9 @@ module Woody
|
|
26
30
|
end
|
27
31
|
end
|
28
32
|
|
33
|
+
|
29
34
|
# Check for files in meta but not found
|
30
|
-
unless meta
|
35
|
+
unless meta.empty?
|
31
36
|
meta.each do |file|
|
32
37
|
next if filesfound.include? file[0]
|
33
38
|
puts "Warning: found metadata for file #{file[0]}, but file itself is missing. Will not be published."
|
@@ -86,7 +91,7 @@ module Woody
|
|
86
91
|
|
87
92
|
|
88
93
|
|
89
|
-
# Update General RSS
|
94
|
+
# TODO: Update General RSS
|
90
95
|
|
91
96
|
|
92
97
|
# Purge left over files
|
@@ -124,9 +129,10 @@ module Woody
|
|
124
129
|
m['subtitle'] = ask "Subtitle: "
|
125
130
|
m['synopsis'] = ask "Synopsis:"
|
126
131
|
m['tags'] = ask "Tags: ", Array
|
127
|
-
|
132
|
+
m['explicit'] = agree "Explicit content?: "
|
133
|
+
|
128
134
|
meta[filename] = m
|
129
|
-
episodes << Episode.new(filename, m['title'], Date.parse(m['date'].to_s), m['synopsis'], m['subtitle'], m['tags'])
|
135
|
+
episodes << Episode.new(filename, m['title'], Date.parse(m['date'].to_s), m['synopsis'], m['subtitle'], m['tags'], m['explicit'])
|
130
136
|
filesfound << filename
|
131
137
|
|
132
138
|
write_meta meta
|
data/lib/woody/episode.rb
CHANGED
@@ -6,7 +6,7 @@ module Woody
|
|
6
6
|
# @param [Hash] meta is the relevant part of metadata.yml
|
7
7
|
# @return [Episode] the new Episode object
|
8
8
|
def self.new_from_meta(filename, meta)
|
9
|
-
return Episode.new(filename, meta['title'], Date.parse(meta['date'].to_s), meta['synopsis'], meta['subtitle'], meta['tags'])
|
9
|
+
return Episode.new(filename, meta['title'], Date.parse(meta['date'].to_s), meta['synopsis'], meta['subtitle'], meta['tags'], meta['explicit'])
|
10
10
|
end
|
11
11
|
|
12
12
|
# Creates a new Episode object
|
@@ -17,17 +17,18 @@ module Woody
|
|
17
17
|
# @param [String] subtitle specifies the episode's subtitle
|
18
18
|
# @param [Array] tags specifies the episode's tags - each element is a String
|
19
19
|
# @return [Episode] the new Episode object
|
20
|
-
def initialize(filename, title, date, synopsis, subtitle = nil, tags = [])
|
20
|
+
def initialize(filename, title, date, synopsis, subtitle = nil, tags = [], explicit = false)
|
21
21
|
@filename = filename
|
22
22
|
@title = title
|
23
23
|
@date = date
|
24
24
|
@synopsis = synopsis
|
25
25
|
@subtitle = subtitle
|
26
26
|
@tags = tags
|
27
|
+
@explicit = explicit
|
27
28
|
@compiledname = @filename.gsub(/[^0-9A-Za-z .]/, '').gsub(' ', '_')
|
28
29
|
end
|
29
30
|
|
30
|
-
attr_accessor :filename, :title, :date, :synopsis, :tags, :subtitle, :compiledname
|
31
|
+
attr_accessor :filename, :title, :date, :synopsis, :tags, :subtitle, :explicit, :compiledname
|
31
32
|
|
32
33
|
# @return the episode's page URL where possible, otherwise false
|
33
34
|
def url
|
@@ -62,7 +63,12 @@ module Woody
|
|
62
63
|
def size
|
63
64
|
File.size "content/#{filename}"
|
64
65
|
end
|
65
|
-
|
66
|
+
|
67
|
+
# @return [String] 'yes' if explicit content, otherwise n'o'
|
68
|
+
def explicit_string
|
69
|
+
@explicit ? 'yes' : 'no'
|
70
|
+
end
|
71
|
+
|
66
72
|
# TODO: fix this!
|
67
73
|
# @return [String] the duration of the media file, formatted as minutes:seconds
|
68
74
|
def duration
|
data/lib/woody/version.rb
CHANGED
data/templates/itunes.xml
CHANGED
@@ -8,6 +8,7 @@
|
|
8
8
|
<itunes:subtitle><%= config['subtitle'] %></itunes:subtitle>
|
9
9
|
<itunes:author><%= config['author'] %></itunes:author>
|
10
10
|
<itunes:summary><%= config['itunes']['summary'] %></itunes:summary>
|
11
|
+
<itunes:explicit><%= config['itunes']['explicit'] %></itunes:explicit>
|
11
12
|
<description><%= config['itunes']['summary'] %></description>
|
12
13
|
|
13
14
|
<itunes:owner>
|
@@ -28,6 +29,7 @@
|
|
28
29
|
<pubDate><%= episode.date.rfc2822 %></pubDate>
|
29
30
|
<itunes:duration><%= episode.duration %></itunes:duration>
|
30
31
|
<itunes:keywords><%= episode.keywords %></itunes:keywords>
|
32
|
+
<itunes:explicit><%= episode.explicit_string %></itunes:explicit>
|
31
33
|
<guid><%= episode.url %></guid>
|
32
34
|
</item>
|
33
35
|
<% end %>
|
data/templates/woody-config.yml
CHANGED
@@ -17,6 +17,7 @@ itunes:
|
|
17
17
|
email: owner@example.com
|
18
18
|
# Category MUST be one of the ones listed here http://www.apple.com/itunes/podcasts/specs.html#categories
|
19
19
|
category: Comedy
|
20
|
+
explicit: "no" # yes/no/clean
|
20
21
|
|
21
22
|
s3:
|
22
23
|
# Set the relevant s3 endpoint here. For eu-west-1 (Ireland), use this default.
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: woody
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -145,4 +145,3 @@ signing_key:
|
|
145
145
|
specification_version: 3
|
146
146
|
summary: Podcast Static Site Generator
|
147
147
|
test_files: []
|
148
|
-
has_rdoc:
|